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

Side by Side Diff: ios/web/web_state/ui/crw_ui_simple_web_view_controller.mm

Issue 1048613002: Upstream ios/web/web_state/ui support classes (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@master
Patch Set: Created 5 years, 8 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
(Empty)
1 // Copyright 2014 The Chromium Authors. All rights reserved.
2 // Use of this source code is governed by a BSD-style license that can be
3 // found in the LICENSE file.
4
5 #import "ios/web/web_state/ui/crw_ui_simple_web_view_controller.h"
6
7 #include "base/ios/weak_nsobject.h"
8 #import "base/logging.h"
9 #import "base/mac/scoped_nsobject.h"
10
11 @interface CRWUISimpleWebViewController()<UIWebViewDelegate>
12 @end
13
14 @implementation CRWUISimpleWebViewController {
15 base::scoped_nsobject<UIWebView> _webView;
16 base::WeakNSProtocol<id<CRWSimpleWebViewControllerDelegate>>
17 _delegate;
18 }
19
20 - (instancetype)initWithUIWebView:(UIWebView*)webView {
21 self = [super init];
22 if (self) {
23 DCHECK(webView);
24 _webView.reset([webView retain]);
25 [_webView setDelegate:self];
26 }
27 return self;
28 }
29
30 - (void)dealloc {
31 [_webView setDelegate:nil];
32 [super dealloc];
33 }
34
35 #pragma mark -
36 #pragma mark CRWSimpleWebView implementation
37
38 - (void)reload {
39 [_webView reload];
40 }
41
42 - (UIView*)view {
43 return _webView.get();
44 }
45
46 - (UIScrollView*)scrollView {
47 return [_webView scrollView];
48 }
49
50 - (NSString*)title {
51 return [_webView stringByEvaluatingJavaScriptFromString:@"document.title"];
52 }
53
54 - (void)loadRequest:(NSURLRequest*)request {
55 [_webView loadRequest:request];
56 }
57
58 - (void)loadHTMLString:(NSString*)html baseURL:(NSURL*)baseURL {
59 [_webView loadHTMLString:html baseURL:baseURL];
60 }
61
62 - (void)setDelegate:(id<CRWSimpleWebViewControllerDelegate>)delegate {
63 _delegate.reset(delegate);
64 }
65
66 - (id<CRWSimpleWebViewControllerDelegate>)delegate {
67 return _delegate.get();
68 }
69
70 - (void)loadPDFAtFilePath:(NSString*)filePath {
71 DCHECK([[NSFileManager defaultManager] fileExistsAtPath:filePath]);
72 NSData* data = [NSData dataWithContentsOfFile:filePath];
73 [_webView loadData:data
74 MIMEType:@"application/pdf"
75 textEncodingName:@"utf-8"
76 baseURL:nil];
77 }
78
79 - (void)evaluateJavaScript:(NSString*)script
80 stringResultHandler:(web::JavaScriptCompletion)handler {
81 web::EvaluateJavaScript(_webView, script, handler);
82 }
83
84 #pragma mark -
85 #pragma mark UIWebViewDelegateMethods
86
87 - (BOOL)webView:(UIWebView*)webView
88 shouldStartLoadWithRequest:(NSURLRequest*)request
89 navigationType:(UIWebViewNavigationType)navigationType {
90 if ([_delegate respondsToSelector:
91 @selector(simpleWebViewController:shouldStartLoadWithRequest:)]) {
92 return [_delegate simpleWebViewController:self
93 shouldStartLoadWithRequest:request];
94 }
95 // By default all loads are allowed.
96 return YES;
97 }
98
99 - (void)webViewDidFinishLoad:(UIWebView*)webView {
100 if (![_delegate respondsToSelector:
101 @selector(simpleWebViewController:titleMayHaveChanged:)]) {
102 return;
103 }
104 [_delegate simpleWebViewController:self titleMayHaveChanged:self.title];
105 }
106
107 @end
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698