Index: content/browser/service_worker/foreign_fetch_request_handler.cc |
diff --git a/content/browser/service_worker/foreign_fetch_request_handler.cc b/content/browser/service_worker/foreign_fetch_request_handler.cc |
index 8d3dfb476f351f212b147b5406b11c1d17728da5..eee1cfc7f2aa9de8883feac27696726f3f43a51a 100644 |
--- a/content/browser/service_worker/foreign_fetch_request_handler.cc |
+++ b/content/browser/service_worker/foreign_fetch_request_handler.cc |
@@ -93,8 +93,10 @@ void ForeignFetchRequestHandler::InitializeHandler( |
if (ServiceWorkerUtils::IsMainResourceType(resource_type)) |
return; |
- if (request->initiator().IsSameOriginWith(url::Origin(request->url()))) |
+ if (request->initiator().has_value() && |
+ request->initiator()->IsSameOriginWith(url::Origin(request->url()))) { |
return; |
+ } |
if (!context_wrapper->OriginHasForeignFetchRegistrations( |
request->url().GetOrigin())) { |
@@ -219,7 +221,7 @@ void ForeignFetchRequestHandler::DidFindRegistration( |
} |
} |
- const url::Origin& request_origin = job->request()->initiator(); |
+ const url::Origin& request_origin = job->request()->initiator().value(); |
bool origin_matches = active_version->foreign_fetch_origins().empty(); |
for (const url::Origin& origin : active_version->foreign_fetch_origins()) { |
if (request_origin.IsSameOriginWith(origin)) |