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

Side by Side Diff: android_webview/browser/renderer_host/aw_resource_dispatcher_host_delegate.cc

Issue 425653002: content: ResourceType cleanup. (Closed) Base URL: svn://svn.chromium.org/chrome/trunk/src
Patch Set: REBASE Created 6 years, 4 months 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
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 #include "android_webview/browser/renderer_host/aw_resource_dispatcher_host_dele gate.h" 5 #include "android_webview/browser/renderer_host/aw_resource_dispatcher_host_dele gate.h"
6 6
7 #include <string> 7 #include <string>
8 8
9 #include "android_webview/browser/aw_contents_io_thread_client.h" 9 #include "android_webview/browser/aw_contents_io_thread_client.h"
10 #include "android_webview/browser/aw_login_delegate.h" 10 #include "android_webview/browser/aw_login_delegate.h"
(...skipping 193 matching lines...) Expand 10 before | Expand all | Expand 10 after
204 : content::ResourceDispatcherHostDelegate() { 204 : content::ResourceDispatcherHostDelegate() {
205 } 205 }
206 206
207 AwResourceDispatcherHostDelegate::~AwResourceDispatcherHostDelegate() { 207 AwResourceDispatcherHostDelegate::~AwResourceDispatcherHostDelegate() {
208 } 208 }
209 209
210 void AwResourceDispatcherHostDelegate::RequestBeginning( 210 void AwResourceDispatcherHostDelegate::RequestBeginning(
211 net::URLRequest* request, 211 net::URLRequest* request,
212 content::ResourceContext* resource_context, 212 content::ResourceContext* resource_context,
213 content::AppCacheService* appcache_service, 213 content::AppCacheService* appcache_service,
214 ResourceType::Type resource_type, 214 ResourceType resource_type,
215 int child_id, 215 int child_id,
216 int route_id, 216 int route_id,
217 ScopedVector<content::ResourceThrottle>* throttles) { 217 ScopedVector<content::ResourceThrottle>* throttles) {
218 218
219 AddExtraHeadersIfNeeded(request, resource_context); 219 AddExtraHeadersIfNeeded(request, resource_context);
220 220
221 const content::ResourceRequestInfo* request_info = 221 const content::ResourceRequestInfo* request_info =
222 content::ResourceRequestInfo::ForRequest(request); 222 content::ResourceRequestInfo::ForRequest(request);
223 223
224 // We always push the throttles here. Checking the existence of io_client 224 // We always push the throttles here. Checking the existence of io_client
225 // is racy when a popup window is created. That is because RequestBeginning 225 // is racy when a popup window is created. That is because RequestBeginning
226 // is called whether or not requests are blocked via BlockRequestForRoute() 226 // is called whether or not requests are blocked via BlockRequestForRoute()
227 // however io_client may or may not be ready at the time depending on whether 227 // however io_client may or may not be ready at the time depending on whether
228 // webcontents is created. 228 // webcontents is created.
229 throttles->push_back(new IoThreadClientThrottle( 229 throttles->push_back(new IoThreadClientThrottle(
230 child_id, request_info->GetRenderFrameID(), request)); 230 child_id, request_info->GetRenderFrameID(), request));
231 231
232 // We allow intercepting only navigations within main frames. This 232 // We allow intercepting only navigations within main frames. This
233 // is used to post onPageStarted. We handle shouldOverrideUrlLoading 233 // is used to post onPageStarted. We handle shouldOverrideUrlLoading
234 // via a sync IPC. 234 // via a sync IPC.
235 if (resource_type == ResourceType::MAIN_FRAME) 235 if (resource_type == content::RESOURCE_TYPE_MAIN_FRAME)
236 throttles->push_back(InterceptNavigationDelegate::CreateThrottleFor( 236 throttles->push_back(InterceptNavigationDelegate::CreateThrottleFor(
237 request)); 237 request));
238 } 238 }
239 239
240 void AwResourceDispatcherHostDelegate::OnRequestRedirected( 240 void AwResourceDispatcherHostDelegate::OnRequestRedirected(
241 const GURL& redirect_url, 241 const GURL& redirect_url,
242 net::URLRequest* request, 242 net::URLRequest* request,
243 content::ResourceContext* resource_context, 243 content::ResourceContext* resource_context,
244 content::ResourceResponse* response) { 244 content::ResourceResponse* response) {
245 AddExtraHeadersIfNeeded(request, resource_context); 245 AddExtraHeadersIfNeeded(request, resource_context);
(...skipping 68 matching lines...) Expand 10 before | Expand all | Expand 10 after
314 content::ResourceResponse* response, 314 content::ResourceResponse* response,
315 IPC::Sender* sender) { 315 IPC::Sender* sender) {
316 const content::ResourceRequestInfo* request_info = 316 const content::ResourceRequestInfo* request_info =
317 content::ResourceRequestInfo::ForRequest(request); 317 content::ResourceRequestInfo::ForRequest(request);
318 if (!request_info) { 318 if (!request_info) {
319 DLOG(FATAL) << "Started request without associated info: " << 319 DLOG(FATAL) << "Started request without associated info: " <<
320 request->url(); 320 request->url();
321 return; 321 return;
322 } 322 }
323 323
324 if (request_info->GetResourceType() == ResourceType::MAIN_FRAME) { 324 if (request_info->GetResourceType() == content::RESOURCE_TYPE_MAIN_FRAME) {
325 // Check for x-auto-login header. 325 // Check for x-auto-login header.
326 auto_login_parser::HeaderData header_data; 326 auto_login_parser::HeaderData header_data;
327 if (auto_login_parser::ParserHeaderInResponse( 327 if (auto_login_parser::ParserHeaderInResponse(
328 request, auto_login_parser::ALLOW_ANY_REALM, &header_data)) { 328 request, auto_login_parser::ALLOW_ANY_REALM, &header_data)) {
329 scoped_ptr<AwContentsIoThreadClient> io_client = 329 scoped_ptr<AwContentsIoThreadClient> io_client =
330 AwContentsIoThreadClient::FromID(request_info->GetChildID(), 330 AwContentsIoThreadClient::FromID(request_info->GetChildID(),
331 request_info->GetRenderFrameID()); 331 request_info->GetRenderFrameID());
332 if (io_client) { 332 if (io_client) {
333 io_client->NewLoginRequest( 333 io_client->NewLoginRequest(
334 header_data.realm, header_data.account, header_data.args); 334 header_data.realm, header_data.account, header_data.args);
(...skipping 61 matching lines...) Expand 10 before | Expand all | Expand 10 after
396 throttle->OnIoThreadClientReady(new_render_process_id, new_render_frame_id); 396 throttle->OnIoThreadClientReady(new_render_process_id, new_render_frame_id);
397 pending_throttles_.erase(it); 397 pending_throttles_.erase(it);
398 } 398 }
399 } 399 }
400 400
401 void AwResourceDispatcherHostDelegate::AddExtraHeadersIfNeeded( 401 void AwResourceDispatcherHostDelegate::AddExtraHeadersIfNeeded(
402 net::URLRequest* request, 402 net::URLRequest* request,
403 content::ResourceContext* resource_context) { 403 content::ResourceContext* resource_context) {
404 const content::ResourceRequestInfo* request_info = 404 const content::ResourceRequestInfo* request_info =
405 content::ResourceRequestInfo::ForRequest(request); 405 content::ResourceRequestInfo::ForRequest(request);
406 if (!request_info) return; 406 if (!request_info)
407 if (request_info->GetResourceType() != ResourceType::MAIN_FRAME) return; 407 return;
408 if (request_info->GetResourceType() != content::RESOURCE_TYPE_MAIN_FRAME)
409 return;
408 410
409 const content::PageTransition transition = request_info->GetPageTransition(); 411 const content::PageTransition transition = request_info->GetPageTransition();
410 const bool is_load_url = 412 const bool is_load_url =
411 transition & content::PAGE_TRANSITION_FROM_API; 413 transition & content::PAGE_TRANSITION_FROM_API;
412 const bool is_go_back_forward = 414 const bool is_go_back_forward =
413 transition & content::PAGE_TRANSITION_FORWARD_BACK; 415 transition & content::PAGE_TRANSITION_FORWARD_BACK;
414 const bool is_reload = content::PageTransitionCoreTypeIs( 416 const bool is_reload = content::PageTransitionCoreTypeIs(
415 transition, content::PAGE_TRANSITION_RELOAD); 417 transition, content::PAGE_TRANSITION_RELOAD);
416 if (is_load_url || is_go_back_forward || is_reload) { 418 if (is_load_url || is_go_back_forward || is_reload) {
417 AwResourceContext* awrc = static_cast<AwResourceContext*>(resource_context); 419 AwResourceContext* awrc = static_cast<AwResourceContext*>(resource_context);
418 std::string extra_headers = awrc->GetExtraHeaders(request->url()); 420 std::string extra_headers = awrc->GetExtraHeaders(request->url());
419 if (!extra_headers.empty()) { 421 if (!extra_headers.empty()) {
420 net::HttpRequestHeaders headers; 422 net::HttpRequestHeaders headers;
421 headers.AddHeadersFromString(extra_headers); 423 headers.AddHeadersFromString(extra_headers);
422 for (net::HttpRequestHeaders::Iterator it(headers); it.GetNext(); ) { 424 for (net::HttpRequestHeaders::Iterator it(headers); it.GetNext(); ) {
423 request->SetExtraRequestHeaderByName(it.name(), it.value(), false); 425 request->SetExtraRequestHeaderByName(it.name(), it.value(), false);
424 } 426 }
425 } 427 }
426 } 428 }
427 } 429 }
428 430
429 } // namespace android_webview 431 } // namespace android_webview
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698