| OLD | NEW |
| 1 // Copyright 2013 The Chromium Authors. All rights reserved. | 1 // Copyright 2013 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/embedded_worker_instance.h" | 5 #include "content/browser/service_worker/embedded_worker_instance.h" |
| 6 | 6 |
| 7 #include <utility> | 7 #include <utility> |
| 8 | 8 |
| 9 #include "base/bind_helpers.h" | 9 #include "base/bind_helpers.h" |
| 10 #include "base/macros.h" | 10 #include "base/macros.h" |
| (...skipping 444 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 455 return; | 455 return; |
| 456 } | 456 } |
| 457 DCHECK(status_ == EmbeddedWorkerStatus::STOPPED); | 457 DCHECK(status_ == EmbeddedWorkerStatus::STOPPED); |
| 458 | 458 |
| 459 DCHECK(!params->pause_after_download || !params->is_installed); | 459 DCHECK(!params->pause_after_download || !params->is_installed); |
| 460 DCHECK_NE(kInvalidServiceWorkerVersionId, params->service_worker_version_id); | 460 DCHECK_NE(kInvalidServiceWorkerVersionId, params->service_worker_version_id); |
| 461 step_time_ = base::TimeTicks::Now(); | 461 step_time_ = base::TimeTicks::Now(); |
| 462 status_ = EmbeddedWorkerStatus::STARTING; | 462 status_ = EmbeddedWorkerStatus::STARTING; |
| 463 starting_phase_ = ALLOCATING_PROCESS; | 463 starting_phase_ = ALLOCATING_PROCESS; |
| 464 network_accessed_for_script_ = false; | 464 network_accessed_for_script_ = false; |
| 465 interface_registry_ = base::MakeUnique<service_manager::InterfaceRegistry>( | 465 interface_registry_ = |
| 466 service_manager::Identity(), service_manager::InterfaceProviderSpec()); | 466 base::MakeUnique<service_manager::InterfaceRegistry>(std::string()); |
| 467 remote_interfaces_.reset(new service_manager::InterfaceProvider); | 467 remote_interfaces_.reset(new service_manager::InterfaceProvider); |
| 468 for (auto& observer : listener_list_) | 468 for (auto& observer : listener_list_) |
| 469 observer.OnStarting(); | 469 observer.OnStarting(); |
| 470 | 470 |
| 471 params->embedded_worker_id = embedded_worker_id_; | 471 params->embedded_worker_id = embedded_worker_id_; |
| 472 params->worker_devtools_agent_route_id = MSG_ROUTING_NONE; | 472 params->worker_devtools_agent_route_id = MSG_ROUTING_NONE; |
| 473 params->wait_for_debugger = false; | 473 params->wait_for_debugger = false; |
| 474 params->settings.v8_cache_options = GetV8CacheOptions(); | 474 params->settings.v8_cache_options = GetV8CacheOptions(); |
| 475 | 475 |
| 476 mojom::EmbeddedWorkerInstanceClientRequest request; | 476 mojom::EmbeddedWorkerInstanceClientRequest request; |
| (...skipping 139 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 616 | 616 |
| 617 ServiceWorkerStatusCode EmbeddedWorkerInstance::SendMojoStartWorker( | 617 ServiceWorkerStatusCode EmbeddedWorkerInstance::SendMojoStartWorker( |
| 618 std::unique_ptr<EmbeddedWorkerStartParams> params) { | 618 std::unique_ptr<EmbeddedWorkerStartParams> params) { |
| 619 if (!context_) | 619 if (!context_) |
| 620 return SERVICE_WORKER_ERROR_ABORT; | 620 return SERVICE_WORKER_ERROR_ABORT; |
| 621 service_manager::mojom::InterfaceProviderPtr remote_interfaces; | 621 service_manager::mojom::InterfaceProviderPtr remote_interfaces; |
| 622 service_manager::mojom::InterfaceProviderRequest request = | 622 service_manager::mojom::InterfaceProviderRequest request = |
| 623 mojo::GetProxy(&remote_interfaces); | 623 mojo::GetProxy(&remote_interfaces); |
| 624 remote_interfaces_->Bind(std::move(remote_interfaces)); | 624 remote_interfaces_->Bind(std::move(remote_interfaces)); |
| 625 service_manager::mojom::InterfaceProviderPtr exposed_interfaces; | 625 service_manager::mojom::InterfaceProviderPtr exposed_interfaces; |
| 626 interface_registry_->Bind(mojo::GetProxy(&exposed_interfaces), | 626 interface_registry_->Bind( |
| 627 service_manager::Identity(), | 627 mojo::GetProxy(&exposed_interfaces), service_manager::Identity(), |
| 628 service_manager::InterfaceProviderSpec()); | 628 service_manager::InterfaceProviderSpec(), service_manager::Identity(), |
| 629 service_manager::InterfaceProviderSpec()); |
| 629 client_->StartWorker(*params, std::move(exposed_interfaces), | 630 client_->StartWorker(*params, std::move(exposed_interfaces), |
| 630 std::move(request)); | 631 std::move(request)); |
| 631 registry_->BindWorkerToProcess(process_id(), embedded_worker_id()); | 632 registry_->BindWorkerToProcess(process_id(), embedded_worker_id()); |
| 632 TRACE_EVENT_ASYNC_STEP_PAST1("ServiceWorker", "EmbeddedWorkerInstance::Start", | 633 TRACE_EVENT_ASYNC_STEP_PAST1("ServiceWorker", "EmbeddedWorkerInstance::Start", |
| 633 this, "SendStartWorker", "Status", "mojo"); | 634 this, "SendStartWorker", "Status", "mojo"); |
| 634 OnStartWorkerMessageSent(); | 635 OnStartWorkerMessageSent(); |
| 635 return SERVICE_WORKER_OK; | 636 return SERVICE_WORKER_OK; |
| 636 } | 637 } |
| 637 | 638 |
| 638 void EmbeddedWorkerInstance::OnStartWorkerMessageSent() { | 639 void EmbeddedWorkerInstance::OnStartWorkerMessageSent() { |
| (...skipping 90 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 729 | 730 |
| 730 thread_id_ = thread_id; | 731 thread_id_ = thread_id; |
| 731 for (auto& observer : listener_list_) | 732 for (auto& observer : listener_list_) |
| 732 observer.OnThreadStarted(); | 733 observer.OnThreadStarted(); |
| 733 | 734 |
| 734 // This code is for BackgroundSync and FetchEvent, which have been already | 735 // This code is for BackgroundSync and FetchEvent, which have been already |
| 735 // mojofied. Interfaces are exchanged at StartWorker when mojo for the service | 736 // mojofied. Interfaces are exchanged at StartWorker when mojo for the service |
| 736 // worker is enabled, so this code isn't necessary when the flag is enabled. | 737 // worker is enabled, so this code isn't necessary when the flag is enabled. |
| 737 if (!ServiceWorkerUtils::IsMojoForServiceWorkerEnabled()) { | 738 if (!ServiceWorkerUtils::IsMojoForServiceWorkerEnabled()) { |
| 738 service_manager::mojom::InterfaceProviderPtr exposed_interfaces; | 739 service_manager::mojom::InterfaceProviderPtr exposed_interfaces; |
| 739 interface_registry_->Bind(mojo::GetProxy(&exposed_interfaces), | 740 interface_registry_->Bind( |
| 740 service_manager::Identity(), | 741 mojo::GetProxy(&exposed_interfaces), service_manager::Identity(), |
| 741 service_manager::InterfaceProviderSpec()); | 742 service_manager::InterfaceProviderSpec(), service_manager::Identity(), |
| 743 service_manager::InterfaceProviderSpec()); |
| 742 service_manager::mojom::InterfaceProviderPtr remote_interfaces; | 744 service_manager::mojom::InterfaceProviderPtr remote_interfaces; |
| 743 service_manager::mojom::InterfaceProviderRequest request = | 745 service_manager::mojom::InterfaceProviderRequest request = |
| 744 mojo::GetProxy(&remote_interfaces); | 746 mojo::GetProxy(&remote_interfaces); |
| 745 remote_interfaces_->Bind(std::move(remote_interfaces)); | 747 remote_interfaces_->Bind(std::move(remote_interfaces)); |
| 746 BrowserThread::PostTask( | 748 BrowserThread::PostTask( |
| 747 BrowserThread::UI, FROM_HERE, | 749 BrowserThread::UI, FROM_HERE, |
| 748 base::Bind(SetupMojoOnUIThread, process_id(), thread_id_, | 750 base::Bind(SetupMojoOnUIThread, process_id(), thread_id_, |
| 749 base::Passed(&request), | 751 base::Passed(&request), |
| 750 base::Passed(exposed_interfaces.PassInterface()))); | 752 base::Passed(exposed_interfaces.PassInterface()))); |
| 751 } | 753 } |
| (...skipping 218 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 970 case SCRIPT_READ_FINISHED: | 972 case SCRIPT_READ_FINISHED: |
| 971 return "Script read finished"; | 973 return "Script read finished"; |
| 972 case STARTING_PHASE_MAX_VALUE: | 974 case STARTING_PHASE_MAX_VALUE: |
| 973 NOTREACHED(); | 975 NOTREACHED(); |
| 974 } | 976 } |
| 975 NOTREACHED() << phase; | 977 NOTREACHED() << phase; |
| 976 return std::string(); | 978 return std::string(); |
| 977 } | 979 } |
| 978 | 980 |
| 979 } // namespace content | 981 } // namespace content |
| OLD | NEW |