| Index: content/browser/appcache/appcache_url_loader_factory.h | 
| diff --git a/content/browser/appcache/appcache_url_loader_factory.h b/content/browser/appcache/appcache_url_loader_factory.h | 
| index 9c85d932bf16a3f7d5793e4266be8225902735ed..3966a6daf4ab3d9c36673cc840ff4629d6070a9d 100644 | 
| --- a/content/browser/appcache/appcache_url_loader_factory.h | 
| +++ b/content/browser/appcache/appcache_url_loader_factory.h | 
| @@ -11,8 +11,11 @@ | 
| #include "url/gurl.h" | 
|  | 
| namespace content { | 
| +class AppCacheNavigationHandleCore; | 
| +class AppCacheURLLoader; | 
| class ChromeAppCacheService; | 
| class URLLoaderFactoryGetter; | 
| +class URLLoaderRequestHandler; | 
|  | 
| // Implements the URLLoaderFactory mojom for AppCache requests. | 
| class AppCacheURLLoaderFactory : public mojom::URLLoaderFactory { | 
| @@ -20,13 +23,26 @@ class AppCacheURLLoaderFactory : public mojom::URLLoaderFactory { | 
| ~AppCacheURLLoaderFactory() override; | 
|  | 
| // Factory function to create an instance of the factory. | 
| -  // The |appcache_service| parameter is used to query the underlying | 
| -  // AppCacheStorage instance to check if we can service requests from the | 
| -  // AppCache. We pass unhandled requests to the network service retrieved from | 
| -  // the |factory_getter|. | 
| +  // 1. The |appcache_service| parameter is passed to the URLLoader mojom for | 
| +  //    checking if the request can be serviced from the AppCache. | 
| +  // 2. The |factory_getter| parameter is used to query the network service | 
| +  //    to pass network requests to. | 
| +  // 3. The |navigation_url_loader| is valid only for navigation requests. In | 
| +  //    other cases like subresource requests we create an instance of the | 
| +  //    AppCacheURLLoader class to handle the request. | 
| +  // 4. The process_id parameter identifies the process. 0 for browser | 
| +  //    initiated  requests. | 
| static void CreateURLLoaderFactory(mojom::URLLoaderFactoryRequest request, | 
| ChromeAppCacheService* appcache_service, | 
| -                                     URLLoaderFactoryGetter* factory_getter); | 
| +                                     URLLoaderFactoryGetter* factory_getter, | 
| +                                     AppCacheURLLoader* navigation_url_loader, | 
| +                                     int process_id); | 
| + | 
| +  // Creates an instance of the URLLoaderRequestHandler subclass to see if we | 
| +  // can serve this request from the AppCache. | 
| +  static std::unique_ptr<URLLoaderRequestHandler> CreateRequestHandler( | 
| +      AppCacheNavigationHandleCore* appcache_handle_core, | 
| +      URLLoaderFactoryGetter* url_loader_factory_getter); | 
|  | 
| // mojom::URLLoaderFactory implementation. | 
| void CreateLoaderAndStart(mojom::URLLoaderRequest url_loader_request, | 
| @@ -42,7 +58,9 @@ class AppCacheURLLoaderFactory : public mojom::URLLoaderFactory { | 
|  | 
| private: | 
| AppCacheURLLoaderFactory(ChromeAppCacheService* appcache_service, | 
| -                           URLLoaderFactoryGetter* factory_getter); | 
| +                           URLLoaderFactoryGetter* factory_getter, | 
| +                           AppCacheURLLoader* url_loader_instance, | 
| +                           int process_id); | 
|  | 
| // Used to query AppCacheStorage to see if a request can be served out of the | 
| /// AppCache. | 
| @@ -52,6 +70,12 @@ class AppCacheURLLoaderFactory : public mojom::URLLoaderFactory { | 
| // the network service. | 
| scoped_refptr<URLLoaderFactoryGetter> factory_getter_; | 
|  | 
| +  // Only set for navigation requests. | 
| +  AppCacheURLLoader* navigation_url_loader_; | 
| + | 
| +  // Process id. 0 for browser. | 
| +  int process_id_; | 
| + | 
| mojo::StrongBindingSet<mojom::URLLoaderFactory> loader_factory_bindings_; | 
|  | 
| DISALLOW_COPY_AND_ASSIGN(AppCacheURLLoaderFactory); | 
|  |