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

Side by Side Diff: ios/web/public/test/fakes/crw_test_js_injection_receiver.mm

Issue 2922973004: [ObjC ARC] Converts ios/web/public/test/fakes:fakes to ARC. (Closed)
Patch Set: scoped_nsobject in .h Created 3 years, 6 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 unified diff | Download patch
OLDNEW
1 // Copyright 2013 The Chromium Authors. All rights reserved. 1 // Copyright 2013 The Chromium Authors. All rights reserved.
2 // Use of this source code is governed by a BSD-style license that can be 2 // Use of this source code is governed by a BSD-style license that can be
3 // found in the LICENSE file. 3 // found in the LICENSE file.
4 4
5 #import "ios/web/public/test/fakes/crw_test_js_injection_receiver.h" 5 #import "ios/web/public/test/fakes/crw_test_js_injection_receiver.h"
6 6
7 #import <UIKit/UIKit.h> 7 #import <UIKit/UIKit.h>
8 #import <WebKit/WebKit.h> 8 #import <WebKit/WebKit.h>
9 9
10 #import "base/ios/weak_nsobject.h"
11 #import "base/mac/scoped_nsobject.h"
12 #import "ios/web/public/web_state/js/crw_js_injection_evaluator.h" 10 #import "ios/web/public/web_state/js/crw_js_injection_evaluator.h"
13 #import "ios/web/web_state/ui/web_view_js_utils.h" 11 #import "ios/web/web_state/ui/web_view_js_utils.h"
14 12
13 #if !defined(__has_feature) || !__has_feature(objc_arc)
14 #error "This file requires ARC support."
15 #endif
16
15 @interface CRWTestWKWebViewEvaluator : NSObject<CRWJSInjectionEvaluator> { 17 @interface CRWTestWKWebViewEvaluator : NSObject<CRWJSInjectionEvaluator> {
16 // Web view for JavaScript evaluation. 18 // Web view for JavaScript evaluation.
17 base::scoped_nsobject<WKWebView> _webView; 19 WKWebView* _webView;
18 // Set to track injected script managers. 20 // Set to track injected script managers.
19 base::scoped_nsobject<NSMutableSet> _injectedScriptManagers; 21 NSMutableSet* _injectedScriptManagers;
20 } 22 }
21 @end 23 @end
22 24
23 @implementation CRWTestWKWebViewEvaluator 25 @implementation CRWTestWKWebViewEvaluator
24 26
25 - (instancetype)init { 27 - (instancetype)init {
26 if (self = [super init]) { 28 if (self = [super init]) {
27 _webView.reset([[WKWebView alloc] init]); 29 _webView = [[WKWebView alloc] init];
28 _injectedScriptManagers.reset([[NSMutableSet alloc] init]); 30 _injectedScriptManagers = [[NSMutableSet alloc] init];
29 } 31 }
30 return self; 32 return self;
31 } 33 }
32 34
33 - (void)executeJavaScript:(NSString*)script 35 - (void)executeJavaScript:(NSString*)script
34 completionHandler:(web::JavaScriptResultBlock)completionHandler { 36 completionHandler:(web::JavaScriptResultBlock)completionHandler {
35 web::ExecuteJavaScript(_webView, script, completionHandler); 37 web::ExecuteJavaScript(_webView, script, completionHandler);
36 } 38 }
37 39
38 - (BOOL)scriptHasBeenInjectedForClass:(Class)injectionManagerClass { 40 - (BOOL)scriptHasBeenInjectedForClass:(Class)injectionManagerClass {
39 return [_injectedScriptManagers containsObject:injectionManagerClass]; 41 return [_injectedScriptManagers containsObject:injectionManagerClass];
40 } 42 }
41 43
42 - (void)injectScript:(NSString*)script forClass:(Class)JSInjectionManagerClass { 44 - (void)injectScript:(NSString*)script forClass:(Class)JSInjectionManagerClass {
43 // Web layer guarantees that __gCrWeb object is always injected first. 45 // Web layer guarantees that __gCrWeb object is always injected first.
44 NSString* supplementedScript = 46 NSString* supplementedScript =
45 [@"window.__gCrWeb = {};" stringByAppendingString:script]; 47 [@"window.__gCrWeb = {};" stringByAppendingString:script];
46 [_webView evaluateJavaScript:supplementedScript completionHandler:nil]; 48 [_webView evaluateJavaScript:supplementedScript completionHandler:nil];
47 [_injectedScriptManagers addObject:JSInjectionManagerClass]; 49 [_injectedScriptManagers addObject:JSInjectionManagerClass];
48 } 50 }
49 51
50 @end 52 @end
51 53
52 @interface CRWTestJSInjectionReceiver () { 54 @interface CRWTestJSInjectionReceiver () {
53 base::scoped_nsobject<CRWTestWKWebViewEvaluator> evaluator_; 55 CRWTestWKWebViewEvaluator* evaluator_;
54 } 56 }
55 @end 57 @end
56 58
57 @implementation CRWTestJSInjectionReceiver 59 @implementation CRWTestJSInjectionReceiver
58 60
59 - (id)init { 61 - (id)init {
60 base::scoped_nsobject<CRWTestWKWebViewEvaluator> evaluator( 62 CRWTestWKWebViewEvaluator* evaluator =
61 [[CRWTestWKWebViewEvaluator alloc] init]); 63 [[CRWTestWKWebViewEvaluator alloc] init];
62 if (self = [super initWithEvaluator:evaluator]) 64 if (self = [super initWithEvaluator:evaluator])
63 evaluator_.swap(evaluator); 65 evaluator_ = evaluator;
64 return self; 66 return self;
65 } 67 }
66 68
67 @end 69 @end
OLDNEW
« no previous file with comments | « ios/web/public/test/fakes/BUILD.gn ('k') | ios/web/public/test/fakes/crw_test_web_state_observer.mm » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698