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

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

Issue 2582373002: Call registerLoadRequest with URL instead of VirtualURL. (Closed)
Patch Set: only registerLoadRequest Created 4 years 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
« no previous file with comments | « no previous file | no next file » | no next file with comments »
Toggle Intra-line Diffs ('i') | Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
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 1971 matching lines...) Expand 10 before | Expand all | Expand 10 after
1982 [self loadNativeViewWithSuccess:NO]; 1982 [self loadNativeViewWithSuccess:NO];
1983 } 1983 }
1984 1984
1985 // Load the current URL in a native controller, retrieved from the native 1985 // Load the current URL in a native controller, retrieved from the native
1986 // provider. Call |loadNativeViewWithSuccess:YES| to load the native controller. 1986 // provider. Call |loadNativeViewWithSuccess:YES| to load the native controller.
1987 - (void)loadCurrentURLInNativeView { 1987 - (void)loadCurrentURLInNativeView {
1988 // Free the web view. 1988 // Free the web view.
1989 [self removeWebViewAllowingCachedReconstruction:NO]; 1989 [self removeWebViewAllowingCachedReconstruction:NO];
1990 1990
1991 web::NavigationItem* item = [self currentNavItem]; 1991 web::NavigationItem* item = [self currentNavItem];
1992 const GURL targetURL = item ? item->GetVirtualURL() : GURL::EmptyGURL(); 1992 const GURL virtualURL = item ? item->GetVirtualURL() : GURL::EmptyGURL();
1993 const web::Referrer referrer; 1993 const web::Referrer referrer;
1994 id<CRWNativeContent> nativeContent = 1994 id<CRWNativeContent> nativeContent =
1995 [_nativeProvider controllerForURL:targetURL]; 1995 [_nativeProvider controllerForURL:virtualURL];
1996 // Unlike the WebView case, always create a new controller and view. 1996 // Unlike the WebView case, always create a new controller and view.
1997 // TODO(pinkerton): What to do if this does return nil? 1997 // TODO(pinkerton): What to do if this does return nil?
1998 [self setNativeController:nativeContent]; 1998 [self setNativeController:nativeContent];
1999 if ([nativeContent respondsToSelector:@selector(virtualURL)]) { 1999 if ([nativeContent respondsToSelector:@selector(virtualURL)]) {
2000 item->SetVirtualURL([nativeContent virtualURL]); 2000 item->SetVirtualURL([nativeContent virtualURL]);
2001 } 2001 }
2002 const GURL targetURL = item ? item->GetURL() : GURL::EmptyGURL();
2002 [self registerLoadRequest:targetURL 2003 [self registerLoadRequest:targetURL
2003 referrer:referrer 2004 referrer:referrer
2004 transition:[self currentTransition]]; 2005 transition:[self currentTransition]];
2005 [self loadNativeViewWithSuccess:YES]; 2006 [self loadNativeViewWithSuccess:YES];
2006 } 2007 }
2007 2008
2008 - (void)loadWithParams:(const NavigationManager::WebLoadParams&)originalParams { 2009 - (void)loadWithParams:(const NavigationManager::WebLoadParams&)originalParams {
2009 // Make a copy of |params|, as some of the delegate methods may modify it. 2010 // Make a copy of |params|, as some of the delegate methods may modify it.
2010 NavigationManager::WebLoadParams params(originalParams); 2011 NavigationManager::WebLoadParams params(originalParams);
2011 2012
(...skipping 3610 matching lines...) Expand 10 before | Expand all | Expand 10 after
5622 NSData* POSTData = currentItem->GetPostData(); 5623 NSData* POSTData = currentItem->GetPostData();
5623 NSMutableURLRequest* request = [self requestForCurrentNavigationItem]; 5624 NSMutableURLRequest* request = [self requestForCurrentNavigationItem];
5624 5625
5625 // If the request has POST data and is not a form resubmission, configure and 5626 // If the request has POST data and is not a form resubmission, configure and
5626 // run the POST request. 5627 // run the POST request.
5627 if (POSTData.length && !isFormPOSTResubmission) { 5628 if (POSTData.length && !isFormPOSTResubmission) {
5628 [request setHTTPMethod:@"POST"]; 5629 [request setHTTPMethod:@"POST"];
5629 [request setHTTPBody:POSTData]; 5630 [request setHTTPBody:POSTData];
5630 [request setAllHTTPHeaderFields:[self currentHTTPHeaders]]; 5631 [request setAllHTTPHeaderFields:[self currentHTTPHeaders]];
5631 GURL navigationURL = 5632 GURL navigationURL =
5632 currentItem ? currentItem->GetVirtualURL() : GURL::EmptyGURL(); 5633 currentItem ? currentItem->GetURL() : GURL::EmptyGURL();
5633 [self registerLoadRequest:navigationURL 5634 [self registerLoadRequest:navigationURL
5634 referrer:[self currentSessionEntryReferrer] 5635 referrer:[self currentSessionEntryReferrer]
5635 transition:[self currentTransition]]; 5636 transition:[self currentTransition]];
5636 [self loadPOSTRequest:request]; 5637 [self loadPOSTRequest:request];
5637 return; 5638 return;
5638 } 5639 }
5639 5640
5640 ProceduralBlock defaultNavigationBlock = ^{ 5641 ProceduralBlock defaultNavigationBlock = ^{
5641 web::NavigationItem* item = [self currentNavItem]; 5642 web::NavigationItem* item = [self currentNavItem];
5642 GURL navigationURL = item ? item->GetVirtualURL() : GURL::EmptyGURL(); 5643 GURL navigationURL = item ? item->GetURL() : GURL::EmptyGURL();
5643 [self registerLoadRequest:navigationURL 5644 [self registerLoadRequest:navigationURL
5644 referrer:[self currentSessionEntryReferrer] 5645 referrer:[self currentSessionEntryReferrer]
5645 transition:[self currentTransition]]; 5646 transition:[self currentTransition]];
5646 [self loadRequest:request]; 5647 [self loadRequest:request];
5647 }; 5648 };
5648 5649
5649 // When navigating via WKBackForwardListItem to pages created or updated by 5650 // When navigating via WKBackForwardListItem to pages created or updated by
5650 // calls to pushState() and replaceState(), sometimes core.js is not injected 5651 // calls to pushState() and replaceState(), sometimes core.js is not injected
5651 // correctly. This means that calling window.history navigation functions 5652 // correctly. This means that calling window.history navigation functions
5652 // will invoke WKWebView's non-overridden implementations, causing a mismatch 5653 // will invoke WKWebView's non-overridden implementations, causing a mismatch
(...skipping 14 matching lines...) Expand all
5667 defaultNavigationBlock(); 5668 defaultNavigationBlock();
5668 return; 5669 return;
5669 } 5670 }
5670 5671
5671 ProceduralBlock webViewNavigationBlock = ^{ 5672 ProceduralBlock webViewNavigationBlock = ^{
5672 // If the current navigation URL is the same as the URL of the visible 5673 // If the current navigation URL is the same as the URL of the visible
5673 // page, that means the user requested a reload. |goToBackForwardListItem| 5674 // page, that means the user requested a reload. |goToBackForwardListItem|
5674 // will be a no-op when it is passed the current back forward list item, 5675 // will be a no-op when it is passed the current back forward list item,
5675 // so |reload| must be explicitly called. 5676 // so |reload| must be explicitly called.
5676 web::NavigationItem* item = [self currentNavItem]; 5677 web::NavigationItem* item = [self currentNavItem];
5677 GURL navigationURL = item ? item->GetVirtualURL() : GURL::EmptyGURL(); 5678 GURL navigationURL = item ? item->GetURL() : GURL::EmptyGURL();
5678 [self registerLoadRequest:navigationURL 5679 [self registerLoadRequest:navigationURL
5679 referrer:[self currentSessionEntryReferrer] 5680 referrer:[self currentSessionEntryReferrer]
5680 transition:[self currentTransition]]; 5681 transition:[self currentTransition]];
5681 if (navigationURL == net::GURLWithNSURL([_webView URL])) { 5682 if (navigationURL == net::GURLWithNSURL([_webView URL])) {
5682 [_webView reload]; 5683 [_webView reload];
5683 } else { 5684 } else {
5684 // |didCommitNavigation:| may not be called for fast navigation, so update 5685 // |didCommitNavigation:| may not be called for fast navigation, so update
5685 // the navigation type now as it is already known. 5686 // the navigation type now as it is already known.
5686 holder->set_navigation_type(WKNavigationTypeBackForward); 5687 holder->set_navigation_type(WKNavigationTypeBackForward);
5687 [_webView goToBackForwardListItem:holder->back_forward_list_item()]; 5688 [_webView goToBackForwardListItem:holder->back_forward_list_item()];
(...skipping 95 matching lines...) Expand 10 before | Expand all | Expand 10 after
5783 } 5784 }
5784 5785
5785 return web::WEB_VIEW_DOCUMENT_TYPE_GENERIC; 5786 return web::WEB_VIEW_DOCUMENT_TYPE_GENERIC;
5786 } 5787 }
5787 5788
5788 - (NSString*)refererFromNavigationAction:(WKNavigationAction*)action { 5789 - (NSString*)refererFromNavigationAction:(WKNavigationAction*)action {
5789 return [action.request valueForHTTPHeaderField:@"Referer"]; 5790 return [action.request valueForHTTPHeaderField:@"Referer"];
5790 } 5791 }
5791 5792
5792 @end 5793 @end
OLDNEW
« no previous file with comments | « no previous file | no next file » | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698