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

[Payment Handler] CanMakePaymentEvent.respondWithMinimalUI() #5

Patch #5: On desktop, pass currency to the CanMakePaymentEvent when
minimal UI feature is enabled, so the updated WPTs can pass.

Before this patch, the "currency" field of the CanMakePaymentEvent was
never set.

After this patch, the "currency" field of the CanMakePaymentEvent is set
on desktop when the minimal UI feature is enabled, e.g., through
chrome://flags/#enable-web-payments-minimal-ui flag, and the updated WPT
passes on desktop when opened in a full browser.

Bug: 1005076
Change-Id: Ib35ef8f808f57d7674a5712f12fbfe65918ce92a
Reviewed-on: https://chromium-review.googlesource.com/c/chromium/src/+/2078797Reviewed-by: default avatarDanyao Wang <danyao@chromium.org>
Commit-Queue: Rouslan Solomakhin <rouslan@chromium.org>
Cr-Commit-Position: refs/heads/master@{#745955}
parent 88a0ba42
...@@ -10,10 +10,12 @@ ...@@ -10,10 +10,12 @@
#include "base/bind.h" #include "base/bind.h"
#include "base/bind_helpers.h" #include "base/bind_helpers.h"
#include "base/feature_list.h"
#include "base/stl_util.h" #include "base/stl_util.h"
#include "base/strings/utf_string_conversions.h" #include "base/strings/utf_string_conversions.h"
#include "components/payments/content/payment_event_response_util.h" #include "components/payments/content/payment_event_response_util.h"
#include "components/payments/content/payment_request_converter.h" #include "components/payments/content/payment_request_converter.h"
#include "components/payments/core/features.h"
#include "components/payments/core/method_strings.h" #include "components/payments/core/method_strings.h"
#include "components/payments/core/payment_request_delegate.h" #include "components/payments/core/payment_request_delegate.h"
#include "content/public/browser/browser_context.h" #include "content/public/browser/browser_context.h"
...@@ -180,6 +182,8 @@ ServiceWorkerPaymentApp::CreateCanMakePaymentEventData() { ...@@ -180,6 +182,8 @@ ServiceWorkerPaymentApp::CreateCanMakePaymentEventData() {
event_data->top_origin = top_origin_; event_data->top_origin = top_origin_;
event_data->payment_request_origin = frame_origin_; event_data->payment_request_origin = frame_origin_;
if (base::FeatureList::IsEnabled(::features::kWebPaymentsMinimalUI))
event_data->currency = spec_->details().total->amount->currency;
DCHECK(spec_->details().modifiers); DCHECK(spec_->details().modifiers);
for (const auto& modifier : *spec_->details().modifiers) { for (const auto& modifier : *spec_->details().modifiers) {
......
...@@ -191,6 +191,7 @@ CanMakePaymentEventInit* PaymentEventDataConversion::ToCanMakePaymentEventInit( ...@@ -191,6 +191,7 @@ CanMakePaymentEventInit* PaymentEventDataConversion::ToCanMakePaymentEventInit(
ToPaymentDetailsModifier(script_state, std::move(modifier))); ToPaymentDetailsModifier(script_state, std::move(modifier)));
} }
event_init->setModifiers(modifiers); event_init->setModifiers(modifiers);
event_init->setCurrency(event_data->currency);
return event_init; return event_init;
} }
......
self.addEventListener('canmakepayment', event => { self.addEventListener('canmakepayment', event => {
if (!event.currency) {
event.respondWith(false);
return;
}
if (event.currency !== 'USD') {
event.respondWith(false);
return;
}
if (!event.respondWithMinimalUI) {
event.respondWith(false);
return;
}
event.respondWithMinimalUI(event.methodData[0].data.test); event.respondWithMinimalUI(event.methodData[0].data.test);
}); });
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