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

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

Issue 405603002: DevTools: Merge WorkerInfo into EmbeddedWorkerDevToolsAgentHost (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@master
Patch Set: 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
« no previous file with comments | « no previous file | 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..e6282acbbb8f119e25787db71fd6938cd1dac1eb 100644
--- a/content/browser/devtools/embedded_worker_devtools_manager.cc
+++ b/content/browser/devtools/embedded_worker_devtools_manager.cc
@@ -90,7 +90,7 @@ class EmbeddedWorkerDevToolsManager::EmbeddedWorkerDevToolsAgentHost
public:
explicit EmbeddedWorkerDevToolsAgentHost(WorkerId worker_id)
: worker_id_(worker_id), worker_attached_(false) {
- AttachToWorker();
+ WorkerCreated();
}
// DevToolsAgentHost override.
@@ -139,6 +139,13 @@ class EmbeddedWorkerDevToolsManager::EmbeddedWorkerDevToolsAgentHost
worker_attached_ = false;
if (RenderProcessHost* host = RenderProcessHost::FromID(worker_id_.first))
host->RemoveRoute(worker_id_.second);
+ }
+
+ void WorkerCreated() {
+ AddRef();
+ }
+
+ void WorkerDestroyed() {
Release();
}
@@ -162,7 +169,6 @@ class EmbeddedWorkerDevToolsManager::EmbeddedWorkerDevToolsAgentHost
if (worker_attached_)
return;
worker_attached_ = true;
- AddRef();
if (RenderProcessHost* host = RenderProcessHost::FromID(worker_id_.first))
host->AddRoute(worker_id_.second, this);
}
@@ -258,26 +264,24 @@ void EmbeddedWorkerDevToolsManager::WorkerDestroyed(int worker_process_id,
WorkerInfoMap::iterator it = workers_.find(id);
DCHECK(it != workers_.end());
WorkerInfo* info = it->second;
+ EmbeddedWorkerDevToolsAgentHost* agent_host = info->agent_host();
switch (info->state()) {
case WORKER_UNINSPECTED:
case WORKER_PAUSED_FOR_DEBUG_ON_START:
workers_.erase(it);
break;
case WORKER_INSPECTED: {
- EmbeddedWorkerDevToolsAgentHost* agent_host = info->agent_host();
info->set_state(WORKER_TERMINATED);
- if (!agent_host->IsAttached()) {
+ if (agent_host->IsAttached()) {
+ // Client host is debugging this worker agent host.
+ std::string notification =
+ DevToolsProtocol::CreateNotification(
+ devtools::Worker::disconnectedFromWorker::kName, NULL)
+ ->Serialize();
+ DevToolsManagerImpl::GetInstance()->DispatchOnInspectorFrontend(
+ agent_host, notification);
agent_host->DetachFromWorker();
- return;
}
- // Client host is debugging this worker agent host.
- std::string notification =
- DevToolsProtocol::CreateNotification(
- devtools::Worker::disconnectedFromWorker::kName, NULL)
- ->Serialize();
- DevToolsManagerImpl::GetInstance()->DispatchOnInspectorFrontend(
- agent_host, notification);
- agent_host->DetachFromWorker();
break;
}
case WORKER_TERMINATED:
@@ -291,6 +295,8 @@ void EmbeddedWorkerDevToolsManager::WorkerDestroyed(int worker_process_id,
break;
}
}
+ if (agent_host)
+ agent_host->WorkerDestroyed();
}
void EmbeddedWorkerDevToolsManager::WorkerContextStarted(int worker_process_id,
@@ -369,6 +375,8 @@ void EmbeddedWorkerDevToolsManager::MoveToPausedState(
DCHECK_EQ(WORKER_TERMINATED, it->second->state());
scoped_ptr<WorkerInfo> info = workers_.take_and_erase(it);
info->set_state(WORKER_PAUSED_FOR_REATTACH);
+ if (EmbeddedWorkerDevToolsAgentHost* agent_host = info->agent_host())
+ agent_host->WorkerCreated();
dgozman 2014/07/21 13:41:16 Why do we call WorkerCreated from within MoveToPau
vkuzkokov 2014/08/05 16:00:50 MoveToPausedState is renamed to WorkerRestarted
workers_.set(id, info.Pass());
}
« no previous file with comments | « no previous file | no next file » | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698