| 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 38014c8cc62640fcf7258ef9d588d784c2c0b1c3..aa699bcf0c170284ae143f2fca0b89058d158178 100644
 | 
| --- a/content/renderer/service_worker/embedded_worker_instance_client_impl.cc
 | 
| +++ b/content/renderer/service_worker/embedded_worker_instance_client_impl.cc
 | 
| @@ -28,12 +28,18 @@ void EmbeddedWorkerInstanceClientImpl::Create(
 | 
|  void EmbeddedWorkerInstanceClientImpl::StopWorkerCompleted() {
 | 
|    DCHECK(embedded_worker_id_);
 | 
|    DCHECK(stop_callback_);
 | 
| -  dispatcher_->UnregisterWorker(embedded_worker_id_.value());
 | 
| -  embedded_worker_id_.reset();
 | 
| -  stop_callback_.Run();
 | 
|    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;
 | 
|  }
 | 
|  
 | 
| 
 |