diff options
author | horo@chromium.org <horo@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98> | 2014-07-22 04:39:10 +0000 |
---|---|---|
committer | horo@chromium.org <horo@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98> | 2014-07-22 04:39:10 +0000 |
commit | 6ee72da19b0ac7d2babfbf1aa698b2f35d2264ed (patch) | |
tree | f497b91a8e37ae3ff2f0864b9827527ddd6d2c36 /content/browser/loader | |
parent | a5e6b7479ec859c8b2943f99b05d05ecbd42183f (diff) | |
download | chromium_src-6ee72da19b0ac7d2babfbf1aa698b2f35d2264ed.zip chromium_src-6ee72da19b0ac7d2babfbf1aa698b2f35d2264ed.tar.gz chromium_src-6ee72da19b0ac7d2babfbf1aa698b2f35d2264ed.tar.bz2 |
[ServiceWorker] Propagates ServiceWorker fetched response's URL and wasFetchedViaServiceWorker flag.
If the request was fetched via a ServiceWorker, the URL of the response could be different from the URL of the original request.
The URL must be checked in the renderer process for CSP and CORS.
So in this patch I introduce was_fetched_via_service_worker flag and original_url_via_service_worker which are set in ServiceWorkerURLRequestJob and propagated to the renderer process.
This change depends on http://crrev.com/370733002 and http://crrev.com/378473002.
BUG=373120
Review URL: https://codereview.chromium.org/375513002
git-svn-id: svn://svn.chromium.org/chrome/trunk/src@284627 0039d316-1c4b-4281-b951-d872f2087c98
Diffstat (limited to 'content/browser/loader')
-rw-r--r-- | content/browser/loader/resource_loader.cc | 7 |
1 files changed, 7 insertions, 0 deletions
diff --git a/content/browser/loader/resource_loader.cc b/content/browser/loader/resource_loader.cc index 0becbf4..d4cc9d0 100644 --- a/content/browser/loader/resource_loader.cc +++ b/content/browser/loader/resource_loader.cc @@ -14,6 +14,7 @@ #include "content/browser/loader/detachable_resource_handler.h" #include "content/browser/loader/resource_loader_delegate.h" #include "content/browser/loader/resource_request_info_impl.h" +#include "content/browser/service_worker/service_worker_request_handler.h" #include "content/browser/ssl/ssl_client_auth_handler.h" #include "content/browser/ssl/ssl_manager.h" #include "content/common/ssl_status_serialization.h" @@ -54,6 +55,12 @@ void PopulateResourceResponse(net::URLRequest* request, response->head.connection_info = response_info.connection_info; response->head.was_fetched_via_proxy = request->was_fetched_via_proxy(); response->head.socket_address = request->GetSocketAddress(); + if (ServiceWorkerRequestHandler* handler = + ServiceWorkerRequestHandler::GetHandler(request)) { + handler->GetExtraResponseInfo( + &response->head.was_fetched_via_service_worker, + &response->head.original_url_via_service_worker); + } AppCacheInterceptor::GetExtraResponseInfo( request, &response->head.appcache_id, |