Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(72)

Side by Side Diff: content/browser/service_worker/service_worker_context_request_handler.cc

Issue 637243003: Service Worker: Obey content settings when deciding to control a page (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@content
Patch Set: explicit, and better log Created 6 years, 2 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View unified diff | Download patch
OLDNEW
1 // Copyright 2014 The Chromium Authors. All rights reserved. 1 // Copyright 2014 The Chromium Authors. All rights reserved.
2 // Use of this source code is governed by a BSD-style license that can be 2 // Use of this source code is governed by a BSD-style license that can be
3 // found in the LICENSE file. 3 // found in the LICENSE file.
4 4
5 #include "content/browser/service_worker/service_worker_context_request_handler. h" 5 #include "content/browser/service_worker/service_worker_context_request_handler. h"
6 6
7 #include "base/time/time.h" 7 #include "base/time/time.h"
8 #include "content/browser/service_worker/service_worker_context_core.h" 8 #include "content/browser/service_worker/service_worker_context_core.h"
9 #include "content/browser/service_worker/service_worker_provider_host.h" 9 #include "content/browser/service_worker/service_worker_provider_host.h"
10 #include "content/browser/service_worker/service_worker_read_from_cache_job.h" 10 #include "content/browser/service_worker/service_worker_read_from_cache_job.h"
11 #include "content/browser/service_worker/service_worker_storage.h" 11 #include "content/browser/service_worker/service_worker_storage.h"
12 #include "content/browser/service_worker/service_worker_version.h" 12 #include "content/browser/service_worker/service_worker_version.h"
13 #include "content/browser/service_worker/service_worker_write_to_cache_job.h" 13 #include "content/browser/service_worker/service_worker_write_to_cache_job.h"
14 #include "content/public/browser/resource_context.h"
14 #include "net/base/load_flags.h" 15 #include "net/base/load_flags.h"
15 #include "net/url_request/url_request.h" 16 #include "net/url_request/url_request.h"
16 17
17 namespace content { 18 namespace content {
18 19
19 ServiceWorkerContextRequestHandler::ServiceWorkerContextRequestHandler( 20 ServiceWorkerContextRequestHandler::ServiceWorkerContextRequestHandler(
20 base::WeakPtr<ServiceWorkerContextCore> context, 21 base::WeakPtr<ServiceWorkerContextCore> context,
21 base::WeakPtr<ServiceWorkerProviderHost> provider_host, 22 base::WeakPtr<ServiceWorkerProviderHost> provider_host,
22 base::WeakPtr<storage::BlobStorageContext> blob_storage_context, 23 base::WeakPtr<storage::BlobStorageContext> blob_storage_context,
23 ResourceType resource_type) 24 ResourceType resource_type)
24 : ServiceWorkerRequestHandler(context, 25 : ServiceWorkerRequestHandler(context,
25 provider_host, 26 provider_host,
26 blob_storage_context, 27 blob_storage_context,
27 resource_type), 28 resource_type),
28 version_(provider_host_->running_hosted_version()) { 29 version_(provider_host_->running_hosted_version()) {
29 DCHECK(provider_host_->IsHostToRunningServiceWorker()); 30 DCHECK(provider_host_->IsHostToRunningServiceWorker());
30 } 31 }
31 32
32 ServiceWorkerContextRequestHandler::~ServiceWorkerContextRequestHandler() { 33 ServiceWorkerContextRequestHandler::~ServiceWorkerContextRequestHandler() {
33 } 34 }
34 35
35 net::URLRequestJob* ServiceWorkerContextRequestHandler::MaybeCreateJob( 36 net::URLRequestJob* ServiceWorkerContextRequestHandler::MaybeCreateJob(
36 net::URLRequest* request, 37 net::URLRequest* request,
37 net::NetworkDelegate* network_delegate) { 38 net::NetworkDelegate* network_delegate,
39 ResourceContext* resource_context) {
38 if (!provider_host_ || !version_.get() || !context_) 40 if (!provider_host_ || !version_.get() || !context_)
39 return NULL; 41 return NULL;
40 42
41 // We currently have no use case for hijacking a redirected request. 43 // We currently have no use case for hijacking a redirected request.
42 if (request->url_chain().size() > 1) 44 if (request->url_chain().size() > 1)
43 return NULL; 45 return NULL;
44 46
45 // We only use the script cache for main script loading and 47 // We only use the script cache for main script loading and
46 // importScripts(), even if a cached script is xhr'd, we don't 48 // importScripts(), even if a cached script is xhr'd, we don't
47 // retrieve it from the script cache. 49 // retrieve it from the script cache.
(...skipping 67 matching lines...) Expand 10 before | Expand all | Expand 10 after
115 const GURL& url, int64* response_id_out) { 117 const GURL& url, int64* response_id_out) {
116 // We don't read from the script cache until the version is INSTALLED. 118 // We don't read from the script cache until the version is INSTALLED.
117 if (version_->status() == ServiceWorkerVersion::NEW || 119 if (version_->status() == ServiceWorkerVersion::NEW ||
118 version_->status() == ServiceWorkerVersion::INSTALLING) 120 version_->status() == ServiceWorkerVersion::INSTALLING)
119 return false; 121 return false;
120 *response_id_out = version_->script_cache_map()->Lookup(url); 122 *response_id_out = version_->script_cache_map()->Lookup(url);
121 return *response_id_out != kInvalidServiceWorkerResponseId; 123 return *response_id_out != kInvalidServiceWorkerResponseId;
122 } 124 }
123 125
124 } // namespace content 126 } // namespace content
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698