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 2b2ec31a8b154344994cc28c9bfb9a3647624368..bd324e143b23fd6ee57df62d346d351a4abfce47 100644 |
--- a/chrome/browser/devtools/devtools_target_impl.cc |
+++ b/chrome/browser/devtools/devtools_target_impl.cc |
@@ -150,101 +150,30 @@ void WebContentsTarget::Inspect(Profile* profile) const { |
class WorkerTarget : public DevToolsTargetImpl { |
public: |
- explicit WorkerTarget(const WorkerService::WorkerInfo& worker_info); |
- |
explicit WorkerTarget(scoped_refptr<DevToolsAgentHost> agent_host); |
// DevToolsTargetImpl overrides: |
- virtual std::string GetType() const OVERRIDE; |
virtual void Inspect(Profile* profile) const OVERRIDE; |
}; |
-WorkerTarget::WorkerTarget(const WorkerService::WorkerInfo& worker) |
- : DevToolsTargetImpl(DevToolsAgentHost::GetForWorker(worker.process_id, |
- worker.route_id)) { |
- set_description(base::StringPrintf("Worker pid:%d", |
- base::GetProcId(worker.handle))); |
-} |
- |
-WorkerTarget::WorkerTarget( |
- scoped_refptr<DevToolsAgentHost> agent_host) |
+WorkerTarget::WorkerTarget(scoped_refptr<DevToolsAgentHost> agent_host) |
: DevToolsTargetImpl(agent_host) { |
-} |
- |
-std::string WorkerTarget::GetType() const { |
- switch (GetAgentHost()->GetType()) { |
+ switch (agent_host->GetType()) { |
case DevToolsAgentHost::TYPE_SHARED_WORKER: |
- return kTargetTypeWorker; |
+ set_type(kTargetTypeWorker); |
+ break; |
case DevToolsAgentHost::TYPE_SERVICE_WORKER: |
- return kTargetTypeServiceWorker; |
- default: |
+ set_type(kTargetTypeServiceWorker); |
break; |
+ default: |
+ NOTREACHED(); |
} |
- return kTargetTypeOther; |
} |
void WorkerTarget::Inspect(Profile* profile) const { |
DevToolsWindow::OpenDevToolsWindowForWorker(profile, GetAgentHost()); |
} |
-// Enumeration ---------------------------------------------------------------- |
- |
-DevToolsTargetImpl::List EnumerateWebContentsTargets() { |
- std::set<WebContents*> tab_web_contents; |
- for (TabContentsIterator it; !it.done(); it.Next()) |
- tab_web_contents.insert(*it); |
- |
- DCHECK(BrowserThread::CurrentlyOn(BrowserThread::UI)); |
- DevToolsTargetImpl::List result; |
- 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; |
-} |
- |
-void CreateWorkerTargets( |
- const std::vector<WorkerService::WorkerInfo>& worker_info, |
- DevToolsTargetImpl::Callback callback) { |
- DCHECK(BrowserThread::CurrentlyOn(BrowserThread::UI)); |
- DevToolsTargetImpl::List result; |
- for (size_t i = 0; i < worker_info.size(); ++i) { |
- result.push_back(new WorkerTarget(worker_info[i])); |
- } |
- callback.Run(result); |
-} |
- |
-void EnumerateWorkerTargets(DevToolsTargetImpl::Callback callback) { |
- DCHECK(BrowserThread::CurrentlyOn(BrowserThread::IO)); |
- content::BrowserThread::PostTask( |
- content::BrowserThread::UI, |
- FROM_HERE, |
- base::Bind(&CreateWorkerTargets, |
- WorkerService::GetInstance()->GetWorkers(), |
- callback)); |
-} |
- |
-void CollectAllTargets( |
- DevToolsTargetImpl::Callback callback, |
- const DevToolsTargetImpl::List& worker_targets) { |
- DCHECK(BrowserThread::CurrentlyOn(BrowserThread::UI)); |
- DevToolsTargetImpl::List result = EnumerateWebContentsTargets(); |
- result.insert(result.end(), worker_targets.begin(), worker_targets.end()); |
- |
- DevToolsAgentHost::List agents = DevToolsAgentHost::GetOrCreateAll(); |
- for (DevToolsAgentHost::List::iterator it = agents.begin(); |
- it != agents.end(); ++it) { |
- if ((*it)->GetType() == DevToolsAgentHost::TYPE_SERVICE_WORKER) |
- result.push_back(new WorkerTarget(*it)); |
- } |
- callback.Run(result); |
-} |
- |
} // namespace |
// DevToolsTargetImpl ---------------------------------------------------------- |
@@ -336,10 +265,34 @@ scoped_ptr<DevToolsTargetImpl> DevToolsTargetImpl::CreateForWebContents( |
// static |
void DevToolsTargetImpl::EnumerateAllTargets(Callback callback) { |
+ std::set<WebContents*> tab_web_contents; |
+ for (TabContentsIterator it; !it.done(); it.Next()) |
+ tab_web_contents.insert(*it); |
+ |
DCHECK(BrowserThread::CurrentlyOn(BrowserThread::UI)); |
horo
2014/09/16 07:41:37
Move to the top of the method.
dgozman
2014/09/16 08:55:33
Done.
|
- content::BrowserThread::PostTask( |
- content::BrowserThread::IO, |
- FROM_HERE, |
- base::Bind(&EnumerateWorkerTargets, |
- base::Bind(&CollectAllTargets, callback))); |
+ DevToolsTargetImpl::List result; |
+ DevToolsAgentHost::List agents = DevToolsAgentHost::GetOrCreateAll(); |
+ for (DevToolsAgentHost::List::iterator it = agents.begin(); |
+ it != agents.end(); ++it) { |
+ DevToolsAgentHost* agent_host = (*it).get(); |
+ switch (agent_host->GetType()) { |
+ case DevToolsAgentHost::TYPE_WEB_CONTENTS: |
+ if (WebContents* web_contents = agent_host->GetWebContents()) { |
+ bool is_tab = |
horo
2014/09/16 07:41:37
const
dgozman
2014/09/16 08:55:34
Done.
|
+ tab_web_contents.find(web_contents) != tab_web_contents.end(); |
+ result.push_back(new WebContentsTarget(web_contents, is_tab)); |
+ } |
+ break; |
+ case DevToolsAgentHost::TYPE_SHARED_WORKER: |
+ result.push_back(new WorkerTarget(agent_host)); |
+ break; |
+ case DevToolsAgentHost::TYPE_SERVICE_WORKER: |
+ result.push_back(new WorkerTarget(agent_host)); |
+ break; |
+ default: |
+ break; |
+ } |
+ } |
+ |
+ callback.Run(result); |
} |