| Index: third_party/WebKit/Source/modules/payments/PaymentRequestEvent.cpp
|
| diff --git a/third_party/WebKit/Source/modules/payments/PaymentRequestEvent.cpp b/third_party/WebKit/Source/modules/payments/PaymentRequestEvent.cpp
|
| index bdf533512892cf05a55a6e4091717f80b8fd6abc..38826c1e0bc316fcb91bae2c2edbc15bbfdc9bbc 100644
|
| --- a/third_party/WebKit/Source/modules/payments/PaymentRequestEvent.cpp
|
| +++ b/third_party/WebKit/Source/modules/payments/PaymentRequestEvent.cpp
|
| @@ -11,24 +11,40 @@
|
| #include "modules/serviceworkers/RespondWithObserver.h"
|
| #include "modules/serviceworkers/ServiceWorkerGlobalScopeClient.h"
|
| #include "modules/serviceworkers/ServiceWorkerWindowClientCallback.h"
|
| +#include "platform/bindings/ScriptState.h"
|
| #include "platform/wtf/PtrUtil.h"
|
| #include "platform/wtf/text/AtomicString.h"
|
|
|
| namespace blink {
|
| +namespace {
|
| +
|
| +ScriptValue toScriptValue(ScriptState* script_state, const PaymentItem& item) {
|
| + if (!script_state->ContextIsValid())
|
| + return ScriptValue();
|
| +
|
| + ScriptState::Scope scope(script_state);
|
| +
|
| + return ScriptValue::From(script_state, item);
|
| +}
|
| +
|
| +} // namespace
|
|
|
| PaymentRequestEvent* PaymentRequestEvent::Create(
|
| + ScriptState* script_state,
|
| const AtomicString& type,
|
| const PaymentRequestEventInit& initializer) {
|
| - return new PaymentRequestEvent(type, initializer, nullptr, nullptr);
|
| + return new PaymentRequestEvent(script_state, type, initializer, nullptr,
|
| + nullptr);
|
| }
|
|
|
| PaymentRequestEvent* PaymentRequestEvent::Create(
|
| + ScriptState* script_state,
|
| const AtomicString& type,
|
| const PaymentRequestEventInit& initializer,
|
| RespondWithObserver* respond_with_observer,
|
| WaitUntilObserver* wait_until_observer) {
|
| - return new PaymentRequestEvent(type, initializer, respond_with_observer,
|
| - wait_until_observer);
|
| + return new PaymentRequestEvent(script_state, type, initializer,
|
| + respond_with_observer, wait_until_observer);
|
| }
|
|
|
| PaymentRequestEvent::~PaymentRequestEvent() {}
|
| @@ -53,8 +69,8 @@ const HeapVector<PaymentMethodData>& PaymentRequestEvent::methodData() const {
|
| return method_data_;
|
| }
|
|
|
| -void PaymentRequestEvent::total(PaymentItem& value) const {
|
| - value = total_;
|
| +const ScriptValue& PaymentRequestEvent::total() const {
|
| + return total_;
|
| }
|
|
|
| const HeapVector<PaymentDetailsModifier>& PaymentRequestEvent::modifiers()
|
| @@ -124,6 +140,7 @@ DEFINE_TRACE(PaymentRequestEvent) {
|
| }
|
|
|
| PaymentRequestEvent::PaymentRequestEvent(
|
| + ScriptState* script_state,
|
| const AtomicString& type,
|
| const PaymentRequestEventInit& initializer,
|
| RespondWithObserver* respond_with_observer,
|
| @@ -133,7 +150,7 @@ PaymentRequestEvent::PaymentRequestEvent(
|
| payment_request_origin_(initializer.paymentRequestOrigin()),
|
| payment_request_id_(initializer.paymentRequestId()),
|
| method_data_(std::move(initializer.methodData())),
|
| - total_(initializer.total()),
|
| + total_(toScriptValue(script_state, initializer.total())),
|
| modifiers_(initializer.modifiers()),
|
| instrument_key_(initializer.instrumentKey()),
|
| observer_(respond_with_observer) {}
|
|
|