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

Unified Diff: ios/chrome/browser/ui/reader_mode/reader_mode_controller.mm

Issue 2681773002: [ObjC ARC] Converts ios/chrome/browser/ui/reader_mode:reader_mode to ARC. (Closed)
Patch Set: Created 3 years, 10 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/reader_mode/reader_mode_controller.mm
diff --git a/ios/chrome/browser/ui/reader_mode/reader_mode_controller.mm b/ios/chrome/browser/ui/reader_mode/reader_mode_controller.mm
index f04917f4ca09773eacf1ab08739aa0b30269fae7..7b34b391215c7e15d6fb1a273a981b5b97378bcb 100644
--- a/ios/chrome/browser/ui/reader_mode/reader_mode_controller.mm
+++ b/ios/chrome/browser/ui/reader_mode/reader_mode_controller.mm
@@ -7,9 +7,7 @@
#include <memory>
#include <utility>
-#include "base/ios/weak_nsobject.h"
#include "base/mac/bind_objc_block.h"
-#include "base/mac/scoped_nsobject.h"
#include "base/memory/ptr_util.h"
#include "base/strings/sys_string_conversions.h"
#include "components/infobars/core/infobar.h"
@@ -24,6 +22,10 @@
#include "ios/web/public/browser_state.h"
#include "ios/web/public/web_state/web_state.h"
+#if !defined(__has_feature) || !__has_feature(objc_arc)
+#error "This file requires ARC support."
+#endif
+
@protocol ReaderModeCheckerObserverBridgeProtocol
- (void)pageIsDistillable;
@end
@@ -96,7 +98,7 @@ class InfoBarManagerObserverBridge : infobars::InfoBarManager::Observer {
infobars::InfoBar* infobar_;
web::WebState* _webState;
}
-@property(readonly, nonatomic) id<ReaderModeControllerDelegate> delegate;
+@property(weak, readonly, nonatomic) id<ReaderModeControllerDelegate> delegate;
// Triggers a distillation and returns a DistillerViewer to keep as a handle to
// the running distillation.
@@ -142,7 +144,6 @@ class InfoBarManagerObserverBridge : infobars::InfoBarManager::Observer {
- (void)dealloc {
if (_webState)
[self detachFromWebState];
- [super dealloc];
}
- (void)detachFromWebState {
@@ -160,7 +161,7 @@ class InfoBarManagerObserverBridge : infobars::InfoBarManager::Observer {
- (std::unique_ptr<dom_distiller::DistillerViewer>)startDistillation {
DCHECK(_webState);
- base::WeakNSObject<ReaderModeController> weakSelf(self);
+ __weak ReaderModeController* weakSelf = self;
GURL pageURL = _webState->GetLastCommittedURL();
ios::ChromeBrowserState* browserState =
ios::ChromeBrowserState::FromBrowserState(_webState->GetBrowserState());
@@ -168,7 +169,7 @@ class InfoBarManagerObserverBridge : infobars::InfoBarManager::Observer {
dom_distiller::DomDistillerServiceFactory::GetForBrowserState(
browserState),
browserState->GetPrefs(), pageURL,
- base::BindBlock(^(
+ base::BindBlockArc(^(
const GURL& pageURL, const std::string& html,
const std::vector<dom_distiller::DistillerViewer::ImageInfo>& images,
const std::string& title) {
@@ -191,7 +192,7 @@ class InfoBarManagerObserverBridge : infobars::InfoBarManager::Observer {
- (ReaderModeView*)readerModeViewWithFrame:(CGRect)frame {
DCHECK(_checker->CanSwitchToReaderMode());
ReaderModeView* view =
- [[[ReaderModeView alloc] initWithFrame:frame delegate:self] autorelease];
+ [[ReaderModeView alloc] initWithFrame:frame delegate:self];
[view assignDistillerViewer:[self startDistillation]];
return view;
}
@@ -200,14 +201,13 @@ class InfoBarManagerObserverBridge : infobars::InfoBarManager::Observer {
- (void)showInfoBar:(const std::string&)html forURL:(const GURL&)url {
DCHECK(_webState);
- base::WeakNSProtocol<id<ReaderModeControllerDelegate>> weakDelegate(
- self.delegate);
+ __weak id<ReaderModeControllerDelegate> weakDelegate = self.delegate;
// Non reference version of the variables needed.
const std::string html_non_ref(html);
const GURL url_non_ref(url);
auto infoBarDelegate =
- base::MakeUnique<ReaderModeInfoBarDelegate>(base::BindBlock(^{
+ base::MakeUnique<ReaderModeInfoBarDelegate>(base::BindBlockArc(^{
[weakDelegate loadReaderModeHTML:base::SysUTF8ToNSString(html_non_ref)
forURL:url_non_ref];
}));

Powered by Google App Engine
This is Rietveld 408576698