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

Side by Side Diff: content/renderer/service_worker/embedded_worker_instance_client_impl.cc

Issue 2787883003: [ServiceWorker] Add EmbeddedWorkerInstanceHost Interface. (Closed)
Patch Set: Fix test: ServiceWorkerContextTest.UnregisterMultiple 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 unified diff | Download patch
OLDNEW
1 // Copyright (c) 2016 The Chromium Authors. All rights reserved. 1 // Copyright (c) 2016 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/renderer/service_worker/embedded_worker_instance_client_impl.h " 5 #include "content/renderer/service_worker/embedded_worker_instance_client_impl.h "
6 6
7 #include <memory> 7 #include <memory>
8 8
9 #include "base/memory/ptr_util.h" 9 #include "base/memory/ptr_util.h"
10 #include "base/strings/utf_string_conversions.h" 10 #include "base/strings/utf_string_conversions.h"
(...skipping 28 matching lines...) Expand all
39 // different. https://crbug.com/676526 39 // different. https://crbug.com/676526
40 stop_callback_.Run(); 40 stop_callback_.Run();
41 stop_callback_.Reset(); 41 stop_callback_.Reset();
42 dispatcher_->UnregisterWorker(embedded_worker_id_.value()); 42 dispatcher_->UnregisterWorker(embedded_worker_id_.value());
43 embedded_worker_id_.reset(); 43 embedded_worker_id_.reset();
44 wrapper_ = nullptr; 44 wrapper_ = nullptr;
45 } 45 }
46 46
47 void EmbeddedWorkerInstanceClientImpl::StartWorker( 47 void EmbeddedWorkerInstanceClientImpl::StartWorker(
48 const EmbeddedWorkerStartParams& params, 48 const EmbeddedWorkerStartParams& params,
49 mojom::ServiceWorkerEventDispatcherRequest dispatcher_request) { 49 mojom::ServiceWorkerEventDispatcherRequest dispatcher_request,
50 mojom::EmbeddedWorkerInstanceHostAssociatedPtrInfo instance_host) {
50 DCHECK(ChildThreadImpl::current()); 51 DCHECK(ChildThreadImpl::current());
51 DCHECK(!wrapper_); 52 DCHECK(!wrapper_);
52 DCHECK(!embedded_worker_id_); 53 DCHECK(!embedded_worker_id_);
53 TRACE_EVENT0("ServiceWorker", 54 TRACE_EVENT0("ServiceWorker",
54 "EmbeddedWorkerInstanceClientImpl::StartWorker"); 55 "EmbeddedWorkerInstanceClientImpl::StartWorker");
55 embedded_worker_id_ = params.embedded_worker_id; 56 embedded_worker_id_ = params.embedded_worker_id;
56 57
57 std::unique_ptr<EmbeddedWorkerDispatcher::WorkerWrapper> wrapper = 58 std::unique_ptr<EmbeddedWorkerDispatcher::WorkerWrapper> wrapper =
58 dispatcher_->StartWorkerContext( 59 dispatcher_->StartWorkerContext(
59 params, 60 params,
60 base::MakeUnique<ServiceWorkerContextClient>( 61 base::MakeUnique<ServiceWorkerContextClient>(
61 params.embedded_worker_id, params.service_worker_version_id, 62 params.embedded_worker_id, params.service_worker_version_id,
62 params.scope, params.script_url, 63 params.scope, params.script_url, std::move(dispatcher_request),
63 std::move(dispatcher_request), std::move(temporal_self_))); 64 std::move(instance_host), std::move(temporal_self_)));
64 wrapper_ = wrapper.get(); 65 wrapper_ = wrapper.get();
65 dispatcher_->RegisterWorker(params.embedded_worker_id, std::move(wrapper)); 66 dispatcher_->RegisterWorker(params.embedded_worker_id, std::move(wrapper));
66 } 67 }
67 68
68 void EmbeddedWorkerInstanceClientImpl::StopWorker( 69 void EmbeddedWorkerInstanceClientImpl::StopWorker(
69 const StopWorkerCallback& callback) { 70 const StopWorkerCallback& callback) {
70 // StopWorker must be called after StartWorker is called. 71 // StopWorker must be called after StartWorker is called.
71 DCHECK(ChildThreadImpl::current()); 72 DCHECK(ChildThreadImpl::current());
72 DCHECK(wrapper_); 73 DCHECK(wrapper_);
73 DCHECK(embedded_worker_id_); 74 DCHECK(embedded_worker_id_);
(...skipping 32 matching lines...) Expand 10 before | Expand all | Expand 10 after
106 } 107 }
107 108
108 EmbeddedWorkerInstanceClientImpl::~EmbeddedWorkerInstanceClientImpl() {} 109 EmbeddedWorkerInstanceClientImpl::~EmbeddedWorkerInstanceClientImpl() {}
109 110
110 void EmbeddedWorkerInstanceClientImpl::OnError() { 111 void EmbeddedWorkerInstanceClientImpl::OnError() {
111 // Removes myself if it's owned by myself. 112 // Removes myself if it's owned by myself.
112 temporal_self_.reset(); 113 temporal_self_.reset();
113 } 114 }
114 115
115 } // namespace content 116 } // namespace content
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698