Index: ios/web/web_state/js/crw_js_window_id_manager.mm |
diff --git a/ios/web/web_state/js/crw_js_window_id_manager.mm b/ios/web/web_state/js/crw_js_window_id_manager.mm |
index 8a4b0dc1accd727e015ce3f372c8a2a4c554c03e..2832a46cdd18b8e60998c2027360258d2b2dbefe 100644 |
--- a/ios/web/web_state/js/crw_js_window_id_manager.mm |
+++ b/ios/web/web_state/js/crw_js_window_id_manager.mm |
@@ -4,13 +4,16 @@ |
#import "ios/web/web_state/js/crw_js_window_id_manager.h" |
-#import "base/ios/weak_nsobject.h" |
#import "base/mac/scoped_nsobject.h" |
#include "base/strings/string_number_conversions.h" |
#include "base/strings/sys_string_conversions.h" |
#include "crypto/random.h" |
#import "ios/web/web_state/js/page_script_util.h" |
+#if !defined(__has_feature) || !__has_feature(objc_arc) |
+#error "This file requires ARC support." |
+#endif |
+ |
namespace { |
// Number of random bytes in unique key for window ID. The length of the |
// window ID will be twice this number, as it is hexadecimal encoded. |
@@ -37,7 +40,7 @@ const size_t kUniqueKeyLength = 16; |
- (instancetype)initWithWebView:(WKWebView*)webView { |
if ((self = [super init])) { |
- _webView.reset([webView retain]); |
+ _webView.reset(webView); |
_windowID.reset([[self class] newUniqueKey]); |
} |
return self; |
@@ -54,7 +57,7 @@ const size_t kUniqueKeyLength = 16; |
stringWithFormat:@"if (!window.__gCrWeb) {false; } else { %@; true; }", |
script]; |
- base::WeakNSObject<CRWJSWindowIDManager> weakSelf(self); |
+ __weak CRWJSWindowIDManager* weakSelf = self; |
[_webView evaluateJavaScript:scriptWithResult |
completionHandler:^(id result, NSError* error) { |
if (error) { |
@@ -63,7 +66,8 @@ const size_t kUniqueKeyLength = 16; |
return; |
} |
- DCHECK_EQ(CFBooleanGetTypeID(), CFGetTypeID(result)); |
+ DCHECK_EQ(CFBooleanGetTypeID(), |
+ CFGetTypeID((__bridge CFTypeRef)result)); |
if (![result boolValue]) { |
// WKUserScript has not been injected yet. Retry window id |
// injection, because it is critical for the system to |
@@ -79,7 +83,7 @@ const size_t kUniqueKeyLength = 16; |
char randomBytes[kUniqueKeyLength]; |
crypto::RandBytes(randomBytes, kUniqueKeyLength); |
std::string result = base::HexEncode(randomBytes, kUniqueKeyLength); |
- return [base::SysUTF8ToNSString(result) retain]; |
+ return base::SysUTF8ToNSString(result); |
} |
@end |