| OLD | NEW |
| 1 // Copyright (c) 2012 The Chromium Authors. All rights reserved. | 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 | 2 // Use of this source code is governed by a BSD-style license that can be |
| 3 // found in the LICENSE file. | 3 // found in the LICENSE file. |
| 4 // | 4 // |
| 5 // The intent of this file is to provide a type-neutral abstraction between | 5 // The intent of this file is to provide a type-neutral abstraction between |
| 6 // Chrome and WebKit for resource loading. This pure-virtual interface is | 6 // Chrome and WebKit for resource loading. This pure-virtual interface is |
| 7 // implemented by the embedder. | 7 // implemented by the embedder. |
| 8 // | 8 // |
| 9 // One of these objects will be created by WebKit for each request. WebKit | 9 // One of these objects will be created by WebKit for each request. WebKit |
| 10 // will own the pointer to the bridge, and will delete it when the request is | 10 // will own the pointer to the bridge, and will delete it when the request is |
| 11 // no longer needed. | 11 // no longer needed. |
| 12 // | 12 // |
| 13 // In turn, the bridge's owner on the WebKit end will implement the Peer | 13 // In turn, the bridge's owner on the WebKit end will implement the Peer |
| 14 // interface, which we will use to communicate notifications back. | 14 // interface, which we will use to communicate notifications back. |
| 15 | 15 |
| 16 #ifndef WEBKIT_CHILD_RESOURCE_LOADER_BRIDGE_H_ | 16 #ifndef WEBKIT_CHILD_RESOURCE_LOADER_BRIDGE_H_ |
| 17 #define WEBKIT_CHILD_RESOURCE_LOADER_BRIDGE_H_ | 17 #define WEBKIT_CHILD_RESOURCE_LOADER_BRIDGE_H_ |
| 18 | 18 |
| 19 #include <utility> | 19 #include <utility> |
| 20 | 20 |
| 21 #include "build/build_config.h" | 21 #include "build/build_config.h" |
| 22 #if defined(OS_POSIX) | 22 #if defined(OS_POSIX) |
| 23 #include "base/file_descriptor_posix.h" | 23 #include "base/file_descriptor_posix.h" |
| 24 #endif | 24 #endif |
| 25 #include "base/memory/ref_counted.h" | 25 #include "base/memory/ref_counted.h" |
| 26 #include "base/platform_file.h" | 26 #include "base/platform_file.h" |
| 27 #include "base/values.h" | 27 #include "base/values.h" |
| 28 #include "net/base/request_priority.h" | 28 #include "net/base/request_priority.h" |
| 29 #include "third_party/WebKit/public/platform/WebReferrerPolicy.h" | |
| 30 #include "third_party/WebKit/public/platform/WebURLRequest.h" | |
| 31 #include "url/gurl.h" | 29 #include "url/gurl.h" |
| 32 #include "webkit/child/webkit_child_export.h" | 30 #include "webkit/child/webkit_child_export.h" |
| 33 #include "webkit/common/resource_response_info.h" | 31 #include "webkit/common/resource_response_info.h" |
| 34 #include "webkit/common/resource_type.h" | |
| 35 | 32 |
| 36 // TODO(pilgrim) remove this once resource loader is moved to content | 33 // TODO(pilgrim) remove this once resource loader is moved to content |
| 37 // http://crbug.com/338338 | 34 // http://crbug.com/338338 |
| 38 namespace content { | 35 namespace content { |
| 39 class ResourceRequestBody; | 36 class ResourceRequestBody; |
| 40 } | 37 } |
| 41 | 38 |
| 42 namespace webkit_glue { | 39 namespace webkit_glue { |
| 43 | 40 |
| 44 class ResourceLoaderBridge { | 41 class ResourceLoaderBridge { |
| 45 public: | 42 public: |
| 46 // Structure used when calling | |
| 47 // WebKitPlatformSupportImpl::CreateResourceLoader(). | |
| 48 struct WEBKIT_CHILD_EXPORT RequestInfo { | |
| 49 RequestInfo(); | |
| 50 ~RequestInfo(); | |
| 51 | |
| 52 // HTTP-style method name (e.g., "GET" or "POST"). | |
| 53 std::string method; | |
| 54 | |
| 55 // Absolute URL encoded in ASCII per the rules of RFC-2396. | |
| 56 GURL url; | |
| 57 | |
| 58 // URL of the document in the top-level window, which may be checked by the | |
| 59 // third-party cookie blocking policy. | |
| 60 GURL first_party_for_cookies; | |
| 61 | |
| 62 // Optional parameter, a URL with similar constraints in how it must be | |
| 63 // encoded as the url member. | |
| 64 GURL referrer; | |
| 65 | |
| 66 // The referrer policy that applies to the referrer. | |
| 67 blink::WebReferrerPolicy referrer_policy; | |
| 68 | |
| 69 // For HTTP(S) requests, the headers parameter can be a \r\n-delimited and | |
| 70 // \r\n-terminated list of MIME headers. They should be ASCII-encoded using | |
| 71 // the standard MIME header encoding rules. The headers parameter can also | |
| 72 // be null if no extra request headers need to be set. | |
| 73 std::string headers; | |
| 74 | |
| 75 // Composed of the values defined in url_request_load_flags.h. | |
| 76 int load_flags; | |
| 77 | |
| 78 // Process id of the process making the request. | |
| 79 int requestor_pid; | |
| 80 | |
| 81 // Indicates if the current request is the main frame load, a sub-frame | |
| 82 // load, or a sub objects load. | |
| 83 ResourceType::Type request_type; | |
| 84 | |
| 85 // Indicates the priority of this request, as determined by WebKit. | |
| 86 net::RequestPriority priority; | |
| 87 | |
| 88 // Used for plugin to browser requests. | |
| 89 uint32 request_context; | |
| 90 | |
| 91 // Identifies what appcache host this request is associated with. | |
| 92 int appcache_host_id; | |
| 93 | |
| 94 // Used to associated the bridge with a frame's network context. | |
| 95 int routing_id; | |
| 96 | |
| 97 // If true, then the response body will be downloaded to a file and the | |
| 98 // path to that file will be provided in ResponseInfo::download_file_path. | |
| 99 bool download_to_file; | |
| 100 | |
| 101 // True if the request was user initiated. | |
| 102 bool has_user_gesture; | |
| 103 | |
| 104 // Extra data associated with this request. We do not own this pointer. | |
| 105 blink::WebURLRequest::ExtraData* extra_data; | |
| 106 | |
| 107 private: | |
| 108 DISALLOW_COPY_AND_ASSIGN(RequestInfo); | |
| 109 }; | |
| 110 | |
| 111 // See the SyncLoad method declared below. (The name of this struct is not | 43 // See the SyncLoad method declared below. (The name of this struct is not |
| 112 // suffixed with "Info" because it also contains the response data.) | 44 // suffixed with "Info" because it also contains the response data.) |
| 113 struct SyncLoadResponse : ResourceResponseInfo { | 45 struct SyncLoadResponse : ResourceResponseInfo { |
| 114 WEBKIT_CHILD_EXPORT SyncLoadResponse(); | 46 WEBKIT_CHILD_EXPORT SyncLoadResponse(); |
| 115 WEBKIT_CHILD_EXPORT ~SyncLoadResponse(); | 47 WEBKIT_CHILD_EXPORT ~SyncLoadResponse(); |
| 116 | 48 |
| 117 // The response error code. | 49 // The response error code. |
| 118 int error_code; | 50 int error_code; |
| 119 | 51 |
| 120 // The final URL of the response. This may differ from the request URL in | 52 // The final URL of the response. This may differ from the request URL in |
| (...skipping 112 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 233 // methods may be called to construct the body of the request. | 165 // methods may be called to construct the body of the request. |
| 234 WEBKIT_CHILD_EXPORT ResourceLoaderBridge(); | 166 WEBKIT_CHILD_EXPORT ResourceLoaderBridge(); |
| 235 | 167 |
| 236 private: | 168 private: |
| 237 DISALLOW_COPY_AND_ASSIGN(ResourceLoaderBridge); | 169 DISALLOW_COPY_AND_ASSIGN(ResourceLoaderBridge); |
| 238 }; | 170 }; |
| 239 | 171 |
| 240 } // namespace webkit_glue | 172 } // namespace webkit_glue |
| 241 | 173 |
| 242 #endif // WEBKIT_CHILD_RESOURCE_LOADER_BRIDGE_H_ | 174 #endif // WEBKIT_CHILD_RESOURCE_LOADER_BRIDGE_H_ |
| OLD | NEW |