| Index: content/browser/service_worker/service_worker_version.cc
|
| diff --git a/content/browser/service_worker/service_worker_version.cc b/content/browser/service_worker/service_worker_version.cc
|
| index f73ecfb65a373bbc61f3c1be7dbda83dd923a984..0d4e0d79454e4ad265cfadcedb734c836c0861d5 100644
|
| --- a/content/browser/service_worker/service_worker_version.cc
|
| +++ b/content/browser/service_worker/service_worker_version.cc
|
| @@ -10,6 +10,7 @@
|
| #include "content/browser/service_worker/embedded_worker_instance.h"
|
| #include "content/browser/service_worker/embedded_worker_registry.h"
|
| #include "content/browser/service_worker/service_worker_context_core.h"
|
| +#include "content/browser/service_worker/service_worker_process_manager.h"
|
| #include "content/browser/service_worker/service_worker_registration.h"
|
| #include "content/browser/service_worker/service_worker_utils.h"
|
| #include "content/common/service_worker/service_worker_messages.h"
|
| @@ -158,11 +159,10 @@ ServiceWorkerVersionInfo ServiceWorkerVersion::GetInfo() {
|
| }
|
|
|
| void ServiceWorkerVersion::StartWorker(const StatusCallback& callback) {
|
| - StartWorkerWithCandidateProcesses(std::vector<int>(), false, callback);
|
| + StartWorker(false, callback);
|
| }
|
|
|
| -void ServiceWorkerVersion::StartWorkerWithCandidateProcesses(
|
| - const std::vector<int>& possible_process_ids,
|
| +void ServiceWorkerVersion::StartWorker(
|
| bool pause_after_download,
|
| const StatusCallback& callback) {
|
| switch (running_status()) {
|
| @@ -181,7 +181,6 @@ void ServiceWorkerVersion::StartWorkerWithCandidateProcesses(
|
| scope_,
|
| script_url_,
|
| pause_after_download,
|
| - possible_process_ids,
|
| base::Bind(&ServiceWorkerVersion::RunStartWorkerCallbacksOnError,
|
| weak_factory_.GetWeakPtr()));
|
| }
|
| @@ -370,15 +369,17 @@ void ServiceWorkerVersion::DispatchPushEvent(const StatusCallback& callback,
|
| }
|
|
|
| void ServiceWorkerVersion::AddProcessToWorker(int process_id) {
|
| - embedded_worker_->AddProcessReference(process_id);
|
| + if (context_ && context_->process_manager()) {
|
| + context_->process_manager()->AddScopeProcessReference(
|
| + scope_, process_id);
|
| + }
|
| }
|
|
|
| void ServiceWorkerVersion::RemoveProcessFromWorker(int process_id) {
|
| - embedded_worker_->ReleaseProcessReference(process_id);
|
| -}
|
| -
|
| -bool ServiceWorkerVersion::HasProcessToRun() const {
|
| - return embedded_worker_->HasProcessToRun();
|
| + if (context_ && context_->process_manager()) {
|
| + context_->process_manager()->RemoveScopeProcessReference(
|
| + scope_, process_id);
|
| + }
|
| }
|
|
|
| void ServiceWorkerVersion::AddControllee(
|
| @@ -418,6 +419,14 @@ void ServiceWorkerVersion::RemovePotentialControllee(
|
| RemoveProcessFromWorker(provider_host->process_id());
|
| }
|
|
|
| +void ServiceWorkerVersion::AddPendingProcesses(
|
| + const std::vector<int>& pending_processes) {
|
| + if (context_ && context_->process_manager() && !pending_processes.empty()) {
|
| + context_->process_manager()->AddScopePendingProcesses(
|
| + scope_, pending_processes);
|
| + }
|
| +}
|
| +
|
| void ServiceWorkerVersion::AddListener(Listener* listener) {
|
| listeners_.AddObserver(listener);
|
| }
|
|
|