Index: ios/chrome/browser/ui/util/transparent_link_button.mm |
diff --git a/ios/chrome/browser/ui/util/transparent_link_button.mm b/ios/chrome/browser/ui/util/transparent_link_button.mm |
index b0cb2f9da676ce76e202099a93f4f7ef1146644d..1fb567844695664eba38b253e53b8419f25817fc 100644 |
--- a/ios/chrome/browser/ui/util/transparent_link_button.mm |
+++ b/ios/chrome/browser/ui/util/transparent_link_button.mm |
@@ -5,12 +5,14 @@ |
#import "ios/chrome/browser/ui/util/transparent_link_button.h" |
#include "base/ios/ios_util.h" |
-#import "base/ios/weak_nsobject.h" |
#import "base/logging.h" |
-#import "base/mac/scoped_nsobject.h" |
#import "base/strings/sys_string_conversions.h" |
#include "url/gurl.h" |
+#if !defined(__has_feature) || !__has_feature(objc_arc) |
+#error "This file requires ARC support." |
+#endif |
+ |
// Minimum tap area dimension, as specified by Apple guidelines. |
const CGFloat kLinkTapAreaMinimum = 44.0; |
@@ -21,19 +23,14 @@ const CGFloat kHighlightViewCornerRadius = 2.0; |
const CGFloat kHighlightViewBackgroundAlpha = 0.25; |
} |
-@interface TransparentLinkButton () { |
- // Backing objects for properties of the same name. |
- base::scoped_nsobject<UIView> _highlightView; |
- base::WeakNSObject<TransparentLinkButton> _previousLinkButton; |
- base::WeakNSObject<TransparentLinkButton> _nextLinkButton; |
-} |
+@interface TransparentLinkButton () |
// The link frame passed upon initialization. |
@property(nonatomic, readonly) CGRect linkFrame; |
// Semi-transparent overlay that is shown to highlight the link text when the |
// button's highlight state is set to YES. |
-@property(nonatomic, readonly) UIView* highlightView; |
+@property(nonatomic, strong, readonly) UIView* highlightView; |
// Links that span multiple lines require more than one TransparentLinkButton. |
// These properties are used to populate the highlight state from one button to |
@@ -65,6 +62,9 @@ const CGFloat kHighlightViewBackgroundAlpha = 0.25; |
@synthesize URL = _URL; |
@synthesize debug = _debug; |
@synthesize linkFrame = _linkFrame; |
+@synthesize highlightView = _highlightView; |
+@synthesize previousLinkButton = _previousLinkButton; |
+@synthesize nextLinkButton = _nextLinkButton; |
- (instancetype)initWithLinkFrame:(CGRect)linkFrame URL:(const GURL&)URL { |
CGFloat linkHeightExpansion = |
@@ -91,22 +91,6 @@ const CGFloat kHighlightViewBackgroundAlpha = 0.25; |
#pragma mark - Accessors |
-- (void)setPreviousLinkButton:(TransparentLinkButton*)previousLinkButton { |
- _previousLinkButton.reset(previousLinkButton); |
-} |
- |
-- (TransparentLinkButton*)previousLinkButton { |
- return _previousLinkButton.get(); |
-} |
- |
-- (void)setNextLinkButton:(TransparentLinkButton*)nextLinkButton { |
- _nextLinkButton.reset(nextLinkButton); |
-} |
- |
-- (TransparentLinkButton*)nextLinkButton { |
- return _nextLinkButton.get(); |
-} |
- |
- (void)setDebug:(BOOL)debug { |
_debug = debug; |
self.layer.borderWidth = _debug ? 1.0 : 0.0; |
@@ -121,7 +105,7 @@ const CGFloat kHighlightViewBackgroundAlpha = 0.25; |
CGRect linkFrame = |
[self convertRect:self.linkFrame fromView:self.superview]; |
linkFrame = CGRectInset(linkFrame, -kHighlightViewCornerRadius, 0); |
- _highlightView.reset([[UIView alloc] initWithFrame:linkFrame]); |
+ _highlightView = [[UIView alloc] initWithFrame:linkFrame]; |
[_highlightView |
setBackgroundColor:[UIColor |
colorWithWhite:0.0 |
@@ -130,7 +114,7 @@ const CGFloat kHighlightViewBackgroundAlpha = 0.25; |
[_highlightView setClipsToBounds:YES]; |
[self addSubview:_highlightView]; |
} |
- return _highlightView.get(); |
+ return _highlightView; |
} |
- (void)setHighlighted:(BOOL)highlighted { |
@@ -148,12 +132,12 @@ const CGFloat kHighlightViewBackgroundAlpha = 0.25; |
accessibilityLabel:(NSString*)label { |
if (!linkFrames.count) |
return @[]; |
- base::scoped_nsobject<NSMutableArray> buttons( |
- [[NSMutableArray alloc] initWithCapacity:linkFrames.count]); |
+ NSMutableArray* buttons = |
+ [[NSMutableArray alloc] initWithCapacity:linkFrames.count]; |
for (NSValue* linkFrameValue in linkFrames) { |
CGRect linkFrame = [linkFrameValue CGRectValue]; |
- base::scoped_nsobject<TransparentLinkButton> button( |
- [[TransparentLinkButton alloc] initWithLinkFrame:linkFrame URL:URL]); |
+ TransparentLinkButton* button = |
+ [[TransparentLinkButton alloc] initWithLinkFrame:linkFrame URL:URL]; |
TransparentLinkButton* previousButton = [buttons lastObject]; |
previousButton.nextLinkButton = button; |
[button setPreviousLinkButton:previousButton]; |