| 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
|
|
|