OLD | NEW |
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_controllee_request_handl
er.h" | 5 #include "content/browser/service_worker/service_worker_controllee_request_handl
er.h" |
6 | 6 |
7 #include <memory> | 7 #include <memory> |
| 8 #include <set> |
8 #include <string> | 9 #include <string> |
9 | 10 |
10 #include "base/trace_event/trace_event.h" | 11 #include "base/trace_event/trace_event.h" |
11 #include "content/browser/service_worker/service_worker_context_core.h" | 12 #include "content/browser/service_worker/service_worker_context_core.h" |
12 #include "content/browser/service_worker/service_worker_metrics.h" | 13 #include "content/browser/service_worker/service_worker_metrics.h" |
13 #include "content/browser/service_worker/service_worker_provider_host.h" | 14 #include "content/browser/service_worker/service_worker_provider_host.h" |
14 #include "content/browser/service_worker/service_worker_registration.h" | 15 #include "content/browser/service_worker/service_worker_registration.h" |
15 #include "content/browser/service_worker/service_worker_response_info.h" | 16 #include "content/browser/service_worker/service_worker_response_info.h" |
16 #include "content/browser/service_worker/service_worker_url_request_job.h" | 17 #include "content/browser/service_worker/service_worker_url_request_job.h" |
17 #include "content/common/resource_request_body.h" | 18 #include "content/common/resource_request_body.h" |
(...skipping 188 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
206 job_->FallbackToNetwork(); | 207 job_->FallbackToNetwork(); |
207 TRACE_EVENT_ASYNC_END2( | 208 TRACE_EVENT_ASYNC_END2( |
208 "ServiceWorker", | 209 "ServiceWorker", |
209 "ServiceWorkerControlleeRequestHandler::PrepareForMainResource", | 210 "ServiceWorkerControlleeRequestHandler::PrepareForMainResource", |
210 job_.get(), | 211 job_.get(), |
211 "Status", status, | 212 "Status", status, |
212 "Info", "ServiceWorker is blocked"); | 213 "Info", "ServiceWorker is blocked"); |
213 return; | 214 return; |
214 } | 215 } |
215 | 216 |
| 217 if (!provider_host_->IsContextSecureForServiceWorker()) { |
| 218 // TODO(falken): Figure out a way to surface in the page's DevTools |
| 219 // console that the service worker was blocked for security. |
| 220 job_->FallbackToNetwork(); |
| 221 TRACE_EVENT_ASYNC_END1( |
| 222 "ServiceWorker", |
| 223 "ServiceWorkerControlleeRequestHandler::PrepareForMainResource", |
| 224 job_.get(), "Info", "Insecure context"); |
| 225 return; |
| 226 } |
| 227 |
216 if (need_to_update) { | 228 if (need_to_update) { |
217 force_update_started_ = true; | 229 force_update_started_ = true; |
218 context_->UpdateServiceWorker( | 230 context_->UpdateServiceWorker( |
219 registration.get(), true /* force_bypass_cache */, | 231 registration.get(), true /* force_bypass_cache */, |
220 true /* skip_script_comparison */, provider_host_.get(), | 232 true /* skip_script_comparison */, provider_host_.get(), |
221 base::Bind(&self::DidUpdateRegistration, weak_factory_.GetWeakPtr(), | 233 base::Bind(&self::DidUpdateRegistration, weak_factory_.GetWeakPtr(), |
222 registration)); | 234 registration)); |
223 return; | 235 return; |
224 } | 236 } |
225 | 237 |
(...skipping 185 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
411 DCHECK(provider_host_); | 423 DCHECK(provider_host_); |
412 // Detach the controller so subresource requests also skip the worker. | 424 // Detach the controller so subresource requests also skip the worker. |
413 provider_host_->NotifyControllerLost(); | 425 provider_host_->NotifyControllerLost(); |
414 } | 426 } |
415 | 427 |
416 void ServiceWorkerControlleeRequestHandler::ClearJob() { | 428 void ServiceWorkerControlleeRequestHandler::ClearJob() { |
417 job_.reset(); | 429 job_.reset(); |
418 } | 430 } |
419 | 431 |
420 } // namespace content | 432 } // namespace content |
OLD | NEW |