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

Unified Diff: ios/chrome/browser/upgrade/upgrade_center.mm

Issue 2889023002: [ObjC ARC] Converts ios/chrome/browser/upgrade:upgrade to ARC. (Closed)
Patch Set: Created 3 years, 7 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
« no previous file with comments | « ios/chrome/browser/upgrade/BUILD.gn ('k') | no next file » | no next file with comments »
Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
Index: ios/chrome/browser/upgrade/upgrade_center.mm
diff --git a/ios/chrome/browser/upgrade/upgrade_center.mm b/ios/chrome/browser/upgrade/upgrade_center.mm
index 3566c5316daa239357be0693194e098b7d1cd494..9f6c0a61ab1ac28d17ae4e3472da9e974481db9a 100644
--- a/ios/chrome/browser/upgrade/upgrade_center.mm
+++ b/ios/chrome/browser/upgrade/upgrade_center.mm
@@ -9,7 +9,6 @@
#include <utility>
#include "base/mac/bundle_locations.h"
-#include "base/mac/scoped_nsobject.h"
#include "base/memory/ptr_util.h"
#include "base/scoped_observer.h"
#include "base/strings/sys_string_conversions.h"
@@ -29,6 +28,10 @@
#include "ui/gfx/image/image.h"
#include "url/gurl.h"
+#if !defined(__has_feature) || !__has_feature(objc_arc)
+#error "This file requires ARC support."
+#endif
+
@interface UpgradeCenter ()
// Creates infobars on all tabs.
- (void)showUpgradeInfoBars;
@@ -141,7 +144,7 @@ void RegisterObserver(infobars::InfoBarManager* infobar_manager,
scoped_observer_.Add(infobar_manager);
infobar_delegate_ = infobar_delegate;
dismiss_delegate_ = dismiss_delegate;
- tab_id_.reset([tab_id copy]);
+ tab_id_ = [tab_id copy];
}
UpgradeInfoBarDelegate* infobar_delegate() { return infobar_delegate_; }
@@ -150,7 +153,7 @@ void RegisterObserver(infobars::InfoBarManager* infobar_manager,
// infobars::InfoBarManager::Observer implementation.
void OnInfoBarRemoved(infobars::InfoBar* infobar, bool animate) override {
if (infobar->delegate() == infobar_delegate_) {
- [dismiss_delegate_ dismissedInfoBar:tab_id_.get()
+ [dismiss_delegate_ dismissedInfoBar:tab_id_
performUpgrade:infobar_delegate_->AcceptPressed()];
}
}
@@ -162,7 +165,7 @@ void OnManagerShuttingDown(
UpgradeInfoBarDelegate* infobar_delegate_;
UpgradeCenter* dismiss_delegate_;
sdefresne 2017/05/31 08:16:13 This is an Objective-C pointer. Since the original
liaoyuke 2017/06/13 18:17:31 Done.
- base::scoped_nsobject<NSString> tab_id_;
+ NSString* tab_id_;
ScopedObserver<infobars::InfoBarManager, infobars::InfoBarManager::Observer>
scoped_observer_;
@@ -210,7 +213,7 @@ @implementation UpgradeCenter {
// YES if the infobars are currently visible.
BOOL upgradeInfoBarIsVisible_;
// Used to store the visible upgrade infobars, indexed by tabId.
- base::scoped_nsobject<NSMutableDictionary> upgradeInfoBarDelegates_;
+ NSMutableDictionary* upgradeInfoBarDelegates_;
sdefresne 2017/05/31 08:16:13 NSMutableDictionary<NSString*, DelegateHolder*>* u
liaoyuke 2017/06/13 18:17:31 Done.
// Stores the clients of the upgrade center. These objectiveC objects are not
// retained.
std::set<id<UpgradeCenterClientProtocol>> clients_;
sdefresne 2017/05/31 08:16:13 The comments says that the Objective-C objects are
liaoyuke 2017/06/13 18:17:31 Thank you for explaining! Done.
@@ -231,7 +234,7 @@ + (UpgradeCenter*)sharedInstance {
- (instancetype)init {
self = [super init];
if (self) {
- upgradeInfoBarDelegates_.reset([[NSMutableDictionary alloc] init]);
+ upgradeInfoBarDelegates_ = [[NSMutableDictionary alloc] init];
// There is no dealloc and no unregister as this class is a never
// deallocated singleton.
@@ -310,11 +313,11 @@ - (void)addInfoBarToManager:(infobars::InfoBarManager*)infoBarManager
return;
auto infobarDelegate = base::MakeUnique<UpgradeInfoBarDelegate>();
- base::scoped_nsobject<DelegateHolder> delegateHolder([[DelegateHolder alloc]
- initWithInfoBarManager:infoBarManager
- infoBarDelegate:infobarDelegate.get()
- upgradeCenter:self
- tabId:tabId]);
+ DelegateHolder* delegateHolder =
+ [[DelegateHolder alloc] initWithInfoBarManager:infoBarManager
+ infoBarDelegate:infobarDelegate.get()
+ upgradeCenter:self
+ tabId:tabId];
[upgradeInfoBarDelegates_ setObject:delegateHolder forKey:tabId];
infoBarManager->AddInfoBar(
@@ -330,9 +333,9 @@ - (void)dismissedInfoBar:(NSString*)tabId performUpgrade:(BOOL)shouldUpgrade {
// notification. In all likelyhood it was trigerred by calling
// -hideUpgradeInfoBars. Or because a tab was closed without dismissing the
// infobar.
- base::scoped_nsobject<DelegateHolder> delegateHolder(
- [[upgradeInfoBarDelegates_ objectForKey:tabId] retain]);
- if (!delegateHolder.get())
+ DelegateHolder* delegateHolder =
+ [upgradeInfoBarDelegates_ objectForKey:tabId];
+ if (!delegateHolder)
return;
// Forget about this dismissed infobar.
@@ -353,8 +356,8 @@ - (void)dismissedInfoBar:(NSString*)tabId performUpgrade:(BOOL)shouldUpgrade {
if (web::UrlHasWebScheme(url)) {
// This URL can be opened in the application, just open in a new tab.
- base::scoped_nsobject<OpenUrlCommand> command(
- [[OpenUrlCommand alloc] initWithURLFromChrome:url]);
+ OpenUrlCommand* command =
+ [[OpenUrlCommand alloc] initWithURLFromChrome:url];
UIWindow* main_window = [[UIApplication sharedApplication] keyWindow];
DCHECK(main_window);
[main_window chromeExecuteCommand:command];
@@ -392,9 +395,9 @@ - (void)hideUpgradeInfoBars {
for (NSString* tabId in [upgradeInfoBarDelegates_ allKeys]) {
// It is important to retain the delegateHolder as otherwise it is
// deallocated as soon as it is removed from the dictionary.
- base::scoped_nsobject<DelegateHolder> delegateHolder(
- [[upgradeInfoBarDelegates_ objectForKey:tabId] retain]);
- if (delegateHolder.get()) {
+ DelegateHolder* delegateHolder =
+ [upgradeInfoBarDelegates_ objectForKey:tabId];
+ if (delegateHolder) {
[upgradeInfoBarDelegates_ removeObjectForKey:tabId];
UpgradeInfoBarDelegate* delegate = [delegateHolder infoBarDelegate];
DCHECK(delegate);
« no previous file with comments | « ios/chrome/browser/upgrade/BUILD.gn ('k') | no next file » | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698