| Index: content/browser/service_worker/service_worker_controllee_request_handler.h
|
| diff --git a/content/browser/service_worker/service_worker_controllee_request_handler.h b/content/browser/service_worker/service_worker_controllee_request_handler.h
|
| index a6e48b24727ebafc74bf087e31303100007589e0..2717512683f9774f48f5dfb31a8ffa349d00afbb 100644
|
| --- a/content/browser/service_worker/service_worker_controllee_request_handler.h
|
| +++ b/content/browser/service_worker/service_worker_controllee_request_handler.h
|
| @@ -12,6 +12,7 @@
|
| #include "base/memory/ref_counted.h"
|
| #include "base/memory/weak_ptr.h"
|
| #include "base/time/time.h"
|
| +#include "content/browser/service_worker/service_worker_controllee_url_loader_factory.h"
|
| #include "content/browser/service_worker/service_worker_request_handler.h"
|
| #include "content/browser/service_worker/service_worker_url_request_job.h"
|
| #include "content/common/service_worker/service_worker_types.h"
|
| @@ -36,7 +37,8 @@ class ServiceWorkerVersion;
|
| // controlled documents.
|
| class CONTENT_EXPORT ServiceWorkerControlleeRequestHandler
|
| : public ServiceWorkerRequestHandler,
|
| - public ServiceWorkerURLRequestJob::Delegate {
|
| + public ServiceWorkerURLRequestJob::Delegate,
|
| + public ServiceWorkerControlleeURLLoaderFactory::Delegate {
|
| public:
|
| ServiceWorkerControlleeRequestHandler(
|
| base::WeakPtr<ServiceWorkerContextCore> context,
|
| @@ -48,7 +50,8 @@ class CONTENT_EXPORT ServiceWorkerControlleeRequestHandler
|
| ResourceType resource_type,
|
| RequestContextType request_context_type,
|
| RequestContextFrameType frame_type,
|
| - scoped_refptr<ResourceRequestBodyImpl> body);
|
| + scoped_refptr<ResourceRequestBodyImpl> body,
|
| + NetworkFallbackCallback network_fallback_callback);
|
| ~ServiceWorkerControlleeRequestHandler() override;
|
|
|
| // Called via custom URLRequestJobFactory.
|
| @@ -57,13 +60,21 @@ class CONTENT_EXPORT ServiceWorkerControlleeRequestHandler
|
| net::NetworkDelegate* network_delegate,
|
| ResourceContext* resource_context) override;
|
|
|
| + mojom::URLLoaderFactoryPtrInfo MaybeGetURLLoaderFactory(
|
| + const ResourceRequest& resource_request,
|
| + ResourceContext* resource_context,
|
| + std::unique_ptr<ServiceWorkerRequestHandler> request_handler) override;
|
| +
|
| + class JobWrapper;
|
| +
|
| private:
|
| FRIEND_TEST_ALL_PREFIXES(ServiceWorkerControlleeRequestHandlerTest,
|
| ActivateWaitingVersion);
|
| typedef ServiceWorkerControlleeRequestHandler self;
|
|
|
| // For main resource case.
|
| - void PrepareForMainResource(const net::URLRequest* request);
|
| + void PrepareForMainResource(const GURL& url,
|
| + const GURL& first_party_for_cookies);
|
| void DidLookupRegistrationForMainResource(
|
| ServiceWorkerStatusCode status,
|
| scoped_refptr<ServiceWorkerRegistration> registration);
|
| @@ -101,7 +112,7 @@ class CONTENT_EXPORT ServiceWorkerControlleeRequestHandler
|
|
|
| const bool is_main_resource_load_;
|
| const bool is_main_frame_load_;
|
| - base::WeakPtr<ServiceWorkerURLRequestJob> job_;
|
| + std::unique_ptr<JobWrapper> job_;
|
| FetchRequestMode request_mode_;
|
| FetchCredentialsMode credentials_mode_;
|
| FetchRedirectMode redirect_mode_;
|
| @@ -117,6 +128,11 @@ class CONTENT_EXPORT ServiceWorkerControlleeRequestHandler
|
| // next intercept opportunity, for main frame requests.
|
| bool use_network_;
|
|
|
| + // When --enable-network-service, used to fallback to the network if the SW
|
| + // decides a request needs to be restarted after it's already returned the
|
| + // URLLoaderFactory in the main creation flow.
|
| + NetworkFallbackCallback network_fallback_callback_;
|
| +
|
| base::WeakPtrFactory<ServiceWorkerControlleeRequestHandler> weak_factory_;
|
|
|
| DISALLOW_COPY_AND_ASSIGN(ServiceWorkerControlleeRequestHandler);
|
|
|