| 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 |