Commit e860f24f authored by Matt Falkenhagen's avatar Matt Falkenhagen Committed by Commit Bot

shared worker: Move DevTools WorkerCreated call to SharedWorkerHost.

This makes more sense as SharedWorkerHost's destructor calls
WorkerDestroyed to balance it out. It also simplifies the params
to Start().

Not strictly needed for the linked bug. Refactoring that will
make it easier to fix.

Bug: 830288
Change-Id: I3be38ad7cc58c35bef301cd21074987ea9e5c64d
Reviewed-on: https://chromium-review.googlesource.com/1004887
Commit-Queue: Matt Falkenhagen <falken@chromium.org>
Reviewed-by: default avatarHiroki Nakagawa <nhiroki@chromium.org>
Cr-Commit-Position: refs/heads/master@{#550213}
parent b2b8b05d
......@@ -7,6 +7,7 @@
#include <utility>
#include "base/metrics/histogram_macros.h"
#include "base/unguessable_token.h"
#include "content/browser/devtools/shared_worker_devtools_manager.h"
#include "content/browser/interface_provider_filtering.h"
#include "content/browser/renderer_interface_binders.h"
......@@ -77,30 +78,38 @@ SharedWorkerHost::~SharedWorkerHost() {
void SharedWorkerHost::Start(
mojom::SharedWorkerFactoryPtr factory,
bool pause_on_start,
const base::UnguessableToken& devtools_worker_token,
mojom::ServiceWorkerProviderInfoForSharedWorkerPtr
service_worker_provider_info,
network::mojom::URLLoaderFactoryAssociatedPtrInfo script_loader_factory) {
DCHECK_CURRENTLY_ON(BrowserThread::UI);
mojom::SharedWorkerInfoPtr info(mojom::SharedWorkerInfo::New(
instance_->url(), instance_->name(), instance_->content_security_policy(),
instance_->content_security_policy_type(),
instance_->creation_address_space()));
// Register with DevTools.
bool pause_on_start;
base::UnguessableToken devtools_worker_token;
SharedWorkerDevToolsManager::GetInstance()->WorkerCreated(
this, &pause_on_start, &devtools_worker_token);
// Set up content settings interface.
blink::mojom::WorkerContentSettingsProxyPtr content_settings;
content_settings_ = std::make_unique<SharedWorkerContentSettingsProxyImpl>(
instance_->url(), this, mojo::MakeRequest(&content_settings));
// Set up host interface.
mojom::SharedWorkerHostPtr host;
binding_.Bind(mojo::MakeRequest(&host));
// Set up interface provider interface.
service_manager::mojom::InterfaceProviderPtr interface_provider;
interface_provider_binding_.Bind(FilterRendererExposedInterfaces(
mojom::kNavigation_SharedWorkerSpec, process_id_,
mojo::MakeRequest(&interface_provider)));
mojom::SharedWorkerInfoPtr info(mojom::SharedWorkerInfo::New(
instance_->url(), instance_->name(), instance_->content_security_policy(),
instance_->content_security_policy_type(),
instance_->creation_address_space()));
// Send the CreateSharedWorker message.
factory_ = std::move(factory);
factory_->CreateSharedWorker(
std::move(info), pause_on_start, devtools_worker_token,
......
......@@ -63,8 +63,6 @@ class SharedWorkerHost : public mojom::SharedWorkerHost,
// the request, but other web platform features may also use it someday.
void Start(
mojom::SharedWorkerFactoryPtr factory,
bool pause_on_start,
const base::UnguessableToken& devtools_worker_token,
mojom::ServiceWorkerProviderInfoForSharedWorkerPtr
service_worker_provider_info,
network::mojom::URLLoaderFactoryAssociatedPtrInfo script_loader_factory);
......
......@@ -12,7 +12,6 @@
#include "base/callback.h"
#include "base/logging.h"
#include "base/macros.h"
#include "content/browser/devtools/shared_worker_devtools_manager.h"
#include "content/browser/shared_worker/shared_worker_host.h"
#include "content/browser/shared_worker/shared_worker_instance.h"
#include "content/browser/shared_worker/shared_worker_script_loader_factory.h"
......@@ -221,18 +220,12 @@ void SharedWorkerServiceImpl::CreateWorker(
auto host =
std::make_unique<SharedWorkerHost>(this, std::move(instance), process_id);
bool pause_on_start;
base::UnguessableToken devtools_worker_token;
SharedWorkerDevToolsManager::GetInstance()->WorkerCreated(
host.get(), &pause_on_start, &devtools_worker_token);
// Get the factory used to instantiate the new shared worker instance in
// the target process.
mojom::SharedWorkerFactoryPtr factory;
BindInterface(process_host, &factory);
host->Start(std::move(factory), pause_on_start, devtools_worker_token,
std::move(service_worker_provider_info),
host->Start(std::move(factory), std::move(service_worker_provider_info),
std::move(script_loader_factory_info));
host->AddClient(std::move(client), process_id, frame_id, message_port);
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment