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

Side by Side Diff: chrome/browser/devtools/devtools_target_impl.cc

Issue 349033009: DevTools: Added service workers to chrome://inspect/#devices (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@master
Patch Set: Added GetOrCreateAllHosts Created 6 years, 5 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 "chrome/browser/devtools/devtools_target_impl.h" 5 #include "chrome/browser/devtools/devtools_target_impl.h"
6 6
7 #include "base/strings/stringprintf.h" 7 #include "base/strings/stringprintf.h"
8 #include "base/strings/utf_string_conversions.h" 8 #include "base/strings/utf_string_conversions.h"
9 #include "chrome/browser/devtools/devtools_window.h" 9 #include "chrome/browser/devtools/devtools_window.h"
10 #include "chrome/browser/extensions/extension_tab_util.h" 10 #include "chrome/browser/extensions/extension_tab_util.h"
(...skipping 197 matching lines...) Expand 10 before | Expand all | Expand 10 after
208 bool WorkerTarget::Close() const { 208 bool WorkerTarget::Close() const {
209 content::BrowserThread::PostTask(content::BrowserThread::IO, FROM_HERE, 209 content::BrowserThread::PostTask(content::BrowserThread::IO, FROM_HERE,
210 base::Bind(&TerminateWorker, process_id_, route_id_)); 210 base::Bind(&TerminateWorker, process_id_, route_id_));
211 return true; 211 return true;
212 } 212 }
213 213
214 void WorkerTarget::Inspect(Profile* profile) const { 214 void WorkerTarget::Inspect(Profile* profile) const {
215 DevToolsWindow::OpenDevToolsWindowForWorker(profile, GetAgentHost()); 215 DevToolsWindow::OpenDevToolsWindowForWorker(profile, GetAgentHost());
216 } 216 }
217 217
218 class ServiceWorkerTarget : public DevToolsTargetImpl {
219 public:
220 explicit ServiceWorkerTarget(scoped_refptr<DevToolsAgentHost> agent_host);
221 virtual void Inspect(Profile* profile) const OVERRIDE;
222 };
223
224 ServiceWorkerTarget::ServiceWorkerTarget(
225 scoped_refptr<DevToolsAgentHost> agent_host)
226 : DevToolsTargetImpl(agent_host) {
227 set_type(kTargetTypeWorker);
228 set_title("Service Worker");
229 set_url(agent_host->GetURL());
230 }
231
232 void ServiceWorkerTarget::Inspect(Profile* profile) const {
233 DevToolsWindow::OpenDevToolsWindowForWorker(profile, GetAgentHost());
234 }
235
218 } // namespace 236 } // namespace
219 237
220 // DevToolsTargetImpl ---------------------------------------------------------- 238 // DevToolsTargetImpl ----------------------------------------------------------
221 239
222 DevToolsTargetImpl::~DevToolsTargetImpl() { 240 DevToolsTargetImpl::~DevToolsTargetImpl() {
223 } 241 }
224 242
225 DevToolsTargetImpl::DevToolsTargetImpl( 243 DevToolsTargetImpl::DevToolsTargetImpl(
226 scoped_refptr<DevToolsAgentHost> agent_host) 244 scoped_refptr<DevToolsAgentHost> agent_host)
227 : agent_host_(agent_host) { 245 : agent_host_(agent_host) {
(...skipping 85 matching lines...) Expand 10 before | Expand all | Expand 10 after
313 for (std::vector<RenderViewHost*>::iterator it = rvh_list.begin(); 331 for (std::vector<RenderViewHost*>::iterator it = rvh_list.begin();
314 it != rvh_list.end(); ++it) { 332 it != rvh_list.end(); ++it) {
315 bool is_tab = tab_rvhs.find(*it) != tab_rvhs.end(); 333 bool is_tab = tab_rvhs.find(*it) != tab_rvhs.end();
316 result.push_back(new RenderViewHostTarget(*it, is_tab)); 334 result.push_back(new RenderViewHostTarget(*it, is_tab));
317 } 335 }
318 return result; 336 return result;
319 } 337 }
320 338
321 static void CreateWorkerTargets( 339 static void CreateWorkerTargets(
322 const std::vector<WorkerService::WorkerInfo>& worker_info, 340 const std::vector<WorkerService::WorkerInfo>& worker_info,
323 DevToolsTargetImpl::Callback callback) { 341 const DevToolsTargetImpl::Callback& callback) {
324 DCHECK(BrowserThread::CurrentlyOn(BrowserThread::UI)); 342 DCHECK(BrowserThread::CurrentlyOn(BrowserThread::UI));
325 DevToolsTargetImpl::List result; 343 DevToolsTargetImpl::List result;
326 for (size_t i = 0; i < worker_info.size(); ++i) { 344 for (size_t i = 0; i < worker_info.size(); ++i) {
327 result.push_back(new WorkerTarget(worker_info[i])); 345 result.push_back(new WorkerTarget(worker_info[i]));
328 } 346 }
329 callback.Run(result); 347 callback.Run(result);
330 } 348 }
331 349
332 // static 350 // static
333 void DevToolsTargetImpl::EnumerateWorkerTargets(Callback callback) { 351 void DevToolsTargetImpl::EnumerateWorkerTargets(Callback callback) {
334 DCHECK(BrowserThread::CurrentlyOn(BrowserThread::IO)); 352 DCHECK(BrowserThread::CurrentlyOn(BrowserThread::IO));
335 content::BrowserThread::PostTask( 353 content::BrowserThread::PostTask(
336 content::BrowserThread::UI, 354 content::BrowserThread::UI,
337 FROM_HERE, 355 FROM_HERE,
338 base::Bind(&CreateWorkerTargets, 356 base::Bind(&CreateWorkerTargets,
339 WorkerService::GetInstance()->GetWorkers(), 357 WorkerService::GetInstance()->GetWorkers(),
340 callback)); 358 callback));
341 } 359 }
342 360
343 static void CollectAllTargets( 361 static void CollectAllTargets(const DevToolsTargetImpl::Callback& callback,
344 DevToolsTargetImpl::Callback callback, 362 const DevToolsTargetImpl::List& worker_targets,
345 const DevToolsTargetImpl::List& worker_targets) { 363 const DevToolsAgentHost::List& agent_hosts) {
346 DCHECK(BrowserThread::CurrentlyOn(BrowserThread::UI)); 364 DCHECK(BrowserThread::CurrentlyOn(BrowserThread::UI));
347 DevToolsTargetImpl::List result = 365 DevToolsTargetImpl::List result =
348 DevToolsTargetImpl::EnumerateRenderViewHostTargets(); 366 DevToolsTargetImpl::EnumerateRenderViewHostTargets();
349 result.insert(result.begin(), worker_targets.begin(), worker_targets.end()); 367 result.insert(result.begin(), worker_targets.begin(), worker_targets.end());
368 std::set<scoped_refptr<DevToolsAgentHost> > used_hosts;
369 for (DevToolsTargetImpl::List::iterator it = result.begin();
370 it != result.end(); ++it) {
371 used_hosts.insert((*it)->GetAgentHost());
372 }
373 for (DevToolsAgentHost::List::const_iterator it = agent_hosts.begin();
374 it != agent_hosts.end(); ++it) {
375 if (used_hosts.find(*it) == used_hosts.end())
376 result.push_back(new ServiceWorkerTarget(*it));
377 }
350 callback.Run(result); 378 callback.Run(result);
351 } 379 }
352 380
381 static void CollectWorkers(const DevToolsTargetImpl::Callback& callback,
dgozman 2014/07/14 11:17:24 I'd rename this one to CollectAllTargets and it's
382 const DevToolsTargetImpl::List& worker_targets) {
383 DCHECK(BrowserThread::CurrentlyOn(BrowserThread::UI));
384 DevToolsAgentHost::GetOrCreateAllHosts(
385 base::Bind(&CollectAllTargets, callback, worker_targets));
386 }
387
353 // static 388 // static
354 void DevToolsTargetImpl::EnumerateAllTargets(Callback callback) { 389 void DevToolsTargetImpl::EnumerateAllTargets(Callback callback) {
355 DCHECK(BrowserThread::CurrentlyOn(BrowserThread::UI)); 390 DCHECK(BrowserThread::CurrentlyOn(BrowserThread::UI));
356 content::BrowserThread::PostTask( 391 content::BrowserThread::PostTask(
357 content::BrowserThread::IO, 392 content::BrowserThread::IO,
358 FROM_HERE, 393 FROM_HERE,
359 base::Bind(&DevToolsTargetImpl::EnumerateWorkerTargets, 394 base::Bind(&DevToolsTargetImpl::EnumerateWorkerTargets,
dgozman 2014/07/14 11:17:24 This method should be called EnumerateSharedWorker
360 base::Bind(&CollectAllTargets, callback))); 395 base::Bind(&CollectWorkers, callback)));
361 } 396 }
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698