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 aa085bd53a0ecb317da16981dddb42845b58d7b9..b4cce4a23957305531afe61adac8eafab1bf1334 100644 |
--- a/content/browser/service_worker/foreign_fetch_request_handler.cc |
+++ b/content/browser/service_worker/foreign_fetch_request_handler.cc |
@@ -180,7 +180,14 @@ void ForeignFetchRequestHandler::DidFindRegistration( |
} |
} |
- if (!scope_matches) { |
+ const url::Origin& request_origin = job->request()->initiator(); |
+ bool origin_matches = active_version->foreign_fetch_origins().empty(); |
+ for (const url::Origin& origin : active_version->foreign_fetch_origins()) { |
+ if (request_origin.IsSameOriginWith(origin)) |
+ origin_matches = true; |
+ } |
+ |
+ if (!scope_matches || !origin_matches) { |
job->FallbackToNetwork(); |
return; |
} |