| 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 // 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 286 matching lines...) Expand 10 before | Expand all | Expand 10 after  Loading... | 
|  297   // transferred. The LoaderDelegate should be interacted with on the IO thread. |  297   // transferred. The LoaderDelegate should be interacted with on the IO thread. | 
|  298   void SetLoaderDelegate(LoaderDelegate* loader_delegate); |  298   void SetLoaderDelegate(LoaderDelegate* loader_delegate); | 
|  299  |  299  | 
|  300   void OnRenderFrameDeleted(const GlobalFrameRoutingId& global_routing_id); |  300   void OnRenderFrameDeleted(const GlobalFrameRoutingId& global_routing_id); | 
|  301  |  301  | 
|  302   // Called when loading a request with mojo. |  302   // Called when loading a request with mojo. | 
|  303   void OnRequestResourceWithMojo( |  303   void OnRequestResourceWithMojo( | 
|  304       int routing_id, |  304       int routing_id, | 
|  305       int request_id, |  305       int request_id, | 
|  306       const ResourceRequest& request, |  306       const ResourceRequest& request, | 
|  307       mojo::InterfaceRequest<mojom::URLLoader> mojo_request, |  307       mojom::URLLoaderAssociatedRequest mojo_request, | 
|  308       mojom::URLLoaderClientPtr url_loader_client, |  308       mojom::URLLoaderClientAssociatedPtr url_loader_client, | 
|  309       ResourceMessageFilter* filter); |  309       ResourceMessageFilter* filter); | 
|  310  |  310  | 
|  311   void OnSyncLoadWithMojo(int routing_id, |  311   void OnSyncLoadWithMojo(int routing_id, | 
|  312                           int request_id, |  312                           int request_id, | 
|  313                           const ResourceRequest& request_data, |  313                           const ResourceRequest& request_data, | 
|  314                           ResourceMessageFilter* filter, |  314                           ResourceMessageFilter* filter, | 
|  315                           const SyncLoadResultCallback& result_handler); |  315                           const SyncLoadResultCallback& result_handler); | 
|  316  |  316  | 
|  317   // Helper function for initializing the |request| passed in. By initializing |  317   // Helper function for initializing the |request| passed in. By initializing | 
|  318   // we mean setting the |referrer| on the |request|, associating the |  318   // we mean setting the |referrer| on the |request|, associating the | 
| (...skipping 206 matching lines...) Expand 10 before | Expand all | Expand 10 after  Loading... | 
|  525       bool cancel_requests); |  525       bool cancel_requests); | 
|  526  |  526  | 
|  527   void OnRequestResource(int routing_id, |  527   void OnRequestResource(int routing_id, | 
|  528                          int request_id, |  528                          int request_id, | 
|  529                          const ResourceRequest& request_data); |  529                          const ResourceRequest& request_data); | 
|  530  |  530  | 
|  531   void OnRequestResourceInternal( |  531   void OnRequestResourceInternal( | 
|  532       int routing_id, |  532       int routing_id, | 
|  533       int request_id, |  533       int request_id, | 
|  534       const ResourceRequest& request_data, |  534       const ResourceRequest& request_data, | 
|  535       mojo::InterfaceRequest<mojom::URLLoader> mojo_request, |  535       mojom::URLLoaderAssociatedRequest mojo_request, | 
|  536       mojom::URLLoaderClientPtr url_loader_client); |  536       mojom::URLLoaderClientAssociatedPtr url_loader_client); | 
|  537  |  537  | 
|  538   void OnSyncLoad(int request_id, |  538   void OnSyncLoad(int request_id, | 
|  539                   const ResourceRequest& request_data, |  539                   const ResourceRequest& request_data, | 
|  540                   IPC::Message* sync_result); |  540                   IPC::Message* sync_result); | 
|  541  |  541  | 
|  542   bool IsRequestIDInUse(const GlobalRequestID& id) const; |  542   bool IsRequestIDInUse(const GlobalRequestID& id) const; | 
|  543  |  543  | 
|  544   // Update the ResourceRequestInfo and internal maps when a request is |  544   // Update the ResourceRequestInfo and internal maps when a request is | 
|  545   // transferred from one process to another. |  545   // transferred from one process to another. | 
|  546   void UpdateRequestForTransfer(int child_id, |  546   void UpdateRequestForTransfer(int child_id, | 
|  547                                 int route_id, |  547                                 int route_id, | 
|  548                                 int request_id, |  548                                 int request_id, | 
|  549                                 const ResourceRequest& request_data, |  549                                 const ResourceRequest& request_data, | 
|  550                                 LoaderMap::iterator iter); |  550                                 LoaderMap::iterator iter); | 
|  551  |  551  | 
|  552   // If |request_data| is for a request being transferred from another process, |  552   // If |request_data| is for a request being transferred from another process, | 
|  553   // then CompleteTransfer method can be used to complete the transfer. |  553   // then CompleteTransfer method can be used to complete the transfer. | 
|  554   void CompleteTransfer(int request_id, |  554   void CompleteTransfer(int request_id, | 
|  555                         const ResourceRequest& request_data, |  555                         const ResourceRequest& request_data, | 
|  556                         int route_id); |  556                         int route_id); | 
|  557  |  557  | 
|  558   void BeginRequest( |  558   void BeginRequest( | 
|  559       int request_id, |  559       int request_id, | 
|  560       const ResourceRequest& request_data, |  560       const ResourceRequest& request_data, | 
|  561       const SyncLoadResultCallback& sync_result_handler, // only valid for sync |  561       const SyncLoadResultCallback& sync_result_handler,  // only valid for sync | 
|  562       int route_id, |  562       int route_id, | 
|  563       mojo::InterfaceRequest<mojom::URLLoader> mojo_request, |  563       mojom::URLLoaderAssociatedRequest mojo_request, | 
|  564       mojom::URLLoaderClientPtr url_loader_client); |  564       mojom::URLLoaderClientAssociatedPtr url_loader_client); | 
|  565  |  565  | 
|  566   // There are requests which need decisions to be made like the following: |  566   // There are requests which need decisions to be made like the following: | 
|  567   // Whether the presence of certain HTTP headers like the Origin header are |  567   // Whether the presence of certain HTTP headers like the Origin header are | 
|  568   // valid, etc. These requests may need to be aborted based on these |  568   // valid, etc. These requests may need to be aborted based on these | 
|  569   // decisions which could be time consuming. We allow for these decisions |  569   // decisions which could be time consuming. We allow for these decisions | 
|  570   // to be made asynchronously. The request proceeds when we hear back from |  570   // to be made asynchronously. The request proceeds when we hear back from | 
|  571   // the interceptors about whether to continue or not. |  571   // the interceptors about whether to continue or not. | 
|  572   // The |continue_request| parameter in the function indicates whether the |  572   // The |continue_request| parameter in the function indicates whether the | 
|  573   // request should be continued or aborted. The |error_code| parameter is set |  573   // request should be continued or aborted. The |error_code| parameter is set | 
|  574   // if |continue_request| is false. |  574   // if |continue_request| is false. | 
|  575   void ContinuePendingBeginRequest( |  575   void ContinuePendingBeginRequest( | 
|  576       int request_id, |  576       int request_id, | 
|  577       const ResourceRequest& request_data, |  577       const ResourceRequest& request_data, | 
|  578       const SyncLoadResultCallback& sync_result_handler, // only valid for sync |  578       const SyncLoadResultCallback& sync_result_handler,  // only valid for sync | 
|  579       int route_id, |  579       int route_id, | 
|  580       const net::HttpRequestHeaders& headers, |  580       const net::HttpRequestHeaders& headers, | 
|  581       mojo::InterfaceRequest<mojom::URLLoader> mojo_request, |  581       mojom::URLLoaderAssociatedRequest mojo_request, | 
|  582       mojom::URLLoaderClientPtr url_loader_client, |  582       mojom::URLLoaderClientAssociatedPtr url_loader_client, | 
|  583       bool continue_request, |  583       bool continue_request, | 
|  584       int error_code); |  584       int error_code); | 
|  585  |  585  | 
|  586   // Creates a ResourceHandler to be used by BeginRequest() for normal resource |  586   // Creates a ResourceHandler to be used by BeginRequest() for normal resource | 
|  587   // loading. |  587   // loading. | 
|  588   std::unique_ptr<ResourceHandler> CreateResourceHandler( |  588   std::unique_ptr<ResourceHandler> CreateResourceHandler( | 
|  589       net::URLRequest* request, |  589       net::URLRequest* request, | 
|  590       const ResourceRequest& request_data, |  590       const ResourceRequest& request_data, | 
|  591       const SyncLoadResultCallback& sync_result_handler, |  591       const SyncLoadResultCallback& sync_result_handler, | 
|  592       int route_id, |  592       int route_id, | 
|  593       int process_type, |  593       int process_type, | 
|  594       int child_id, |  594       int child_id, | 
|  595       ResourceContext* resource_context, |  595       ResourceContext* resource_context, | 
|  596       mojo::InterfaceRequest<mojom::URLLoader> mojo_request, |  596       mojom::URLLoaderAssociatedRequest mojo_request, | 
|  597       mojom::URLLoaderClientPtr url_loader_client); |  597       mojom::URLLoaderClientAssociatedPtr url_loader_client); | 
|  598  |  598  | 
|  599   // Wraps |handler| in the standard resource handlers for normal resource |  599   // Wraps |handler| in the standard resource handlers for normal resource | 
|  600   // loading and navigation requests. This adds MimeTypeResourceHandler and |  600   // loading and navigation requests. This adds MimeTypeResourceHandler and | 
|  601   // ResourceThrottles. |  601   // ResourceThrottles. | 
|  602   std::unique_ptr<ResourceHandler> AddStandardHandlers( |  602   std::unique_ptr<ResourceHandler> AddStandardHandlers( | 
|  603       net::URLRequest* request, |  603       net::URLRequest* request, | 
|  604       ResourceType resource_type, |  604       ResourceType resource_type, | 
|  605       ResourceContext* resource_context, |  605       ResourceContext* resource_context, | 
|  606       RequestContextType fetch_request_context_type, |  606       RequestContextType fetch_request_context_type, | 
|  607       AppCacheService* appcache_service, |  607       AppCacheService* appcache_service, | 
| (...skipping 165 matching lines...) Expand 10 before | Expand all | Expand 10 after  Loading... | 
|  773  |  773  | 
|  774   // Points to the registered download handler intercept. |  774   // Points to the registered download handler intercept. | 
|  775   CreateDownloadHandlerIntercept create_download_handler_intercept_; |  775   CreateDownloadHandlerIntercept create_download_handler_intercept_; | 
|  776  |  776  | 
|  777   DISALLOW_COPY_AND_ASSIGN(ResourceDispatcherHostImpl); |  777   DISALLOW_COPY_AND_ASSIGN(ResourceDispatcherHostImpl); | 
|  778 }; |  778 }; | 
|  779  |  779  | 
|  780 }  // namespace content |  780 }  // namespace content | 
|  781  |  781  | 
|  782 #endif  // CONTENT_BROWSER_LOADER_RESOURCE_DISPATCHER_HOST_IMPL_H_ |  782 #endif  // CONTENT_BROWSER_LOADER_RESOURCE_DISPATCHER_HOST_IMPL_H_ | 
| OLD | NEW |