| 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 c1f90dc56f80c3f653e25ee9a8b4266360b814b0..10403f57824b7ef312960fc389528a7de7f6b7ca 100644
|
| --- a/content/renderer/service_worker/embedded_worker_instance_client_impl.cc
|
| +++ b/content/renderer/service_worker/embedded_worker_instance_client_impl.cc
|
| @@ -35,11 +35,13 @@ void EmbeddedWorkerInstanceClientImpl::StopWorkerCompleted() {
|
| }
|
|
|
| void EmbeddedWorkerInstanceClientImpl::StartWorker(
|
| - mojom::EmbeddedWorkerStartWorkerParamsPtr params) {
|
| + mojom::EmbeddedWorkerStartWorkerParamsPtr params,
|
| + shell::mojom::InterfaceProviderPtr remote_interfaces) {
|
| TRACE_EVENT0("ServiceWorker",
|
| "EmbeddedWorkerInstanceClientImpl::StartWorker");
|
|
|
| embedded_worker_id_ = params->embedded_worker_id;
|
| + remote_interfaces_.Bind(std::move(remote_interfaces));
|
|
|
| std::unique_ptr<EmbeddedWorkerDispatcher::WorkerWrapper> wrapper(
|
| new EmbeddedWorkerDispatcher::WorkerWrapper(
|
| @@ -88,9 +90,11 @@ EmbeddedWorkerInstanceClientImpl::EmbeddedWorkerInstanceClientImpl(
|
| mojo::InterfaceRequest<mojom::EmbeddedWorkerInstanceClient> request)
|
| : dispatcher_(dispatcher),
|
| binding_(this, std::move(request)),
|
| - temporal_self_(std::unique_ptr<EmbeddedWorkerInstanceClientImpl>(this)) {
|
| - binding_.set_connection_error_handler(base::Bind(
|
| - &EmbeddedWorkerInstanceClientImpl::OnError, base::Unretained(this)));
|
| + temporal_self_(std::unique_ptr<EmbeddedWorkerInstanceClientImpl>(this)),
|
| + main_thread_task_runner_(base::ThreadTaskRunnerHandle::Get()),
|
| + weak_factory(this) {
|
| + binding_.set_connection_error_handler(
|
| + base::Bind(&EmbeddedWorkerInstanceClientImpl::OnError, AsWeakPtr()));
|
| }
|
|
|
| EmbeddedWorkerInstanceClientImpl::~EmbeddedWorkerInstanceClientImpl() {}
|
| @@ -100,4 +104,9 @@ void EmbeddedWorkerInstanceClientImpl::OnError() {
|
| temporal_self_.reset();
|
| }
|
|
|
| +base::WeakPtr<EmbeddedWorkerInstanceClientImpl>
|
| +EmbeddedWorkerInstanceClientImpl::AsWeakPtr() {
|
| + return weak_factory.GetWeakPtr();
|
| +}
|
| +
|
| } // namespace content
|
|
|