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

Side by Side Diff: content/browser/service_worker/service_worker_context_wrapper.cc

Issue 251653003: Introduces DevToolsManagerDelegate. (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@master
Patch Set: rebase Created 6 years, 7 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 2013 The Chromium Authors. All rights reserved. 1 // Copyright 2013 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/service_worker/service_worker_context_wrapper.h" 5 #include "content/browser/service_worker/service_worker_context_wrapper.h"
6 6
7 #include "base/files/file_path.h" 7 #include "base/files/file_path.h"
8 #include "content/browser/service_worker/service_worker_context_core.h" 8 #include "content/browser/service_worker/service_worker_context_core.h"
9 #include "content/browser/service_worker/service_worker_context_observer.h" 9 #include "content/browser/service_worker/service_worker_context_observer.h"
10 #include "content/browser/service_worker/service_worker_process_manager.h" 10 #include "content/browser/service_worker/service_worker_process_manager.h"
11 #include "content/public/browser/browser_thread.h" 11 #include "content/public/browser/browser_thread.h"
12 #include "webkit/browser/quota/quota_manager_proxy.h" 12 #include "webkit/browser/quota/quota_manager_proxy.h"
13 13
14 namespace content { 14 namespace content {
15 15
16 ServiceWorkerContextWrapper::ServiceWorkerContextWrapper( 16 ServiceWorkerContextWrapper::ServiceWorkerContextWrapper(
17 BrowserContext* browser_context) 17 BrowserContext* browser_context)
18 : observer_list_( 18 : observer_list_(
19 new ObserverListThreadSafe<ServiceWorkerContextObserver>()), 19 new ObserverListThreadSafe<ServiceWorkerContextObserver>()),
20 browser_context_(browser_context) { 20 browser_context_(browser_context) {
21 observer_list_->AddObserver(this);
michaeln 2014/05/01 02:52:07 this should always be called on the UI thread, we'
horo 2014/05/01 04:52:32 Done. Moved to Init().
21 } 22 }
22 23
23 ServiceWorkerContextWrapper::~ServiceWorkerContextWrapper() { 24 ServiceWorkerContextWrapper::~ServiceWorkerContextWrapper() {
25 observer_list_->RemoveObserver(this);
michaeln 2014/05/01 02:52:07 does ObserverListThreadSafe require that an observ
horo 2014/05/01 04:52:32 Done. Moved to Shutdown().
24 } 26 }
25 27
26 void ServiceWorkerContextWrapper::Init( 28 void ServiceWorkerContextWrapper::Init(
27 const base::FilePath& user_data_directory, 29 const base::FilePath& user_data_directory,
28 quota::QuotaManagerProxy* quota_manager_proxy) { 30 quota::QuotaManagerProxy* quota_manager_proxy) {
29 if (!BrowserThread::CurrentlyOn(BrowserThread::IO)) { 31 if (!BrowserThread::CurrentlyOn(BrowserThread::IO)) {
30 BrowserThread::PostTask( 32 BrowserThread::PostTask(
31 BrowserThread::IO, 33 BrowserThread::IO,
32 FROM_HERE, 34 FROM_HERE,
33 base::Bind(&ServiceWorkerContextWrapper::Init, 35 base::Bind(&ServiceWorkerContextWrapper::Init,
(...skipping 89 matching lines...) Expand 10 before | Expand all | Expand 10 after
123 return; 125 return;
124 } 126 }
125 127
126 context()->UnregisterServiceWorker( 128 context()->UnregisterServiceWorker(
127 pattern, 129 pattern,
128 source_process_id, 130 source_process_id,
129 NULL /* provider_host */, 131 NULL /* provider_host */,
130 base::Bind(&FinishUnregistrationOnIO, continuation)); 132 base::Bind(&FinishUnregistrationOnIO, continuation));
131 } 133 }
132 134
135 void ServiceWorkerContextWrapper::AddStatusChangeCallback(
136 const base::Callback<void(void)>& callback) {
137 DCHECK(BrowserThread::CurrentlyOn(BrowserThread::UI));
138 return status_change_callbacks_.push_back(callback);
139 }
140
141 void ServiceWorkerContextWrapper::RemoveStatusChangeCallback(
142 const base::Callback<void(void)>& callback) {
143 DCHECK(BrowserThread::CurrentlyOn(BrowserThread::UI));
144 for (std::vector<base::Callback<void(void)> >::iterator it =
145 status_change_callbacks_.begin();
146 it != status_change_callbacks_.end();) {
147 if (it->Equals(callback)) {
148 it = status_change_callbacks_.erase(it);
149 } else {
150 ++it;
151 }
152 }
153 }
154
133 void ServiceWorkerContextWrapper::AddObserver( 155 void ServiceWorkerContextWrapper::AddObserver(
134 ServiceWorkerContextObserver* observer) { 156 ServiceWorkerContextObserver* observer) {
135 observer_list_->AddObserver(observer); 157 observer_list_->AddObserver(observer);
136 } 158 }
137 159
138 void ServiceWorkerContextWrapper::RemoveObserver( 160 void ServiceWorkerContextWrapper::RemoveObserver(
139 ServiceWorkerContextObserver* observer) { 161 ServiceWorkerContextObserver* observer) {
140 observer_list_->RemoveObserver(observer); 162 observer_list_->RemoveObserver(observer);
141 } 163 }
142 164
165 void ServiceWorkerContextWrapper::GetRunningServiceWorkerInfo(
166 const GetRunningServiceWorkerInfoCallback& callback) {
167 // TODO(horo): Implement this.
168 NOTIMPLEMENTED();
169 }
170
171 void ServiceWorkerContextWrapper::OnWorkerStarted(int64 version_id,
172 int process_id,
173 int thread_id) {
174 CallStatusChangeCallback();
175 }
176
177 void ServiceWorkerContextWrapper::OnWorkerStopped(int64 version_id,
178 int process_id,
179 int thread_id) {
180 CallStatusChangeCallback();
181 }
182
183 void ServiceWorkerContextWrapper::OnVersionStateChanged(int64 version_id) {
184 CallStatusChangeCallback();
185 }
186
187 void ServiceWorkerContextWrapper::CallStatusChangeCallback() {
188 DCHECK(BrowserThread::CurrentlyOn(BrowserThread::UI));
189 for (size_t i = 0; i < status_change_callbacks_.size(); ++i) {
190 status_change_callbacks_[i].Run();
191 }
192 }
193
143 } // namespace content 194 } // namespace content
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698