зеркало из https://github.com/mozilla/gecko-dev.git
Bug 1483470 - Handling PaymentRequestService::RespondPayment() to a closed PaymentRequest. r=baku
1. Returning NS_ERROR_FAILURE in PaymentRequestService::RespondPayment() when the specified PaymentRequest does not exist in PaymentRequestService. 2. Renaming "cleanup" to "close" in DOM::WebPayment codes to fit the actual behavior.
This commit is contained in:
Родитель
568fc35f0d
Коммит
68bb5bfa3c
|
@ -29,7 +29,7 @@ interface nsIPaymentActionRequest : nsISupports
|
|||
const uint32_t ABORT_ACTION = 4;
|
||||
const uint32_t COMPLETE_ACTION = 5;
|
||||
const uint32_t UPDATE_ACTION = 6;
|
||||
const uint32_t CLEANUP_ACTION = 7;
|
||||
const uint32_t CLOSE_ACTION = 7;
|
||||
|
||||
/*
|
||||
* The payment request identifier.
|
||||
|
|
|
@ -1094,7 +1094,7 @@ PaymentRequest::NotifyOwnerDocumentActivityChanged()
|
|||
|
||||
if (!doc->IsCurrentActiveDocument()) {
|
||||
RefPtr<PaymentRequestManager> mgr = PaymentRequestManager::GetSingleton();
|
||||
mgr->CleanupPayment(this);
|
||||
mgr->ClosePayment(this);
|
||||
}
|
||||
}
|
||||
|
||||
|
|
|
@ -524,7 +524,7 @@ PaymentRequestManager::UpdatePayment(JSContext* aCx,
|
|||
}
|
||||
|
||||
nsresult
|
||||
PaymentRequestManager::CleanupPayment(PaymentRequest* aRequest)
|
||||
PaymentRequestManager::ClosePayment(PaymentRequest* aRequest)
|
||||
{
|
||||
// for the case, the payment request is waiting for response from user.
|
||||
if (auto entry = mActivePayments.Lookup(aRequest)) {
|
||||
|
@ -535,7 +535,7 @@ PaymentRequestManager::CleanupPayment(PaymentRequest* aRequest)
|
|||
}
|
||||
nsAutoString requestId;
|
||||
aRequest->GetInternalId(requestId);
|
||||
IPCPaymentCleanupActionRequest action(requestId);
|
||||
IPCPaymentCloseActionRequest action(requestId);
|
||||
return SendRequestPayment(aRequest, action, false);
|
||||
}
|
||||
|
||||
|
|
|
@ -57,7 +57,7 @@ public:
|
|||
const PaymentDetailsUpdate& aDetails,
|
||||
bool aRequestShipping,
|
||||
bool aDeferredShow);
|
||||
nsresult CleanupPayment(PaymentRequest* aRequest);
|
||||
nsresult ClosePayment(PaymentRequest* aRequest);
|
||||
|
||||
nsresult RespondPayment(PaymentRequest* aRequest,
|
||||
const IPCPaymentActionResponse& aResponse);
|
||||
|
|
|
@ -382,7 +382,7 @@ PaymentRequestService::RequestPayment(nsIPaymentActionRequest* aRequest)
|
|||
}
|
||||
break;
|
||||
}
|
||||
case nsIPaymentActionRequest::CLEANUP_ACTION: {
|
||||
case nsIPaymentActionRequest::CLOSE_ACTION: {
|
||||
nsCOMPtr<nsIPaymentRequest> payment;
|
||||
rv = GetPaymentRequestById(requestId, getter_AddRefs(payment));
|
||||
if (NS_WARN_IF(NS_FAILED(rv))) {
|
||||
|
@ -393,7 +393,6 @@ PaymentRequestService::RequestPayment(nsIPaymentActionRequest* aRequest)
|
|||
mShowingRequest = nullptr;
|
||||
}
|
||||
mRequestQueue.RemoveElement(payment);
|
||||
//RemoveActionCallback(requestId);
|
||||
break;
|
||||
}
|
||||
default: {
|
||||
|
@ -417,6 +416,10 @@ PaymentRequestService::RespondPayment(nsIPaymentActionResponse* aResponse)
|
|||
return rv;
|
||||
}
|
||||
|
||||
if (!request) {
|
||||
return NS_ERROR_FAILURE;
|
||||
}
|
||||
|
||||
nsCOMPtr<nsIPaymentActionCallback> callback;
|
||||
if (!mCallbackHashtable.Get(requestId, getter_AddRefs(callback))) {
|
||||
return NS_ERROR_FAILURE;
|
||||
|
|
|
@ -105,7 +105,7 @@ struct IPCPaymentUpdateActionRequest
|
|||
nsString shippingOption;
|
||||
};
|
||||
|
||||
struct IPCPaymentCleanupActionRequest
|
||||
struct IPCPaymentCloseActionRequest
|
||||
{
|
||||
nsString requestId;
|
||||
};
|
||||
|
@ -118,7 +118,7 @@ union IPCPaymentActionRequest
|
|||
IPCPaymentAbortActionRequest;
|
||||
IPCPaymentCompleteActionRequest;
|
||||
IPCPaymentUpdateActionRequest;
|
||||
IPCPaymentCleanupActionRequest;
|
||||
IPCPaymentCloseActionRequest;
|
||||
};
|
||||
|
||||
struct IPCPaymentCanMakeActionResponse
|
||||
|
|
|
@ -147,10 +147,10 @@ PaymentRequestParent::RecvRequestPayment(const IPCPaymentActionRequest& aRequest
|
|||
MOZ_ASSERT(action);
|
||||
break;
|
||||
}
|
||||
case IPCPaymentActionRequest::TIPCPaymentCleanupActionRequest: {
|
||||
const IPCPaymentCleanupActionRequest& request = aRequest;
|
||||
case IPCPaymentActionRequest::TIPCPaymentCloseActionRequest: {
|
||||
const IPCPaymentCloseActionRequest& request = aRequest;
|
||||
rv = CreateActionRequest(request.requestId(),
|
||||
nsIPaymentActionRequest::CLEANUP_ACTION,
|
||||
nsIPaymentActionRequest::CLOSE_ACTION,
|
||||
getter_AddRefs(action));
|
||||
if (NS_WARN_IF(NS_FAILED(rv))) {
|
||||
return IPC_FAIL_NO_REASON(this);
|
||||
|
|
Загрузка…
Ссылка в новой задаче