| Index: content/browser/devtools/shared_worker_devtools_manager.cc
|
| diff --git a/content/browser/devtools/shared_worker_devtools_manager.cc b/content/browser/devtools/shared_worker_devtools_manager.cc
|
| index e85dfc7a3be9e211beea54e468a87c23a44a3b3e..d29769843c0ddccc923bc664c596d2903d7cfff7 100644
|
| --- a/content/browser/devtools/shared_worker_devtools_manager.cc
|
| +++ b/content/browser/devtools/shared_worker_devtools_manager.cc
|
| @@ -17,39 +17,92 @@ SharedWorkerDevToolsManager* SharedWorkerDevToolsManager::GetInstance() {
|
| return Singleton<SharedWorkerDevToolsManager>::get();
|
| }
|
|
|
| +DevToolsAgentHostImpl*
|
| +SharedWorkerDevToolsManager::GetDevToolsAgentHostForWorker(
|
| + int worker_process_id,
|
| + int worker_route_id) {
|
| + AgentHostMap::iterator it = workers_.find(
|
| + WorkerId(worker_process_id, worker_route_id));
|
| + return it == workers_.end() ? NULL : it->second;
|
| +}
|
| +
|
| +void SharedWorkerDevToolsManager::AddAllAgentHosts(
|
| + DevToolsAgentHost::List* result) {
|
| + for (auto& worker : workers_) {
|
| + if (!worker.second->IsTerminated())
|
| + result->push_back(worker.second);
|
| + }
|
| +}
|
| +
|
| bool SharedWorkerDevToolsManager::WorkerCreated(
|
| int worker_process_id,
|
| int worker_route_id,
|
| const SharedWorkerInstance& instance) {
|
| DCHECK(BrowserThread::CurrentlyOn(BrowserThread::UI));
|
| const WorkerId id(worker_process_id, worker_route_id);
|
| - AgentHostMap::iterator it = FindExistingWorkerAgentHost(instance);
|
| - if (it == workers().end()) {
|
| - WorkerDevToolsManager::WorkerCreated(
|
| - id,
|
| - new SharedWorkerDevToolsAgentHost(id, instance));
|
| + AgentHostMap::iterator it =
|
| + FindExistingWorkerAgentHost(instance);
|
| + if (it == workers_.end()) {
|
| + workers_[id] = new SharedWorkerDevToolsAgentHost(id, instance);
|
| + DevToolsManager::GetInstance()->AgentHostChanged(workers_[id]);
|
| return false;
|
| }
|
| - WorkerRestarted(id, it);
|
| +
|
| + // Worker restarted.
|
| + SharedWorkerDevToolsAgentHost* agent_host = it->second;
|
| + agent_host->WorkerRestarted(id);
|
| + workers_.erase(it);
|
| + workers_[id] = agent_host;
|
| + DevToolsManager::GetInstance()->AgentHostChanged(agent_host);
|
| return true;
|
| }
|
|
|
| +void SharedWorkerDevToolsManager::WorkerReadyForInspection(
|
| + int worker_process_id,
|
| + int worker_route_id) {
|
| + DCHECK(BrowserThread::CurrentlyOn(BrowserThread::UI));
|
| + const WorkerId id(worker_process_id, worker_route_id);
|
| + AgentHostMap::iterator it = workers_.find(id);
|
| + DCHECK(it != workers_.end());
|
| + it->second->WorkerReadyForInspection();
|
| +}
|
| +
|
| +void SharedWorkerDevToolsManager::WorkerDestroyed(
|
| + int worker_process_id,
|
| + int worker_route_id) {
|
| + DCHECK(BrowserThread::CurrentlyOn(BrowserThread::UI));
|
| + const WorkerId id(worker_process_id, worker_route_id);
|
| + AgentHostMap::iterator it = workers_.find(id);
|
| + DCHECK(it != workers_.end());
|
| + scoped_refptr<SharedWorkerDevToolsAgentHost> agent_host(it->second);
|
| + agent_host->WorkerDestroyed();
|
| + DevToolsManager::GetInstance()->AgentHostChanged(agent_host);
|
| +}
|
| +
|
| +void SharedWorkerDevToolsManager::RemoveInspectedWorkerData(WorkerId id) {
|
| + DCHECK(BrowserThread::CurrentlyOn(BrowserThread::UI));
|
| + workers_.erase(id);
|
| +}
|
| +SharedWorkerDevToolsManager::SharedWorkerDevToolsManager() {
|
| +}
|
| +
|
| +SharedWorkerDevToolsManager::~SharedWorkerDevToolsManager() {
|
| +}
|
| +
|
| SharedWorkerDevToolsManager::AgentHostMap::iterator
|
| SharedWorkerDevToolsManager::FindExistingWorkerAgentHost(
|
| const SharedWorkerInstance& instance) {
|
| - AgentHostMap::iterator it = workers().begin();
|
| - for (; it != workers().end(); ++it) {
|
| - if (static_cast<SharedWorkerDevToolsAgentHost*>(
|
| - it->second)->Matches(instance))
|
| + AgentHostMap::iterator it = workers_.begin();
|
| + for (; it != workers_.end(); ++it) {
|
| + if (it->second->Matches(instance))
|
| break;
|
| }
|
| return it;
|
| }
|
|
|
| -SharedWorkerDevToolsManager::SharedWorkerDevToolsManager() {
|
| +void SharedWorkerDevToolsManager::ResetForTesting() {
|
| + workers_.clear();
|
| }
|
|
|
| -SharedWorkerDevToolsManager::~SharedWorkerDevToolsManager() {
|
| -}
|
|
|
| } // namespace content
|
|
|