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

Unified Diff: chrome/browser/devtools/devtools_target_impl.cc

Issue 349033009: DevTools: Added service workers to chrome://inspect/#devices (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@master
Patch Set: Added GetOrCreateAllHosts Created 6 years, 5 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 62f6354aa5ca704c86d66f4eb6eb183372155c87..9380b2c15bc60a311121ab7e7d0a195c1972efbd 100644
--- a/chrome/browser/devtools/devtools_target_impl.cc
+++ b/chrome/browser/devtools/devtools_target_impl.cc
@@ -215,6 +215,24 @@ void WorkerTarget::Inspect(Profile* profile) const {
DevToolsWindow::OpenDevToolsWindowForWorker(profile, GetAgentHost());
}
+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) {
+ set_type(kTargetTypeWorker);
+ set_title("Service Worker");
+ set_url(agent_host->GetURL());
+}
+
+void ServiceWorkerTarget::Inspect(Profile* profile) const {
+ DevToolsWindow::OpenDevToolsWindowForWorker(profile, GetAgentHost());
+}
+
} // namespace
// DevToolsTargetImpl ----------------------------------------------------------
@@ -320,7 +338,7 @@ DevToolsTargetImpl::List DevToolsTargetImpl::EnumerateRenderViewHostTargets() {
static void CreateWorkerTargets(
const std::vector<WorkerService::WorkerInfo>& worker_info,
- DevToolsTargetImpl::Callback callback) {
+ const DevToolsTargetImpl::Callback& callback) {
DCHECK(BrowserThread::CurrentlyOn(BrowserThread::UI));
DevToolsTargetImpl::List result;
for (size_t i = 0; i < worker_info.size(); ++i) {
@@ -340,16 +358,33 @@ void DevToolsTargetImpl::EnumerateWorkerTargets(Callback callback) {
callback));
}
-static void CollectAllTargets(
- DevToolsTargetImpl::Callback callback,
- const DevToolsTargetImpl::List& worker_targets) {
+static void CollectAllTargets(const DevToolsTargetImpl::Callback& callback,
+ const DevToolsTargetImpl::List& worker_targets,
+ const DevToolsAgentHost::List& agent_hosts) {
DCHECK(BrowserThread::CurrentlyOn(BrowserThread::UI));
DevToolsTargetImpl::List result =
DevToolsTargetImpl::EnumerateRenderViewHostTargets();
result.insert(result.begin(), worker_targets.begin(), worker_targets.end());
+ std::set<scoped_refptr<DevToolsAgentHost> > used_hosts;
+ for (DevToolsTargetImpl::List::iterator it = result.begin();
+ it != result.end(); ++it) {
+ used_hosts.insert((*it)->GetAgentHost());
+ }
+ for (DevToolsAgentHost::List::const_iterator it = agent_hosts.begin();
+ it != agent_hosts.end(); ++it) {
+ if (used_hosts.find(*it) == used_hosts.end())
+ result.push_back(new ServiceWorkerTarget(*it));
+ }
callback.Run(result);
}
+static void CollectWorkers(const DevToolsTargetImpl::Callback& callback,
dgozman 2014/07/14 11:17:24 I'd rename this one to CollectAllTargets and it's
+ const DevToolsTargetImpl::List& worker_targets) {
+ DCHECK(BrowserThread::CurrentlyOn(BrowserThread::UI));
+ DevToolsAgentHost::GetOrCreateAllHosts(
+ base::Bind(&CollectAllTargets, callback, worker_targets));
+}
+
// static
void DevToolsTargetImpl::EnumerateAllTargets(Callback callback) {
DCHECK(BrowserThread::CurrentlyOn(BrowserThread::UI));
@@ -357,5 +392,5 @@ void DevToolsTargetImpl::EnumerateAllTargets(Callback callback) {
content::BrowserThread::IO,
FROM_HERE,
base::Bind(&DevToolsTargetImpl::EnumerateWorkerTargets,
dgozman 2014/07/14 11:17:24 This method should be called EnumerateSharedWorker
- base::Bind(&CollectAllTargets, callback)));
+ base::Bind(&CollectWorkers, callback)));
}

Powered by Google App Engine
This is Rietveld 408576698