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

Unified Diff: content/renderer/service_worker/embedded_worker_instance_client_impl.cc

Issue 2787883003: [ServiceWorker] Add EmbeddedWorkerInstanceHost Interface. (Closed)
Patch Set: Address comments from shimazu@ Created 3 years, 8 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/renderer/service_worker/embedded_worker_instance_client_impl.cc
diff --git a/content/renderer/service_worker/embedded_worker_instance_client_impl.cc b/content/renderer/service_worker/embedded_worker_instance_client_impl.cc
index f6540d42d4a141cb3914035128175b09b6327e50..b267dd392fca93f5b931f2ee763416dfff64bbd7 100644
--- a/content/renderer/service_worker/embedded_worker_instance_client_impl.cc
+++ b/content/renderer/service_worker/embedded_worker_instance_client_impl.cc
@@ -28,17 +28,8 @@ void EmbeddedWorkerInstanceClientImpl::Create(
void EmbeddedWorkerInstanceClientImpl::StopWorkerCompleted() {
DCHECK(embedded_worker_id_);
- DCHECK(stop_callback_);
TRACE_EVENT0("ServiceWorker",
"EmbeddedWorkerInstanceClientImpl::StopWorkerCompleted");
- // TODO(falken): The signals to the browser should be in the order:
- // (1) WorkerStopped (via stop_callback_)
- // (2) ProviderDestroyed (via UnregisterWorker destroying
- // WebEmbeddedWorkerImpl)
- // But this ordering is currently not guaranteed since the Mojo pipes are
- // different. https://crbug.com/676526
- stop_callback_.Run();
- stop_callback_.Reset();
dispatcher_->UnregisterWorker(embedded_worker_id_.value());
embedded_worker_id_.reset();
wrapper_ = nullptr;
@@ -46,7 +37,8 @@ void EmbeddedWorkerInstanceClientImpl::StopWorkerCompleted() {
void EmbeddedWorkerInstanceClientImpl::StartWorker(
const EmbeddedWorkerStartParams& params,
- mojom::ServiceWorkerEventDispatcherRequest dispatcher_request) {
+ mojom::ServiceWorkerEventDispatcherRequest dispatcher_request,
+ mojom::EmbeddedWorkerInstanceHostAssociatedPtrInfo instance_host) {
DCHECK(ChildThreadImpl::current());
DCHECK(!wrapper_);
DCHECK(!embedded_worker_id_);
@@ -59,22 +51,19 @@ void EmbeddedWorkerInstanceClientImpl::StartWorker(
params,
base::MakeUnique<ServiceWorkerContextClient>(
params.embedded_worker_id, params.service_worker_version_id,
- params.scope, params.script_url,
- std::move(dispatcher_request), std::move(temporal_self_)));
+ params.scope, params.script_url, std::move(dispatcher_request),
+ std::move(instance_host), std::move(temporal_self_)));
wrapper_ = wrapper.get();
dispatcher_->RegisterWorker(params.embedded_worker_id, std::move(wrapper));
}
-void EmbeddedWorkerInstanceClientImpl::StopWorker(
- const StopWorkerCallback& callback) {
+void EmbeddedWorkerInstanceClientImpl::StopWorker() {
// StopWorker must be called after StartWorker is called.
DCHECK(ChildThreadImpl::current());
DCHECK(wrapper_);
DCHECK(embedded_worker_id_);
- DCHECK(!stop_callback_);
TRACE_EVENT0("ServiceWorker", "EmbeddedWorkerInstanceClientImpl::StopWorker");
- stop_callback_ = callback;
dispatcher_->RecordStopWorkerTimer(embedded_worker_id_.value());
wrapper_->worker()->terminateWorkerContext();
}

Powered by Google App Engine
This is Rietveld 408576698