resource_response.h revision ca12bfac764ba476d6cd062bf1dde12cc64c3f40
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 "net/url_request/url_request_status.h"
16#include "url/gurl.h"
17#include "webkit/common/resource_response_info.h"
18
19namespace content {
20
21// Parameters for a resource response header.
22struct ResourceResponseHead : webkit_glue::ResourceResponseInfo {
23  // The response error_code.
24  int error_code;
25  // TimeTicks::Now() when the browser received the request from the renderer.
26  base::TimeTicks request_start;
27  // TimeTicks::Now() when the browser sent the response to the renderer.
28  base::TimeTicks response_start;
29};
30
31// Parameters for a synchronous resource response.
32struct SyncLoadResult : ResourceResponseHead {
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.
42struct 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