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

Side by Side Diff: ios/chrome/browser/payments/payment_request_manager.mm

Issue 2804853002: Cancels payment request when Settings is tapped, and opens the Autofill settings page. (Closed)
Patch Set: Created 3 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 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 #import "ios/chrome/browser/payments/payment_request_manager.h" 5 #import "ios/chrome/browser/payments/payment_request_manager.h"
6 6
7 #include "base/ios/block_types.h" 7 #include "base/ios/block_types.h"
8 #include "base/ios/ios_util.h" 8 #include "base/ios/ios_util.h"
9 #import "base/mac/bind_objc_block.h" 9 #import "base/mac/bind_objc_block.h"
10 #include "base/mac/foundation_util.h" 10 #include "base/mac/foundation_util.h"
11 #include "base/mac/scoped_nsobject.h"
11 #include "base/memory/ptr_util.h" 12 #include "base/memory/ptr_util.h"
12 #include "base/strings/sys_string_conversions.h" 13 #include "base/strings/sys_string_conversions.h"
13 #import "base/values.h" 14 #import "base/values.h"
14 #include "components/autofill/core/browser/autofill_manager.h" 15 #include "components/autofill/core/browser/autofill_manager.h"
15 #include "components/autofill/core/browser/personal_data_manager.h" 16 #include "components/autofill/core/browser/personal_data_manager.h"
16 #include "components/autofill/ios/browser/autofill_driver_ios.h" 17 #include "components/autofill/ios/browser/autofill_driver_ios.h"
17 #include "components/payments/core/payment_address.h" 18 #include "components/payments/core/payment_address.h"
18 #include "ios/chrome/browser/autofill/personal_data_manager_factory.h" 19 #include "ios/chrome/browser/autofill/personal_data_manager_factory.h"
19 #include "ios/chrome/browser/browser_state/chrome_browser_state.h" 20 #include "ios/chrome/browser/browser_state/chrome_browser_state.h"
20 #import "ios/chrome/browser/payments/js_payment_request_manager.h" 21 #import "ios/chrome/browser/payments/js_payment_request_manager.h"
21 #include "ios/chrome/browser/payments/payment_request.h" 22 #include "ios/chrome/browser/payments/payment_request.h"
22 #import "ios/chrome/browser/payments/payment_request_coordinator.h" 23 #import "ios/chrome/browser/payments/payment_request_coordinator.h"
23 #include "ios/chrome/browser/procedural_block_types.h" 24 #include "ios/chrome/browser/procedural_block_types.h"
25 #import "ios/chrome/browser/ui/commands/UIKit+ChromeExecuteCommand.h"
26 #import "ios/chrome/browser/ui/commands/generic_chrome_command.h"
27 #import "ios/chrome/browser/ui/commands/ios_command_ids.h"
24 #include "ios/web/public/favicon_status.h" 28 #include "ios/web/public/favicon_status.h"
25 #include "ios/web/public/navigation_item.h" 29 #include "ios/web/public/navigation_item.h"
26 #include "ios/web/public/navigation_manager.h" 30 #include "ios/web/public/navigation_manager.h"
27 #include "ios/web/public/payments/payment_request.h" 31 #include "ios/web/public/payments/payment_request.h"
28 #include "ios/web/public/ssl_status.h" 32 #include "ios/web/public/ssl_status.h"
29 #import "ios/web/public/url_scheme_util.h" 33 #import "ios/web/public/url_scheme_util.h"
30 #import "ios/web/public/web_state/js/crw_js_injection_receiver.h" 34 #import "ios/web/public/web_state/js/crw_js_injection_receiver.h"
31 #import "ios/web/public/web_state/ui/crw_web_view_proxy.h" 35 #import "ios/web/public/web_state/ui/crw_web_view_proxy.h"
32 #include "ios/web/public/web_state/url_verification_constants.h" 36 #include "ios/web/public/web_state/url_verification_constants.h"
33 #include "ios/web/public/web_state/web_state.h" 37 #include "ios/web/public/web_state/web_state.h"
(...skipping 498 matching lines...) Expand 10 before | Expand all | Expand 10 after
532 } 536 }
533 537
534 #pragma mark - PaymentRequestCoordinatorDelegate methods 538 #pragma mark - PaymentRequestCoordinatorDelegate methods
535 539
536 - (void)paymentRequestCoordinatorDidCancel: 540 - (void)paymentRequestCoordinatorDidCancel:
537 (PaymentRequestCoordinator*)coordinator { 541 (PaymentRequestCoordinator*)coordinator {
538 [self terminateRequestWithErrorMessage:@"The payment request was canceled." 542 [self terminateRequestWithErrorMessage:@"The payment request was canceled."
539 callback:nil]; 543 callback:nil];
540 } 544 }
541 545
546 - (void)paymentRequestCoordinatorDidSelectSettings:
547 (PaymentRequestCoordinator*)coordinator {
548 [self terminateRequestWithErrorMessage:@"The payment request was canceled."
Moe 2017/04/06 05:18:13 While you're at it, please refactor these messages
macourteau 2017/04/06 14:21:22 Done.
549 callback:nil];
Moe 2017/04/06 05:18:13 Could you do the following logic in a callback tha
macourteau 2017/04/06 14:21:22 Done.
550
551 UIWindow* main_window = [[UIApplication sharedApplication] keyWindow];
Moe 2017/04/06 05:18:13 nit: mainWindow
macourteau 2017/04/06 14:21:22 Done.
552 DCHECK(main_window);
553 base::scoped_nsobject<GenericChromeCommand> command(
Moe 2017/04/06 05:18:13 I believe you don't need a base::scoped_nsobject w
macourteau 2017/04/06 14:21:22 Done.
554 [[GenericChromeCommand alloc] initWithTag:IDC_SHOW_AUTOFILL_SETTINGS]);
555 [main_window chromeExecuteCommand:command];
556 }
557
542 - (void)paymentRequestCoordinator:(PaymentRequestCoordinator*)coordinator 558 - (void)paymentRequestCoordinator:(PaymentRequestCoordinator*)coordinator
543 didConfirmWithPaymentResponse:(web::PaymentResponse)paymentResponse { 559 didConfirmWithPaymentResponse:(web::PaymentResponse)paymentResponse {
544 [_paymentRequestJsManager 560 [_paymentRequestJsManager
545 resolveRequestPromiseWithPaymentResponse:paymentResponse 561 resolveRequestPromiseWithPaymentResponse:paymentResponse
546 completionHandler:nil]; 562 completionHandler:nil];
547 [self setUnblockEventQueueTimer]; 563 [self setUnblockEventQueueTimer];
548 [self setPaymentResponseTimeoutTimer]; 564 [self setPaymentResponseTimeoutTimer];
549 } 565 }
550 566
551 - (void)paymentRequestCoordinator:(PaymentRequestCoordinator*)coordinator 567 - (void)paymentRequestCoordinator:(PaymentRequestCoordinator*)coordinator
(...skipping 17 matching lines...) Expand all
569 - (void)webState:(web::WebState*)webState 585 - (void)webState:(web::WebState*)webState
570 didCommitNavigationWithDetails: 586 didCommitNavigationWithDetails:
571 (const web::LoadCommittedDetails&)load_details { 587 (const web::LoadCommittedDetails&)load_details {
572 [self dismissUI]; 588 [self dismissUI];
573 _isScriptInjected = NO; 589 _isScriptInjected = NO;
574 [self enableCurrentWebState]; 590 [self enableCurrentWebState];
575 [self initializeWebViewForPaymentRequest]; 591 [self initializeWebViewForPaymentRequest];
576 } 592 }
577 593
578 @end 594 @end
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698