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

Convert PaymentManager to new Mojo types

This CL converts PaymentManager{Ptr, Request} in content and blink
to the new Mojo types.

Bug: 955171, 978694
Change-Id: I09c3019d634a764e1ed7d02cb45a23e550087a4e
Reviewed-on: https://chromium-review.googlesource.com/c/chromium/src/+/1780100Reviewed-by: default avatarRouslan Solomakhin <rouslan@chromium.org>
Reviewed-by: default avatarOksana Zhuravlova <oksamyt@chromium.org>
Reviewed-by: default avatarKinuko Yasuda <kinuko@chromium.org>
Commit-Queue: Miyoung Shin <myid.shin@igalia.com>
Cr-Commit-Position: refs/heads/master@{#693124}
parent f96ba9e4
......@@ -220,11 +220,10 @@ PaymentManager* PaymentAppContentUnitTestBase::CreatePaymentManager(
}
// Create a new payment manager.
payments::mojom::PaymentManagerPtr manager;
mojo::InterfaceRequest<payments::mojom::PaymentManager> request =
mojo::MakeRequest(&manager);
mojo::Remote<payments::mojom::PaymentManager> manager;
payment_app_context()->CreatePaymentManager(
manager.BindNewPipeAndPassReceiver());
payment_managers_.push_back(std::move(manager));
payment_app_context()->CreatePaymentManager(std::move(request));
base::RunLoop().RunUntilIdle();
// Find a last registered payment manager.
......
......@@ -12,6 +12,7 @@
#include "base/macros.h"
#include "base/memory/ref_counted.h"
#include "content/browser/payments/payment_manager.h"
#include "mojo/public/cpp/bindings/remote.h"
#include "testing/gtest/include/gtest/gtest.h"
#include "third_party/blink/public/mojom/payments/payment_app.mojom.h"
#include "url/gurl.h"
......@@ -48,7 +49,7 @@ class PaymentAppContentUnitTestBase : public testing::Test {
std::unique_ptr<BrowserTaskEnvironment> task_environment_;
std::unique_ptr<PaymentAppForWorkerTestHelper> worker_helper_;
std::vector<payments::mojom::PaymentManagerPtr> payment_managers_;
std::vector<mojo::Remote<payments::mojom::PaymentManager>> payment_managers_;
DISALLOW_COPY_AND_ASSIGN(PaymentAppContentUnitTestBase);
};
......
......@@ -45,13 +45,13 @@ void PaymentAppContextImpl::Shutdown() {
}
void PaymentAppContextImpl::CreatePaymentManager(
payments::mojom::PaymentManagerRequest request) {
mojo::PendingReceiver<payments::mojom::PaymentManager> receiver) {
DCHECK_CURRENTLY_ON(BrowserThread::UI);
RunOrPostTaskOnThread(
FROM_HERE, ServiceWorkerContext::GetCoreThreadId(),
base::BindOnce(&PaymentAppContextImpl::CreatePaymentManagerOnCoreThread,
this, std::move(request)));
this, std::move(receiver)));
}
void PaymentAppContextImpl::PaymentManagerHadConnectionError(
......@@ -82,10 +82,10 @@ void PaymentAppContextImpl::CreatePaymentAppDatabaseOnCoreThread(
}
void PaymentAppContextImpl::CreatePaymentManagerOnCoreThread(
mojo::InterfaceRequest<payments::mojom::PaymentManager> request) {
mojo::PendingReceiver<payments::mojom::PaymentManager> receiver) {
DCHECK_CURRENTLY_ON(ServiceWorkerContext::GetCoreThreadId());
auto payment_manager =
std::make_unique<PaymentManager>(this, std::move(request));
std::make_unique<PaymentManager>(this, std::move(receiver));
payment_managers_[payment_manager.get()] = std::move(payment_manager);
}
......
......@@ -15,6 +15,7 @@
#include "content/browser/payments/payment_app_database.h"
#include "content/common/content_export.h"
#include "content/public/browser/browser_thread.h"
#include "mojo/public/cpp/bindings/pending_receiver.h"
#include "third_party/blink/public/mojom/payments/payment_app.mojom.h"
namespace content {
......@@ -61,7 +62,8 @@ class CONTENT_EXPORT PaymentAppContextImpl
// Create a PaymentManager that is owned by this. Call on the UI
// thread.
void CreatePaymentManager(payments::mojom::PaymentManagerRequest request);
void CreatePaymentManager(
mojo::PendingReceiver<payments::mojom::PaymentManager> receiver);
// Called by PaymentManager objects so that they can
// be deleted. Call on the core thread.
......@@ -81,7 +83,7 @@ class CONTENT_EXPORT PaymentAppContextImpl
scoped_refptr<ServiceWorkerContextWrapper> service_worker_context);
void CreatePaymentManagerOnCoreThread(
mojo::InterfaceRequest<payments::mojom::PaymentManager> request);
mojo::PendingReceiver<payments::mojom::PaymentManager> receiver);
void ShutdownOnCoreThread();
......
......@@ -180,12 +180,12 @@ void RendererInterfaceBinders::InitializeParameterizedBinderRegistry() {
parameterized_binder_registry_.AddInterface(
base::BindRepeating(CreateWebSocketConnector));
parameterized_binder_registry_.AddInterface(
base::Bind([](payments::mojom::PaymentManagerRequest request,
parameterized_binder_registry_.AddInterface(base::Bind(
[](mojo::PendingReceiver<payments::mojom::PaymentManager> receiver,
RenderProcessHost* host, const url::Origin& origin) {
static_cast<StoragePartitionImpl*>(host->GetStoragePartition())
->GetPaymentAppContext()
->CreatePaymentManager(std::move(request));
->CreatePaymentManager(std::move(receiver));
}));
parameterized_binder_registry_.AddInterface(base::BindRepeating(
[](mojo::PendingReceiver<blink::mojom::CacheStorage> receiver,
......
......@@ -139,7 +139,7 @@ class PaymentInstrumentParameter
};
PaymentInstruments::PaymentInstruments(
const payments::mojom::blink::PaymentManagerPtr& manager)
const mojo::Remote<payments::mojom::blink::PaymentManager>& manager)
: manager_(manager) {}
ScriptPromise PaymentInstruments::deleteInstrument(
......
......@@ -27,7 +27,8 @@ class MODULES_EXPORT PaymentInstruments final : public ScriptWrappable {
DEFINE_WRAPPERTYPEINFO();
public:
explicit PaymentInstruments(const payments::mojom::blink::PaymentManagerPtr&);
explicit PaymentInstruments(
const mojo::Remote<payments::mojom::blink::PaymentManager>&);
ScriptPromise deleteInstrument(ScriptState*, const String& instrument_key);
ScriptPromise get(ScriptState*, const String& instrument_key);
......@@ -61,7 +62,7 @@ class MODULES_EXPORT PaymentInstruments final : public ScriptWrappable {
void onClearPaymentInstruments(ScriptPromiseResolver*,
payments::mojom::blink::PaymentHandlerStatus);
const payments::mojom::blink::PaymentManagerPtr& manager_;
const mojo::Remote<payments::mojom::blink::PaymentManager>& manager_;
mojo::Remote<mojom::blink::PermissionService> permission_service_;
......
......@@ -45,14 +45,13 @@ PaymentManager::PaymentManager(ServiceWorkerRegistration* registration)
DCHECK(registration);
if (ExecutionContext* context = registration->GetExecutionContext()) {
auto request = mojo::MakeRequest(
&manager_, context->GetTaskRunner(TaskType::kUserInteraction));
if (auto* interface_provider = context->GetInterfaceProvider()) {
interface_provider->GetInterface(std::move(request));
interface_provider->GetInterface(manager_.BindNewPipeAndPassReceiver(
context->GetTaskRunner(TaskType::kUserInteraction)));
}
}
manager_.set_connection_error_handler(WTF::Bind(
manager_.set_disconnect_handler(WTF::Bind(
&PaymentManager::OnServiceConnectionError, WrapWeakPersistent(this)));
manager_->Init(registration_->GetExecutionContext()->Url(),
registration_->scope());
......
......@@ -6,6 +6,7 @@
#define THIRD_PARTY_BLINK_RENDERER_MODULES_PAYMENTS_PAYMENT_MANAGER_H_
#include "base/macros.h"
#include "mojo/public/cpp/bindings/remote.h"
#include "third_party/blink/public/mojom/payments/payment_app.mojom-blink.h"
#include "third_party/blink/renderer/bindings/core/v8/script_promise.h"
#include "third_party/blink/renderer/modules/modules_export.h"
......@@ -36,7 +37,7 @@ class MODULES_EXPORT PaymentManager final : public ScriptWrappable {
void OnServiceConnectionError();
Member<ServiceWorkerRegistration> registration_;
payments::mojom::blink::PaymentManagerPtr manager_;
mojo::Remote<payments::mojom::blink::PaymentManager> manager_;
Member<PaymentInstruments> instruments_;
String user_hint_;
......
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