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 04c7ab672e3c9eec04c40b079aead69a3bceef67..5936e813fce27348f741a79277f0f265ca280fd6 100644 |
--- a/chrome/browser/devtools/devtools_target_impl.cc |
+++ b/chrome/browser/devtools/devtools_target_impl.cc |
@@ -36,7 +36,6 @@ namespace { |
const char kTargetTypeApp[] = "app"; |
const char kTargetTypeBackgroundPage[] = "background_page"; |
const char kTargetTypePage[] = "page"; |
-const char kTargetTypeWorker[] = "worker"; |
const char kTargetTypeWebView[] = "webview"; |
const char kTargetTypeIFrame[] = "iframe"; |
const char kTargetTypeOther[] = "other"; |
@@ -48,8 +47,6 @@ class WebContentsTarget : public DevToolsTargetImpl { |
WebContentsTarget(WebContents* web_contents, bool is_tab); |
// DevToolsTargetImpl overrides: |
- virtual bool Activate() const OVERRIDE; |
- virtual bool Close() const OVERRIDE; |
virtual WebContents* GetWebContents() const OVERRIDE; |
virtual int GetTabId() const OVERRIDE; |
virtual std::string GetExtensionId() const OVERRIDE; |
@@ -77,8 +74,6 @@ WebContentsTarget::WebContentsTarget(WebContents* web_contents, bool is_tab) |
return; |
} |
- set_title(base::UTF16ToUTF8(web_contents->GetTitle())); |
- set_url(web_contents->GetURL()); |
content::NavigationController& controller = web_contents->GetController(); |
content::NavigationEntry* entry = controller.GetActiveEntry(); |
if (entry != NULL && entry->GetURL().is_valid()) |
@@ -130,22 +125,6 @@ WebContentsTarget::WebContentsTarget(WebContents* web_contents, bool is_tab) |
ExtensionIconSet::MATCH_BIGGER, false, NULL)); |
} |
-bool WebContentsTarget::Activate() const { |
- WebContents* web_contents = GetWebContents(); |
- if (!web_contents) |
- return false; |
- web_contents->GetDelegate()->ActivateContents(web_contents); |
- return true; |
-} |
- |
-bool WebContentsTarget::Close() const { |
- WebContents* web_contents = GetWebContents(); |
- if (!web_contents) |
- return false; |
- web_contents->GetRenderViewHost()->ClosePage(); |
- return true; |
-} |
- |
WebContents* WebContentsTarget::GetWebContents() const { |
return GetAgentHost()->GetWebContents(); |
} |
@@ -185,7 +164,6 @@ class WorkerTarget : public DevToolsTargetImpl { |
WorkerTarget::WorkerTarget(const WorkerService::WorkerInfo& worker) |
: DevToolsTargetImpl(DevToolsAgentHost::GetForWorker(worker.process_id, |
worker.route_id)) { |
- set_type(kTargetTypeWorker); |
set_title(base::UTF16ToUTF8(worker.name)); |
set_description(base::StringPrintf("Worker pid:%d", |
base::GetProcId(worker.handle))); |
@@ -211,6 +189,23 @@ void WorkerTarget::Inspect(Profile* profile) const { |
} // namespace |
+// ServiceWorkerTarget --------------------------------------------------------- |
+ |
+class ServiceWorkerTarget : public DevToolsTargetImpl { |
dgozman
2014/08/21 11:50:24
You should remove this class and update WorkerTarg
vkuzkokov
2014/08/21 14:17:52
Done.
|
+ 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) { |
+} |
+ |
+void ServiceWorkerTarget::Inspect(Profile* profile) const { |
+ DevToolsWindow::OpenDevToolsWindowForWorker(profile, GetAgentHost()); |
+} |
+ |
// DevToolsTargetImpl ---------------------------------------------------------- |
DevToolsTargetImpl::~DevToolsTargetImpl() { |
@@ -218,7 +213,10 @@ DevToolsTargetImpl::~DevToolsTargetImpl() { |
DevToolsTargetImpl::DevToolsTargetImpl( |
scoped_refptr<DevToolsAgentHost> agent_host) |
- : agent_host_(agent_host) { |
+ : agent_host_(agent_host), |
+ type_(agent_host->GetType()), |
+ title_(agent_host->GetTitle()), |
+ url_(agent_host->GetURL()) { |
} |
std::string DevToolsTargetImpl::GetParentId() const { |
@@ -263,11 +261,11 @@ bool DevToolsTargetImpl::IsAttached() const { |
} |
bool DevToolsTargetImpl::Activate() const { |
- return false; |
+ return agent_host_->Activate(); |
} |
bool DevToolsTargetImpl::Close() const { |
- return false; |
+ return agent_host_->Close(); |
} |
int DevToolsTargetImpl::GetTabId() const { |
@@ -304,13 +302,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; |
} |
@@ -343,7 +342,14 @@ 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()); |
+ |
+ DevToolsAgentHost::List agents = DevToolsAgentHost::GetOrCreateAll(); |
+ for (DevToolsAgentHost::List::iterator it = agents.begin(); |
+ it != agents.end(); ++it) { |
+ if ((*it)->GetType() == DevToolsAgentHost::kTypeServiceWorker) |
+ result.push_back(new ServiceWorkerTarget(*it)); |
+ } |
callback.Run(result); |
} |