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

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. Rebased 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
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..bc297c070fe0f1eac42c43e7dfc47170fcbb5147 100644
--- a/chrome/browser/devtools/devtools_target_impl.cc
+++ b/chrome/browser/devtools/devtools_target_impl.cc
@@ -35,8 +35,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 +46,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 +73,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())
@@ -95,7 +89,7 @@ WebContentsTarget::WebContentsTarget(WebContents* web_contents, bool is_tab)
}
if (is_tab) {
- set_type(kTargetTypePage);
+ set_type(content::kAgentHostTypePage);
tab_id_ = extensions::ExtensionTabUtil::GetTabId(web_contents);
return;
}
@@ -130,22 +124,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 +163,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 +188,23 @@ 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) {
+}
+
+void ServiceWorkerTarget::Inspect(Profile* profile) const {
+ DevToolsWindow::OpenDevToolsWindowForWorker(profile, GetAgentHost());
+}
+
// DevToolsTargetImpl ----------------------------------------------------------
DevToolsTargetImpl::~DevToolsTargetImpl() {
@@ -218,7 +212,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 +260,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 +301,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 +341,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() == content::kAgentHostTypeServiceWorker)
+ result.push_back(new ServiceWorkerTarget(*it));
+ }
callback.Run(result);
}

Powered by Google App Engine
This is Rietveld 408576698