| OLD | NEW |
| 1 /* | 1 /* |
| 2 * Copyright (C) 2009 Google Inc. All rights reserved. | 2 * Copyright (C) 2009 Google Inc. All rights reserved. |
| 3 * | 3 * |
| 4 * Redistribution and use in source and binary forms, with or without | 4 * Redistribution and use in source and binary forms, with or without |
| 5 * modification, are permitted provided that the following conditions are | 5 * modification, are permitted provided that the following conditions are |
| 6 * met: | 6 * met: |
| 7 * | 7 * |
| 8 * * Redistributions of source code must retain the above copyright | 8 * * Redistributions of source code must retain the above copyright |
| 9 * notice, this list of conditions and the following disclaimer. | 9 * notice, this list of conditions and the following disclaimer. |
| 10 * * Redistributions in binary form must reproduce the above | 10 * * Redistributions in binary form must reproduce the above |
| (...skipping 105 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 116 main_script_loader_.Clear(); | 116 main_script_loader_.Clear(); |
| 117 client_->WorkerScriptLoadFailed(); | 117 client_->WorkerScriptLoadFailed(); |
| 118 delete this; | 118 delete this; |
| 119 return; | 119 return; |
| 120 } | 120 } |
| 121 if (worker_thread_) | 121 if (worker_thread_) |
| 122 worker_thread_->Terminate(); | 122 worker_thread_->Terminate(); |
| 123 worker_inspector_proxy_->WorkerThreadTerminated(); | 123 worker_inspector_proxy_->WorkerThreadTerminated(); |
| 124 } | 124 } |
| 125 | 125 |
| 126 void WebSharedWorkerImpl::InitializeLoader() { | 126 void WebSharedWorkerImpl::InitializeLoader(WebDataSaverFlag data_saver_flag) { |
| 127 DCHECK(IsMainThread()); | 127 DCHECK(IsMainThread()); |
| 128 | 128 |
| 129 // Create 'shadow page'. This page is never displayed, it is used to proxy the | 129 // Create 'shadow page'. This page is never displayed, it is used to proxy the |
| 130 // loading requests from the worker context to the rest of WebKit and Chromium | 130 // loading requests from the worker context to the rest of WebKit and Chromium |
| 131 // infrastructure. | 131 // infrastructure. |
| 132 DCHECK(!web_view_); | 132 DCHECK(!web_view_); |
| 133 web_view_ = WebView::Create(nullptr, kWebPageVisibilityStateVisible); | 133 web_view_ = WebView::Create(nullptr, kWebPageVisibilityStateVisible); |
| 134 // FIXME: http://crbug.com/363843. This needs to find a better way to | 134 // FIXME: http://crbug.com/363843. This needs to find a better way to |
| 135 // not create graphics layers. | 135 // not create graphics layers. |
| 136 web_view_->GetSettings()->SetAcceleratedCompositingEnabled(false); | 136 web_view_->GetSettings()->SetAcceleratedCompositingEnabled(false); |
| 137 web_view_->GetSettings()->SetDataSaverFlag(data_saver_flag); |
| 137 // FIXME: Settings information should be passed to the Worker process from | 138 // FIXME: Settings information should be passed to the Worker process from |
| 138 // Browser process when the worker is created (similar to | 139 // Browser process when the worker is created (similar to |
| 139 // RenderThread::OnCreateNewView). | 140 // RenderThread::OnCreateNewView). |
| 140 main_frame_ = ToWebLocalFrameBase(WebLocalFrame::Create( | 141 main_frame_ = ToWebLocalFrameBase(WebLocalFrame::Create( |
| 141 WebTreeScopeType::kDocument, this, | 142 WebTreeScopeType::kDocument, this, |
| 142 Platform::Current()->GetInterfaceProvider(), nullptr)); | 143 Platform::Current()->GetInterfaceProvider(), nullptr)); |
| 143 web_view_->SetMainFrame(main_frame_.Get()); | 144 web_view_->SetMainFrame(main_frame_.Get()); |
| 144 main_frame_->SetDevToolsAgentClient(this); | 145 main_frame_->SetDevToolsAgentClient(this); |
| 145 | 146 |
| 146 // If we were asked to pause worker context on start and wait for debugger | 147 // If we were asked to pause worker context on start and wait for debugger |
| (...skipping 137 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 284 port->Entangle(std::move(channel)); | 285 port->Entangle(std::move(channel)); |
| 285 SECURITY_DCHECK(worker_global_scope->IsSharedWorkerGlobalScope()); | 286 SECURITY_DCHECK(worker_global_scope->IsSharedWorkerGlobalScope()); |
| 286 worker_global_scope->DispatchEvent(CreateConnectEvent(port)); | 287 worker_global_scope->DispatchEvent(CreateConnectEvent(port)); |
| 287 } | 288 } |
| 288 | 289 |
| 289 void WebSharedWorkerImpl::StartWorkerContext( | 290 void WebSharedWorkerImpl::StartWorkerContext( |
| 290 const WebURL& url, | 291 const WebURL& url, |
| 291 const WebString& name, | 292 const WebString& name, |
| 292 const WebString& content_security_policy, | 293 const WebString& content_security_policy, |
| 293 WebContentSecurityPolicyType policy_type, | 294 WebContentSecurityPolicyType policy_type, |
| 294 WebAddressSpace creation_address_space) { | 295 WebAddressSpace creation_address_space, |
| 296 WebDataSaverFlag data_saver_flag) { |
| 295 DCHECK(IsMainThread()); | 297 DCHECK(IsMainThread()); |
| 296 url_ = url; | 298 url_ = url; |
| 297 name_ = name; | 299 name_ = name; |
| 298 creation_address_space_ = creation_address_space; | 300 creation_address_space_ = creation_address_space; |
| 299 InitializeLoader(); | 301 InitializeLoader(data_saver_flag); |
| 300 } | 302 } |
| 301 | 303 |
| 302 void WebSharedWorkerImpl::DidReceiveScriptLoaderResponse() { | 304 void WebSharedWorkerImpl::DidReceiveScriptLoaderResponse() { |
| 303 DCHECK(IsMainThread()); | 305 DCHECK(IsMainThread()); |
| 304 probe::didReceiveScriptResponse(loading_document_, | 306 probe::didReceiveScriptResponse(loading_document_, |
| 305 main_script_loader_->Identifier()); | 307 main_script_loader_->Identifier()); |
| 306 client_->SelectAppCacheID(main_script_loader_->AppCacheID()); | 308 client_->SelectAppCacheID(main_script_loader_->AppCacheID()); |
| 307 } | 309 } |
| 308 | 310 |
| 309 void WebSharedWorkerImpl::OnScriptLoaderFinished() { | 311 void WebSharedWorkerImpl::OnScriptLoaderFinished() { |
| (...skipping 30 matching lines...) Expand all Loading... |
| 340 | 342 |
| 341 if (RuntimeEnabledFeatures::offMainThreadFetchEnabled()) { | 343 if (RuntimeEnabledFeatures::offMainThreadFetchEnabled()) { |
| 342 std::unique_ptr<WebWorkerFetchContext> web_worker_fetch_context = | 344 std::unique_ptr<WebWorkerFetchContext> web_worker_fetch_context = |
| 343 client_->CreateWorkerFetchContext( | 345 client_->CreateWorkerFetchContext( |
| 344 WebLocalFrameBase::FromFrame(main_frame_->GetFrame()) | 346 WebLocalFrameBase::FromFrame(main_frame_->GetFrame()) |
| 345 ->DataSource() | 347 ->DataSource() |
| 346 ->GetServiceWorkerNetworkProvider()); | 348 ->GetServiceWorkerNetworkProvider()); |
| 347 DCHECK(web_worker_fetch_context); | 349 DCHECK(web_worker_fetch_context); |
| 348 // TODO(horo): Set more information about the context (ex: AppCacheHostID) | 350 // TODO(horo): Set more information about the context (ex: AppCacheHostID) |
| 349 // to |web_worker_fetch_context|. | 351 // to |web_worker_fetch_context|. |
| 350 web_worker_fetch_context->SetDataSaverEnabled( | 352 web_worker_fetch_context->SetDataSaverFlag( |
| 351 document->GetFrame()->GetSettings()->GetDataSaverEnabled()); | 353 document->GetFrame()->GetSettings()->GetDataSaverFlag()); |
| 352 ProvideWorkerFetchContextToWorker(worker_clients, | 354 ProvideWorkerFetchContextToWorker(worker_clients, |
| 353 std::move(web_worker_fetch_context)); | 355 std::move(web_worker_fetch_context)); |
| 354 } | 356 } |
| 355 | 357 |
| 356 ContentSecurityPolicy* content_security_policy = | 358 ContentSecurityPolicy* content_security_policy = |
| 357 main_script_loader_->ReleaseContentSecurityPolicy(); | 359 main_script_loader_->ReleaseContentSecurityPolicy(); |
| 358 WorkerThreadStartMode start_mode = | 360 WorkerThreadStartMode start_mode = |
| 359 worker_inspector_proxy_->WorkerStartMode(document); | 361 worker_inspector_proxy_->WorkerStartMode(document); |
| 360 std::unique_ptr<WorkerSettings> worker_settings = | 362 std::unique_ptr<WorkerSettings> worker_settings = |
| 361 WTF::WrapUnique(new WorkerSettings(document->GetSettings())); | 363 WTF::WrapUnique(new WorkerSettings(document->GetSettings())); |
| (...skipping 75 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 437 if (devtools_agent) | 439 if (devtools_agent) |
| 438 devtools_agent->DispatchOnInspectorBackend(session_id, call_id, method, | 440 devtools_agent->DispatchOnInspectorBackend(session_id, call_id, method, |
| 439 message); | 441 message); |
| 440 } | 442 } |
| 441 | 443 |
| 442 WebSharedWorker* WebSharedWorker::Create(WebSharedWorkerClient* client) { | 444 WebSharedWorker* WebSharedWorker::Create(WebSharedWorkerClient* client) { |
| 443 return new WebSharedWorkerImpl(client); | 445 return new WebSharedWorkerImpl(client); |
| 444 } | 446 } |
| 445 | 447 |
| 446 } // namespace blink | 448 } // namespace blink |
| OLD | NEW |