Index: ios/chrome/browser/ui/ntp/incognito_panel_controller.mm |
diff --git a/ios/chrome/browser/ui/ntp/incognito_panel_controller.mm b/ios/chrome/browser/ui/ntp/incognito_panel_controller.mm |
index 855f90caa360c06ed250a160badc6d634306171d..6c481d865acc7dc353789a7e1d04c87e085a7ff3 100644 |
--- a/ios/chrome/browser/ui/ntp/incognito_panel_controller.mm |
+++ b/ios/chrome/browser/ui/ntp/incognito_panel_controller.mm |
@@ -6,7 +6,6 @@ |
#include <string> |
-#import "base/mac/scoped_nsobject.h" |
#include "components/google/core/browser/google_util.h" |
#include "components/strings/grit/components_strings.h" |
#include "ios/chrome/browser/application_context.h" |
@@ -23,6 +22,10 @@ |
#include "ui/base/l10n/l10n_util.h" |
#include "url/gurl.h" |
+#if !defined(__has_feature) || !__has_feature(objc_arc) |
+#error "This file requires ARC support." |
+#endif |
+ |
namespace { |
// The URL for the the Learn More page shown on incognito new tab. |
// Taken from ntp_resource_cache.cc. |
@@ -53,63 +56,63 @@ const int kLinkColor = 0x03A9F4; |
@end |
@implementation IncognitoNTPView { |
- base::WeakNSProtocol<id<UrlLoader>> _loader; |
- base::scoped_nsobject<UIView> _containerView; |
+ __weak id<UrlLoader> _loader; |
+ UIView* _containerView; |
// Constraint ensuring that |containerView| is at least as high as the |
// superview of the IncognitoNTPView, i.e. the Incognito panel. |
// This ensures that if the Incognito panel is higher than a compact |
// |containerView|, the |containerView|'s |topGuide| and |bottomGuide| are |
// forced to expand, centering the views in between them. |
- base::scoped_nsobject<NSLayoutConstraint> _containerVerticalConstraint; |
+ NSLayoutConstraint* _containerVerticalConstraint; |
// Constraint ensuring that |containerView| is as wide as the superview of the |
// the IncognitoNTPView, i.e. the Incognito panel. |
- base::scoped_nsobject<NSLayoutConstraint> _containerHorizontalConstraint; |
+ NSLayoutConstraint* _containerHorizontalConstraint; |
} |
- (instancetype)initWithFrame:(CGRect)frame urlLoader:(id<UrlLoader>)loader { |
self = [super initWithFrame:frame]; |
if (self) { |
- _loader.reset(loader); |
+ _loader = loader; |
self.alwaysBounceVertical = YES; |
// Container in which all the subviews (image, labels, button) are added. |
- _containerView.reset([[UIView alloc] initWithFrame:frame]); |
+ _containerView = [[UIView alloc] initWithFrame:frame]; |
[_containerView setTranslatesAutoresizingMaskIntoConstraints:NO]; |
// Incognito image. |
- base::scoped_nsobject<UIImageView> incognitoImage([[UIImageView alloc] |
- initWithImage:[UIImage imageNamed:@"incognito_icon"]]); |
+ UIImageView* incognitoImage = [[UIImageView alloc] |
+ initWithImage:[UIImage imageNamed:@"incognito_icon"]]; |
[incognitoImage setTranslatesAutoresizingMaskIntoConstraints:NO]; |
[_containerView addSubview:incognitoImage]; |
// Title. |
UIFont* titleFont = [[MDCTypography fontLoader] lightFontOfSize:24]; |
- base::scoped_nsobject<UILabel> incognitoTabHeading( |
- [[self labelWithString:l10n_util::GetNSString(IDS_NEW_TAB_OTR_HEADING) |
- font:titleFont |
- alpha:0.8] retain]); |
+ UILabel* incognitoTabHeading = |
+ [self labelWithString:l10n_util::GetNSString(IDS_NEW_TAB_OTR_HEADING) |
+ font:titleFont |
+ alpha:0.8]; |
[_containerView addSubview:incognitoTabHeading]; |
// Description paragraph. |
UIFont* regularFont = [[MDCTypography fontLoader] regularFontOfSize:14]; |
- base::scoped_nsobject<UILabel> incognitoTabDescription([[self |
+ UILabel* incognitoTabDescription = [self |
labelWithString:l10n_util::GetNSString(IDS_NEW_TAB_OTR_DESCRIPTION) |
font:regularFont |
- alpha:0.7] retain]); |
+ alpha:0.7]; |
[_containerView addSubview:incognitoTabDescription]; |
// Warning paragraph. |
- base::scoped_nsobject<UILabel> incognitoTabWarning([[self |
+ UILabel* incognitoTabWarning = [self |
labelWithString:l10n_util::GetNSString(IDS_NEW_TAB_OTR_MESSAGE_WARNING) |
font:regularFont |
- alpha:0.7] retain]); |
+ alpha:0.7]; |
[_containerView addSubview:incognitoTabWarning]; |
// Learn more button. |
- base::scoped_nsobject<MDCButton> learnMore([[MDCFlatButton alloc] init]); |
+ MDCButton* learnMore = [[MDCFlatButton alloc] init]; |
UIColor* inkColor = |
[[[MDCPalette greyPalette] tint300] colorWithAlphaComponent:0.25]; |
[learnMore setInkColor:inkColor]; |
@@ -126,20 +129,19 @@ const int kLinkColor = 0x03A9F4; |
// |topGuide| and |bottomGuide| exist to vertically center the sibling views |
// located in between them. |
- base::scoped_nsobject<UILayoutGuide> topGuide([[UILayoutGuide alloc] init]); |
- base::scoped_nsobject<UILayoutGuide> bottomGuide( |
- [[UILayoutGuide alloc] init]); |
+ UILayoutGuide* topGuide = [[UILayoutGuide alloc] init]; |
+ UILayoutGuide* bottomGuide = [[UILayoutGuide alloc] init]; |
[_containerView addLayoutGuide:topGuide]; |
[_containerView addLayoutGuide:bottomGuide]; |
NSDictionary* viewsDictionary = @{ |
- @"topGuide" : topGuide.get(), |
- @"image" : incognitoImage.get(), |
- @"heading" : incognitoTabHeading.get(), |
- @"description" : incognitoTabDescription.get(), |
- @"warning" : incognitoTabWarning.get(), |
- @"learnMoreButton" : learnMore.get(), |
- @"bottomGuide" : bottomGuide.get(), |
+ @"topGuide" : topGuide, |
+ @"image" : incognitoImage, |
+ @"heading" : incognitoTabHeading, |
+ @"description" : incognitoTabDescription, |
+ @"warning" : incognitoTabWarning, |
+ @"learnMoreButton" : learnMore, |
+ @"bottomGuide" : bottomGuide, |
}; |
NSArray* constraints = @[ |
@"V:|-0-[topGuide(>=12)]-[image]-24-[heading]-32-[description]", |
@@ -174,7 +176,7 @@ const int kLinkColor = 0x03A9F4; |
// Constraints comunicating the size of the contentView to the scrollview. |
// See UIScrollView autolayout information at |
// https://developer.apple.com/library/ios/releasenotes/General/RN-iOSSDK-6_0/index.html |
- viewsDictionary = @{ @"containerView" : _containerView.get() }; |
+ viewsDictionary = @{@"containerView" : _containerView}; |
constraints = @[ |
@"V:|-0-[containerView]-0-|", |
@"H:|-0-[containerView]-0-|", |
@@ -188,23 +190,22 @@ const int kLinkColor = 0x03A9F4; |
- (UILabel*)labelWithString:(NSString*)string |
font:(UIFont*)font |
alpha:(float)alpha { |
- base::scoped_nsobject<NSMutableAttributedString> attributedString( |
- [[NSMutableAttributedString alloc] initWithString:string]); |
- base::scoped_nsobject<NSMutableParagraphStyle> paragraphStyle( |
- [[NSMutableParagraphStyle alloc] init]); |
+ NSMutableAttributedString* attributedString = |
+ [[NSMutableAttributedString alloc] initWithString:string]; |
+ NSMutableParagraphStyle* paragraphStyle = |
+ [[NSMutableParagraphStyle alloc] init]; |
[paragraphStyle setLineSpacing:4]; |
[paragraphStyle setAlignment:NSTextAlignmentJustified]; |
[attributedString addAttribute:NSParagraphStyleAttributeName |
value:paragraphStyle |
range:NSMakeRange(0, string.length)]; |
- base::scoped_nsobject<UILabel> label( |
- [[UILabel alloc] initWithFrame:CGRectZero]); |
+ UILabel* label = [[UILabel alloc] initWithFrame:CGRectZero]; |
[label setTranslatesAutoresizingMaskIntoConstraints:NO]; |
[label setNumberOfLines:0]; |
[label setFont:font]; |
[label setAttributedText:attributedString]; |
[label setTextColor:[UIColor colorWithWhite:1.0 alpha:alpha]]; |
- return label.autorelease(); |
+ return label; |
} |
- (void)learnMoreButtonPressed { |
@@ -219,31 +220,31 @@ const int kLinkColor = 0x03A9F4; |
- (void)didMoveToSuperview { |
[super didMoveToSuperview]; |
- _containerHorizontalConstraint.reset( |
- [[NSLayoutConstraint constraintWithItem:_containerView.get() |
- attribute:NSLayoutAttributeWidth |
- relatedBy:NSLayoutRelationEqual |
- toItem:[self superview] |
- attribute:NSLayoutAttributeWidth |
- multiplier:1 |
- constant:0] retain]); |
- _containerVerticalConstraint.reset( |
- [[NSLayoutConstraint constraintWithItem:_containerView.get() |
- attribute:NSLayoutAttributeHeight |
- relatedBy:NSLayoutRelationGreaterThanOrEqual |
- toItem:[self superview] |
- attribute:NSLayoutAttributeHeight |
- multiplier:1 |
- constant:0] retain]); |
- [[self superview] addConstraint:_containerHorizontalConstraint.get()]; |
- [[self superview] addConstraint:_containerVerticalConstraint.get()]; |
+ _containerHorizontalConstraint = |
+ [NSLayoutConstraint constraintWithItem:_containerView |
+ attribute:NSLayoutAttributeWidth |
+ relatedBy:NSLayoutRelationEqual |
+ toItem:[self superview] |
+ attribute:NSLayoutAttributeWidth |
+ multiplier:1 |
+ constant:0]; |
+ _containerVerticalConstraint = |
+ [NSLayoutConstraint constraintWithItem:_containerView |
+ attribute:NSLayoutAttributeHeight |
+ relatedBy:NSLayoutRelationGreaterThanOrEqual |
+ toItem:[self superview] |
+ attribute:NSLayoutAttributeHeight |
+ multiplier:1 |
+ constant:0]; |
+ [[self superview] addConstraint:_containerHorizontalConstraint]; |
+ [[self superview] addConstraint:_containerVerticalConstraint]; |
} |
- (void)willMoveToSuperview:(UIView*)newSuperview { |
- [[self superview] removeConstraint:_containerHorizontalConstraint.get()]; |
- [[self superview] removeConstraint:_containerVerticalConstraint.get()]; |
- _containerHorizontalConstraint.reset(); |
- _containerVerticalConstraint.reset(); |
+ [[self superview] removeConstraint:_containerHorizontalConstraint]; |
+ [[self superview] removeConstraint:_containerVerticalConstraint]; |
+ _containerHorizontalConstraint = nil; |
+ _containerVerticalConstraint = nil; |
[super willMoveToSuperview:newSuperview]; |
} |
@@ -257,33 +258,29 @@ const int kLinkColor = 0x03A9F4; |
@implementation IncognitoPanelController { |
// Delegate for updating the toolbar's background alpha. |
- base::WeakNSProtocol<id<WebToolbarDelegate>> _webToolbarDelegate; |
- |
- // The view containing the scrollview. |
- // The purpose of this view is to be used to set the size |
- // of the contentView of the scrollview with constraints. |
- base::scoped_nsobject<UIView> _view; |
+ __weak id<WebToolbarDelegate> _webToolbarDelegate; |
// The scrollview containing the actual views. |
- base::scoped_nsobject<IncognitoNTPView> _incognitoView; |
+ IncognitoNTPView* _incognitoView; |
} |
// Property declared in NewTabPagePanelProtocol. |
@synthesize delegate = _delegate; |
+@synthesize view = _view; |
- (id)initWithLoader:(id<UrlLoader>)loader |
browserState:(ios::ChromeBrowserState*)browserState |
webToolbarDelegate:(id<WebToolbarDelegate>)webToolbarDelegate { |
self = [super init]; |
if (self) { |
- _view.reset([[UIView alloc] |
- initWithFrame:[UIApplication sharedApplication].keyWindow.bounds]); |
+ _view = [[UIView alloc] |
+ initWithFrame:[UIApplication sharedApplication].keyWindow.bounds]; |
[_view setAccessibilityIdentifier:@"NTP Incognito Panel"]; |
[_view setAutoresizingMask:UIViewAutoresizingFlexibleHeight | |
UIViewAutoresizingFlexibleWidth]; |
- _incognitoView.reset([[IncognitoNTPView alloc] |
+ _incognitoView = [[IncognitoNTPView alloc] |
initWithFrame:[UIApplication sharedApplication].keyWindow.bounds |
- urlLoader:loader]); |
+ urlLoader:loader]; |
[_incognitoView setAutoresizingMask:UIViewAutoresizingFlexibleHeight | |
UIViewAutoresizingFlexibleWidth]; |
@@ -295,7 +292,7 @@ const int kLinkColor = 0x03A9F4; |
} |
if (!IsIPadIdiom()) { |
[_incognitoView setDelegate:self]; |
- _webToolbarDelegate.reset(webToolbarDelegate); |
+ _webToolbarDelegate = webToolbarDelegate; |
[_webToolbarDelegate updateToolbarBackgroundAlpha:0]; |
} |
[_view addSubview:_incognitoView]; |
@@ -311,7 +308,7 @@ const int kLinkColor = 0x03A9F4; |
- (void)dealloc { |
[_webToolbarDelegate updateToolbarBackgroundAlpha:1]; |
[_incognitoView setDelegate:nil]; |
- [super dealloc]; |
+ ; |
} |
#pragma mark - |
@@ -342,10 +339,6 @@ const int kLinkColor = 0x03A9F4; |
return 0; |
} |
-- (UIView*)view { |
- return _view.get(); |
-} |
- |
#pragma mark - |
#pragma mark UIScrollViewDelegate methods |