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

Unified Diff: chrome/browser/devtools/devtools_target_impl.cc

Issue 459403002: DevTools: Added service workers to remote debugging targets (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@master
Patch Set: Android fixes Created 6 years, 4 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 side-by-side diff with in-line comments
Download patch
« no previous file with comments | « chrome/browser/android/dev_tools_server.cc ('k') | content/browser/devtools/devtools_agent_host_impl.h » ('j') | no next file with comments »
Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
Index: chrome/browser/devtools/devtools_target_impl.cc
diff --git a/chrome/browser/devtools/devtools_target_impl.cc b/chrome/browser/devtools/devtools_target_impl.cc
index 7f2bfb061f47015254ff71a57e3da371cd446a8d..b930f233e781417a233cb9d32cc9b481aa576868 100644
--- a/chrome/browser/devtools/devtools_target_impl.cc
+++ b/chrome/browser/devtools/devtools_target_impl.cc
@@ -210,6 +210,25 @@ void WorkerTarget::Inspect(Profile* profile) const {
} // namespace
+// ServiceWorkerTarget ---------------------------------------------------------
+
+class ServiceWorkerTarget : public DevToolsTargetImpl {
+ public:
+ explicit ServiceWorkerTarget(scoped_refptr<DevToolsAgentHost> agent_host);
+ virtual void Inspect(Profile* profile) const OVERRIDE;
+};
+
+ServiceWorkerTarget::ServiceWorkerTarget(
+ scoped_refptr<DevToolsAgentHost> agent_host)
+ : DevToolsTargetImpl(agent_host) {
+ set_type(kTargetTypeWorker);
+ set_url(agent_host->GetURL());
+}
+
+void ServiceWorkerTarget::Inspect(Profile* profile) const {
+ DevToolsWindow::OpenDevToolsWindowForWorker(profile, GetAgentHost());
+}
+
// DevToolsTargetImpl ----------------------------------------------------------
DevToolsTargetImpl::~DevToolsTargetImpl() {
@@ -303,13 +322,14 @@ DevToolsTargetImpl::List DevToolsTargetImpl::EnumerateWebContentsTargets() {
DCHECK(BrowserThread::CurrentlyOn(BrowserThread::UI));
DevToolsTargetImpl::List result;
- std::vector<WebContents*> wc_list =
- content::DevToolsAgentHost::GetInspectableWebContents();
- for (std::vector<WebContents*>::iterator it = wc_list.begin();
- it != wc_list.end();
- ++it) {
- bool is_tab = tab_web_contents.find(*it) != tab_web_contents.end();
- result.push_back(new WebContentsTarget(*it, is_tab));
+ DevToolsAgentHost::List agents = DevToolsAgentHost::GetOrCreateAll();
+ for (DevToolsAgentHost::List::iterator it = agents.begin();
+ it != agents.end(); ++it) {
+ if (WebContents* web_contents = (*it)->GetWebContents()) {
+ bool is_tab =
+ tab_web_contents.find(web_contents) != tab_web_contents.end();
+ result.push_back(new WebContentsTarget(web_contents, is_tab));
+ }
}
return result;
}
@@ -342,7 +362,19 @@ static void CollectAllTargets(
DCHECK(BrowserThread::CurrentlyOn(BrowserThread::UI));
DevToolsTargetImpl::List result =
DevToolsTargetImpl::EnumerateWebContentsTargets();
- result.insert(result.begin(), worker_targets.begin(), worker_targets.end());
+ result.insert(result.end(), worker_targets.begin(), worker_targets.end());
+
+ std::set<scoped_refptr<DevToolsAgentHost> > used_agents;
+ for (DevToolsTargetImpl::List::iterator it = result.begin();
+ it != result.end(); ++it) {
+ used_agents.insert((*it)->GetAgentHost());
+ }
+ DevToolsAgentHost::List agents = DevToolsAgentHost::GetOrCreateAll();
+ for (DevToolsAgentHost::List::iterator it = agents.begin();
yurys 2014/08/12 12:14:45 Is it possible to use something like ServiceWorker
vkuzkokov 2014/08/13 06:35:19 Newly added DTAH::GetType() used instead.
+ it != agents.end(); ++it) {
+ if (used_agents.find(*it) == used_agents.end())
+ result.push_back(new ServiceWorkerTarget(*it));
+ }
callback.Run(result);
}
« no previous file with comments | « chrome/browser/android/dev_tools_server.cc ('k') | content/browser/devtools/devtools_agent_host_impl.h » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698