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 6bb3ee1ee92f670717ec46715baf47b4c75be6e2..2db3464318f900b4b407e646fcaf8c8ae9359e90 100644 |
--- a/content/browser/service_worker/service_worker_context_core.cc |
+++ b/content/browser/service_worker/service_worker_context_core.cc |
@@ -632,13 +632,13 @@ 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() |
+ ? ServiceWorkerProviderHost::FrameSecurityLevel::SECURE |
+ : ServiceWorkerProviderHost::FrameSecurityLevel::INSECURE, |
+ AsWeakPtr(), transferee->dispatcher_host()); |
map->Replace(provider_id, replacement); |
transferee->PrepareForCrossSiteTransfer(); |
return base::WrapUnique(transferee); |