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

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: Made DevToolsAgentHost::GetType return enum 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..c43e067b8f119deb5610f8a52679c807db9ead64 100644
--- a/chrome/browser/devtools/devtools_target_impl.cc
+++ b/chrome/browser/devtools/devtools_target_impl.cc
@@ -40,6 +40,7 @@ const char kTargetTypeWorker[] = "worker";
const char kTargetTypeWebView[] = "webview";
const char kTargetTypeIFrame[] = "iframe";
const char kTargetTypeOther[] = "other";
+const char kTargetTypeServiceWorker[] = "service_worker";
// WebContentsTarget --------------------------------------------------------
@@ -48,8 +49,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 +76,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 +127,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();
}
@@ -171,38 +152,33 @@ class WorkerTarget : public DevToolsTargetImpl {
public:
explicit WorkerTarget(const WorkerService::WorkerInfo& worker_info);
- // content::DevToolsTarget overrides:
- virtual bool Close() const OVERRIDE;
+ explicit WorkerTarget(scoped_refptr<DevToolsAgentHost> agent_host);
// DevToolsTargetImpl overrides:
+ virtual std::string GetType() const OVERRIDE;
virtual void Inspect(Profile* profile) const OVERRIDE;
-
- private:
- int process_id_;
- int route_id_;
};
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",
dgozman 2014/08/22 08:38:28 Leave set_description in this constructor.
vkuzkokov 2014/08/22 11:01:48 Done.
- base::GetProcId(worker.handle)));
- set_url(worker.url);
-
- process_id_ = worker.process_id;
- route_id_ = worker.route_id;
}
-static void TerminateWorker(int process_id, int route_id) {
- WorkerService::GetInstance()->TerminateWorker(process_id, route_id);
+WorkerTarget::WorkerTarget(
+ scoped_refptr<DevToolsAgentHost> agent_host)
+ : DevToolsTargetImpl(agent_host) {
}
-bool WorkerTarget::Close() const {
- content::BrowserThread::PostTask(content::BrowserThread::IO, FROM_HERE,
- base::Bind(&TerminateWorker, process_id_, route_id_));
- return true;
+std::string WorkerTarget::GetType() const {
+ switch (GetAgentHost()->GetType()) {
+ case DevToolsAgentHost::AGENT_HOST_SHARED_WORKER:
+ return kTargetTypeWorker;
+ case DevToolsAgentHost::AGENT_HOST_SERVICE_WORKER:
+ return kTargetTypeServiceWorker;
+ default:
+ {} // Do nothing.
+ }
+ return kTargetTypeOther;
}
void WorkerTarget::Inspect(Profile* profile) const {
@@ -218,7 +194,9 @@ DevToolsTargetImpl::~DevToolsTargetImpl() {
DevToolsTargetImpl::DevToolsTargetImpl(
scoped_refptr<DevToolsAgentHost> agent_host)
- : agent_host_(agent_host) {
+ : agent_host_(agent_host),
+ title_(agent_host->GetTitle()),
+ url_(agent_host->GetURL()) {
}
std::string DevToolsTargetImpl::GetParentId() const {
@@ -263,11 +241,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 +282,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 +322,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::AGENT_HOST_SERVICE_WORKER)
+ result.push_back(new WorkerTarget(*it));
+ }
callback.Run(result);
}

Powered by Google App Engine
This is Rietveld 408576698