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

Side by Side Diff: content/child/service_worker/service_worker_provider_context.cc

Issue 2653493009: Add two interfaces for ServiceWorkerProviderContext/ProviderHost (Closed)
Patch Set: Skip unittest for CrossSiteTransfer when PlzNavigate Created 3 years, 6 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
« no previous file with comments | « content/child/service_worker/service_worker_provider_context.h ('k') | content/common/BUILD.gn » ('j') | no next file with comments »
Toggle Intra-line Diffs ('i') | Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
OLDNEW
1 // Copyright 2014 The Chromium Authors. All rights reserved. 1 // Copyright 2014 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/child/service_worker/service_worker_provider_context.h" 5 #include "content/child/service_worker/service_worker_provider_context.h"
6 6
7 #include <utility> 7 #include <utility>
8 8
9 #include "base/macros.h" 9 #include "base/macros.h"
10 #include "base/threading/thread_task_runner_handle.h" 10 #include "base/threading/thread_task_runner_handle.h"
(...skipping 28 matching lines...) Expand all
39 // keep the associated registration and the controller until 39 // keep the associated registration and the controller until
40 // ServiceWorkerContainer is initialized. 40 // ServiceWorkerContainer is initialized.
41 class ServiceWorkerProviderContext::ControlleeDelegate 41 class ServiceWorkerProviderContext::ControlleeDelegate
42 : public ServiceWorkerProviderContext::Delegate { 42 : public ServiceWorkerProviderContext::Delegate {
43 public: 43 public:
44 ControlleeDelegate() {} 44 ControlleeDelegate() {}
45 ~ControlleeDelegate() override {} 45 ~ControlleeDelegate() override {}
46 46
47 void AssociateRegistration( 47 void AssociateRegistration(
48 std::unique_ptr<ServiceWorkerRegistrationHandleReference> registration, 48 std::unique_ptr<ServiceWorkerRegistrationHandleReference> registration,
49 std::unique_ptr<ServiceWorkerHandleReference> installing, 49 std::unique_ptr<ServiceWorkerHandleReference> /* installing */,
50 std::unique_ptr<ServiceWorkerHandleReference> waiting, 50 std::unique_ptr<ServiceWorkerHandleReference> /* waiting */,
51 std::unique_ptr<ServiceWorkerHandleReference> active) override { 51 std::unique_ptr<ServiceWorkerHandleReference> /* active */) override {
52 DCHECK(!registration_); 52 DCHECK(!registration_);
53 registration_ = std::move(registration); 53 registration_ = std::move(registration);
54 } 54 }
55 55
56 void DisassociateRegistration() override { 56 void DisassociateRegistration() override {
57 controller_.reset(); 57 controller_.reset();
58 registration_.reset(); 58 registration_.reset();
59 } 59 }
60 60
61 void SetController( 61 void SetController(
62 std::unique_ptr<ServiceWorkerHandleReference> controller) override { 62 std::unique_ptr<ServiceWorkerHandleReference> controller) override {
63 DCHECK(registration_); 63 DCHECK(registration_);
64 DCHECK(!controller || 64 DCHECK(!controller ||
65 controller->handle_id() != kInvalidServiceWorkerHandleId); 65 controller->handle_id() != kInvalidServiceWorkerHandleId);
66 controller_ = std::move(controller); 66 controller_ = std::move(controller);
67 } 67 }
68 68
69 bool HasAssociatedRegistration() override { return !!registration_; } 69 bool HasAssociatedRegistration() override { return !!registration_; }
70 70
71 void GetAssociatedRegistration( 71 void GetAssociatedRegistration(
72 ServiceWorkerRegistrationObjectInfo* info, 72 ServiceWorkerRegistrationObjectInfo* /* info */,
73 ServiceWorkerVersionAttributes* attrs) override { 73 ServiceWorkerVersionAttributes* /* attrs */) override {
74 NOTREACHED(); 74 NOTREACHED();
75 } 75 }
76 76
77 ServiceWorkerHandleReference* controller() override { 77 ServiceWorkerHandleReference* controller() override {
78 return controller_.get(); 78 return controller_.get();
79 } 79 }
80 80
81 private: 81 private:
82 std::unique_ptr<ServiceWorkerRegistrationHandleReference> registration_; 82 std::unique_ptr<ServiceWorkerRegistrationHandleReference> registration_;
83 std::unique_ptr<ServiceWorkerHandleReference> controller_; 83 std::unique_ptr<ServiceWorkerHandleReference> controller_;
(...skipping 20 matching lines...) Expand all
104 waiting_ = std::move(waiting); 104 waiting_ = std::move(waiting);
105 active_ = std::move(active); 105 active_ = std::move(active);
106 } 106 }
107 107
108 void DisassociateRegistration() override { 108 void DisassociateRegistration() override {
109 // ServiceWorkerGlobalScope is never disassociated. 109 // ServiceWorkerGlobalScope is never disassociated.
110 NOTREACHED(); 110 NOTREACHED();
111 } 111 }
112 112
113 void SetController( 113 void SetController(
114 std::unique_ptr<ServiceWorkerHandleReference> controller) override { 114 std::unique_ptr<ServiceWorkerHandleReference> /* controller */) override {
115 NOTREACHED(); 115 NOTREACHED();
116 } 116 }
117 117
118 bool HasAssociatedRegistration() override { return !!registration_; } 118 bool HasAssociatedRegistration() override { return !!registration_; }
119 119
120 void GetAssociatedRegistration( 120 void GetAssociatedRegistration(
121 ServiceWorkerRegistrationObjectInfo* info, 121 ServiceWorkerRegistrationObjectInfo* info,
122 ServiceWorkerVersionAttributes* attrs) override { 122 ServiceWorkerVersionAttributes* attrs) override {
123 DCHECK(HasAssociatedRegistration()); 123 DCHECK(HasAssociatedRegistration());
124 *info = registration_->info(); 124 *info = registration_->info();
(...skipping 15 matching lines...) Expand all
140 std::unique_ptr<ServiceWorkerHandleReference> installing_; 140 std::unique_ptr<ServiceWorkerHandleReference> installing_;
141 std::unique_ptr<ServiceWorkerHandleReference> waiting_; 141 std::unique_ptr<ServiceWorkerHandleReference> waiting_;
142 std::unique_ptr<ServiceWorkerHandleReference> active_; 142 std::unique_ptr<ServiceWorkerHandleReference> active_;
143 143
144 DISALLOW_COPY_AND_ASSIGN(ControllerDelegate); 144 DISALLOW_COPY_AND_ASSIGN(ControllerDelegate);
145 }; 145 };
146 146
147 ServiceWorkerProviderContext::ServiceWorkerProviderContext( 147 ServiceWorkerProviderContext::ServiceWorkerProviderContext(
148 int provider_id, 148 int provider_id,
149 ServiceWorkerProviderType provider_type, 149 ServiceWorkerProviderType provider_type,
150 mojom::ServiceWorkerProviderAssociatedRequest request,
150 ThreadSafeSender* thread_safe_sender) 151 ThreadSafeSender* thread_safe_sender)
151 : provider_id_(provider_id), 152 : provider_id_(provider_id),
152 main_thread_task_runner_(base::ThreadTaskRunnerHandle::Get()), 153 main_thread_task_runner_(base::ThreadTaskRunnerHandle::Get()),
153 thread_safe_sender_(thread_safe_sender) { 154 thread_safe_sender_(thread_safe_sender),
155 binding_(this, std::move(request)) {
154 if (provider_type == SERVICE_WORKER_PROVIDER_FOR_CONTROLLER) 156 if (provider_type == SERVICE_WORKER_PROVIDER_FOR_CONTROLLER)
155 delegate_.reset(new ControllerDelegate); 157 delegate_.reset(new ControllerDelegate);
156 else 158 else
157 delegate_.reset(new ControlleeDelegate); 159 delegate_.reset(new ControlleeDelegate);
158 160
159 ServiceWorkerDispatcher* dispatcher = 161 ServiceWorkerDispatcher* dispatcher =
160 ServiceWorkerDispatcher::GetOrCreateThreadSpecificInstance( 162 ServiceWorkerDispatcher::GetOrCreateThreadSpecificInstance(
161 thread_safe_sender_.get(), main_thread_task_runner_.get()); 163 thread_safe_sender_.get(), main_thread_task_runner_.get());
162 dispatcher->AddProviderContext(this); 164 dispatcher->AddProviderContext(this);
163 } 165 }
(...skipping 48 matching lines...) Expand 10 before | Expand all | Expand 10 after
212 214
213 void ServiceWorkerProviderContext::DestructOnMainThread() const { 215 void ServiceWorkerProviderContext::DestructOnMainThread() const {
214 if (!main_thread_task_runner_->RunsTasksInCurrentSequence() && 216 if (!main_thread_task_runner_->RunsTasksInCurrentSequence() &&
215 main_thread_task_runner_->DeleteSoon(FROM_HERE, this)) { 217 main_thread_task_runner_->DeleteSoon(FROM_HERE, this)) {
216 return; 218 return;
217 } 219 }
218 delete this; 220 delete this;
219 } 221 }
220 222
221 } // namespace content 223 } // namespace content
OLDNEW
« no previous file with comments | « content/child/service_worker/service_worker_provider_context.h ('k') | content/common/BUILD.gn » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698