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

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

Issue 14051004: Minor clean up in WorkerDevToolsManager (Closed) Base URL: svn://svn.chromium.org/chrome/trunk/src
Patch Set: Created 7 years, 8 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/worker_devtools_manager.cc
diff --git a/content/browser/devtools/worker_devtools_manager.cc b/content/browser/devtools/worker_devtools_manager.cc
index db5cc7484f26fd0e3eafe6dda0935a7a16abc60a..d69be2b2b1bedb1def2bfcfbfa2ac992f7ab3d43 100644
--- a/content/browser/devtools/worker_devtools_manager.cc
+++ b/content/browser/devtools/worker_devtools_manager.cc
@@ -61,11 +61,12 @@ class WorkerDevToolsManager::WorkerDevToolsAgentHost
explicit WorkerDevToolsAgentHost(WorkerId worker_id)
: has_worker_id_(false) {
SetWorkerId(worker_id, false);
- AddRef(); // Balanced in ResetWorkerId.
}
void SetWorkerId(WorkerId worker_id, bool reattach) {
worker_id_ = worker_id;
+ if (!has_worker_id_)
+ AddRef(); // Balanced in ResetWorkerId.
has_worker_id_ = true;
g_agent_map.Get()[worker_id_] = this;
@@ -84,7 +85,7 @@ class WorkerDevToolsManager::WorkerDevToolsAgentHost
void ResetWorkerId() {
g_agent_map.Get().erase(worker_id_);
has_worker_id_ = false;
- Release();
+ Release(); // Balanced in SetWorkerId.
}
void SaveAgentRuntimeState(const std::string& state) {
@@ -97,10 +98,7 @@ class WorkerDevToolsManager::WorkerDevToolsAgentHost
}
private:
- virtual ~WorkerDevToolsAgentHost() {
- g_agent_map.Get().erase(worker_id_);
yurys 2013/04/15 05:24:18 Why did this move?
Vladislav Kaznacheev 2013/04/15 13:10:27 Because I needed to call a method from DetachedCli
- g_orphan_map.Get().erase(worker_id_);
- }
+ virtual ~WorkerDevToolsAgentHost();
static void ConnectToWorker(
int worker_process_id,
@@ -180,16 +178,16 @@ class WorkerDevToolsManager::DetachedClientHosts {
agent->ResetWorkerId();
}
- private:
- DetachedClientHosts() {}
- ~DetachedClientHosts() {}
-
static void RemovePendingWorkerData(WorkerId id) {
yurys 2013/04/15 05:24:18 Why do you need this method to be public?
BrowserThread::PostTask(
BrowserThread::IO, FROM_HERE,
base::Bind(&RemoveInspectedWorkerDataOnIOThread, id));
}
+ private:
+ DetachedClientHosts() {}
+ ~DetachedClientHosts() {}
+
static void RemoveInspectedWorkerDataOnIOThread(WorkerId id) {
WorkerDevToolsManager::GetInstance()->RemoveInspectedWorkerData(id);
}
@@ -441,4 +439,10 @@ void WorkerDevToolsManager::SendResumeToWorker(const WorkerId& id) {
process->Send(new DevToolsAgentMsg_ResumeWorkerContext(id.second));
}
+WorkerDevToolsManager::WorkerDevToolsAgentHost::~WorkerDevToolsAgentHost() {
+ DetachedClientHosts::RemovePendingWorkerData(worker_id_);
+ g_agent_map.Get().erase(worker_id_);
+ g_orphan_map.Get().erase(worker_id_);
+}
+
} // namespace content
« 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