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

Side by Side Diff: content/browser/loader/resource_dispatcher_host_impl.h

Issue 2954853002: Use Independent URLLoader
Patch Set: . Created 3 years, 5 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
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 // This is the browser side of the resource dispatcher, it receives requests 5 // This is the browser side of the resource dispatcher, it receives requests
6 // from the child process (i.e. [Renderer, Plugin, Worker]ProcessHost), and 6 // from the child process (i.e. [Renderer, Plugin, Worker]ProcessHost), and
7 // dispatches them to URLRequests. It then forwards the messages from the 7 // dispatches them to URLRequests. It then forwards the messages from the
8 // URLRequests back to the correct process for handling. 8 // URLRequests back to the correct process for handling.
9 // 9 //
10 // See http://dev.chromium.org/developers/design-documents/multi-process-resourc e-loading 10 // See http://dev.chromium.org/developers/design-documents/multi-process-resourc e-loading
(...skipping 264 matching lines...) Expand 10 before | Expand all | Expand 10 after
275 // transferred. The LoaderDelegate should be interacted with on the IO thread. 275 // transferred. The LoaderDelegate should be interacted with on the IO thread.
276 void SetLoaderDelegate(LoaderDelegate* loader_delegate); 276 void SetLoaderDelegate(LoaderDelegate* loader_delegate);
277 277
278 void OnRenderFrameDeleted(const GlobalFrameRoutingId& global_routing_id); 278 void OnRenderFrameDeleted(const GlobalFrameRoutingId& global_routing_id);
279 279
280 // Called when loading a request with mojo. 280 // Called when loading a request with mojo.
281 void OnRequestResourceWithMojo(ResourceRequesterInfo* requester_info, 281 void OnRequestResourceWithMojo(ResourceRequesterInfo* requester_info,
282 int routing_id, 282 int routing_id,
283 int request_id, 283 int request_id,
284 const ResourceRequest& request, 284 const ResourceRequest& request,
285 mojom::URLLoaderAssociatedRequest mojo_request, 285 mojom::URLLoaderRequest mojo_request,
286 mojom::URLLoaderClientPtr url_loader_client); 286 mojom::URLLoaderClientPtr url_loader_client);
287 287
288 void OnSyncLoadWithMojo(ResourceRequesterInfo* requester_info, 288 void OnSyncLoadWithMojo(ResourceRequesterInfo* requester_info,
289 int routing_id, 289 int routing_id,
290 int request_id, 290 int request_id,
291 const ResourceRequest& request_data, 291 const ResourceRequest& request_data,
292 const SyncLoadResultCallback& result_handler); 292 const SyncLoadResultCallback& result_handler);
293 293
294 // Helper function for initializing the |request| passed in. By initializing 294 // Helper function for initializing the |request| passed in. By initializing
295 // we mean setting the |referrer| on the |request|, associating the 295 // we mean setting the |referrer| on the |request|, associating the
(...skipping 235 matching lines...) Expand 10 before | Expand all | Expand 10 after
531 531
532 void OnRequestResource(ResourceRequesterInfo* requester_info, 532 void OnRequestResource(ResourceRequesterInfo* requester_info,
533 int routing_id, 533 int routing_id,
534 int request_id, 534 int request_id,
535 const ResourceRequest& request_data); 535 const ResourceRequest& request_data);
536 536
537 void OnRequestResourceInternal(ResourceRequesterInfo* requester_info, 537 void OnRequestResourceInternal(ResourceRequesterInfo* requester_info,
538 int routing_id, 538 int routing_id,
539 int request_id, 539 int request_id,
540 const ResourceRequest& request_data, 540 const ResourceRequest& request_data,
541 mojom::URLLoaderAssociatedRequest mojo_request, 541 mojom::URLLoaderRequest mojo_request,
542 mojom::URLLoaderClientPtr url_loader_client); 542 mojom::URLLoaderClientPtr url_loader_client);
543 543
544 void OnSyncLoad(ResourceRequesterInfo* requester_info, 544 void OnSyncLoad(ResourceRequesterInfo* requester_info,
545 int request_id, 545 int request_id,
546 const ResourceRequest& request_data, 546 const ResourceRequest& request_data,
547 IPC::Message* sync_result); 547 IPC::Message* sync_result);
548 548
549 bool IsRequestIDInUse(const GlobalRequestID& id) const; 549 bool IsRequestIDInUse(const GlobalRequestID& id) const;
550 550
551 // Update the ResourceRequestInfo and internal maps when a request is 551 // Update the ResourceRequestInfo and internal maps when a request is
552 // transferred from one process to another. 552 // transferred from one process to another.
553 void UpdateRequestForTransfer(ResourceRequesterInfo* requester_info, 553 void UpdateRequestForTransfer(ResourceRequesterInfo* requester_info,
554 int route_id, 554 int route_id,
555 int request_id, 555 int request_id,
556 const ResourceRequest& request_data, 556 const ResourceRequest& request_data,
557 LoaderMap::iterator iter, 557 LoaderMap::iterator iter,
558 mojom::URLLoaderAssociatedRequest mojo_request, 558 mojom::URLLoaderRequest mojo_request,
559 mojom::URLLoaderClientPtr url_loader_client); 559 mojom::URLLoaderClientPtr url_loader_client);
560 560
561 // If |request_data| is for a request being transferred from another process, 561 // If |request_data| is for a request being transferred from another process,
562 // then CompleteTransfer method can be used to complete the transfer. 562 // then CompleteTransfer method can be used to complete the transfer.
563 void CompleteTransfer(ResourceRequesterInfo* requester_info, 563 void CompleteTransfer(ResourceRequesterInfo* requester_info,
564 int request_id, 564 int request_id,
565 const ResourceRequest& request_data, 565 const ResourceRequest& request_data,
566 int route_id, 566 int route_id,
567 mojom::URLLoaderAssociatedRequest mojo_request, 567 mojom::URLLoaderRequest mojo_request,
568 mojom::URLLoaderClientPtr url_loader_client); 568 mojom::URLLoaderClientPtr url_loader_client);
569 569
570 void BeginRequest( 570 void BeginRequest(
571 ResourceRequesterInfo* requester_info, 571 ResourceRequesterInfo* requester_info,
572 int request_id, 572 int request_id,
573 const ResourceRequest& request_data, 573 const ResourceRequest& request_data,
574 const SyncLoadResultCallback& sync_result_handler, // only valid for sync 574 const SyncLoadResultCallback& sync_result_handler, // only valid for sync
575 int route_id, 575 int route_id,
576 mojom::URLLoaderAssociatedRequest mojo_request, 576 mojom::URLLoaderRequest mojo_request,
577 mojom::URLLoaderClientPtr url_loader_client); 577 mojom::URLLoaderClientPtr url_loader_client);
578 578
579 // There are requests which need decisions to be made like the following: 579 // There are requests which need decisions to be made like the following:
580 // Whether the presence of certain HTTP headers like the Origin header are 580 // Whether the presence of certain HTTP headers like the Origin header are
581 // valid, etc. These requests may need to be aborted based on these 581 // valid, etc. These requests may need to be aborted based on these
582 // decisions which could be time consuming. We allow for these decisions 582 // decisions which could be time consuming. We allow for these decisions
583 // to be made asynchronously. The request proceeds when we hear back from 583 // to be made asynchronously. The request proceeds when we hear back from
584 // the interceptors about whether to continue or not. 584 // the interceptors about whether to continue or not.
585 // The |interceptor_result| indicates whether the request should be continued 585 // The |interceptor_result| indicates whether the request should be continued
586 // or aborted, and in the latter case whether the renderer should be killed. 586 // or aborted, and in the latter case whether the renderer should be killed.
587 void ContinuePendingBeginRequest( 587 void ContinuePendingBeginRequest(
588 scoped_refptr<ResourceRequesterInfo> requester_info, 588 scoped_refptr<ResourceRequesterInfo> requester_info,
589 int request_id, 589 int request_id,
590 const ResourceRequest& request_data, 590 const ResourceRequest& request_data,
591 const SyncLoadResultCallback& sync_result_handler, // only valid for sync 591 const SyncLoadResultCallback& sync_result_handler, // only valid for sync
592 int route_id, 592 int route_id,
593 const net::HttpRequestHeaders& headers, 593 const net::HttpRequestHeaders& headers,
594 mojom::URLLoaderAssociatedRequest mojo_request, 594 mojom::URLLoaderRequest mojo_request,
595 mojom::URLLoaderClientPtr url_loader_client, 595 mojom::URLLoaderClientPtr url_loader_client,
596 HeaderInterceptorResult interceptor_result); 596 HeaderInterceptorResult interceptor_result);
597 597
598 // Creates a ResourceHandler to be used by BeginRequest() for normal resource 598 // Creates a ResourceHandler to be used by BeginRequest() for normal resource
599 // loading. 599 // loading.
600 std::unique_ptr<ResourceHandler> CreateResourceHandler( 600 std::unique_ptr<ResourceHandler> CreateResourceHandler(
601 ResourceRequesterInfo* requester_info, 601 ResourceRequesterInfo* requester_info,
602 net::URLRequest* request, 602 net::URLRequest* request,
603 const ResourceRequest& request_data, 603 const ResourceRequest& request_data,
604 const SyncLoadResultCallback& sync_result_handler, 604 const SyncLoadResultCallback& sync_result_handler,
605 int route_id, 605 int route_id,
606 int child_id, 606 int child_id,
607 ResourceContext* resource_context, 607 ResourceContext* resource_context,
608 mojom::URLLoaderAssociatedRequest mojo_request, 608 mojom::URLLoaderRequest mojo_request,
609 mojom::URLLoaderClientPtr url_loader_client); 609 mojom::URLLoaderClientPtr url_loader_client);
610 610
611 // Creates either MojoAsyncResourceHandler or AsyncResourceHandler. 611 // Creates either MojoAsyncResourceHandler or AsyncResourceHandler.
612 std::unique_ptr<ResourceHandler> CreateBaseResourceHandler( 612 std::unique_ptr<ResourceHandler> CreateBaseResourceHandler(
613 net::URLRequest* request, 613 net::URLRequest* request,
614 mojom::URLLoaderAssociatedRequest mojo_request, 614 mojom::URLLoaderRequest mojo_request,
615 mojom::URLLoaderClientPtr url_loader_client, 615 mojom::URLLoaderClientPtr url_loader_client,
616 ResourceType resource_type); 616 ResourceType resource_type);
617 617
618 // Wraps |handler| in the standard resource handlers for normal resource 618 // Wraps |handler| in the standard resource handlers for normal resource
619 // loading and navigation requests. This adds MimeTypeResourceHandler and 619 // loading and navigation requests. This adds MimeTypeResourceHandler and
620 // ResourceThrottles. 620 // ResourceThrottles.
621 // PlzNavigate: |navigation_loader_core| and |stream_handle| are used to 621 // PlzNavigate: |navigation_loader_core| and |stream_handle| are used to
622 // properly initialized the NavigationResourceHandler placed in navigation 622 // properly initialized the NavigationResourceHandler placed in navigation
623 // requests. They should be non-null in that case. 623 // requests. They should be non-null in that case.
624 std::unique_ptr<ResourceHandler> AddStandardHandlers( 624 std::unique_ptr<ResourceHandler> AddStandardHandlers(
(...skipping 205 matching lines...) Expand 10 before | Expand all | Expand 10 after
830 830
831 // Whether experimental web platform features are enabled. 831 // Whether experimental web platform features are enabled.
832 bool experimental_web_features_enabled_; 832 bool experimental_web_features_enabled_;
833 833
834 DISALLOW_COPY_AND_ASSIGN(ResourceDispatcherHostImpl); 834 DISALLOW_COPY_AND_ASSIGN(ResourceDispatcherHostImpl);
835 }; 835 };
836 836
837 } // namespace content 837 } // namespace content
838 838
839 #endif // CONTENT_BROWSER_LOADER_RESOURCE_DISPATCHER_HOST_IMPL_H_ 839 #endif // CONTENT_BROWSER_LOADER_RESOURCE_DISPATCHER_HOST_IMPL_H_
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698