Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(372)

Unified Diff: third_party/WebKit/Source/modules/payments/PaymentRequest.cpp

Issue 1937783002: Provide shipping in PaymentRequest response (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@master
Patch Set: Address comments Created 4 years, 8 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View side-by-side diff with in-line comments
Download patch
Index: third_party/WebKit/Source/modules/payments/PaymentRequest.cpp
diff --git a/third_party/WebKit/Source/modules/payments/PaymentRequest.cpp b/third_party/WebKit/Source/modules/payments/PaymentRequest.cpp
index ea50249f3b32d5982c004280615331f9d82c4128..fff11fed2be57cd97458d9f4281c8d7c7b9eaec3 100644
--- a/third_party/WebKit/Source/modules/payments/PaymentRequest.cpp
+++ b/third_party/WebKit/Source/modules/payments/PaymentRequest.cpp
@@ -309,20 +309,12 @@ void PaymentRequest::OnShippingAddressChange(mojom::blink::ShippingAddressPtr ad
DCHECK(!m_completeResolver);
String errorMessage;
- if (!PaymentsValidators::isValidRegionCodeFormat(address->region_code, &errorMessage)
- || !PaymentsValidators::isValidLanguageCodeFormat(address->language_code, &errorMessage)
- || !PaymentsValidators::isValidScriptCodeFormat(address->script_code, &errorMessage)) {
+ if (!PaymentsValidators::isValidShippingAddress(address, &errorMessage)) {
m_showResolver->reject(DOMException::create(SyntaxError, errorMessage));
cleanUp();
return;
}
- if (address->language_code.isEmpty() && !address->script_code.isEmpty()) {
- m_showResolver->reject(DOMException::create(SyntaxError, "If language code is empty, then script code should also be empty"));
- cleanUp();
- return;
- }
-
m_shippingAddress = new ShippingAddress(std::move(address));
Event* event = Event::create(EventTypeNames::shippingaddresschange);
event->setTarget(this);
@@ -343,6 +335,19 @@ void PaymentRequest::OnPaymentResponse(mojom::blink::PaymentResponsePtr response
{
DCHECK(m_showResolver);
DCHECK(!m_completeResolver);
+
+ if (response->shipping_address) {
+ String errorMessage;
+ if (!PaymentsValidators::isValidShippingAddress(response->shipping_address, &errorMessage)) {
+ m_showResolver->reject(DOMException::create(SyntaxError, errorMessage));
+ cleanUp();
+ return;
+ }
+
+ m_shippingAddress = new ShippingAddress(std::move(response->shipping_address));
+ m_shippingOption = response->shipping_option_id;
+ }
+
m_showResolver->resolve(new PaymentResponse(std::move(response), this));
}

Powered by Google App Engine
This is Rietveld 408576698