Home | History | Annotate | Download | only in common
      1 // Copyright (c) 2012 The Chromium Authors. All rights reserved.
      2 // Use of this source code is governed by a BSD-style license that can be
      3 // found in the LICENSE file.
      4 
      5 // See http://dev.chromium.org/developers/design-documents/multi-process-resource-loading
      6 
      7 #ifndef CONTENT_PUBLIC_COMMON_RESOURCE_RESPONSE_H_
      8 #define CONTENT_PUBLIC_COMMON_RESOURCE_RESPONSE_H_
      9 
     10 #include <string>
     11 
     12 #include "base/compiler_specific.h"
     13 #include "base/memory/ref_counted.h"
     14 #include "content/common/content_export.h"
     15 #include "content/public/common/resource_response_info.h"
     16 #include "net/url_request/url_request_status.h"
     17 #include "url/gurl.h"
     18 
     19 namespace content {
     20 
     21 // Parameters for a resource response header.
     22 struct ResourceResponseHead : ResourceResponseInfo {
     23   // TimeTicks::Now() when the browser received the request from the renderer.
     24   base::TimeTicks request_start;
     25   // TimeTicks::Now() when the browser sent the response to the renderer.
     26   base::TimeTicks response_start;
     27 };
     28 
     29 // Parameters for a synchronous resource response.
     30 struct SyncLoadResult : ResourceResponseHead {
     31   // The response error_code.
     32   int error_code;
     33   // The final URL after any redirects.
     34   GURL final_url;
     35 
     36   // The response data.
     37   std::string data;
     38 };
     39 
     40 // Simple wrapper that refcounts ResourceResponseHead.
     41 // Inherited, rather than typedef'd, to allow forward declarations.
     42 struct CONTENT_EXPORT ResourceResponse
     43     : public base::RefCounted<ResourceResponse> {
     44  public:
     45   ResourceResponseHead head;
     46 
     47  private:
     48   friend class base::RefCounted<ResourceResponse>;
     49   ~ResourceResponse() {}
     50 };
     51 
     52 }  // namespace content
     53 
     54 #endif  // CONTENT_PUBLIC_COMMON_RESOURCE_RESPONSE_H_
     55