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

Side by Side Diff: content/browser/payments/payment_app_database.cc

Issue 2856973002: PaymentHandler: Implement PaymentInstruments.clear(). (Closed)
Patch Set: PaymentHandler: Implement PaymentInstruments.clear(). Created 3 years, 7 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 unified diff | Download patch
OLDNEW
1 // Copyright 2016 The Chromium Authors. All rights reserved. 1 // Copyright 2016 The Chromium Authors. All rights reserved.
2 // Use of this source code is governed by a BSD-style license that can be 2 // Use of this source code is governed by a BSD-style license that can be
3 // found in the LICENSE file. 3 // found in the LICENSE file.
4 4
5 #include "content/browser/payments/payment_app_database.h" 5 #include "content/browser/payments/payment_app_database.h"
6 6
7 #include <map> 7 #include <map>
8 #include <utility> 8 #include <utility>
9 9
10 #include "base/bind.h" 10 #include "base/bind.h"
(...skipping 185 matching lines...) Expand 10 before | Expand all | Expand 10 after
196 196
197 service_worker_context_->FindReadyRegistrationForPattern( 197 service_worker_context_->FindReadyRegistrationForPattern(
198 scope, 198 scope,
199 base::Bind( 199 base::Bind(
200 &PaymentAppDatabase::DidFindRegistrationToWritePaymentInstrument, 200 &PaymentAppDatabase::DidFindRegistrationToWritePaymentInstrument,
201 weak_ptr_factory_.GetWeakPtr(), instrument_key, 201 weak_ptr_factory_.GetWeakPtr(), instrument_key,
202 base::Passed(std::move(instrument)), 202 base::Passed(std::move(instrument)),
203 base::Passed(std::move(callback)))); 203 base::Passed(std::move(callback))));
204 } 204 }
205 205
206 void PaymentAppDatabase::ClearPaymentInstruments(
207 const GURL& scope,
208 ClearPaymentInstrumentsCallback callback) {
209 DCHECK_CURRENTLY_ON(BrowserThread::IO);
210
211 service_worker_context_->FindReadyRegistrationForPattern(
212 scope,
213 base::Bind(
214 &PaymentAppDatabase::DidFindRegistrationToClearPaymentInstruments,
215 weak_ptr_factory_.GetWeakPtr(), scope,
216 base::Passed(std::move(callback))));
217 }
218
206 void PaymentAppDatabase::DidFindRegistrationToWriteManifest( 219 void PaymentAppDatabase::DidFindRegistrationToWriteManifest(
207 payments::mojom::PaymentAppManifestPtr manifest, 220 payments::mojom::PaymentAppManifestPtr manifest,
208 const WriteManifestCallback& callback, 221 const WriteManifestCallback& callback,
209 ServiceWorkerStatusCode status, 222 ServiceWorkerStatusCode status,
210 scoped_refptr<ServiceWorkerRegistration> registration) { 223 scoped_refptr<ServiceWorkerRegistration> registration) {
211 DCHECK_CURRENTLY_ON(BrowserThread::IO); 224 DCHECK_CURRENTLY_ON(BrowserThread::IO);
212 if (status != SERVICE_WORKER_OK) { 225 if (status != SERVICE_WORKER_OK) {
213 callback.Run(payments::mojom::PaymentAppManifestError::NO_ACTIVE_WORKER); 226 callback.Run(payments::mojom::PaymentAppManifestError::NO_ACTIVE_WORKER);
214 return; 227 return;
215 } 228 }
(...skipping 302 matching lines...) Expand 10 before | Expand all | Expand 10 after
518 void PaymentAppDatabase::DidWritePaymentInstrument( 531 void PaymentAppDatabase::DidWritePaymentInstrument(
519 WritePaymentInstrumentCallback callback, 532 WritePaymentInstrumentCallback callback,
520 ServiceWorkerStatusCode status) { 533 ServiceWorkerStatusCode status) {
521 DCHECK_CURRENTLY_ON(BrowserThread::IO); 534 DCHECK_CURRENTLY_ON(BrowserThread::IO);
522 return std::move(callback).Run( 535 return std::move(callback).Run(
523 status == SERVICE_WORKER_OK 536 status == SERVICE_WORKER_OK
524 ? PaymentHandlerStatus::SUCCESS 537 ? PaymentHandlerStatus::SUCCESS
525 : PaymentHandlerStatus::STORAGE_OPERATION_FAILED); 538 : PaymentHandlerStatus::STORAGE_OPERATION_FAILED);
526 } 539 }
527 540
541 void PaymentAppDatabase::DidFindRegistrationToClearPaymentInstruments(
542 const GURL& scope,
543 ClearPaymentInstrumentsCallback callback,
544 ServiceWorkerStatusCode status,
545 scoped_refptr<ServiceWorkerRegistration> registration) {
546 DCHECK_CURRENTLY_ON(BrowserThread::IO);
547
548 if (status != SERVICE_WORKER_OK) {
549 std::move(callback).Run(PaymentHandlerStatus::NO_ACTIVE_WORKER);
550 return;
551 }
552
553 KeysOfPaymentInstruments(
554 scope,
555 base::BindOnce(&PaymentAppDatabase::DidGetKeysToClearPaymentInstruments,
556 weak_ptr_factory_.GetWeakPtr(), registration->id(),
557 std::move(callback)));
558 }
559
560 void PaymentAppDatabase::DidGetKeysToClearPaymentInstruments(
561 int64_t registration_id,
562 ClearPaymentInstrumentsCallback callback,
563 const std::vector<std::string>& keys,
564 PaymentHandlerStatus status) {
565 DCHECK_CURRENTLY_ON(BrowserThread::IO);
566
567 if (status != PaymentHandlerStatus::SUCCESS) {
568 std::move(callback).Run(PaymentHandlerStatus::NOT_FOUND);
569 return;
570 }
571
572 std::vector<std::string> keys_with_prefix;
573 for (const auto& key : keys) {
574 keys_with_prefix.push_back(CreatePaymentInstrumentKey(key));
575 keys_with_prefix.push_back(CreatePaymentInstrumentKeyInfoKey(key));
576 }
577
578 service_worker_context_->ClearRegistrationUserData(
579 registration_id, keys_with_prefix,
580 base::Bind(&PaymentAppDatabase::DidClearPaymentInstruments,
581 weak_ptr_factory_.GetWeakPtr(),
582 base::Passed(std::move(callback))));
583 }
584
585 void PaymentAppDatabase::DidClearPaymentInstruments(
586 ClearPaymentInstrumentsCallback callback,
587 ServiceWorkerStatusCode status) {
588 DCHECK_CURRENTLY_ON(BrowserThread::IO);
589 return std::move(callback).Run(status == SERVICE_WORKER_OK
590 ? PaymentHandlerStatus::SUCCESS
591 : PaymentHandlerStatus::NOT_FOUND);
592 }
593
528 } // namespace content 594 } // namespace content
OLDNEW
« no previous file with comments | « content/browser/payments/payment_app_database.h ('k') | content/browser/payments/payment_manager.h » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698