Index: ios/chrome/browser/ui/tab_switcher/tab_switcher_header_view.mm |
diff --git a/ios/chrome/browser/ui/tab_switcher/tab_switcher_header_view.mm b/ios/chrome/browser/ui/tab_switcher/tab_switcher_header_view.mm |
index 140d6eadf8d56aa0e00277cff746b865a4d381ef..e8fe4a39436f580ad705b6ff10f3fe53a45ced88 100644 |
--- a/ios/chrome/browser/ui/tab_switcher/tab_switcher_header_view.mm |
+++ b/ios/chrome/browser/ui/tab_switcher/tab_switcher_header_view.mm |
@@ -4,9 +4,7 @@ |
#import "ios/chrome/browser/ui/tab_switcher/tab_switcher_header_view.h" |
-#import "base/ios/weak_nsobject.h" |
#include "base/logging.h" |
-#include "base/mac/scoped_nsobject.h" |
#include "base/metrics/user_metrics_action.h" |
#import "ios/chrome/browser/ui/colors/MDCPalette+CrAdditions.h" |
#include "ios/chrome/browser/ui/rtl_geometry.h" |
@@ -17,6 +15,10 @@ |
#import "ios/third_party/material_components_ios/src/components/Palettes/src/MaterialPalettes.h" |
#include "ui/base/l10n/l10n_util.h" |
+#if !defined(__has_feature) || !__has_feature(objc_arc) |
+#error "This file requires ARC support." |
+#endif |
+ |
namespace { |
const CGFloat kCollectionViewTopMargin = 39.0; |
const CGFloat kCollectionViewHeight = 56.0; |
@@ -41,7 +43,7 @@ enum PanelSelectionChangeDirection { RIGHT, LEFT }; |
// we want the accessibilityFrame to resize itself using autoresizing masks. |
@interface AccessiblePanelSelectorView : UIView { |
// The delegate which receives actions. |
- base::WeakNSProtocol<id<AccessiblePanelSelectorDelegate>> _delegate; |
+ __weak id<AccessiblePanelSelectorDelegate> _delegate; |
} |
- (void)setDelegate:(id<AccessiblePanelSelectorDelegate>)delegate; |
@end |
@@ -49,7 +51,7 @@ enum PanelSelectionChangeDirection { RIGHT, LEFT }; |
@implementation AccessiblePanelSelectorView |
- (void)setDelegate:(id<AccessiblePanelSelectorDelegate>)delegate { |
- _delegate.reset(delegate); |
+ _delegate = delegate; |
} |
- (UIAccessibilityTraits)accessibilityTraits { |
@@ -74,11 +76,11 @@ enum PanelSelectionChangeDirection { RIGHT, LEFT }; |
@interface TabSwitcherHeaderView ()<UICollectionViewDataSource, |
UICollectionViewDelegate, |
AccessiblePanelSelectorDelegate> { |
- base::scoped_nsobject<UICollectionViewFlowLayout> _flowLayout; |
- base::scoped_nsobject<UICollectionView> _collectionView; |
- base::scoped_nsobject<AccessiblePanelSelectorView> _accessibilityView; |
- base::scoped_nsobject<UIButton> _dismissButton; |
- base::scoped_nsobject<UIView> _activeSpaceIndicatorView; |
+ UICollectionViewFlowLayout* _flowLayout; |
+ UICollectionView* _collectionView; |
+ AccessiblePanelSelectorView* _accessibilityView; |
+ UIButton* _dismissButton; |
+ UIView* _activeSpaceIndicatorView; |
BOOL _performingUpdate; |
} |
@@ -133,13 +135,14 @@ enum PanelSelectionChangeDirection { RIGHT, LEFT }; |
completion:(ProceduralBlock)completion { |
DCHECK(updateBlock); |
- __block TabSwitcherHeaderView* weakSelf = self; |
+ __weak TabSwitcherHeaderView* weakSelf = self; |
[_collectionView performBatchUpdates:^{ |
- if (!weakSelf) |
+ TabSwitcherHeaderView* strongSelf = weakSelf; |
+ if (!strongSelf) |
return; |
- weakSelf->_performingUpdate = YES; |
- updateBlock(weakSelf); |
- weakSelf->_performingUpdate = NO; |
+ strongSelf->_performingUpdate = YES; |
+ updateBlock(strongSelf); |
+ strongSelf->_performingUpdate = NO; |
} |
completion:^(BOOL finished) { |
// Reestablish selection after the update. |
@@ -165,7 +168,7 @@ enum PanelSelectionChangeDirection { RIGHT, LEFT }; |
} |
- (UIView*)dismissButton { |
- return _dismissButton.get(); |
+ return _dismissButton; |
} |
#pragma mark - Private |
@@ -202,7 +205,7 @@ enum PanelSelectionChangeDirection { RIGHT, LEFT }; |
- (NSArray*)indexPathArrayWithIndexes:(NSArray*)indexes { |
NSMutableArray* array = |
- [[[NSMutableArray alloc] initWithCapacity:indexes.count] autorelease]; |
+ [[NSMutableArray alloc] initWithCapacity:indexes.count]; |
for (NSNumber* index in indexes) { |
[array |
addObject:[NSIndexPath indexPathForItem:[index intValue] inSection:0]]; |
@@ -211,8 +214,8 @@ enum PanelSelectionChangeDirection { RIGHT, LEFT }; |
} |
- (void)loadSubviews { |
- base::scoped_nsobject<UICollectionViewFlowLayout> flowLayout( |
- [[UICollectionViewFlowLayout alloc] init]); |
+ UICollectionViewFlowLayout* flowLayout = |
+ [[UICollectionViewFlowLayout alloc] init]; |
[flowLayout setMinimumLineSpacing:0]; |
[flowLayout setMinimumInteritemSpacing:0]; |
const CGSize cellSize = |
@@ -221,9 +224,9 @@ enum PanelSelectionChangeDirection { RIGHT, LEFT }; |
[flowLayout setScrollDirection:UICollectionViewScrollDirectionHorizontal]; |
_flowLayout = flowLayout; |
- _collectionView.reset([[UICollectionView alloc] |
- initWithFrame:[self collectionViewFrame] |
- collectionViewLayout:flowLayout]); |
+ _collectionView = |
+ [[UICollectionView alloc] initWithFrame:[self collectionViewFrame] |
+ collectionViewLayout:flowLayout]; |
[_collectionView setDelegate:self]; |
[_collectionView setDataSource:self]; |
[_collectionView registerClass:[TabSwitcherHeaderCell class] |
@@ -237,8 +240,8 @@ enum PanelSelectionChangeDirection { RIGHT, LEFT }; |
[_collectionView setAccessibilityElementsHidden:YES]; |
[self addSubview:_collectionView]; |
- _accessibilityView.reset([[AccessiblePanelSelectorView alloc] |
- initWithFrame:[self collectionViewFrame]]); |
+ _accessibilityView = [[AccessiblePanelSelectorView alloc] |
+ initWithFrame:[self collectionViewFrame]]; |
[_accessibilityView |
setAutoresizingMask:UIViewAutoresizingFlexibleBottomMargin | |
UIViewAutoresizingFlexibleWidth]; |
@@ -246,7 +249,7 @@ enum PanelSelectionChangeDirection { RIGHT, LEFT }; |
[_accessibilityView setUserInteractionEnabled:NO]; |
[self addSubview:_accessibilityView]; |
- _dismissButton.reset([[UIButton alloc] initWithFrame:CGRectZero]); |
+ _dismissButton = [[UIButton alloc] initWithFrame:CGRectZero]; |
UIImage* dismissImage = |
[UIImage imageNamed:@"tabswitcher_tab_switcher_button"]; |
dismissImage = |
@@ -270,7 +273,7 @@ enum PanelSelectionChangeDirection { RIGHT, LEFT }; |
@"H:[dismissButton(==buttonWidth)]-0-|", |
]; |
NSDictionary* viewsDictionary = @{ |
- @"dismissButton" : _dismissButton.get(), |
+ @"dismissButton" : _dismissButton, |
}; |
NSDictionary* metrics = @{ |
@"buttonHeight" : @(kDismissButtonHeight), |
@@ -279,8 +282,7 @@ enum PanelSelectionChangeDirection { RIGHT, LEFT }; |
ApplyVisualConstraintsWithMetricsAndOptions( |
constraints, viewsDictionary, metrics, LayoutOptionForRTLSupport(), self); |
- base::scoped_nsobject<UIView> activeSpaceIndicatorView( |
- [[UIView alloc] initWithFrame:CGRectZero]); |
+ UIView* activeSpaceIndicatorView = [[UIView alloc] initWithFrame:CGRectZero]; |
[activeSpaceIndicatorView |
setBackgroundColor:[[MDCPalette cr_bluePalette] tint500]]; |
[activeSpaceIndicatorView |