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

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

Issue 2351893003: Remove __gCrWeb.invokeOnHostImmediate. (Closed)
Patch Set: Remove early return. Created 4 years, 2 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 2012 The Chromium Authors. All rights reserved. 1 // Copyright 2012 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/web_state/ui/crw_web_controller.h" 5 #import "ios/web/web_state/ui/crw_web_controller.h"
6 6
7 #import <WebKit/WebKit.h> 7 #import <WebKit/WebKit.h>
8 8
9 #import <objc/runtime.h> 9 #import <objc/runtime.h>
10 #include <stddef.h> 10 #include <stddef.h>
(...skipping 162 matching lines...) Expand 10 before | Expand all | Expand 10 after
173 173
174 // Key of UMA IOSFix.ViewportZoomBugCount histogram. 174 // Key of UMA IOSFix.ViewportZoomBugCount histogram.
175 const char kUMAViewportZoomBugCount[] = "Renderer.ViewportZoomBugCount"; 175 const char kUMAViewportZoomBugCount[] = "Renderer.ViewportZoomBugCount";
176 176
177 // A tag for the web view, so that tests can identify it. This is used instead 177 // A tag for the web view, so that tests can identify it. This is used instead
178 // of exposing a getter (and deliberately not exposed in the header) to make it 178 // of exposing a getter (and deliberately not exposed in the header) to make it
179 // *very* clear that this is a hack which should only be used as a last resort. 179 // *very* clear that this is a hack which should only be used as a last resort.
180 const NSUInteger kWebViewTag = 0x3eb71e3; 180 const NSUInteger kWebViewTag = 0x3eb71e3;
181 // URL scheme for messages sent from javascript for asynchronous processing. 181 // URL scheme for messages sent from javascript for asynchronous processing.
182 NSString* const kScriptMessageName = @"crwebinvoke"; 182 NSString* const kScriptMessageName = @"crwebinvoke";
183 // URL scheme for messages sent from javascript for immediate processing.
184 NSString* const kScriptImmediateName = @"crwebinvokeimmediate";
185 183
186 // Constants for storing the source of NSErrors received by WKWebViews: 184 // Constants for storing the source of NSErrors received by WKWebViews:
187 // - Errors received by |-webView:didFailProvisionalNavigation:withError:| are 185 // - Errors received by |-webView:didFailProvisionalNavigation:withError:| are
188 // recorded using WKWebViewErrorSource::PROVISIONAL_LOAD. These should be 186 // recorded using WKWebViewErrorSource::PROVISIONAL_LOAD. These should be
189 // cancelled. 187 // cancelled.
190 // - Errors received by |-webView:didFailNavigation:withError:| are recorded 188 // - Errors received by |-webView:didFailNavigation:withError:| are recorded
191 // using WKWebViewsource::NAVIGATION. These errors should not be cancelled, 189 // using WKWebViewsource::NAVIGATION. These errors should not be cancelled,
192 // as the WKWebView will automatically retry the load. 190 // as the WKWebView will automatically retry the load.
193 NSString* const kWKWebViewErrorSourceKey = @"ErrorSource"; 191 NSString* const kWKWebViewErrorSourceKey = @"ErrorSource";
194 typedef enum { NONE = 0, PROVISIONAL_LOAD, NAVIGATION } WKWebViewErrorSource; 192 typedef enum { NONE = 0, PROVISIONAL_LOAD, NAVIGATION } WKWebViewErrorSource;
(...skipping 2428 matching lines...) Expand 10 before | Expand all | Expand 10 after
2623 if (base::SysNSStringToUTF8([_windowIDJSManager windowID]) != windowID) { 2621 if (base::SysNSStringToUTF8([_windowIDJSManager windowID]) != windowID) {
2624 DLOG(WARNING) << "Message from JS ignored due to non-matching windowID: " << 2622 DLOG(WARNING) << "Message from JS ignored due to non-matching windowID: " <<
2625 [_windowIDJSManager windowID] 2623 [_windowIDJSManager windowID]
2626 << " != " << base::SysUTF8ToNSString(windowID); 2624 << " != " << base::SysUTF8ToNSString(windowID);
2627 return NO; 2625 return NO;
2628 } 2626 }
2629 base::DictionaryValue* command = nullptr; 2627 base::DictionaryValue* command = nullptr;
2630 if (!message->GetDictionary("crwCommand", &command)) { 2628 if (!message->GetDictionary("crwCommand", &command)) {
2631 return NO; 2629 return NO;
2632 } 2630 }
2633 if ([scriptMessage.name isEqualToString:kScriptImmediateName] || 2631 if ([scriptMessage.name isEqualToString:kScriptMessageName]) {
2634 [scriptMessage.name isEqualToString:kScriptMessageName]) {
2635 return [self respondToMessage:command 2632 return [self respondToMessage:command
2636 userIsInteracting:[self userIsInteracting] 2633 userIsInteracting:[self userIsInteracting]
2637 originURL:net::GURLWithNSURL([_webView URL])]; 2634 originURL:net::GURLWithNSURL([_webView URL])];
2638 } 2635 }
2639 2636
2640 NOTREACHED(); 2637 NOTREACHED();
2641 return NO; 2638 return NO;
2642 } 2639 }
2643 2640
2644 #pragma mark - 2641 #pragma mark -
(...skipping 2002 matching lines...) Expand 10 before | Expand all | Expand 10 after
4647 for (NSString* keyPath in self.WKWebViewObservers) { 4644 for (NSString* keyPath in self.WKWebViewObservers) {
4648 [_webView removeObserver:self forKeyPath:keyPath]; 4645 [_webView removeObserver:self forKeyPath:keyPath];
4649 } 4646 }
4650 [self clearActivityIndicatorTasks]; 4647 [self clearActivityIndicatorTasks];
4651 4648
4652 _webView.reset([webView retain]); 4649 _webView.reset([webView retain]);
4653 4650
4654 // Set up the new web view. 4651 // Set up the new web view.
4655 if (webView) { 4652 if (webView) {
4656 base::WeakNSObject<CRWWebController> weakSelf(self); 4653 base::WeakNSObject<CRWWebController> weakSelf(self);
4657 void (^messageHandler)(WKScriptMessage*) = ^(WKScriptMessage* message) { 4654 [messageRouter setScriptMessageHandler:^(WKScriptMessage* message) {
4658 [weakSelf didReceiveScriptMessage:message]; 4655 [weakSelf didReceiveScriptMessage:message];
4659 }; 4656 }
4660 [messageRouter setScriptMessageHandler:messageHandler
4661 name:kScriptMessageName 4657 name:kScriptMessageName
4662 webView:webView]; 4658 webView:webView];
4663 [messageRouter setScriptMessageHandler:messageHandler
4664 name:kScriptImmediateName
4665 webView:webView];
4666 _windowIDJSManager.reset( 4659 _windowIDJSManager.reset(
4667 [[CRWJSWindowIDManager alloc] initWithWebView:webView]); 4660 [[CRWJSWindowIDManager alloc] initWithWebView:webView]);
4668 } else { 4661 } else {
4669 _windowIDJSManager.reset(); 4662 _windowIDJSManager.reset();
4670 } 4663 }
4671 [_webView setNavigationDelegate:self]; 4664 [_webView setNavigationDelegate:self];
4672 [_webView setUIDelegate:self]; 4665 [_webView setUIDelegate:self];
4673 for (NSString* keyPath in self.WKWebViewObservers) { 4666 for (NSString* keyPath in self.WKWebViewObservers) {
4674 [_webView addObserver:self forKeyPath:keyPath options:0 context:nullptr]; 4667 [_webView addObserver:self forKeyPath:keyPath options:0 context:nullptr];
4675 } 4668 }
(...skipping 938 matching lines...) Expand 10 before | Expand all | Expand 10 after
5614 } 5607 }
5615 5608
5616 return web::WEB_VIEW_DOCUMENT_TYPE_GENERIC; 5609 return web::WEB_VIEW_DOCUMENT_TYPE_GENERIC;
5617 } 5610 }
5618 5611
5619 - (NSString*)refererFromNavigationAction:(WKNavigationAction*)action { 5612 - (NSString*)refererFromNavigationAction:(WKNavigationAction*)action {
5620 return [action.request valueForHTTPHeaderField:@"Referer"]; 5613 return [action.request valueForHTTPHeaderField:@"Referer"];
5621 } 5614 }
5622 5615
5623 @end 5616 @end
OLDNEW
« no previous file with comments | « ios/web/web_state/js/resources/message.js ('k') | ios/web/web_state/ui/crw_web_controller_observer_unittest.mm » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698