OLD | NEW |
1 // Copyright 2015 The Chromium Authors. All rights reserved. | 1 // Copyright 2015 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/browser/devtools/protocol/service_worker_handler.h" | 5 #include "content/browser/devtools/protocol/service_worker_handler.h" |
6 | 6 |
7 #include "base/bind.h" | 7 #include "base/bind.h" |
8 #include "base/strings/string_number_conversions.h" | 8 #include "base/strings/string_number_conversions.h" |
9 #include "content/browser/devtools/service_worker_devtools_agent_host.h" | 9 #include "content/browser/devtools/service_worker_devtools_agent_host.h" |
10 #include "content/browser/devtools/service_worker_devtools_manager.h" | 10 #include "content/browser/devtools/service_worker_devtools_manager.h" |
(...skipping 124 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
135 const GURL& pattern) override; | 135 const GURL& pattern) override; |
136 | 136 |
137 scoped_refptr<ServiceWorkerContextWrapper> context_; | 137 scoped_refptr<ServiceWorkerContextWrapper> context_; |
138 base::WeakPtr<ServiceWorkerHandler> handler_; | 138 base::WeakPtr<ServiceWorkerHandler> handler_; |
139 }; | 139 }; |
140 | 140 |
141 ServiceWorkerHandler::ContextObserver::ContextObserver( | 141 ServiceWorkerHandler::ContextObserver::ContextObserver( |
142 scoped_refptr<ServiceWorkerContextWrapper> context, | 142 scoped_refptr<ServiceWorkerContextWrapper> context, |
143 base::WeakPtr<ServiceWorkerHandler> handler) | 143 base::WeakPtr<ServiceWorkerHandler> handler) |
144 : context_(context), handler_(handler) { | 144 : context_(context), handler_(handler) { |
145 DCHECK(BrowserThread::CurrentlyOn(BrowserThread::UI)); | 145 DCHECK_CURRENTLY_ON(BrowserThread::UI); |
146 } | 146 } |
147 | 147 |
148 void ServiceWorkerHandler::ContextObserver::Start() { | 148 void ServiceWorkerHandler::ContextObserver::Start() { |
149 DCHECK(BrowserThread::CurrentlyOn(BrowserThread::UI)); | 149 DCHECK_CURRENTLY_ON(BrowserThread::UI); |
150 BrowserThread::PostTask(BrowserThread::IO, FROM_HERE, | 150 BrowserThread::PostTask(BrowserThread::IO, FROM_HERE, |
151 base::Bind(&ServiceWorkerHandler::ContextObserver:: | 151 base::Bind(&ServiceWorkerHandler::ContextObserver:: |
152 GetStoredRegistrationsOnIOThread, | 152 GetStoredRegistrationsOnIOThread, |
153 this)); | 153 this)); |
154 } | 154 } |
155 | 155 |
156 void ServiceWorkerHandler::ContextObserver::Stop() { | 156 void ServiceWorkerHandler::ContextObserver::Stop() { |
157 DCHECK(BrowserThread::CurrentlyOn(BrowserThread::UI)); | 157 DCHECK_CURRENTLY_ON(BrowserThread::UI); |
158 BrowserThread::PostTask( | 158 BrowserThread::PostTask( |
159 BrowserThread::IO, FROM_HERE, | 159 BrowserThread::IO, FROM_HERE, |
160 base::Bind(&ServiceWorkerHandler::ContextObserver::StopOnIOThread, this)); | 160 base::Bind(&ServiceWorkerHandler::ContextObserver::StopOnIOThread, this)); |
161 } | 161 } |
162 | 162 |
163 void ServiceWorkerHandler::ContextObserver::GetStoredRegistrationsOnIOThread() { | 163 void ServiceWorkerHandler::ContextObserver::GetStoredRegistrationsOnIOThread() { |
164 DCHECK(BrowserThread::CurrentlyOn(BrowserThread::IO)); | 164 DCHECK_CURRENTLY_ON(BrowserThread::IO); |
165 context_->context()->storage()->GetAllRegistrations(base::Bind( | 165 context_->context()->storage()->GetAllRegistrations(base::Bind( |
166 &ServiceWorkerHandler::ContextObserver::OnStoredRegistrationsOnIOThread, | 166 &ServiceWorkerHandler::ContextObserver::OnStoredRegistrationsOnIOThread, |
167 this)); | 167 this)); |
168 } | 168 } |
169 | 169 |
170 void ServiceWorkerHandler::ContextObserver::OnStoredRegistrationsOnIOThread( | 170 void ServiceWorkerHandler::ContextObserver::OnStoredRegistrationsOnIOThread( |
171 const std::vector<ServiceWorkerRegistrationInfo>& registrations) { | 171 const std::vector<ServiceWorkerRegistrationInfo>& registrations) { |
172 DCHECK(BrowserThread::CurrentlyOn(BrowserThread::IO)); | 172 DCHECK_CURRENTLY_ON(BrowserThread::IO); |
173 context_->AddObserver(this); | 173 context_->AddObserver(this); |
174 BrowserThread::PostTask( | 174 BrowserThread::PostTask( |
175 BrowserThread::UI, FROM_HERE, | 175 BrowserThread::UI, FROM_HERE, |
176 base::Bind(&ServiceWorkerHandler::OnWorkerRegistrationUpdated, handler_, | 176 base::Bind(&ServiceWorkerHandler::OnWorkerRegistrationUpdated, handler_, |
177 registrations)); | 177 registrations)); |
178 BrowserThread::PostTask( | 178 BrowserThread::PostTask( |
179 BrowserThread::UI, FROM_HERE, | 179 BrowserThread::UI, FROM_HERE, |
180 base::Bind(&ServiceWorkerHandler::OnWorkerRegistrationUpdated, handler_, | 180 base::Bind(&ServiceWorkerHandler::OnWorkerRegistrationUpdated, handler_, |
181 context_->context()->GetAllLiveRegistrationInfo())); | 181 context_->context()->GetAllLiveRegistrationInfo())); |
182 BrowserThread::PostTask( | 182 BrowserThread::PostTask( |
183 BrowserThread::UI, FROM_HERE, | 183 BrowserThread::UI, FROM_HERE, |
184 base::Bind(&ServiceWorkerHandler::OnWorkerVersionUpdated, handler_, | 184 base::Bind(&ServiceWorkerHandler::OnWorkerVersionUpdated, handler_, |
185 context_->context()->GetAllLiveVersionInfo())); | 185 context_->context()->GetAllLiveVersionInfo())); |
186 } | 186 } |
187 | 187 |
188 void ServiceWorkerHandler::ContextObserver::StopOnIOThread() { | 188 void ServiceWorkerHandler::ContextObserver::StopOnIOThread() { |
189 DCHECK(BrowserThread::CurrentlyOn(BrowserThread::IO)); | 189 DCHECK_CURRENTLY_ON(BrowserThread::IO); |
190 context_->RemoveObserver(this); | 190 context_->RemoveObserver(this); |
191 } | 191 } |
192 | 192 |
193 ServiceWorkerHandler::ContextObserver::~ContextObserver() { | 193 ServiceWorkerHandler::ContextObserver::~ContextObserver() { |
194 } | 194 } |
195 | 195 |
196 void ServiceWorkerHandler::ContextObserver::OnVersionUpdated(int64 version_id) { | 196 void ServiceWorkerHandler::ContextObserver::OnVersionUpdated(int64 version_id) { |
197 DCHECK(BrowserThread::CurrentlyOn(BrowserThread::IO)); | 197 DCHECK_CURRENTLY_ON(BrowserThread::IO); |
198 content::ServiceWorkerVersion* version = | 198 content::ServiceWorkerVersion* version = |
199 context_->context()->GetLiveVersion(version_id); | 199 context_->context()->GetLiveVersion(version_id); |
200 if (!version) | 200 if (!version) |
201 return; | 201 return; |
202 OnRegistrationUpdated(version->registration_id()); | 202 OnRegistrationUpdated(version->registration_id()); |
203 std::vector<ServiceWorkerVersionInfo> versions; | 203 std::vector<ServiceWorkerVersionInfo> versions; |
204 versions.push_back(version->GetInfo()); | 204 versions.push_back(version->GetInfo()); |
205 BrowserThread::PostTask( | 205 BrowserThread::PostTask( |
206 BrowserThread::UI, FROM_HERE, | 206 BrowserThread::UI, FROM_HERE, |
207 base::Bind(&ServiceWorkerHandler::OnWorkerVersionUpdated, handler_, | 207 base::Bind(&ServiceWorkerHandler::OnWorkerVersionUpdated, handler_, |
(...skipping 20 matching lines...) Expand all Loading... |
228 } | 228 } |
229 | 229 |
230 void ServiceWorkerHandler::ContextObserver::OnVersionStateChanged( | 230 void ServiceWorkerHandler::ContextObserver::OnVersionStateChanged( |
231 int64 version_id) { | 231 int64 version_id) { |
232 OnVersionUpdated(version_id); | 232 OnVersionUpdated(version_id); |
233 } | 233 } |
234 | 234 |
235 void ServiceWorkerHandler::ContextObserver::OnRegistrationStored( | 235 void ServiceWorkerHandler::ContextObserver::OnRegistrationStored( |
236 int64 registration_id, | 236 int64 registration_id, |
237 const GURL& pattern) { | 237 const GURL& pattern) { |
238 DCHECK(BrowserThread::CurrentlyOn(BrowserThread::IO)); | 238 DCHECK_CURRENTLY_ON(BrowserThread::IO); |
239 content::ServiceWorkerRegistration* registration = | 239 content::ServiceWorkerRegistration* registration = |
240 context_->context()->GetLiveRegistration(registration_id); | 240 context_->context()->GetLiveRegistration(registration_id); |
241 DCHECK(registration); | 241 DCHECK(registration); |
242 std::vector<ServiceWorkerRegistrationInfo> registrations; | 242 std::vector<ServiceWorkerRegistrationInfo> registrations; |
243 registrations.push_back(registration->GetInfo()); | 243 registrations.push_back(registration->GetInfo()); |
244 BrowserThread::PostTask( | 244 BrowserThread::PostTask( |
245 BrowserThread::UI, FROM_HERE, | 245 BrowserThread::UI, FROM_HERE, |
246 base::Bind(&ServiceWorkerHandler::OnWorkerRegistrationUpdated, handler_, | 246 base::Bind(&ServiceWorkerHandler::OnWorkerRegistrationUpdated, handler_, |
247 registrations)); | 247 registrations)); |
248 } | 248 } |
249 | 249 |
250 void ServiceWorkerHandler::ContextObserver::OnRegistrationDeleted( | 250 void ServiceWorkerHandler::ContextObserver::OnRegistrationDeleted( |
251 int64 registration_id, | 251 int64 registration_id, |
252 const GURL& pattern) { | 252 const GURL& pattern) { |
253 DCHECK(BrowserThread::CurrentlyOn(BrowserThread::IO)); | 253 DCHECK_CURRENTLY_ON(BrowserThread::IO); |
254 BrowserThread::PostTask( | 254 BrowserThread::PostTask( |
255 BrowserThread::UI, FROM_HERE, | 255 BrowserThread::UI, FROM_HERE, |
256 base::Bind(&ServiceWorkerHandler::OnWorkerRegistrationDeleted, handler_, | 256 base::Bind(&ServiceWorkerHandler::OnWorkerRegistrationDeleted, handler_, |
257 registration_id)); | 257 registration_id)); |
258 } | 258 } |
259 | 259 |
260 ServiceWorkerHandler::ServiceWorkerHandler() | 260 ServiceWorkerHandler::ServiceWorkerHandler() |
261 : enabled_(false), weak_factory_(this) { | 261 : enabled_(false), weak_factory_(this) { |
262 } | 262 } |
263 | 263 |
(...skipping 181 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
445 bool ServiceWorkerHandler::MatchesInspectedPage( | 445 bool ServiceWorkerHandler::MatchesInspectedPage( |
446 ServiceWorkerDevToolsAgentHost* host) { | 446 ServiceWorkerDevToolsAgentHost* host) { |
447 // TODO(pfeldman): match based on scope. | 447 // TODO(pfeldman): match based on scope. |
448 // TODO(pfeldman): match iframes. | 448 // TODO(pfeldman): match iframes. |
449 return host->GetURL().host() == url_.host(); | 449 return host->GetURL().host() == url_.host(); |
450 } | 450 } |
451 | 451 |
452 } // namespace service_worker | 452 } // namespace service_worker |
453 } // namespace devtools | 453 } // namespace devtools |
454 } // namespace content | 454 } // namespace content |
OLD | NEW |