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

Unified Diff: ios/chrome/browser/ui/browser_view_controller.mm

Issue 2798903003: [ObjC ARC] Converts ios/chrome/browser/ui:ui_internal to ARC. (Closed)
Patch Set: missing weaks from another patch 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 side-by-side diff with in-line comments
Download patch
Index: ios/chrome/browser/ui/browser_view_controller.mm
diff --git a/ios/chrome/browser/ui/browser_view_controller.mm b/ios/chrome/browser/ui/browser_view_controller.mm
index e4b9c0f71612ce81e846a255da2c38298bebc590..a3df8b63dfca85dd6775a1e046ae03c2a2e8fda1 100644
--- a/ios/chrome/browser/ui/browser_view_controller.mm
+++ b/ios/chrome/browser/ui/browser_view_controller.mm
@@ -26,7 +26,7 @@
#include "base/mac/bind_objc_block.h"
#include "base/mac/bundle_locations.h"
#include "base/mac/foundation_util.h"
-#include "base/mac/objc_property_releaser.h"
+
#import "base/mac/scoped_block.h"
#import "base/mac/scoped_nsobject.h"
#include "base/macros.h"
@@ -200,6 +200,10 @@
#include "ui/base/page_transition_types.h"
#include "url/gurl.h"
+#if !defined(__has_feature) || !__has_feature(objc_arc)
+#error "This file requires ARC support."
+#endif
+
using base::UserMetricsAction;
using bookmarks::BookmarkNode;
@@ -490,17 +494,16 @@ NSString* const kNativeControllerTemporaryKey = @"NativeControllerTemporaryKey";
base::scoped_nsobject<AlertCoordinator> _alertCoordinator;
// Releaser for properties that aren't backed by scoped_nsobjects.
- base::mac::ObjCPropertyReleaser _propertyReleaser_BrowserViewController;
}
// The browser's side swipe controller. Lazily instantiated on the first call.
-@property(nonatomic, retain, readonly) SideSwipeController* sideSwipeController;
+@property(nonatomic, strong, readonly) SideSwipeController* sideSwipeController;
// The browser's preload controller.
-@property(nonatomic, retain, readonly) PreloadController* preloadController;
+@property(nonatomic, strong, readonly) PreloadController* preloadController;
// The dialog presenter for this BVC's tab model.
-@property(nonatomic, retain, readonly) DialogPresenter* dialogPresenter;
+@property(nonatomic, strong, readonly) DialogPresenter* dialogPresenter;
// The object that manages keyboard commands on behalf of the BVC.
-@property(nonatomic, retain, readonly) KeyCommandsProvider* keyCommandsProvider;
+@property(nonatomic, strong, readonly) KeyCommandsProvider* keyCommandsProvider;
// Whether the current tab can enable the reader mode menu item.
@property(nonatomic, assign, readonly) BOOL canUseReaderMode;
// Whether the current tab can enable the request desktop menu item.
@@ -530,7 +533,7 @@ NSString* const kNativeControllerTemporaryKey = @"NativeControllerTemporaryKey";
@property(nonatomic, readonly) BOOL shouldShowVoiceSearchBar;
// Coordinator for displaying a modal overlay with activity indicator to prevent
// the user from interacting with the browser view.
-@property(nonatomic, retain)
+@property(nonatomic, strong)
ActivityOverlayCoordinator* activityOverlayCoordinator;
// The user agent type used to load the currently visible page. User agent type
@@ -825,7 +828,7 @@ class InfoBarContainerDelegateIOS
bool DrawInfoBarArrows(int* x) const override { return false; }
- BrowserViewController* controller_; // weak
+ __weak BrowserViewController* controller_;
};
// Called from the BrowserBookmarkModelBridge from C++ -> ObjC.
@@ -884,7 +887,7 @@ class BrowserBookmarkModelBridge : public bookmarks::BookmarkModelObserver {
}
private:
- BrowserViewController* owner_; // Weak.
+ __weak BrowserViewController* owner_;
};
@implementation BrowserViewController
@@ -908,11 +911,9 @@ class BrowserBookmarkModelBridge : public bookmarks::BookmarkModelObserver {
self = [super initWithNibName:nil bundle:base::mac::FrameworkBundle()];
if (self) {
DCHECK(factory);
- _propertyReleaser_BrowserViewController.Init(self,
- [BrowserViewController class]);
- _dependencyFactory.reset([factory retain]);
- _nativeControllersForTabIDs.reset(
- [[NSMapTable strongToWeakObjectsMapTable] retain]);
+
+ _dependencyFactory.reset(factory);
+ _nativeControllersForTabIDs.reset([NSMapTable strongToWeakObjectsMapTable]);
_dialogPresenter.reset([[DialogPresenter alloc] initWithDelegate:self
presentingViewController:self]);
_javaScriptDialogPresenter.reset(
@@ -956,7 +957,6 @@ class BrowserBookmarkModelBridge : public bookmarks::BookmarkModelObserver {
_voiceSearchController->SetDelegate(nil);
[_rateThisAppDialog setDelegate:nil];
[_model closeAllTabs];
- [super dealloc];
}
#pragma mark - Accessibility
@@ -982,8 +982,8 @@ class BrowserBookmarkModelBridge : public bookmarks::BookmarkModelObserver {
[self.activityOverlayCoordinator stop];
self.activityOverlayCoordinator = nil;
} else if (!self.activityOverlayCoordinator) {
- self.activityOverlayCoordinator = [[[ActivityOverlayCoordinator alloc]
- initWithBaseViewController:self] autorelease];
+ self.activityOverlayCoordinator =
+ [[ActivityOverlayCoordinator alloc] initWithBaseViewController:self];
[self.activityOverlayCoordinator start];
}
@@ -1172,11 +1172,10 @@ class BrowserBookmarkModelBridge : public bookmarks::BookmarkModelObserver {
UIViewAutoresizing initialViewAutoresizing =
UIViewAutoresizingFlexibleWidth | UIViewAutoresizingFlexibleHeight;
- self.contentArea = [[[BrowserContainerView alloc]
- initWithFrame:initialViewsRect] autorelease];
+ self.contentArea =
+ [[BrowserContainerView alloc] initWithFrame:initialViewsRect];
self.contentArea.autoresizingMask = initialViewAutoresizing;
- self.typingShield =
- [[[UIButton alloc] initWithFrame:initialViewsRect] autorelease];
+ self.typingShield = [[UIButton alloc] initWithFrame:initialViewsRect];
self.typingShield.autoresizingMask = initialViewAutoresizing;
[self.typingShield addTarget:self
action:@selector(shieldWasTapped:)
@@ -1338,7 +1337,7 @@ class BrowserBookmarkModelBridge : public bookmarks::BookmarkModelObserver {
base::WeakNSObject<BrowserViewController> weakSelf(self);
void (^completion)(id<UIViewControllerTransitionCoordinatorContext>) = ^(
id<UIViewControllerTransitionCoordinatorContext> context) {
- base::scoped_nsobject<BrowserViewController> strongSelf([weakSelf retain]);
+ base::scoped_nsobject<BrowserViewController> strongSelf(weakSelf);
if (strongSelf)
[strongSelf showFindBarWithAnimation:NO
selectText:NO
@@ -1359,7 +1358,7 @@ class BrowserBookmarkModelBridge : public bookmarks::BookmarkModelObserver {
[super dismissViewControllerAnimated:flag
completion:^{
base::scoped_nsobject<BrowserViewController>
- strongSelf([weakSelf retain]);
+ strongSelf(weakSelf);
[strongSelf setDismissingModal:NO];
[strongSelf setPresenting:NO];
if (completion)
@@ -1632,7 +1631,7 @@ class BrowserBookmarkModelBridge : public bookmarks::BookmarkModelObserver {
DCHECK(!_browserState);
_browserState = browserState;
_isOffTheRecord = browserState->IsOffTheRecord() ? YES : NO;
- _model.reset([model retain]);
+ _model.reset(model);
[_model addObserver:self];
if (!_isOffTheRecord) {
@@ -1763,8 +1762,7 @@ class BrowserBookmarkModelBridge : public bookmarks::BookmarkModelObserver {
// Create contextual search views and controller.
if ([TouchToSearchPermissionsMediator isTouchToSearchAvailableOnDevice] &&
!_browserState->IsOffTheRecord()) {
- _contextualSearchMask =
- [[[ContextualSearchMaskView alloc] init] autorelease];
+ _contextualSearchMask = [[ContextualSearchMaskView alloc] init];
[self.view insertSubview:_contextualSearchMask
belowSubview:[_toolbarController view]];
_contextualSearchPanel = [self createPanelView];
@@ -2045,8 +2043,8 @@ class BrowserBookmarkModelBridge : public bookmarks::BookmarkModelObserver {
NSString* contentType = base::SysUTF8ToNSString(postData->first);
NSData* data = [NSData dataWithBytes:(void*)postData->second.data()
length:postData->second.length()];
- params.post_data.reset([data retain]);
- params.extra_headers.reset([@{ @"Content-Type" : contentType } retain]);
+ params.post_data.reset(data);
+ params.extra_headers.reset(@{ @"Content-Type" : contentType });
}
Tab* tab = [_model insertTabWithLoadParams:params
opener:nil
@@ -2076,7 +2074,7 @@ class BrowserBookmarkModelBridge : public bookmarks::BookmarkModelObserver {
CGRect viewBounds, remainder;
CGRectDivide(self.view.bounds, &remainder, &viewBounds, StatusBarHeight(),
CGRectMinYEdge);
- return [[[UIImageView alloc] initWithFrame:viewBounds] autorelease];
+ return [[UIImageView alloc] initWithFrame:viewBounds];
}
- (UIImageView*)pageOpenCloseAnimationView {
@@ -2085,8 +2083,7 @@ class BrowserBookmarkModelBridge : public bookmarks::BookmarkModelObserver {
frame.size.height = frame.size.height - [self headerHeight];
frame.origin.y = [self headerHeight];
- UIImageView* pageView =
- [[[UIImageView alloc] initWithFrame:frame] autorelease];
+ UIImageView* pageView = [[UIImageView alloc] initWithFrame:frame];
CGPoint center = CGPointMake(CGRectGetMidX(frame), CGRectGetMidY(frame));
pageView.center = center;
@@ -2190,9 +2187,9 @@ class BrowserBookmarkModelBridge : public bookmarks::BookmarkModelObserver {
int delay = immediately ? 0 : kExternalFilesCleanupDelaySeconds;
_externalFileRemover->RemoveAfterDelay(
base::TimeDelta::FromSeconds(delay),
- base::BindBlock(completionHandler ? completionHandler
- : ^{
- }));
+ base::BindBlockArc(completionHandler ? completionHandler
+ : ^{
+ }));
}
#pragma mark - SnapshotOverlayProvider methods
@@ -2298,9 +2295,9 @@ class BrowserBookmarkModelBridge : public bookmarks::BookmarkModelObserver {
CGFloat width = CGRectGetWidth([[self view] bounds]);
CGFloat y = CGRectGetHeight([[self view] bounds]) - kVoiceSearchBarHeight;
CGRect frame = CGRectMake(0.0, y, width, kVoiceSearchBarHeight);
- _voiceSearchBar.reset([ios::GetChromeBrowserProvider()
- ->GetVoiceSearchProvider()
- ->BuildVoiceSearchBar(frame) retain]);
+ _voiceSearchBar.reset(ios::GetChromeBrowserProvider()
+ ->GetVoiceSearchProvider()
+ ->BuildVoiceSearchBar(frame));
[_voiceSearchBar setVoiceSearchBarDelegate:self];
[_voiceSearchBar setHidden:YES];
[_voiceSearchBar setAutoresizingMask:UIViewAutoresizingFlexibleTopMargin |
@@ -2625,7 +2622,8 @@ class BrowserBookmarkModelBridge : public bookmarks::BookmarkModelObserver {
CGPointMake(CGRectGetMidX(view.frame),
CGRectGetMinY(view.frame) + [self headerHeightForTab:tab]);
auto* helper = RepostFormTabHelper::FromWebState(webState);
- helper->PresentDialog(dialogLocation, base::BindBlock(^(bool shouldContinue) {
+ helper->PresentDialog(dialogLocation,
+ base::BindBlockArc(^(bool shouldContinue) {
handler(shouldContinue);
}));
}
@@ -2671,30 +2669,30 @@ class BrowserBookmarkModelBridge : public bookmarks::BookmarkModelObserver {
if (!IsIPadIdiom()) {
if ([_toolbarController view]) {
HeaderDefinition header = {
- base::scoped_nsobject<UIView>([[_toolbarController view] retain]),
- Hideable, [ToolbarController toolbarDropShadowHeight], 0.0,
+ base::scoped_nsobject<UIView>([_toolbarController view]), Hideable,
+ [ToolbarController toolbarDropShadowHeight], 0.0,
};
results.push_back(header);
}
} else {
if ([_tabStripController view]) {
HeaderDefinition header = {
- base::scoped_nsobject<UIView>([[_tabStripController view] retain]),
- Hideable, 0.0, 0.0,
+ base::scoped_nsobject<UIView>([_tabStripController view]), Hideable,
+ 0.0, 0.0,
};
results.push_back(header);
}
if ([_toolbarController view]) {
HeaderDefinition header = {
- base::scoped_nsobject<UIView>([[_toolbarController view] retain]),
- Hideable, [ToolbarController toolbarDropShadowHeight], 0.0,
+ base::scoped_nsobject<UIView>([_toolbarController view]), Hideable,
+ [ToolbarController toolbarDropShadowHeight], 0.0,
};
results.push_back(header);
}
if ([_findBarController view]) {
HeaderDefinition header = {
- base::scoped_nsobject<UIView>([[_findBarController view] retain]),
- Overlap, 0.0, kIPadFindBarOverlap,
+ base::scoped_nsobject<UIView>([_findBarController view]), Overlap,
+ 0.0, kIPadFindBarOverlap,
};
results.push_back(header);
}
@@ -2869,8 +2867,8 @@ class BrowserBookmarkModelBridge : public bookmarks::BookmarkModelObserver {
(StaticHtmlNativeContent*)nativeContent {
if (!IsIPadIdiom() && !FirstRun::IsChromeFirstRun()) {
OverscrollActionsController* controller =
- [[[OverscrollActionsController alloc]
- initWithScrollView:[nativeContent scrollView]] autorelease];
+ [[OverscrollActionsController alloc]
+ initWithScrollView:[nativeContent scrollView]];
[controller setDelegate:self];
OverscrollStyle style = _isOffTheRecord
? OverscrollStyle::REGULAR_PAGE_INCOGNITO
@@ -2961,12 +2959,12 @@ class BrowserBookmarkModelBridge : public bookmarks::BookmarkModelObserver {
withError:(NSError*)error
isPost:(BOOL)isPost {
ErrorPageContent* errorPageContent =
- [[[ErrorPageContent alloc] initWithLoader:self
- browserState:self.browserState
- url:url
- error:error
- isPost:isPost
- isIncognito:_isOffTheRecord] autorelease];
+ [[ErrorPageContent alloc] initWithLoader:self
+ browserState:self.browserState
+ url:url
+ error:error
+ isPost:isPost
+ isIncognito:_isOffTheRecord];
[self setOverScrollActionControllerToStaticNativeContent:errorPageContent];
return errorPageContent;
}
@@ -2986,14 +2984,14 @@ class BrowserBookmarkModelBridge : public bookmarks::BookmarkModelObserver {
std::string url_host = url.host();
if (url_host == kChromeUINewTabHost || url_host == kChromeUIBookmarksHost) {
NewTabPageController* pageController =
- [[[NewTabPageController alloc] initWithUrl:url
- loader:self
- focuser:_toolbarController
- ntpObserver:self
- browserState:_browserState
- colorCache:_dominantColorCache
- webToolbarDelegate:self
- tabModel:_model] autorelease];
+ [[NewTabPageController alloc] initWithUrl:url
+ loader:self
+ focuser:_toolbarController
+ ntpObserver:self
+ browserState:_browserState
+ colorCache:_dominantColorCache
+ webToolbarDelegate:self
+ tabModel:_model];
pageController.swipeRecognizerProvider = self.sideSwipeController;
// Panel is always NTP for iPhone.
@@ -3020,20 +3018,20 @@ class BrowserBookmarkModelBridge : public bookmarks::BookmarkModelObserver {
const std::string& filename = GetTermsOfServicePath();
StaticHtmlNativeContent* staticNativeController =
- [[[StaticHtmlNativeContent alloc]
+ [[StaticHtmlNativeContent alloc]
initWithResourcePathResource:base::SysUTF8ToNSString(filename)
loader:self
browserState:_browserState
- url:GURL(kChromeUITermsURL)] autorelease];
+ url:GURL(kChromeUITermsURL)];
[self setOverScrollActionControllerToStaticNativeContent:
staticNativeController];
nativeController = staticNativeController;
} else if (url_host == kChromeUIOfflineHost) {
StaticHtmlNativeContent* staticNativeController =
- [[[OfflinePageNativeContent alloc] initWithLoader:self
- browserState:_browserState
- webState:webState
- URL:url] autorelease];
+ [[OfflinePageNativeContent alloc] initWithLoader:self
+ browserState:_browserState
+ webState:webState
+ URL:url];
[self setOverScrollActionControllerToStaticNativeContent:
staticNativeController];
nativeController = staticNativeController;
@@ -3042,15 +3040,14 @@ class BrowserBookmarkModelBridge : public bookmarks::BookmarkModelObserver {
// still in the sandbox.
NSString* filePath = [ExternalFileController pathForExternalFileURL:url];
if ([[NSFileManager defaultManager] fileExistsAtPath:filePath]) {
- nativeController = [[[ExternalFileController alloc]
- initWithURL:url
- browserState:_browserState] autorelease];
+ nativeController =
+ [[ExternalFileController alloc] initWithURL:url
+ browserState:_browserState];
}
} else {
DCHECK(![self hasControllerForURL:url]);
// In any other case the PageNotAvailableController is returned.
- nativeController =
- [[[PageNotAvailableController alloc] initWithUrl:url] autorelease];
+ nativeController = [[PageNotAvailableController alloc] initWithUrl:url];
if (url_host == kChromeUIHistoryFrameHost) {
base::mac::ObjCCastStrict<PageNotAvailableController>(nativeController)
.descriptionText = l10n_util::GetNSStringFWithFixup(
@@ -3201,7 +3198,7 @@ class BrowserBookmarkModelBridge : public bookmarks::BookmarkModelObserver {
withFileExtension:(NSString*)fileExtension {
switch ([PHPhotoLibrary authorizationStatus]) {
// User was never asked for permission to access photos.
- case PHAuthorizationStatusNotDetermined:
+ case PHAuthorizationStatusNotDetermined: {
[PHPhotoLibrary requestAuthorization:^(PHAuthorizationStatus status) {
// Call -saveImage again to check if chrome needs to display an error or
// saves the image.
@@ -3210,6 +3207,7 @@ class BrowserBookmarkModelBridge : public bookmarks::BookmarkModelObserver {
withFileExtension:fileExtension];
}];
break;
+ }
// The application doesn't have permission to access photo and the user
// cannot grant it.
@@ -3228,7 +3226,7 @@ class BrowserBookmarkModelBridge : public bookmarks::BookmarkModelObserver {
// The application has permission to access the photos.
default: {
web::WebThread::PostTask(
- web::WebThread::FILE, FROM_HERE, base::BindBlock(^{
+ web::WebThread::FILE, FROM_HERE, base::BindBlockArc(^{
[self saveImage:data withFileExtension:fileExtension];
}));
break;
@@ -3264,7 +3262,7 @@ class BrowserBookmarkModelBridge : public bookmarks::BookmarkModelObserver {
// Cleanup the temporary file.
web::WebThread::PostTask(
- web::WebThread::FILE, FROM_HERE, base::BindBlock(^{
+ web::WebThread::FILE, FROM_HERE, base::BindBlockArc(^{
NSError* error = nil;
[[NSFileManager defaultManager] removeItemAtURL:fileURL
error:&error];
@@ -3909,8 +3907,7 @@ class BrowserBookmarkModelBridge : public bookmarks::BookmarkModelObserver {
CGRect cardFrame = {frame.origin, cardSize};
CardView* card =
- [[[CardView alloc] initWithFrame:cardFrame isIncognito:_isOffTheRecord]
- autorelease];
+ [[CardView alloc] initWithFrame:cardFrame isIncognito:_isOffTheRecord];
card.closeButtonSide = IsPortrait() ? CardCloseButtonSide::TRAILING
: CardCloseButtonSide::LEADING;
[_contentArea addSubview:card];
@@ -4430,7 +4427,7 @@ class BrowserBookmarkModelBridge : public bookmarks::BookmarkModelObserver {
base::WeakNSObject<Tab> weakTab(tab);
base::WeakNSObject<BrowserViewController> weakSelf(self);
web::JavaScriptResultBlock completionHandlerBlock = ^(id result, NSError*) {
- base::scoped_nsobject<Tab> strongTab([weakTab retain]);
+ base::scoped_nsobject<Tab> strongTab(weakTab);
if (!strongTab)
return;
if (![result isKindOfClass:[NSString class]])
@@ -4734,8 +4731,8 @@ class BrowserBookmarkModelBridge : public bookmarks::BookmarkModelObserver {
configurationForContainerSize:panelContainerSize
horizontalSizeClass:self.traitCollection.horizontalSizeClass];
}
- ContextualSearchPanelView* newPanel = [[[ContextualSearchPanelView alloc]
- initWithConfiguration:config] autorelease];
+ ContextualSearchPanelView* newPanel =
+ [[ContextualSearchPanelView alloc] initWithConfiguration:config];
[newPanel addMotionObserver:self];
[newPanel addMotionObserver:_contextualSearchMask];
return newPanel;
@@ -5022,10 +5019,9 @@ class BrowserBookmarkModelBridge : public bookmarks::BookmarkModelObserver {
// Dismiss current alert.
[_alertCoordinator stop];
- _alertCoordinator.reset(
- [[_dependencyFactory alertCoordinatorWithTitle:title
- message:message
- viewController:self] retain]);
+ _alertCoordinator.reset([_dependencyFactory alertCoordinatorWithTitle:title
+ message:message
+ viewController:self]);
[_alertCoordinator start];
}
« no previous file with comments | « ios/chrome/browser/ui/browser_view_controller.h ('k') | ios/chrome/browser/ui/browser_view_controller_dependency_factory.h » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698