Chromium Code Reviews| 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); |
| } |