Commit c5e5f623 authored by Rouslan Solomakhin's avatar Rouslan Solomakhin Committed by Commit Bot

[Web Payment] Static CreateForCanMakePayment() method.

Before this patch, "abort" and "can make payment" shared the
RespondWithCallbacks::CreateForEvent() static method, where the
developer had to specify the type of the event.

This patch splits CreateForEvent() into CreateForCanMakePayment() and
CreateForAbort() methods.

After this patch, the developer does not have to specify the event type
when creating a RespondWithCallbacks object.

Bug: 1005076
Change-Id: I16300965d2477711677bbfbeb347351663b320d0
Reviewed-on: https://chromium-review.googlesource.com/c/chromium/src/+/2086071Reviewed-by: default avatarDanyao Wang <danyao@chromium.org>
Commit-Queue: Rouslan Solomakhin <rouslan@chromium.org>
Cr-Commit-Position: refs/heads/master@{#748830}
parent bb6ac4dc
...@@ -122,6 +122,17 @@ class InvokePaymentAppCallbackRepository { ...@@ -122,6 +122,17 @@ class InvokePaymentAppCallbackRepository {
// called. // called.
class RespondWithCallbacks : public PaymentHandlerResponseCallback { class RespondWithCallbacks : public PaymentHandlerResponseCallback {
public: public:
static RespondWithCallbacks* CreateForCanMakePayment(
BrowserContext* browser_context,
scoped_refptr<ServiceWorkerVersion> service_worker_version,
PaymentAppProvider::PaymentEventResultCallback callback) {
RespondWithCallbacks* callbacks = new RespondWithCallbacks(
browser_context, ServiceWorkerMetrics::EventType::CAN_MAKE_PAYMENT,
service_worker_version, PaymentAppProvider::InvokePaymentAppCallback(),
/*event_callback=*/std::move(callback));
return callbacks;
}
static RespondWithCallbacks* CreateForInvoke( static RespondWithCallbacks* CreateForInvoke(
BrowserContext* browser_context, BrowserContext* browser_context,
scoped_refptr<ServiceWorkerVersion> service_worker_version, scoped_refptr<ServiceWorkerVersion> service_worker_version,
...@@ -136,14 +147,13 @@ class RespondWithCallbacks : public PaymentHandlerResponseCallback { ...@@ -136,14 +147,13 @@ class RespondWithCallbacks : public PaymentHandlerResponseCallback {
return callbacks; return callbacks;
} }
static RespondWithCallbacks* CreateForEvent( static RespondWithCallbacks* CreateForAbort(
BrowserContext* browser_context, BrowserContext* browser_context,
ServiceWorkerMetrics::EventType event_type,
scoped_refptr<ServiceWorkerVersion> service_worker_version, scoped_refptr<ServiceWorkerVersion> service_worker_version,
PaymentAppProvider::PaymentEventResultCallback callback) { PaymentAppProvider::PaymentEventResultCallback callback) {
RespondWithCallbacks* callbacks = new RespondWithCallbacks( RespondWithCallbacks* callbacks = new RespondWithCallbacks(
browser_context, event_type, service_worker_version, browser_context, ServiceWorkerMetrics::EventType::ABORT_PAYMENT,
PaymentAppProvider::InvokePaymentAppCallback(), service_worker_version, PaymentAppProvider::InvokePaymentAppCallback(),
/*event_callback=*/std::move(callback)); /*event_callback=*/std::move(callback));
return callbacks; return callbacks;
} }
...@@ -325,9 +335,8 @@ void DispatchAbortPaymentEvent( ...@@ -325,9 +335,8 @@ void DispatchAbortPaymentEvent(
// This object self-deletes after either success or error callback is // This object self-deletes after either success or error callback is
// invoked. // invoked.
RespondWithCallbacks* invocation_callbacks = RespondWithCallbacks* invocation_callbacks =
RespondWithCallbacks::CreateForEvent( RespondWithCallbacks::CreateForAbort(browser_context, active_version,
browser_context, ServiceWorkerMetrics::EventType::ABORT_PAYMENT, std::move(callback));
active_version, std::move(callback));
active_version->endpoint()->DispatchAbortPaymentEvent( active_version->endpoint()->DispatchAbortPaymentEvent(
invocation_callbacks->BindNewPipeAndPassRemote(), invocation_callbacks->BindNewPipeAndPassRemote(),
...@@ -356,9 +365,8 @@ void DispatchCanMakePaymentEvent( ...@@ -356,9 +365,8 @@ void DispatchCanMakePaymentEvent(
// This object self-deletes after either success or error callback is // This object self-deletes after either success or error callback is
// invoked. // invoked.
RespondWithCallbacks* invocation_callbacks = RespondWithCallbacks* invocation_callbacks =
RespondWithCallbacks::CreateForEvent( RespondWithCallbacks::CreateForCanMakePayment(
browser_context, ServiceWorkerMetrics::EventType::CAN_MAKE_PAYMENT, browser_context, active_version, std::move(callback));
active_version, std::move(callback));
active_version->endpoint()->DispatchCanMakePaymentEvent( active_version->endpoint()->DispatchCanMakePaymentEvent(
std::move(event_data), invocation_callbacks->BindNewPipeAndPassRemote(), std::move(event_data), invocation_callbacks->BindNewPipeAndPassRemote(),
......
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