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

Unified Diff: content/browser/devtools/embedded_worker_devtools_manager.cc

Issue 349033009: DevTools: Added service workers to chrome://inspect/#devices (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@master
Patch Set: Created 6 years, 6 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
« no previous file with comments | « content/browser/devtools/embedded_worker_devtools_manager.h ('k') | no next file » | no next file with comments »
Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
Index: content/browser/devtools/embedded_worker_devtools_manager.cc
diff --git a/content/browser/devtools/embedded_worker_devtools_manager.cc b/content/browser/devtools/embedded_worker_devtools_manager.cc
index 3ba61aafeea20e9b12ec8973ef32aa1e3f5cd7cb..2cfc0fd9c495383e353a4d4a9f886e66847d9a53 100644
--- a/content/browser/devtools/embedded_worker_devtools_manager.cc
+++ b/content/browser/devtools/embedded_worker_devtools_manager.cc
@@ -8,9 +8,12 @@
#include "content/browser/devtools/devtools_protocol.h"
#include "content/browser/devtools/devtools_protocol_constants.h"
#include "content/browser/devtools/ipc_devtools_agent_host.h"
+#include "content/browser/service_worker/service_worker_context_core.h"
+#include "content/browser/service_worker/service_worker_version.h"
#include "content/browser/shared_worker/shared_worker_instance.h"
#include "content/common/devtools_messages.h"
#include "content/public/browser/browser_thread.h"
+#include "content/public/browser/devtools_target.h"
#include "content/public/browser/render_process_host.h"
#include "content/public/browser/worker_service.h"
#include "ipc/ipc_listener.h"
@@ -173,13 +176,86 @@ class EmbeddedWorkerDevToolsManager::EmbeddedWorkerDevToolsAgentHost
DISALLOW_COPY_AND_ASSIGN(EmbeddedWorkerDevToolsAgentHost);
};
+class EmbeddedWorkerDevToolsManager::ServiceWorkerTarget
+ : public DevToolsTarget {
+ public:
pfeldman 2014/06/30 16:37:21 We can't implement DevToolsTarget in content. It i
vkuzkokov 2014/07/04 16:06:47 That would require a new interface which would mir
pfeldman 2014/07/05 20:17:09 Can we migrate to DTAH for everything instead?
+ ServiceWorkerTarget(
+ scoped_refptr<EmbeddedWorkerDevToolsAgentHost> agent_host)
+ : agent_host_(agent_host) {
+ }
+
+ virtual ~ServiceWorkerTarget() {
+ }
+
+ virtual std::string GetId() const OVERRIDE {
+ return agent_host_->GetId();
+ }
+
+ virtual std::string GetParentId() const OVERRIDE {
+ return "";
+ }
+
+ virtual std::string GetType() const OVERRIDE {
+ return "worker";
+ }
+
+ virtual std::string GetTitle() const OVERRIDE {
+ return "Service Worker";
+ }
+
+ virtual std::string GetDescription() const OVERRIDE {
+ return "Service Worker";
+ }
+
+ virtual GURL GetURL() const OVERRIDE {
+ return GURL();
+ }
+
+ virtual GURL GetFaviconURL() const OVERRIDE {
+ return GURL();
+ }
+
+ virtual base::TimeTicks GetLastActivityTime() const OVERRIDE {
+ return base::TimeTicks();
+ }
+
+ virtual bool IsAttached() const OVERRIDE {
+ return agent_host_->IsAttached();
+ }
+
+ virtual scoped_refptr<DevToolsAgentHost> GetAgentHost() const OVERRIDE {
+ return agent_host_;
+ }
+
+ virtual bool Activate() const OVERRIDE {
+ return false;
+ }
+
+ virtual bool Close() const OVERRIDE {
+ return EmbeddedWorkerDevToolsManager::GetInstance()->CloseServiceWorker(
+ agent_host_->worker_id());
+ }
+
+ private:
+ scoped_refptr<EmbeddedWorkerDevToolsAgentHost> agent_host_;
+ ServiceWorkerIdentifier* worker_id_;
+};
+
// static
EmbeddedWorkerDevToolsManager* EmbeddedWorkerDevToolsManager::GetInstance() {
DCHECK(BrowserThread::CurrentlyOn(BrowserThread::UI));
return Singleton<EmbeddedWorkerDevToolsManager>::get();
}
-DevToolsAgentHost* EmbeddedWorkerDevToolsManager::GetDevToolsAgentHostForWorker(
+DevToolsAgentHost*
+EmbeddedWorkerDevToolsManager::GetDevToolsAgentHostForWorker(
+ int worker_process_id,
+ int worker_route_id) {
+ return GetOrCreateAgentHost(worker_process_id, worker_route_id);
+}
+
+EmbeddedWorkerDevToolsManager::EmbeddedWorkerDevToolsAgentHost*
+EmbeddedWorkerDevToolsManager::GetOrCreateAgentHost(
int worker_process_id,
int worker_route_id) {
WorkerId id(worker_process_id, worker_route_id);
@@ -210,6 +286,20 @@ EmbeddedWorkerDevToolsManager::GetDevToolsAgentHostForServiceWorker(
return GetDevToolsAgentHostForWorker(it->first.first, it->first.second);
}
+std::vector<DevToolsTarget*>
+EmbeddedWorkerDevToolsManager::GetAllServiceWorkerTargets() {
+ std::vector<DevToolsTarget*> targets;
+ for (WorkerInfoMap::iterator it = workers_.begin();
+ it != workers_.end(); ++it) {
+ ServiceWorkerIdentifier* worker_id = it->second->service_worker_id();
+ if (!worker_id)
+ continue;
+ targets.push_back(new ServiceWorkerTarget(
+ GetOrCreateAgentHost(it->first.first, it->first.second)));
+ }
+ return targets;
+}
+
EmbeddedWorkerDevToolsManager::EmbeddedWorkerDevToolsManager()
: debug_service_worker_on_start_(false) {
}
@@ -372,6 +462,23 @@ void EmbeddedWorkerDevToolsManager::MoveToPausedState(
workers_.set(id, info.Pass());
}
+bool EmbeddedWorkerDevToolsManager::CloseServiceWorker(const WorkerId& id) {
+ return false;
+ //WorkerInfoMap::iterator it = workers_.find(id);
+ //if (it == workers_.end());
pfeldman 2014/06/30 16:37:21 Cleanup.
vkuzkokov 2014/07/04 16:06:47 Uncommented and finished
+ // return false;
+ //ServiceWorkerIdentifier* service_worker = it->second->service_worker_id();
+ //if (!service_worker)
+ // return false;
+ //ServiceWorkerVersion* version =
+ // service_worker->service_worker_context_->GetLiveVersion(
+ // service_worker->service_worker_version_id_);
+ //if (!version)
+ // return false;
+ //version->StopWorker(ServiceWorkerVersion::StatusCallback());
+ //return true;
+}
+
void EmbeddedWorkerDevToolsManager::ResetForTesting() {
workers_.clear();
}
« no previous file with comments | « content/browser/devtools/embedded_worker_devtools_manager.h ('k') | no next file » | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698