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

Unified Diff: ios/chrome/browser/payments/payment_request_manager.mm

Issue 2710493006: [ObjC ARC] Converts ios/chrome/browser/payments:payments to ARC. (Closed)
Patch Set: rebase? Created 3 years, 10 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: ios/chrome/browser/payments/payment_request_manager.mm
diff --git a/ios/chrome/browser/payments/payment_request_manager.mm b/ios/chrome/browser/payments/payment_request_manager.mm
index f4cbdc022fec5cc0d939a4ba67268069b53365c8..5bab9194d65f113d863ccfc166c7dc50593dbf85 100644
--- a/ios/chrome/browser/payments/payment_request_manager.mm
+++ b/ios/chrome/browser/payments/payment_request_manager.mm
@@ -5,10 +5,8 @@
#import "ios/chrome/browser/payments/payment_request_manager.h"
#include "base/ios/ios_util.h"
-#import "base/ios/weak_nsobject.h"
#import "base/mac/bind_objc_block.h"
#include "base/mac/foundation_util.h"
-#include "base/mac/scoped_nsobject.h"
#include "base/memory/ptr_util.h"
#include "base/strings/sys_string_conversions.h"
#import "base/values.h"
@@ -32,6 +30,10 @@
#include "ios/web/public/web_state/web_state.h"
#import "ios/web/public/web_state/web_state_observer_bridge.h"
+#if !defined(__has_feature) || !__has_feature(objc_arc)
+#error "This file requires ARC support."
+#endif
+
namespace {
// Command prefix for injected JavaScript.
const std::string kCommandPrefix = "paymentRequest";
@@ -48,7 +50,7 @@ const NSTimeInterval kTimeoutInterval = 60.0;
@interface PaymentRequestManager ()<CRWWebStateObserver,
PaymentRequestCoordinatorDelegate> {
// View controller used to present the PaymentRequest view controller.
- base::WeakNSObject<UIViewController> _baseViewController;
+ __weak UIViewController* _baseViewController;
// PersonalDataManager used to manage user credit cards and addresses.
autofill::PersonalDataManager* _personalDataManager;
@@ -66,7 +68,7 @@ const NSTimeInterval kTimeoutInterval = 60.0;
std::unique_ptr<web::WebStateObserverBridge> _webStateObserver;
// Object that manages JavaScript injection into the web view.
- base::WeakNSObject<JSPaymentRequestManager> _paymentRequestJsManager;
+ __weak JSPaymentRequestManager* _paymentRequestJsManager;
// Boolean to track if the current WebState is enabled (JS callback is set
// up).
@@ -81,14 +83,14 @@ const NSTimeInterval kTimeoutInterval = 60.0;
BOOL _closed;
// Coordinator used to create and present the PaymentRequest view controller.
- base::scoped_nsobject<PaymentRequestCoordinator> _paymentRequestCoordinator;
+ PaymentRequestCoordinator* _paymentRequestCoordinator;
// Timer used to periodically unblock the webview's JS event queue.
- base::scoped_nsobject<NSTimer> _unblockEventQueueTimer;
+ NSTimer* _unblockEventQueueTimer;
// Timer used to close the UI if the page does not call
// PaymentResponse.complete() in a timely fashion.
- base::scoped_nsobject<NSTimer> _paymentResponseTimeoutTimer;
+ NSTimer* _paymentResponseTimeoutTimer;
}
// Synchronous method executed by -asynchronouslyEnablePaymentRequest:
@@ -136,7 +138,7 @@ const NSTimeInterval kTimeoutInterval = 60.0;
browserState:
(ios::ChromeBrowserState*)browserState {
if ((self = [super init])) {
- _baseViewController.reset(viewController);
+ _baseViewController = viewController;
_browserState = browserState;
@@ -155,10 +157,10 @@ const NSTimeInterval kTimeoutInterval = 60.0;
- (void)setWebState:(web::WebState*)webState {
[self disconnectWebState];
if (webState) {
- _paymentRequestJsManager.reset(
+ _paymentRequestJsManager =
base::mac::ObjCCastStrict<JSPaymentRequestManager>(
[webState->GetJSInjectionReceiver()
- instanceOfClass:[JSPaymentRequestManager class]]));
+ instanceOfClass:[JSPaymentRequestManager class]]);
_webState = webState;
_webStateObserver.reset(new web::WebStateObserverBridge(webState, self));
[self enableCurrentWebState];
@@ -171,7 +173,7 @@ const NSTimeInterval kTimeoutInterval = 60.0;
// Asynchronously enables PaymentRequest, so that some preferences
// (UIAccessibilityIsVoiceOverRunning(), for example) have time to synchronize
// with their own notifications.
- base::WeakNSObject<PaymentRequestManager> weakSelf(self);
+ __weak PaymentRequestManager* weakSelf = self;
dispatch_async(dispatch_get_main_queue(), ^{
[weakSelf doEnablePaymentRequest:enabled];
});
@@ -215,14 +217,12 @@ const NSTimeInterval kTimeoutInterval = 60.0;
if (_enabled) {
if (!_webStateEnabled) {
- base::WeakNSObject<PaymentRequestManager> weakSelf(self);
- auto callback =
- base::BindBlock(^bool(const base::DictionaryValue& JSON,
- const GURL& originURL, bool userIsInteracting) {
- base::scoped_nsobject<PaymentRequestManager> strongSelf(
- [weakSelf retain]);
+ __weak PaymentRequestManager* weakSelf = self;
+ auto callback = base::BindBlockArc(
+ ^bool(const base::DictionaryValue& JSON, const GURL& originURL,
+ bool userIsInteracting) {
// |originURL| and |userIsInteracting| aren't used.
- return [strongSelf handleScriptCommand:JSON];
+ return [weakSelf handleScriptCommand:JSON];
});
[self webState]->AddScriptCommandCallback(callback, kCommandPrefix);
@@ -242,7 +242,7 @@ const NSTimeInterval kTimeoutInterval = 60.0;
- (void)disconnectWebState {
if (_webState) {
- _paymentRequestJsManager.reset();
+ _paymentRequestJsManager = nil;
_webStateObserver.reset();
[self disableCurrentWebState];
}
@@ -314,8 +314,8 @@ const NSTimeInterval kTimeoutInterval = 60.0;
base::SysUTF8ToNSString([self webState]->GetLastCommittedURL().host());
autofill::AutofillManager* autofillManager =
autofill::AutofillDriverIOS::FromWebState(_webState)->autofill_manager();
- _paymentRequestCoordinator.reset([[PaymentRequestCoordinator alloc]
- initWithBaseViewController:_baseViewController]);
+ _paymentRequestCoordinator = [[PaymentRequestCoordinator alloc]
+ initWithBaseViewController:_baseViewController];
[_paymentRequestCoordinator setPaymentRequest:_paymentRequest.get()];
[_paymentRequestCoordinator setAutofillManager:autofillManager];
[_paymentRequestCoordinator setBrowserState:_browserState];
@@ -376,26 +376,26 @@ const NSTimeInterval kTimeoutInterval = 60.0;
}
- (void)setUnblockEventQueueTimer {
- _unblockEventQueueTimer.reset(
- [[NSTimer scheduledTimerWithTimeInterval:kNoopInterval
- target:_paymentRequestJsManager
- selector:@selector(executeNoop)
- userInfo:nil
- repeats:YES] retain]);
+ _unblockEventQueueTimer =
+ [NSTimer scheduledTimerWithTimeInterval:kNoopInterval
+ target:_paymentRequestJsManager
+ selector:@selector(executeNoop)
+ userInfo:nil
+ repeats:YES];
}
- (void)setPaymentResponseTimeoutTimer {
- _paymentResponseTimeoutTimer.reset(
- [[NSTimer scheduledTimerWithTimeInterval:kTimeoutInterval
- target:self
- selector:@selector(handleResponseComplete)
- userInfo:nil
- repeats:NO] retain]);
+ _paymentResponseTimeoutTimer =
+ [NSTimer scheduledTimerWithTimeInterval:kTimeoutInterval
+ target:self
+ selector:@selector(handleResponseComplete)
+ userInfo:nil
+ repeats:NO];
}
- (void)dismissUI {
[_paymentRequestCoordinator stop];
- _paymentRequestCoordinator.reset();
+ _paymentRequestCoordinator = nil;
}
- (BOOL)webStateContentIsSecureHTML {
« no previous file with comments | « ios/chrome/browser/payments/payment_request_coordinator.mm ('k') | ios/chrome/browser/payments/payment_request_util.mm » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698