blob: b823ea7af3e92f7dcc6b9b66d442ddc1a03462c7 [file] [log] [blame]
// Copyright 2014 The Chromium Authors. All rights reserved.
// Use of this source code is governed by a BSD-style license that can be
// found in the LICENSE file.
#include "content/browser/devtools/shared_worker_devtools_agent_host.h"
#include "base/strings/utf_string_conversions.h"
#include "content/browser/devtools/shared_worker_devtools_manager.h"
#include "content/browser/shared_worker/shared_worker_instance.h"
#include "content/browser/shared_worker/shared_worker_service_impl.h"
#include "content/public/browser/browser_thread.h"
namespace content {
namespace {
void TerminateSharedWorkerOnIO(
WorkerDevToolsAgentHost::WorkerId worker_id) {
SharedWorkerServiceImpl::GetInstance()->TerminateWorker(
worker_id.first, worker_id.second);
}
} // namespace
SharedWorkerDevToolsAgentHost::SharedWorkerDevToolsAgentHost(
WorkerId worker_id,
const SharedWorkerInstance& shared_worker)
: WorkerDevToolsAgentHost(worker_id),
shared_worker_(new SharedWorkerInstance(shared_worker)) {
}
DevToolsAgentHost::Type SharedWorkerDevToolsAgentHost::GetType() {
return TYPE_SHARED_WORKER;
}
std::string SharedWorkerDevToolsAgentHost::GetTitle() {
return base::UTF16ToUTF8(shared_worker_->name());
}
GURL SharedWorkerDevToolsAgentHost::GetURL() {
return shared_worker_->url();
}
bool SharedWorkerDevToolsAgentHost::Activate() {
return false;
}
bool SharedWorkerDevToolsAgentHost::Close() {
BrowserThread::PostTask(BrowserThread::IO, FROM_HERE,
base::Bind(&TerminateSharedWorkerOnIO, worker_id()));
return true;
}
bool SharedWorkerDevToolsAgentHost::Matches(
const SharedWorkerInstance& other) {
return shared_worker_->Matches(other);
}
SharedWorkerDevToolsAgentHost::~SharedWorkerDevToolsAgentHost() {
SharedWorkerDevToolsManager::GetInstance()->RemoveInspectedWorkerData(
worker_id());
}
} // namespace content