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

Unified Diff: content/browser/service_worker/service_worker_context_core.cc

Issue 2009453002: service worker: Don't control a subframe of an insecure context (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@master
Patch Set: review comments Created 4 years, 6 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 side-by-side diff with in-line comments
Download patch
Index: content/browser/service_worker/service_worker_context_core.cc
diff --git a/content/browser/service_worker/service_worker_context_core.cc b/content/browser/service_worker/service_worker_context_core.cc
index 704f821d151d6b7c874d6452728743f0b82973a6..a9b1197d2364fdfc325606b3577405716fc400e8 100644
--- a/content/browser/service_worker/service_worker_context_core.cc
+++ b/content/browser/service_worker/service_worker_context_core.cc
@@ -631,26 +631,23 @@ ServiceWorkerContextCore::TransferProviderHostOut(int process_id,
int provider_id) {
ProviderMap* map = GetProviderMapForProcess(process_id);
ServiceWorkerProviderHost* transferee = map->Lookup(provider_id);
- ServiceWorkerProviderHost* replacement =
- new ServiceWorkerProviderHost(process_id,
- transferee->frame_id(),
- provider_id,
- transferee->provider_type(),
- AsWeakPtr(),
- transferee->dispatcher_host());
+ ServiceWorkerProviderHost* replacement = new ServiceWorkerProviderHost(
+ process_id, transferee->frame_id(), provider_id,
+ transferee->provider_type(), transferee->is_parent_frame_secure(),
+ AsWeakPtr(), transferee->dispatcher_host());
map->Replace(provider_id, replacement);
transferee->PrepareForCrossSiteTransfer();
return base::WrapUnique(transferee);
}
-void ServiceWorkerContextCore::TransferProviderHostIn(
+bool ServiceWorkerContextCore::TransferProviderHostIn(
int new_process_id,
int new_provider_id,
std::unique_ptr<ServiceWorkerProviderHost> transferee) {
ProviderMap* map = GetProviderMapForProcess(new_process_id);
ServiceWorkerProviderHost* temp = map->Lookup(new_provider_id);
if (!temp)
- return;
+ return false;
horo 2016/06/03 09:54:44 Do we need the returned value?
falken 2016/06/03 12:10:45 Not anymore. Failed partial revert. Done.
DCHECK(temp->document_url().is_empty());
transferee->CompleteCrossSiteTransfer(new_process_id,
@@ -660,6 +657,7 @@ void ServiceWorkerContextCore::TransferProviderHostIn(
temp->dispatcher_host());
map->Replace(new_provider_id, transferee.release());
delete temp;
+ return true;
}
void ServiceWorkerContextCore::ClearAllServiceWorkersForTest(

Powered by Google App Engine
This is Rietveld 408576698