summaryrefslogtreecommitdiffstats
path: root/content/browser/loader
diff options
context:
space:
mode:
authorhoro@chromium.org <horo@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98>2014-07-22 04:39:10 +0000
committerhoro@chromium.org <horo@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98>2014-07-22 04:39:10 +0000
commit6ee72da19b0ac7d2babfbf1aa698b2f35d2264ed (patch)
treef497b91a8e37ae3ff2f0864b9827527ddd6d2c36 /content/browser/loader
parenta5e6b7479ec859c8b2943f99b05d05ecbd42183f (diff)
downloadchromium_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.cc7
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,