Commit cb51a651 authored by Miyoung Shin's avatar Miyoung Shin Committed by Commit Bot

Convert ServiceWorkerInstalledScriptsManager(Host) to new Mojo types

This CL converts ServiceWorkerInstalledScriptsManager{Ptr, Request},
ServiceWorkerInstalledScriptsManagerHost{Ptr, PtrInfo, Request} and
ThreadSafeServiceWorkerInstalledScriptsManagerHostPtr in content
and blink to the new Mojo types, and uses
pending_receiver<ServiceWorkerInstalledScriptsManager> and
pending_remote<ServiceWorkerInstalledScriptsManagerHost> in
service_worker_installed_scripts_manager.mojom.

Bug: 955171, 978694
Change-Id: Idd188a061223d383acfdd7afb95d4368a42b0a65
Reviewed-on: https://chromium-review.googlesource.com/c/chromium/src/+/1761884Reviewed-by: default avatarMatt Falkenhagen <falken@chromium.org>
Reviewed-by: default avatarKinuko Yasuda <kinuko@chromium.org>
Reviewed-by: default avatarKen Rockot <rockot@google.com>
Commit-Queue: Miyoung Shin <myid.shin@igalia.com>
Cr-Commit-Position: refs/heads/master@{#689380}
parent 548353e5
......@@ -27,9 +27,9 @@
#include "content/public/common/child_process_host.h"
#include "content/public/common/content_switches.h"
#include "content/public/test/test_browser_thread_bundle.h"
#include "mojo/public/cpp/bindings/pending_receiver.h"
#include "mojo/public/cpp/bindings/pending_remote.h"
#include "mojo/public/cpp/bindings/remote.h"
#include "mojo/public/cpp/bindings/strong_binding.h"
#include "testing/gmock/include/gmock/gmock.h"
#include "testing/gtest/include/gtest/gtest.h"
#include "third_party/blink/public/common/features.h"
......@@ -198,10 +198,10 @@ class EmbeddedWorkerInstanceTest : public testing::Test,
GetInstalledScriptsInfoPtr() {
installed_scripts_managers_.emplace_back();
auto info = blink::mojom::ServiceWorkerInstalledScriptsInfo::New();
info->manager_request =
mojo::MakeRequest(&installed_scripts_managers_.back());
installed_scripts_manager_host_requests_.push_back(
mojo::MakeRequest(&info->manager_host_ptr));
info->manager_receiver =
installed_scripts_managers_.back().BindNewPipeAndPassReceiver();
installed_scripts_manager_host_receivers_.push_back(
info->manager_host_remote.InitWithNewPipeAndPassReceiver());
return info;
}
......@@ -210,10 +210,11 @@ class EmbeddedWorkerInstanceTest : public testing::Test,
// Mojo endpoints.
std::vector<blink::mojom::ServiceWorkerPtr> service_workers_;
std::vector<mojo::Remote<blink::mojom::ControllerServiceWorker>> controllers_;
std::vector<blink::mojom::ServiceWorkerInstalledScriptsManagerPtr>
std::vector<mojo::Remote<blink::mojom::ServiceWorkerInstalledScriptsManager>>
installed_scripts_managers_;
std::vector<blink::mojom::ServiceWorkerInstalledScriptsManagerHostRequest>
installed_scripts_manager_host_requests_;
std::vector<mojo::PendingReceiver<
blink::mojom::ServiceWorkerInstalledScriptsManagerHost>>
installed_scripts_manager_host_receivers_;
BrowserTaskEnvironment task_environment_;
std::unique_ptr<EmbeddedWorkerTestHelper> helper_;
......
......@@ -8,7 +8,6 @@
#include "content/browser/service_worker/service_worker_disk_cache.h"
#include "content/browser/service_worker/service_worker_installed_script_reader.h"
#include "content/common/content_export.h"
#include "mojo/public/cpp/bindings/binding.h"
#include "mojo/public/cpp/system/data_pipe.h"
#include "mojo/public/cpp/system/data_pipe_drainer.h"
#include "services/network/public/mojom/url_loader.mojom.h"
......
......@@ -21,7 +21,6 @@ ServiceWorkerInstalledScriptsSender::ServiceWorkerInstalledScriptsSender(
main_script_id_(
owner_->script_cache_map()->LookupResourceId(main_script_url_)),
sent_main_script_(false),
binding_(this),
state_(State::kNotStarted),
last_finished_reason_(
ServiceWorkerInstalledScriptReader::FinishedReason::kNotFinished) {
......@@ -49,9 +48,9 @@ ServiceWorkerInstalledScriptsSender::CreateInfoAndBind() {
<< "At least the main script should be installed.";
auto info = blink::mojom::ServiceWorkerInstalledScriptsInfo::New();
info->manager_request = mojo::MakeRequest(&manager_);
info->manager_receiver = manager_.BindNewPipeAndPassReceiver();
info->installed_urls = std::move(installed_urls);
binding_.Bind(mojo::MakeRequest(&info->manager_host_ptr));
receiver_.Bind(info->manager_host_remote.InitWithNewPipeAndPassReceiver());
return info;
}
......@@ -178,7 +177,7 @@ void ServiceWorkerInstalledScriptsSender::Abort(
// connection here, the service worker would be blocked waiting for the
// script data and won't respond to Stop.
manager_.reset();
binding_.Close();
receiver_.reset();
// Delete the registration data since the data was corrupted.
if (owner_->context()) {
......@@ -197,7 +196,7 @@ void ServiceWorkerInstalledScriptsSender::Abort(
// service worker to stop, and the error handler of EmbeddedWorkerInstance
// is invoked soon.
manager_.reset();
binding_.Close();
receiver_.reset();
return;
}
}
......
......@@ -9,7 +9,8 @@
#include "base/containers/queue.h"
#include "content/browser/service_worker/service_worker_installed_script_reader.h"
#include "content/common/content_export.h"
#include "mojo/public/cpp/bindings/binding.h"
#include "mojo/public/cpp/bindings/receiver.h"
#include "mojo/public/cpp/bindings/remote.h"
#include "mojo/public/cpp/system/data_pipe.h"
#include "third_party/blink/public/mojom/service_worker/service_worker_installed_scripts_manager.mojom.h"
......@@ -96,9 +97,9 @@ class CONTENT_EXPORT ServiceWorkerInstalledScriptsSender
const int64_t main_script_id_;
bool sent_main_script_;
mojo::Binding<blink::mojom::ServiceWorkerInstalledScriptsManagerHost>
binding_;
blink::mojom::ServiceWorkerInstalledScriptsManagerPtr manager_;
mojo::Receiver<blink::mojom::ServiceWorkerInstalledScriptsManagerHost>
receiver_{this};
mojo::Remote<blink::mojom::ServiceWorkerInstalledScriptsManager> manager_;
std::unique_ptr<ServiceWorkerInstalledScriptReader> reader_;
State state_;
......
......@@ -17,7 +17,7 @@
#include "content/browser/service_worker/service_worker_test_utils.h"
#include "content/public/browser/browser_task_traits.h"
#include "content/public/test/test_browser_thread_bundle.h"
#include "mojo/public/cpp/bindings/binding.h"
#include "mojo/public/cpp/bindings/pending_receiver.h"
#include "net/base/io_buffer.h"
#include "net/base/test_completion_callback.h"
#include "testing/gtest/include/gtest/gtest.h"
......@@ -135,8 +135,9 @@ class MockServiceWorkerInstalledScriptsManager
: public blink::mojom::ServiceWorkerInstalledScriptsManager {
public:
explicit MockServiceWorkerInstalledScriptsManager(
blink::mojom::ServiceWorkerInstalledScriptsManagerRequest request)
: binding_(this, std::move(request)) {}
mojo::PendingReceiver<blink::mojom::ServiceWorkerInstalledScriptsManager>
receiver)
: receiver_(this, std::move(receiver)) {}
blink::mojom::ServiceWorkerScriptInfoPtr WaitUntilTransferInstalledScript() {
EXPECT_TRUE(incoming_script_info_.is_null());
......@@ -158,7 +159,7 @@ class MockServiceWorkerInstalledScriptsManager
}
private:
mojo::Binding<blink::mojom::ServiceWorkerInstalledScriptsManager> binding_;
mojo::Receiver<blink::mojom::ServiceWorkerInstalledScriptsManager> receiver_;
base::OnceClosure transfer_installed_script_waiter_;
blink::mojom::ServiceWorkerScriptInfoPtr incoming_script_info_;
......@@ -266,10 +267,10 @@ TEST_F(ServiceWorkerInstalledScriptsSenderTest, SendScripts) {
scripts_info->installed_urls.size());
for (const auto& url : scripts_info->installed_urls)
EXPECT_TRUE(base::Contains(kExpectedScriptInfoMap, url));
EXPECT_TRUE(scripts_info->manager_request.is_pending());
EXPECT_TRUE(scripts_info->manager_receiver.is_valid());
renderer_manager =
std::make_unique<MockServiceWorkerInstalledScriptsManager>(
std::move(scripts_info->manager_request));
std::move(scripts_info->manager_receiver));
}
ASSERT_TRUE(renderer_manager);
......@@ -322,10 +323,10 @@ TEST_F(ServiceWorkerInstalledScriptsSenderTest, FailedToSendBody) {
scripts_info->installed_urls.size());
for (const auto& url : scripts_info->installed_urls)
EXPECT_TRUE(base::Contains(kExpectedScriptInfoMap, url));
EXPECT_TRUE(scripts_info->manager_request.is_pending());
EXPECT_TRUE(scripts_info->manager_receiver.is_valid());
renderer_manager =
std::make_unique<MockServiceWorkerInstalledScriptsManager>(
std::move(scripts_info->manager_request));
std::move(scripts_info->manager_receiver));
}
ASSERT_TRUE(renderer_manager);
......@@ -381,10 +382,10 @@ TEST_F(ServiceWorkerInstalledScriptsSenderTest, FailedToSendMetaData) {
scripts_info->installed_urls.size());
for (const auto& url : scripts_info->installed_urls)
EXPECT_TRUE(base::Contains(kExpectedScriptInfoMap, url));
EXPECT_TRUE(scripts_info->manager_request.is_pending());
EXPECT_TRUE(scripts_info->manager_receiver.is_valid());
renderer_manager =
std::make_unique<MockServiceWorkerInstalledScriptsManager>(
std::move(scripts_info->manager_request));
std::move(scripts_info->manager_receiver));
}
ASSERT_TRUE(renderer_manager);
......@@ -452,10 +453,10 @@ TEST_F(ServiceWorkerInstalledScriptsSenderTest, Histograms) {
scripts_info->installed_urls.size());
for (const auto& url : scripts_info->installed_urls)
EXPECT_TRUE(base::Contains(kExpectedScriptInfoMap, url));
EXPECT_TRUE(scripts_info->manager_request.is_pending());
EXPECT_TRUE(scripts_info->manager_receiver.is_valid());
renderer_manager =
std::make_unique<MockServiceWorkerInstalledScriptsManager>(
std::move(scripts_info->manager_request));
std::move(scripts_info->manager_receiver));
}
ASSERT_TRUE(renderer_manager);
......@@ -524,7 +525,8 @@ TEST_F(ServiceWorkerInstalledScriptsSenderTest, RequestScriptBeforeStreaming) {
std::make_unique<ServiceWorkerInstalledScriptsSender>(version());
std::unique_ptr<MockServiceWorkerInstalledScriptsManager> renderer_manager;
blink::mojom::ServiceWorkerInstalledScriptsManagerHostPtr manager_host_ptr;
mojo::Remote<blink::mojom::ServiceWorkerInstalledScriptsManagerHost>
manager_host;
{
blink::mojom::ServiceWorkerInstalledScriptsInfoPtr scripts_info =
sender->CreateInfoAndBind();
......@@ -533,11 +535,11 @@ TEST_F(ServiceWorkerInstalledScriptsSenderTest, RequestScriptBeforeStreaming) {
scripts_info->installed_urls.size());
for (const auto& url : scripts_info->installed_urls)
EXPECT_TRUE(base::Contains(kExpectedScriptInfoMap, url));
EXPECT_TRUE(scripts_info->manager_request.is_pending());
EXPECT_TRUE(scripts_info->manager_receiver.is_valid());
renderer_manager =
std::make_unique<MockServiceWorkerInstalledScriptsManager>(
std::move(scripts_info->manager_request));
manager_host_ptr.Bind(std::move(scripts_info->manager_host_ptr));
std::move(scripts_info->manager_receiver));
manager_host.Bind(std::move(scripts_info->manager_host_remote));
}
ASSERT_TRUE(renderer_manager);
......@@ -545,7 +547,7 @@ TEST_F(ServiceWorkerInstalledScriptsSenderTest, RequestScriptBeforeStreaming) {
// Request the main script again before receiving the other scripts. It'll be
// handled after all of script transfer.
manager_host_ptr->RequestInstalledScript(kMainScriptURL);
manager_host->RequestInstalledScript(kMainScriptURL);
// Stream the installed scripts once.
for (const auto& expected_script : kExpectedScriptInfoMap) {
......@@ -610,7 +612,8 @@ TEST_F(ServiceWorkerInstalledScriptsSenderTest, RequestScriptAfterStreaming) {
std::make_unique<ServiceWorkerInstalledScriptsSender>(version());
std::unique_ptr<MockServiceWorkerInstalledScriptsManager> renderer_manager;
blink::mojom::ServiceWorkerInstalledScriptsManagerHostPtr manager_host_ptr;
mojo::Remote<blink::mojom::ServiceWorkerInstalledScriptsManagerHost>
manager_host;
{
blink::mojom::ServiceWorkerInstalledScriptsInfoPtr scripts_info =
sender->CreateInfoAndBind();
......@@ -619,11 +622,11 @@ TEST_F(ServiceWorkerInstalledScriptsSenderTest, RequestScriptAfterStreaming) {
scripts_info->installed_urls.size());
for (const auto& url : scripts_info->installed_urls)
EXPECT_TRUE(base::Contains(kExpectedScriptInfoMap, url));
EXPECT_TRUE(scripts_info->manager_request.is_pending());
EXPECT_TRUE(scripts_info->manager_receiver.is_valid());
renderer_manager =
std::make_unique<MockServiceWorkerInstalledScriptsManager>(
std::move(scripts_info->manager_request));
manager_host_ptr.Bind(std::move(scripts_info->manager_host_ptr));
std::move(scripts_info->manager_receiver));
manager_host.Bind(std::move(scripts_info->manager_host_remote));
}
ASSERT_TRUE(renderer_manager);
......@@ -640,7 +643,7 @@ TEST_F(ServiceWorkerInstalledScriptsSenderTest, RequestScriptAfterStreaming) {
EXPECT_EQ(FinishedReason::kSuccess, sender->last_finished_reason());
// Request the main script again before receiving the other scripts.
manager_host_ptr->RequestInstalledScript(kMainScriptURL);
manager_host->RequestInstalledScript(kMainScriptURL);
// Handle requested installed scripts.
{
......
......@@ -96,12 +96,12 @@ void EmbeddedWorkerInstanceClientImpl::StartWorker(
blink::WebServiceWorkerInstalledScriptsManagerParams>();
installed_scripts_manager_params->installed_scripts_urls =
std::move(params->installed_scripts_info->installed_urls);
installed_scripts_manager_params->manager_request =
params->installed_scripts_info->manager_request.PassMessagePipe();
installed_scripts_manager_params->manager_host_ptr =
params->installed_scripts_info->manager_host_ptr.PassHandle();
DCHECK(installed_scripts_manager_params->manager_request.is_valid());
DCHECK(installed_scripts_manager_params->manager_host_ptr.is_valid());
installed_scripts_manager_params->manager_receiver =
params->installed_scripts_info->manager_receiver.PassPipe();
installed_scripts_manager_params->manager_host_remote =
params->installed_scripts_info->manager_host_remote.PassPipe();
DCHECK(installed_scripts_manager_params->manager_receiver.is_valid());
DCHECK(installed_scripts_manager_params->manager_host_remote.is_valid());
}
auto worker = blink::WebEmbeddedWorker::Create(
......
......@@ -9,8 +9,8 @@ import "url/mojom/url.mojom";
// This is sent from the browser to the renderer on starting worker.
// Contains information about the scripts of an installed service worker.
struct ServiceWorkerInstalledScriptsInfo {
ServiceWorkerInstalledScriptsManager& manager_request;
ServiceWorkerInstalledScriptsManagerHost manager_host_ptr;
pending_receiver<ServiceWorkerInstalledScriptsManager> manager_receiver;
pending_remote<ServiceWorkerInstalledScriptsManagerHost> manager_host_remote;
array<url.mojom.Url> installed_urls;
};
......
......@@ -47,10 +47,12 @@ struct WebEmbeddedWorkerStartData;
// to use mojo::ScopedMessagePipeHandle to pass Mojo types.
struct WebServiceWorkerInstalledScriptsManagerParams {
WebVector<WebURL> installed_scripts_urls;
// A handle for mojom::blink::ServiceWorkerInstalledScriptsManagerRequest.
mojo::ScopedMessagePipeHandle manager_request;
// A handle for mojom::blink::ServiceWorkerInstalledScriptsManagerHostPtrInfo.
mojo::ScopedMessagePipeHandle manager_host_ptr;
// A handle for
// mojo::PendingReceiver<mojom::blink::ServiceWorkerInstalledScriptsManager>.
mojo::ScopedMessagePipeHandle manager_receiver;
// A handle for
// mojo::PendingRemote<mojom::blink::ServiceWorkerInstalledScriptsManagerHost>.
mojo::ScopedMessagePipeHandle manager_host_remote;
};
// An interface to start and terminate an embedded worker.
......
......@@ -32,6 +32,7 @@
#include <memory>
#include <utility>
#include "mojo/public/cpp/bindings/pending_receiver.h"
#include "mojo/public/cpp/bindings/pending_remote.h"
#include "services/network/public/cpp/shared_url_loader_factory.h"
#include "services/network/public/mojom/referrer_policy.mojom-blink.h"
......@@ -129,8 +130,8 @@ WebEmbeddedWorkerImpl::WebEmbeddedWorkerImpl(
interface_provider_info_(std::move(interface_provider_info)),
browser_interface_broker_(std::move(browser_interface_broker)) {
if (installed_scripts_manager_params) {
DCHECK(installed_scripts_manager_params->manager_request.is_valid());
DCHECK(installed_scripts_manager_params->manager_host_ptr.is_valid());
DCHECK(installed_scripts_manager_params->manager_receiver.is_valid());
DCHECK(installed_scripts_manager_params->manager_host_remote.is_valid());
Vector<KURL> installed_scripts_urls;
installed_scripts_urls.AppendRange(
installed_scripts_manager_params->installed_scripts_urls.begin(),
......@@ -138,10 +139,12 @@ WebEmbeddedWorkerImpl::WebEmbeddedWorkerImpl(
installed_scripts_manager_ = std::make_unique<
ServiceWorkerInstalledScriptsManager>(
installed_scripts_urls,
mojom::blink::ServiceWorkerInstalledScriptsManagerRequest(
std::move(installed_scripts_manager_params->manager_request)),
mojom::blink::ServiceWorkerInstalledScriptsManagerHostPtrInfo(
std::move(installed_scripts_manager_params->manager_host_ptr),
mojo::PendingReceiver<
mojom::blink::ServiceWorkerInstalledScriptsManager>(
std::move(installed_scripts_manager_params->manager_receiver)),
mojo::PendingRemote<
mojom::blink::ServiceWorkerInstalledScriptsManagerHost>(
std::move(installed_scripts_manager_params->manager_host_remote),
mojom::blink::ServiceWorkerInstalledScriptsManagerHost::Version_),
Platform::Current()->GetIOTaskRunner());
}
......
......@@ -9,7 +9,7 @@
#include "base/barrier_closure.h"
#include "base/threading/thread_checker.h"
#include "mojo/public/cpp/bindings/strong_binding.h"
#include "mojo/public/cpp/bindings/self_owned_receiver.h"
#include "third_party/blink/renderer/core/html/parser/text_resource_decoder.h"
#include "third_party/blink/renderer/modules/service_worker/service_worker_thread.h"
#include "third_party/blink/renderer/platform/instrumentation/tracing/traced_value.h"
......@@ -161,15 +161,16 @@ class BundledReceivers {
class Internal : public mojom::blink::ServiceWorkerInstalledScriptsManager {
public:
// Called on the IO thread.
// Creates and binds a new Internal instance to |request|.
// Creates and binds a new Internal instance to |receiver|.
static void Create(
scoped_refptr<ThreadSafeScriptContainer> script_container,
mojom::blink::ServiceWorkerInstalledScriptsManagerRequest request,
mojo::PendingReceiver<mojom::blink::ServiceWorkerInstalledScriptsManager>
receiver,
scoped_refptr<base::SingleThreadTaskRunner> task_runner) {
mojo::MakeStrongBinding(
mojo::MakeSelfOwnedReceiver(
std::make_unique<Internal>(std::move(script_container),
std::move(task_runner)),
std::move(request));
std::move(receiver));
}
Internal(scoped_refptr<ThreadSafeScriptContainer> script_container,
......@@ -245,15 +246,13 @@ std::unique_ptr<TracedValue> UrlToTracedValue(const KURL& url) {
ServiceWorkerInstalledScriptsManager::ServiceWorkerInstalledScriptsManager(
const Vector<KURL>& installed_urls,
mojom::blink::ServiceWorkerInstalledScriptsManagerRequest manager_request,
mojom::blink::ServiceWorkerInstalledScriptsManagerHostPtrInfo
manager_host_ptr,
mojo::PendingReceiver<mojom::blink::ServiceWorkerInstalledScriptsManager>
manager_receiver,
mojo::PendingRemote<mojom::blink::ServiceWorkerInstalledScriptsManagerHost>
manager_host,
scoped_refptr<base::SingleThreadTaskRunner> io_task_runner)
: script_container_(base::MakeRefCounted<ThreadSafeScriptContainer>()),
manager_host_(
mojom::blink::ThreadSafeServiceWorkerInstalledScriptsManagerHostPtr::
Create(mojom::blink::ServiceWorkerInstalledScriptsManagerHostPtr(
std::move(manager_host_ptr)))) {
manager_host_(std::move(manager_host)) {
// We're on the main thread now, but |installed_urls_| will be accessed on the
// worker thread later, so make a deep copy of |url| as key.
for (const KURL& url : installed_urls)
......@@ -261,7 +260,7 @@ ServiceWorkerInstalledScriptsManager::ServiceWorkerInstalledScriptsManager(
PostCrossThreadTask(
*io_task_runner, FROM_HERE,
CrossThreadBindOnce(&Internal::Create, script_container_,
WTF::Passed(std::move(manager_request)),
WTF::Passed(std::move(manager_receiver)),
io_task_runner));
}
......@@ -316,7 +315,7 @@ ServiceWorkerInstalledScriptsManager::GetRawScriptData(const KURL& script_url) {
// script.
if (status == ThreadSafeScriptContainer::ScriptStatus::kTaken) {
script_container_->ResetOnWorkerThread(script_url);
(*manager_host_)->RequestInstalledScript(script_url);
manager_host_->RequestInstalledScript(script_url);
status = script_container_->GetStatusOnWorkerThread(script_url);
}
......
......@@ -5,6 +5,9 @@
#ifndef THIRD_PARTY_BLINK_RENDERER_MODULES_SERVICE_WORKER_SERVICE_WORKER_INSTALLED_SCRIPTS_MANAGER_H_
#define THIRD_PARTY_BLINK_RENDERER_MODULES_SERVICE_WORKER_SERVICE_WORKER_INSTALLED_SCRIPTS_MANAGER_H_
#include "mojo/public/cpp/bindings/pending_receiver.h"
#include "mojo/public/cpp/bindings/pending_remote.h"
#include "mojo/public/cpp/bindings/shared_remote.h"
#include "third_party/blink/public/mojom/service_worker/service_worker_installed_scripts_manager.mojom-blink.h"
#include "third_party/blink/renderer/core/workers/installed_scripts_manager.h"
#include "third_party/blink/renderer/modules/modules_export.h"
......@@ -24,8 +27,9 @@ class MODULES_EXPORT ServiceWorkerInstalledScriptsManager
public:
ServiceWorkerInstalledScriptsManager(
const Vector<KURL>& installed_urls,
mojom::blink::ServiceWorkerInstalledScriptsManagerRequest,
mojom::blink::ServiceWorkerInstalledScriptsManagerHostPtrInfo,
mojo::PendingReceiver<mojom::blink::ServiceWorkerInstalledScriptsManager>,
mojo::PendingRemote<
mojom::blink::ServiceWorkerInstalledScriptsManagerHost>,
scoped_refptr<base::SingleThreadTaskRunner> io_task_runner);
virtual ~ServiceWorkerInstalledScriptsManager() = default;
......@@ -41,8 +45,7 @@ class MODULES_EXPORT ServiceWorkerInstalledScriptsManager
HashSet<KURL> installed_urls_;
scoped_refptr<ThreadSafeScriptContainer> script_container_;
scoped_refptr<
mojom::blink::ThreadSafeServiceWorkerInstalledScriptsManagerHostPtr>
mojo::SharedRemote<mojom::blink::ServiceWorkerInstalledScriptsManagerHost>
manager_host_;
};
......
......@@ -6,7 +6,8 @@
#include "base/run_loop.h"
#include "base/synchronization/waitable_event.h"
#include "mojo/public/cpp/bindings/binding.h"
#include "mojo/public/cpp/bindings/receiver.h"
#include "mojo/public/cpp/bindings/remote.h"
#include "testing/gtest/include/gtest/gtest.h"
#include "third_party/blink/public/mojom/service_worker/service_worker_installed_scripts_manager.mojom-blink.h"
#include "third_party/blink/public/platform/platform.h"
......@@ -22,7 +23,7 @@ namespace {
class BrowserSideSender
: mojom::blink::ServiceWorkerInstalledScriptsManagerHost {
public:
BrowserSideSender() : binding_(this) {}
BrowserSideSender() = default;
~BrowserSideSender() override = default;
mojom::blink::ServiceWorkerInstalledScriptsInfoPtr CreateAndBind(
......@@ -32,8 +33,9 @@ class BrowserSideSender
EXPECT_FALSE(meta_data_handle_.is_valid());
auto scripts_info = mojom::blink::ServiceWorkerInstalledScriptsInfo::New();
scripts_info->installed_urls = installed_urls;
scripts_info->manager_request = mojo::MakeRequest(&manager_);
binding_.Bind(mojo::MakeRequest(&scripts_info->manager_host_ptr));
scripts_info->manager_receiver = manager_.BindNewPipeAndPassReceiver();
receiver_.Bind(
scripts_info->manager_host_remote.InitWithNewPipeAndPassReceiver());
return scripts_info;
}
......@@ -99,9 +101,9 @@ class BrowserSideSender
base::OnceClosure requested_script_closure_;
KURL waiting_requested_url_;
mojom::blink::ServiceWorkerInstalledScriptsManagerPtr manager_;
mojo::Binding<mojom::blink::ServiceWorkerInstalledScriptsManagerHost>
binding_;
mojo::Remote<mojom::blink::ServiceWorkerInstalledScriptsManager> manager_;
mojo::Receiver<mojom::blink::ServiceWorkerInstalledScriptsManagerHost>
receiver_{this};
mojo::ScopedDataPipeProducerHandle body_handle_;
mojo::ScopedDataPipeProducerHandle meta_data_handle_;
......@@ -141,8 +143,8 @@ class ServiceWorkerInstalledScriptsManagerTest : public testing::Test {
installed_scripts_manager_ =
std::make_unique<ServiceWorkerInstalledScriptsManager>(
std::move(installed_scripts_info->installed_urls),
std::move(installed_scripts_info->manager_request),
std::move(installed_scripts_info->manager_host_ptr),
std::move(installed_scripts_info->manager_receiver),
std::move(installed_scripts_info->manager_host_remote),
io_thread_->GetTaskRunner());
}
......
......@@ -9,6 +9,8 @@
#include "base/feature_list.h"
#include "base/synchronization/waitable_event.h"
#include "base/test/scoped_feature_list.h"
#include "mojo/public/cpp/bindings/pending_receiver.h"
#include "mojo/public/cpp/bindings/pending_remote.h"
#include "testing/gmock/include/gmock/gmock.h"
#include "testing/gtest/include/gtest/gtest.h"
#include "third_party/blink/public/common/features.h"
......@@ -197,9 +199,11 @@ class MockServiceWorkerInstalledScriptsManager
MockServiceWorkerInstalledScriptsManager()
: ServiceWorkerInstalledScriptsManager(
Vector<KURL>() /* installed_urls */,
mojom::blink::ServiceWorkerInstalledScriptsManagerRequest(
mojo::PendingReceiver<
mojom::blink::ServiceWorkerInstalledScriptsManager>(
mojo::MessagePipe().handle1),
mojom::blink::ServiceWorkerInstalledScriptsManagerHostPtrInfo(
mojo::PendingRemote<
mojom::blink::ServiceWorkerInstalledScriptsManagerHost>(
mojo::MessagePipe().handle0,
mojom::blink::ServiceWorkerInstalledScriptsManagerHost::
Version_),
......
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