Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(131)

Side by Side Diff: content/browser/renderer_host/resource_request_info_impl.cc

Issue 11414299: Add content/browser/loader/ for resource loading related classes. (Closed) Base URL: svn://svn.chromium.org/chrome/trunk/src/
Patch Set: Created 8 years ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View unified diff | Download patch | Annotate | Revision Log
OLDNEW
(Empty)
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 #include "content/browser/renderer_host/resource_request_info_impl.h"
6
7 #include "content/browser/worker_host/worker_service_impl.h"
8 #include "content/common/net/url_request_user_data.h"
9 #include "content/public/browser/global_request_id.h"
10 #include "net/url_request/url_request.h"
11 #include "webkit/blob/blob_data.h"
12
13 namespace content {
14
15 // ----------------------------------------------------------------------------
16 // ResourceRequestInfo
17
18 // static
19 const ResourceRequestInfo* ResourceRequestInfo::ForRequest(
20 const net::URLRequest* request) {
21 return ResourceRequestInfoImpl::ForRequest(request);
22 }
23
24 // static
25 void ResourceRequestInfo::AllocateForTesting(
26 net::URLRequest* request,
27 ResourceType::Type resource_type,
28 ResourceContext* context,
29 int render_process_id,
30 int render_view_id) {
31 ResourceRequestInfoImpl* info =
32 new ResourceRequestInfoImpl(
33 PROCESS_TYPE_RENDERER, // process_type
34 render_process_id, // child_id
35 render_view_id, // route_id
36 0, // origin_pid
37 0, // request_id
38 resource_type == ResourceType::MAIN_FRAME, // is_main_frame
39 0, // frame_id
40 false, // parent_is_main_frame
41 0, // parent_frame_id
42 resource_type, // resource_type
43 PAGE_TRANSITION_LINK, // transition_type
44 false, // is_download
45 true, // allow_download
46 false, // has_user_gesture
47 WebKit::WebReferrerPolicyDefault, // referrer_policy
48 context); // context
49 info->AssociateWithRequest(request);
50 }
51
52 // static
53 bool ResourceRequestInfo::GetRenderViewForRequest(
54 const net::URLRequest* request,
55 int* render_process_id,
56 int* render_view_id) {
57 URLRequestUserData* user_data = static_cast<URLRequestUserData*>(
58 request->GetUserData(URLRequestUserData::kUserDataKey));
59 if (!user_data)
60 return false;
61 *render_process_id = user_data->render_process_id();
62 *render_view_id = user_data->render_view_id();
63 return true;
64 }
65
66 // ----------------------------------------------------------------------------
67 // ResourceRequestInfoImpl
68
69 // static
70 ResourceRequestInfoImpl* ResourceRequestInfoImpl::ForRequest(
71 net::URLRequest* request) {
72 return static_cast<ResourceRequestInfoImpl*>(request->GetUserData(NULL));
73 }
74
75 // static
76 const ResourceRequestInfoImpl* ResourceRequestInfoImpl::ForRequest(
77 const net::URLRequest* request) {
78 return ForRequest(const_cast<net::URLRequest*>(request));
79 }
80
81 ResourceRequestInfoImpl::ResourceRequestInfoImpl(
82 ProcessType process_type,
83 int child_id,
84 int route_id,
85 int origin_pid,
86 int request_id,
87 bool is_main_frame,
88 int64 frame_id,
89 bool parent_is_main_frame,
90 int64 parent_frame_id,
91 ResourceType::Type resource_type,
92 PageTransition transition_type,
93 bool is_download,
94 bool allow_download,
95 bool has_user_gesture,
96 WebKit::WebReferrerPolicy referrer_policy,
97 ResourceContext* context)
98 : cross_site_handler_(NULL),
99 async_handler_(NULL),
100 process_type_(process_type),
101 child_id_(child_id),
102 route_id_(route_id),
103 origin_pid_(origin_pid),
104 request_id_(request_id),
105 is_main_frame_(is_main_frame),
106 frame_id_(frame_id),
107 parent_is_main_frame_(parent_is_main_frame),
108 parent_frame_id_(parent_frame_id),
109 is_download_(is_download),
110 allow_download_(allow_download),
111 has_user_gesture_(has_user_gesture),
112 was_ignored_by_handler_(false),
113 resource_type_(resource_type),
114 transition_type_(transition_type),
115 memory_cost_(0),
116 referrer_policy_(referrer_policy),
117 context_(context) {
118 }
119
120 ResourceRequestInfoImpl::~ResourceRequestInfoImpl() {
121 }
122
123 ResourceContext* ResourceRequestInfoImpl::GetContext() const {
124 return context_;
125 }
126
127 int ResourceRequestInfoImpl::GetChildID() const {
128 return child_id_;
129 }
130
131 int ResourceRequestInfoImpl::GetRouteID() const {
132 return route_id_;
133 }
134
135 int ResourceRequestInfoImpl::GetOriginPID() const {
136 return origin_pid_;
137 }
138
139 int ResourceRequestInfoImpl::GetRequestID() const {
140 return request_id_;
141 }
142
143 bool ResourceRequestInfoImpl::IsMainFrame() const {
144 return is_main_frame_;
145 }
146
147 int64 ResourceRequestInfoImpl::GetFrameID() const {
148 return frame_id_;
149 }
150
151 bool ResourceRequestInfoImpl::ParentIsMainFrame() const {
152 return parent_is_main_frame_;
153 }
154
155 int64 ResourceRequestInfoImpl::GetParentFrameID() const {
156 return parent_frame_id_;
157 }
158
159 ResourceType::Type ResourceRequestInfoImpl::GetResourceType() const {
160 return resource_type_;
161 }
162
163 WebKit::WebReferrerPolicy ResourceRequestInfoImpl::GetReferrerPolicy() const {
164 return referrer_policy_;
165 }
166
167 bool ResourceRequestInfoImpl::HasUserGesture() const {
168 return has_user_gesture_;
169 }
170
171 bool ResourceRequestInfoImpl::WasIgnoredByHandler() const {
172 return was_ignored_by_handler_;
173 }
174
175 bool ResourceRequestInfoImpl::GetAssociatedRenderView(
176 int* render_process_id,
177 int* render_view_id) const {
178 // If the request is from the worker process, find a content that owns the
179 // worker.
180 if (process_type_ == PROCESS_TYPE_WORKER) {
181 // Need to display some related UI for this network request - pick an
182 // arbitrary parent to do so.
183 if (!WorkerServiceImpl::GetInstance()->GetRendererForWorker(
184 child_id_, render_process_id, render_view_id)) {
185 *render_process_id = -1;
186 *render_view_id = -1;
187 return false;
188 }
189 } else {
190 *render_process_id = child_id_;
191 *render_view_id = route_id_;
192 }
193 return true;
194 }
195
196 bool ResourceRequestInfoImpl::IsAsync() const {
197 return async_handler_ != NULL;
198 }
199
200 void ResourceRequestInfoImpl::AssociateWithRequest(net::URLRequest* request) {
201 request->SetUserData(NULL, this);
202 int render_process_id;
203 int render_view_id;
204 if (GetAssociatedRenderView(&render_process_id, &render_view_id)) {
205 request->SetUserData(
206 URLRequestUserData::kUserDataKey,
207 new URLRequestUserData(render_process_id, render_view_id));
208 }
209 }
210
211 GlobalRequestID ResourceRequestInfoImpl::GetGlobalRequestID() const {
212 return GlobalRequestID(child_id_, request_id_);
213 }
214
215 void ResourceRequestInfoImpl::set_requested_blob_data(
216 webkit_blob::BlobData* data) {
217 requested_blob_data_ = data;
218 }
219
220 } // namespace content
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698