Index: content/browser/service_worker/service_worker_fetch_dispatcher.cc |
diff --git a/content/browser/service_worker/service_worker_fetch_dispatcher.cc b/content/browser/service_worker/service_worker_fetch_dispatcher.cc |
index 6c712a3f8a33e330593bf560ede0d358554c9191..8f69301810bc039cbfb96dc4dd8dee7f768ee3fc 100644 |
--- a/content/browser/service_worker/service_worker_fetch_dispatcher.cc |
+++ b/content/browser/service_worker/service_worker_fetch_dispatcher.cc |
@@ -167,9 +167,6 @@ ServiceWorkerMetrics::EventType FetchTypeToWaitUntilEventType( |
void OnFetchEventFinished( |
ServiceWorkerVersion* version, |
int event_finish_id, |
- mojom::URLLoaderFactoryPtr url_loader_factory, |
- std::unique_ptr<mojom::URLLoader> url_loader, |
- std::unique_ptr<mojom::URLLoaderClient> url_loader_client, |
ServiceWorkerStatusCode status, |
base::Time dispatch_event_time) { |
version->FinishRequest(event_finish_id, status != SERVICE_WORKER_ERROR_ABORT, |
@@ -332,15 +329,10 @@ void ServiceWorkerFetchDispatcher::DispatchFetchEvent() { |
// |event_dispatcher| is owned by |version_|. So it is safe to pass the |
// unretained raw pointer of |version_| to OnFetchEventFinished callback. |
- // Pass |url_loader_factory_|, |url_Loader_| and |url_loader_client_| to the |
- // callback to keep them alive while the FetchEvent is onging in the service |
- // worker. |
version_->event_dispatcher()->DispatchFetchEvent( |
fetch_event_id, *request_, std::move(preload_handle_), |
base::Bind(&OnFetchEventFinished, base::Unretained(version_.get()), |
- event_finish_id, base::Passed(std::move(url_loader_factory_)), |
- base::Passed(std::move(url_loader_)), |
- base::Passed(std::move(url_loader_client_)))); |
+ event_finish_id)); |
} |
void ServiceWorkerFetchDispatcher::DidFailToDispatch( |
@@ -380,23 +372,23 @@ void ServiceWorkerFetchDispatcher::Complete( |
fetch_callback.Run(status, fetch_result, response, version); |
} |
-void ServiceWorkerFetchDispatcher::MaybeStartNavigationPreload( |
+bool ServiceWorkerFetchDispatcher::MaybeStartNavigationPreload( |
net::URLRequest* original_request) { |
if (resource_type_ != RESOURCE_TYPE_MAIN_FRAME && |
resource_type_ != RESOURCE_TYPE_SUB_FRAME) { |
- return; |
+ return false; |
} |
if (!version_->navigation_preload_state().enabled) |
- return; |
+ return false; |
// TODO(horo): Currently NavigationPreload doesn't support request body. |
if (!request_->blob_uuid.empty()) |
- return; |
+ return false; |
ServiceWorkerVersion::NavigationPreloadSupportStatus support_status = |
version_->GetNavigationPreloadSupportStatus(); |
if (support_status != |
ServiceWorkerVersion::NavigationPreloadSupportStatus::SUPPORTED) { |
- return; |
+ return false; |
} |
ResourceRequestInfoImpl* original_info = |
@@ -407,7 +399,7 @@ void ServiceWorkerFetchDispatcher::MaybeStartNavigationPreload( |
} else { |
DCHECK(requester_info->IsRenderer()); |
if (!requester_info->filter()) |
- return; |
+ return false; |
} |
DCHECK(!url_loader_factory_); |
@@ -471,6 +463,7 @@ void ServiceWorkerFetchDispatcher::MaybeStartNavigationPreload( |
preload_handle_->url_loader = url_loader->CreateInterfacePtrAndBind(); |
url_loader_ = std::move(url_loader); |
url_loader_client_ = std::move(url_loader_client); |
+ return true; |
} |
ServiceWorkerMetrics::EventType ServiceWorkerFetchDispatcher::GetEventType() |