Commit e2e94383 authored by Patrick Monette's avatar Patrick Monette Committed by Commit Bot

[SharedWorker] Add creator frame as client before the script is loaded

This simplifies the code a bit by having all calls to AddClient() in
the same function.

Also merged DidCreateScriptLoader() and StartWorker() to centralize
the worker starting logic.

Bug: 1026740
Change-Id: I0b3070cf0c5d3b4c8765725c4223dca7fd66cc4e
Reviewed-on: https://chromium-review.googlesource.com/c/chromium/src/+/1937968Reviewed-by: default avatarMatt Falkenhagen <falken@chromium.org>
Reviewed-by: default avatarHiroki Nakagawa <nhiroki@chromium.org>
Commit-Queue: Patrick Monette <pmonette@chromium.org>
Cr-Commit-Position: refs/heads/master@{#720104}
parent ee22cbc0
......@@ -95,23 +95,19 @@ class CONTENT_EXPORT SharedWorkerServiceImpl : public SharedWorkerService {
friend class TestSharedWorkerServiceImpl;
FRIEND_TEST_ALL_PREFIXES(NetworkServiceRestartBrowserTest, SharedWorker);
// Creates a new worker in the client's renderer process.
void CreateWorker(
// Creates a new worker in the creator's renderer process.
SharedWorkerHost* CreateWorker(
const SharedWorkerInstance& instance,
blink::mojom::FetchClientSettingsObjectPtr
outside_fetch_client_settings_object,
mojo::PendingRemote<blink::mojom::SharedWorkerClient> client,
int client_process_id,
int frame_id,
int creator_process_id,
int creator_frame_id,
const std::string& storage_domain,
const blink::MessagePortChannel& message_port,
scoped_refptr<network::SharedURLLoaderFactory> blob_url_loader_factory);
void DidCreateScriptLoader(
void StartWorker(
const SharedWorkerInstance& instance,
base::WeakPtr<SharedWorkerHost> host,
mojo::PendingRemote<blink::mojom::SharedWorkerClient> client,
int client_process_id,
int frame_id,
const blink::MessagePortChannel& message_port,
std::unique_ptr<blink::URLLoaderFactoryBundleInfo>
subresource_loader_factories,
......@@ -120,19 +116,6 @@ class CONTENT_EXPORT SharedWorkerServiceImpl : public SharedWorkerService {
base::WeakPtr<ServiceWorkerObjectHost>
controller_service_worker_object_host,
bool success);
void StartWorker(
const SharedWorkerInstance& instance,
base::WeakPtr<SharedWorkerHost> host,
mojo::PendingRemote<blink::mojom::SharedWorkerClient> client,
int client_process_id,
int frame_id,
const blink::MessagePortChannel& message_port,
std::unique_ptr<blink::URLLoaderFactoryBundleInfo>
subresource_loader_factories,
blink::mojom::WorkerMainScriptLoadParamsPtr main_script_load_params,
blink::mojom::ControllerServiceWorkerInfoPtr controller,
base::WeakPtr<ServiceWorkerObjectHost>
controller_service_worker_object_host);
// Returns nullptr if there is no such host.
SharedWorkerHost* FindMatchingSharedWorkerHost(
......
......@@ -310,15 +310,17 @@ TEST_F(SharedWorkerServiceImplTest, WebContentsDestroyed) {
kUrl, "name", &client, &local_port);
// Now asynchronously destroy |web_contents| so that the startup sequence at
// least reaches SharedWorkerServiceImpl::DidCreateScriptLoader().
// reaches at least the DidCreateScriptLoader()
// least reaches SharedWorkerServiceImpl::StartWorker().
base::SequencedTaskRunnerHandle::Get()->DeleteSoon(FROM_HERE,
std::move(web_contents));
base::RunLoop().RunUntilIdle();
// The shared worker creation request was dropped.
EXPECT_TRUE(!client.CheckReceivedOnCreated());
// The shared worker creation failed, which means the client never connects
// and receives OnScriptLoadFailed().
EXPECT_TRUE(client.CheckReceivedOnCreated());
EXPECT_FALSE(client.CheckReceivedOnConnected({}));
EXPECT_TRUE(client.CheckReceivedOnScriptLoadFailed());
}
TEST_F(SharedWorkerServiceImplTest, TwoRendererTest) {
......
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