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

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

Issue 2142523004: M52: Merge "Reland: service worker: Don't control a subframe of an insecure context" (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@2743
Patch Set: fix compile errors Created 4 years, 5 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_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 170 matching lines...) Expand 10 before | Expand all | Expand 10 after
188 job_->FallbackToNetwork(); 189 job_->FallbackToNetwork();
189 TRACE_EVENT_ASYNC_END2( 190 TRACE_EVENT_ASYNC_END2(
190 "ServiceWorker", 191 "ServiceWorker",
191 "ServiceWorkerControlleeRequestHandler::PrepareForMainResource", 192 "ServiceWorkerControlleeRequestHandler::PrepareForMainResource",
192 job_.get(), 193 job_.get(),
193 "Status", status, 194 "Status", status,
194 "Info", "ServiceWorker is blocked"); 195 "Info", "ServiceWorker is blocked");
195 return; 196 return;
196 } 197 }
197 198
199 if (!provider_host_->IsContextSecureForServiceWorker()) {
200 // TODO(falken): Figure out a way to surface in the page's DevTools
201 // console that the service worker was blocked for security.
202 job_->FallbackToNetwork();
203 TRACE_EVENT_ASYNC_END1(
204 "ServiceWorker",
205 "ServiceWorkerControlleeRequestHandler::PrepareForMainResource",
206 job_.get(), "Info", "Insecure context");
207 return;
208 }
209
198 if (need_to_update) { 210 if (need_to_update) {
199 force_update_started_ = true; 211 force_update_started_ = true;
200 context_->UpdateServiceWorker( 212 context_->UpdateServiceWorker(
201 registration.get(), true /* force_bypass_cache */, 213 registration.get(), true /* force_bypass_cache */,
202 true /* skip_script_comparison */, provider_host_.get(), 214 true /* skip_script_comparison */, provider_host_.get(),
203 base::Bind(&self::DidUpdateRegistration, weak_factory_.GetWeakPtr(), 215 base::Bind(&self::DidUpdateRegistration, weak_factory_.GetWeakPtr(),
204 registration)); 216 registration));
205 return; 217 return;
206 } 218 }
207 219
(...skipping 181 matching lines...) Expand 10 before | Expand all | Expand 10 after
389 DCHECK(provider_host_); 401 DCHECK(provider_host_);
390 // Detach the controller so subresource requests also skip the worker. 402 // Detach the controller so subresource requests also skip the worker.
391 provider_host_->NotifyControllerLost(); 403 provider_host_->NotifyControllerLost();
392 } 404 }
393 405
394 void ServiceWorkerControlleeRequestHandler::ClearJob() { 406 void ServiceWorkerControlleeRequestHandler::ClearJob() {
395 job_.reset(); 407 job_.reset();
396 } 408 }
397 409
398 } // namespace content 410 } // namespace content
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698