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

Unified Diff: ios/chrome/browser/ui/ntp/google_landing_mediator.mm

Issue 2955363002: [ObjC ARC] Converts ios/chrome/browser/ui/ntp:ntp_internal to ARC. (Closed)
Patch Set: rebase Created 3 years, 5 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/ntp/google_landing_mediator.mm
diff --git a/ios/chrome/browser/ui/ntp/google_landing_mediator.mm b/ios/chrome/browser/ui/ntp/google_landing_mediator.mm
index 693d4507516dbe02a2928a4f23a305de8504c58a..487c2232ef43ddf1f8352616ad5c1639f4fc0a07 100644
--- a/ios/chrome/browser/ui/ntp/google_landing_mediator.mm
+++ b/ios/chrome/browser/ui/ntp/google_landing_mediator.mm
@@ -4,9 +4,7 @@
#import "ios/chrome/browser/ui/ntp/google_landing_mediator.h"
-#import "base/ios/weak_nsobject.h"
#include "base/mac/bind_objc_block.h"
-#include "base/mac/scoped_nsobject.h"
#include "base/metrics/user_metrics.h"
#include "base/metrics/user_metrics_action.h"
#include "base/strings/sys_string_conversions.h"
@@ -44,6 +42,10 @@
#include "ios/web/public/web_state/web_state.h"
#include "skia/ext/skia_utils_ios.h"
+#if !defined(__has_feature) || !__has_feature(objc_arc)
+#error "This file requires ARC support."
+#endif
+
using base::UserMetricsAction;
namespace {
@@ -70,7 +72,7 @@ class SearchEngineObserver : public TemplateURLServiceObserver {
void OnTemplateURLServiceChanged() override;
private:
- base::WeakNSObject<GoogleLandingMediator> _owner;
+ __weak GoogleLandingMediator* _owner;
TemplateURLService* _templateURLService; // weak
};
@@ -100,7 +102,7 @@ void SearchEngineObserver::OnTemplateURLServiceChanged() {
BOOL _recordedPageImpression;
// Controller to fetch and show doodles or a default Google logo.
- base::scoped_nsprotocol<id<LogoVendor>> _doodleController;
+ id<LogoVendor> _doodleController;
// Listen for default search engine changes.
std::unique_ptr<google_landing::SearchEngineObserver> _observer;
@@ -135,23 +137,16 @@ void SearchEngineObserver::OnTemplateURLServiceChanged() {
// Used to cancel tasks for the LargeIconService.
base::CancelableTaskTracker _cancelable_task_tracker;
-
- // Consumer to handle google landing update notifications.
- base::WeakNSProtocol<id<GoogleLandingConsumer>> _consumer;
-
- // Dispatcher for this mediator.
- base::WeakNSProtocol<id<ChromeExecuteCommand, UrlLoader>> _dispatcher;
}
// Consumer to handle google landing update notifications.
-@property(nonatomic, assign, readonly) id<GoogleLandingConsumer> consumer;
+@property(nonatomic, weak) id<GoogleLandingConsumer> consumer;
// The WebStateList that is being observed by this mediator.
@property(nonatomic, assign, readonly) WebStateList* webStateList;
// The dispatcher for this mediator.
-@property(nonatomic, assign, readonly) id<ChromeExecuteCommand, UrlLoader>
- dispatcher;
+@property(nonatomic, weak) id<ChromeExecuteCommand, UrlLoader> dispatcher;
// Perform initial setup.
- (void)setUp;
@@ -161,6 +156,8 @@ void SearchEngineObserver::OnTemplateURLServiceChanged() {
@implementation GoogleLandingMediator
@synthesize webStateList = _webStateList;
+@synthesize consumer = _consumer;
+@synthesize dispatcher = _dispatcher;
- (instancetype)initWithConsumer:(id<GoogleLandingConsumer>)consumer
browserState:(ios::ChromeBrowserState*)browserState
@@ -168,9 +165,9 @@ void SearchEngineObserver::OnTemplateURLServiceChanged() {
webStateList:(WebStateList*)webStateList {
self = [super init];
if (self) {
- _consumer.reset(consumer);
+ _consumer = consumer;
_browserState = browserState;
- _dispatcher.reset(dispatcher);
+ _dispatcher = dispatcher;
_webStateList = webStateList;
_webStateListObserver = base::MakeUnique<WebStateListObserverBridge>(self);
@@ -207,9 +204,9 @@ void SearchEngineObserver::OnTemplateURLServiceChanged() {
_observer.reset(
new google_landing::SearchEngineObserver(self, _templateURLService));
_templateURLService->Load();
- _doodleController.reset(ios::GetChromeBrowserProvider()->CreateLogoVendor(
- _browserState, self.dispatcher));
- [self.consumer setLogoVendor:_doodleController];
+ _doodleController = ios::GetChromeBrowserProvider()->CreateLogoVendor(
+ _browserState, self.dispatcher);
+ [_consumer setLogoVendor:_doodleController];
[self updateShowLogo];
// Set up most visited sites. This call may have the side effect of
@@ -298,7 +295,7 @@ void SearchEngineObserver::OnTemplateURLServiceChanged() {
fallbackCallback:(void (^)(UIColor* textColor,
UIColor* backgroundColor,
BOOL isDefaultColor))fallbackCallback {
- base::WeakNSObject<GoogleLandingMediator> weakSelf(self);
+ __weak GoogleLandingMediator* weakSelf = self;
void (^faviconBlock)(const favicon_base::LargeIconResult&) = ^(
const favicon_base::LargeIconResult& result) {
@@ -325,11 +322,10 @@ void SearchEngineObserver::OnTemplateURLServiceChanged() {
: ntp_tiles::TileVisualType::ICON_COLOR;
}
- base::scoped_nsobject<GoogleLandingMediator> strongSelf([weakSelf retain]);
- if (strongSelf) {
- if ((result.bitmap.is_valid() || result.fallback_icon_style))
- [strongSelf largeIconCache]->SetCachedResult(URL, result);
- [strongSelf faviconOfType:tileType fetchedForURL:URL];
+ GoogleLandingMediator* strongSelf = weakSelf;
+ if (strongSelf &&
+ (result.bitmap.is_valid() || result.fallback_icon_style)) {
+ [strongSelf largeIconCache]->SetCachedResult(URL, result);
}
};
@@ -344,7 +340,7 @@ void SearchEngineObserver::OnTemplateURLServiceChanged() {
CGFloat faviconSize = [UIScreen mainScreen].scale * size;
CGFloat faviconMinSize = [UIScreen mainScreen].scale * kFaviconMinSize;
[self largeIconService]->GetLargeIconOrFallbackStyle(
- URL, faviconMinSize, faviconSize, base::BindBlock(faviconBlock),
+ URL, faviconMinSize, faviconSize, base::BindBlockArc(faviconBlock),
&_cancelable_task_tracker);
}
@@ -439,9 +435,8 @@ void SearchEngineObserver::OnTemplateURLServiceChanged() {
}
if (_notificationPromo->IsChromeCommand()) {
- base::scoped_nsobject<GenericChromeCommand> command(
- [[GenericChromeCommand alloc]
- initWithTag:_notificationPromo->command_id()]);
+ GenericChromeCommand* command = [[GenericChromeCommand alloc]
+ initWithTag:_notificationPromo->command_id()];
[self.dispatcher chromeExecuteCommand:command];
return;
}
@@ -474,14 +469,4 @@ void SearchEngineObserver::OnTemplateURLServiceChanged() {
}
}
-#pragma mark - Properties
-
-- (id<GoogleLandingConsumer>)consumer {
- return _consumer.get();
-}
-
-- (id<ChromeExecuteCommand, UrlLoader>)dispatcher {
- return _dispatcher.get();
-}
-
@end
« no previous file with comments | « ios/chrome/browser/ui/ntp/centering_scrollview.mm ('k') | ios/chrome/browser/ui/ntp/google_landing_view_controller.h » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698