| Index: content/browser/service_worker/service_worker_internals_ui.cc
|
| diff --git a/content/browser/service_worker/service_worker_internals_ui.cc b/content/browser/service_worker/service_worker_internals_ui.cc
|
| index 9e0ab948477537e0568301bf2a61d751ed4215f6..84dddaa0ef3e536ea2d835a927922ad64c507d44 100644
|
| --- a/content/browser/service_worker/service_worker_internals_ui.cc
|
| +++ b/content/browser/service_worker/service_worker_internals_ui.cc
|
| @@ -11,6 +11,8 @@
|
| #include "base/memory/scoped_vector.h"
|
| #include "base/strings/string_number_conversions.h"
|
| #include "base/values.h"
|
| +#include "content/browser/devtools/devtools_manager_impl.h"
|
| +#include "content/browser/devtools/embedded_worker_devtools_manager.h"
|
| #include "content/browser/service_worker/service_worker_context_observer.h"
|
| #include "content/browser/service_worker/service_worker_context_wrapper.h"
|
| #include "content/browser/service_worker/service_worker_registration.h"
|
| @@ -200,6 +202,10 @@ ServiceWorkerInternalsUI::ServiceWorkerInternalsUI(WebUI* web_ui)
|
| "sync",
|
| base::Bind(&ServiceWorkerInternalsUI::DispatchSyncEventToWorker,
|
| base::Unretained(this)));
|
| + web_ui->RegisterMessageCallback(
|
| + "inspect",
|
| + base::Bind(&ServiceWorkerInternalsUI::InspectWorker,
|
| + base::Unretained(this)));
|
| }
|
|
|
| ServiceWorkerInternalsUI::~ServiceWorkerInternalsUI() {
|
| @@ -328,6 +334,27 @@ void ServiceWorkerInternalsUI::DispatchSyncEventToWorker(
|
| scope));
|
| }
|
|
|
| +void ServiceWorkerInternalsUI::InspectWorker(const ListValue* args) {
|
| + DCHECK(BrowserThread::CurrentlyOn(BrowserThread::UI));
|
| + base::FilePath partition_path;
|
| + GURL scope;
|
| + scoped_refptr<ServiceWorkerContextWrapper> context;
|
| + if (!GetRegistrationInfo(args, &partition_path, &scope, &context))
|
| + return;
|
| + scoped_refptr<DevToolsAgentHost> agent_host(
|
| + EmbeddedWorkerDevToolsManager::GetInstance()
|
| + ->GetDevToolsAgentHostForServiceWorker(partition_path, scope));
|
| + if (agent_host) {
|
| + DevToolsManagerImpl::GetInstance()->Inspect(
|
| + web_ui()->GetWebContents()->GetBrowserContext(), agent_host.get());
|
| + }
|
| + scoped_ptr<ListValue> args_copy(args->DeepCopy());
|
| + args_copy->Insert(0, new FundamentalValue(0));
|
| + web_ui()->CallJavascriptFunction(
|
| + "serviceworker.onOperationComplete",
|
| + std::vector<const Value*>(args_copy->begin(), args_copy->end()));
|
| +}
|
| +
|
| void ServiceWorkerInternalsUI::Unregister(const ListValue* args) {
|
| DCHECK(BrowserThread::CurrentlyOn(BrowserThread::UI));
|
| base::FilePath partition_path;
|
|
|