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

Unified Diff: ios/chrome/browser/ui/omnibox/page_info_view_controller.mm

Issue 2707963002: [ObjC ARC] Converts ios/chrome/browser/ui/omnibox:omnibox_internal to ARC. (Closed)
Patch Set: ARC in new code Created 3 years, 9 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/omnibox/page_info_view_controller.mm
diff --git a/ios/chrome/browser/ui/omnibox/page_info_view_controller.mm b/ios/chrome/browser/ui/omnibox/page_info_view_controller.mm
index 26503905b88760e8316b198d4b3ced5c20047b70..5d3d3aaa9fd26216ac74b941be6820d1c8d1d44f 100644
--- a/ios/chrome/browser/ui/omnibox/page_info_view_controller.mm
+++ b/ios/chrome/browser/ui/omnibox/page_info_view_controller.mm
@@ -8,8 +8,6 @@
#include "base/location.h"
#include "base/mac/bundle_locations.h"
#import "base/mac/foundation_util.h"
-#include "base/mac/objc_property_releaser.h"
-#include "base/mac/scoped_nsobject.h"
#include "base/message_loop/message_loop.h"
#include "base/single_thread_task_runner.h"
#include "base/strings/sys_string_conversions.h"
@@ -33,6 +31,10 @@
#import "ui/gfx/ios/NSString+CrStringDrawing.h"
#import "ui/gfx/ios/uikit_util.h"
+#if !defined(__has_feature) || !__has_feature(objc_arc)
+#error "This file requires ARC support."
+#endif
+
using ios::material::TimingFunction;
namespace {
@@ -126,13 +128,21 @@ void PageInfoModelBubbleBridge::OnPageInfoModelChanged() {
base::TimeDelta::FromMilliseconds(1000 /* milliseconds */));
}
+void PageInfoModelBubbleBridge::PerformLayout() {
+ // If the window is animating closed when this is called, the
+ // animation could be holding the last reference to |controller_|
+ // (and thus |this|). Pin it until the task is completed.
+ base::scoped_nsobject<PageInfoViewController> keep_alive(controller_);
+ [controller_ performLayout];
+}
+
@interface PageInfoViewController ()<UIGestureRecognizerDelegate> {
// Scroll View inside the PageInfoView used to display content that exceeds
// the available space.
- base::scoped_nsobject<UIScrollView> scrollView_;
+ UIScrollView* scrollView_;
// Container View added inside the Scroll View. All content is added to this
// view instead of PopupMenuController.containerView_.
- base::scoped_nsobject<BidiContainerView> innerContainerView_;
+ BidiContainerView* innerContainerView_;
// Origin of the arrow at the top of the popup window.
CGPoint origin_;
@@ -151,8 +161,6 @@ void PageInfoModelBubbleBridge::OnPageInfoModelChanged() {
// YES when the popup has finished animating in. NO otherwise.
BOOL animateInCompleted_;
-
- base::mac::ObjCPropertyReleaser propertyReleaser_PageInfoViewController_;
}
// Adds the state image at a pre-determined x position and the given y. This
@@ -186,8 +194,8 @@ void PageInfoModelBubbleBridge::OnPageInfoModelChanged() {
// Sends the IDC_HIDE_PAGE_INFO command to hide the current popup.
- (void)close;
-@property(nonatomic, retain) UIView* containerView;
-@property(nonatomic, retain) UIView* popupContainer;
+@property(nonatomic, strong) UIView* containerView;
+@property(nonatomic, strong) UIView* popupContainer;
@end
@implementation PageInfoViewController
@@ -202,11 +210,8 @@ void PageInfoModelBubbleBridge::OnPageInfoModelChanged() {
DCHECK(parent);
self = [super init];
if (self) {
- propertyReleaser_PageInfoViewController_.Init(
- self, [PageInfoViewController class]);
-
- scrollView_.reset(
- [[UIScrollView alloc] initWithFrame:CGRectMake(0, 0, 240, 128)]);
+ scrollView_ =
+ [[UIScrollView alloc] initWithFrame:CGRectMake(0, 0, 240, 128)];
[scrollView_ setMultipleTouchEnabled:YES];
[scrollView_ setClipsToBounds:YES];
[scrollView_ setShowsHorizontalScrollIndicator:NO];
@@ -215,8 +220,8 @@ void PageInfoModelBubbleBridge::OnPageInfoModelChanged() {
setAutoresizingMask:(UIViewAutoresizingFlexibleTrailingMargin() |
UIViewAutoresizingFlexibleTopMargin)];
- innerContainerView_.reset(
- [[BidiContainerView alloc] initWithFrame:CGRectMake(0, 0, 194, 327)]);
+ innerContainerView_ =
+ [[BidiContainerView alloc] initWithFrame:CGRectMake(0, 0, 194, 327)];
[innerContainerView_ setBackgroundColor:[UIColor clearColor]];
[innerContainerView_
setAccessibilityLabel:@"Page Security Info Scroll Container"];
@@ -238,10 +243,10 @@ void PageInfoModelBubbleBridge::OnPageInfoModelChanged() {
textWidth_ = viewWidth_ - (kImageSize + kImageSpacing + kFramePadding * 2 +
kScrollViewInset * 2);
- base::scoped_nsobject<UILongPressGestureRecognizer> touchDownRecognizer(
+ UILongPressGestureRecognizer* touchDownRecognizer =
[[UILongPressGestureRecognizer alloc]
initWithTarget:self
- action:@selector(rootViewTapped:)]);
+ action:@selector(rootViewTapped:)];
// Setting the duration to .001 makes this similar to a control event
// UIControlEventTouchDown.
[touchDownRecognizer setMinimumPressDuration:.001];
@@ -398,7 +403,7 @@ void PageInfoModelBubbleBridge::OnPageInfoModelChanged() {
[innerContainerView_ setSubviewNeedsAdjustmentForRTL:view];
}
- [scrollView_ setContentSize:innerContainerView_.get().frame.size];
+ [scrollView_ setContentSize:innerContainerView_.frame.size];
}
- (void)close {
@@ -417,17 +422,16 @@ void PageInfoModelBubbleBridge::OnPageInfoModelChanged() {
toSubviews:(NSMutableArray*)subviews
atOffset:(CGFloat)offset {
CGRect frame = CGRectMake(kFramePadding, offset, kImageSize, kImageSize);
- base::scoped_nsobject<UIImageView> imageView(
- [[UIImageView alloc] initWithFrame:frame]);
+ UIImageView* imageView = [[UIImageView alloc] initWithFrame:frame];
[imageView setImage:model_->GetIconImage(info.icon_id)->ToUIImage()];
- [subviews addObject:imageView.get()];
+ [subviews addObject:imageView];
}
- (CGFloat)addHeadlineViewForInfo:(const PageInfoModel::SectionInfo&)info
toSubviews:(NSMutableArray*)subviews
atPoint:(CGPoint)point {
CGRect frame = CGRectMake(point.x, point.y, textWidth_, kHeadlineHeight);
- base::scoped_nsobject<UILabel> label([[UILabel alloc] initWithFrame:frame]);
+ UILabel* label = [[UILabel alloc] initWithFrame:frame];
[label setTextAlignment:NSTextAlignmentNatural];
[label setText:base::SysUTF16ToNSString(info.headline)];
[label setTextColor:PageInfoTextColor()];
@@ -435,7 +439,7 @@ void PageInfoModelBubbleBridge::OnPageInfoModelChanged() {
[label setBackgroundColor:[UIColor clearColor]];
[label setFrame:frame];
[label setLineBreakMode:NSLineBreakByTruncatingHead];
- [subviews addObject:label.get()];
+ [subviews addObject:label];
return CGRectGetHeight(frame);
}
@@ -443,7 +447,7 @@ void PageInfoModelBubbleBridge::OnPageInfoModelChanged() {
toSubviews:(NSMutableArray*)subviews
atPoint:(CGPoint)point {
CGRect frame = CGRectMake(point.x, point.y, textWidth_, kImageSize);
- base::scoped_nsobject<UILabel> label([[UILabel alloc] initWithFrame:frame]);
+ UILabel* label = [[UILabel alloc] initWithFrame:frame];
[label setTextAlignment:NSTextAlignmentNatural];
NSString* description = base::SysUTF16ToNSString(info.description);
UIFont* font = [MDCTypography captionFont];
@@ -459,7 +463,7 @@ void PageInfoModelBubbleBridge::OnPageInfoModelChanged() {
[description cr_boundingSizeWithSize:constraintSize font:font];
frame.size.height = sizeToFit.height;
[label setFrame:frame];
- [subviews addObject:label.get()];
+ [subviews addObject:label];
return CGRectGetHeight(frame);
}
@@ -467,7 +471,7 @@ void PageInfoModelBubbleBridge::OnPageInfoModelChanged() {
if (buttonAction == PageInfoModel::BUTTON_NONE) {
return nil;
}
- UIButton* button = [[[UIButton alloc] initWithFrame:CGRectZero] autorelease];
+ UIButton* button = [[UIButton alloc] initWithFrame:CGRectZero];
int messageId = IDS_IOS_PAGE_INFO_RELOAD;
NSInteger tag = IDC_RELOAD;
NSString* accessibilityID = @"Reload button";

Powered by Google App Engine
This is Rietveld 408576698