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

Unified Diff: ios/web/web_state/ui/crw_web_controller.mm

Issue 2581193002: Remove CRWWebController currentNavigationURL (Closed)
Patch Set: 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 side-by-side diff with in-line comments
Download patch
« no previous file with comments | « no previous file | no next file » | no next file with comments »
Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
Index: ios/web/web_state/ui/crw_web_controller.mm
diff --git a/ios/web/web_state/ui/crw_web_controller.mm b/ios/web/web_state/ui/crw_web_controller.mm
index c5a56e9e6f4f5fe587f072fceac3353107996e0e..f2168e68d721fb83024820b2f33a920e2d449218 100644
--- a/ios/web/web_state/ui/crw_web_controller.mm
+++ b/ios/web/web_state/ui/crw_web_controller.mm
@@ -560,10 +560,6 @@ NSError* WKWebViewErrorWithSource(NSError* error, WKWebViewErrorSource source) {
- (CRWSessionEntry*)currentSessionEntry;
// Returns the navigation item for the current page.
- (web::NavigationItem*)currentNavItem;
-// Returns the URL that the navigation system believes should be currently
-// active.
-// TODO(stuartmorgan):Remove this in favor of more specific getters.
-- (const GURL&)currentNavigationURL;
// Returns the current transition type.
- (ui::PageTransition)currentTransition;
// Returns the referrer for current navigation item. May be empty.
@@ -1431,7 +1427,8 @@ const NSTimeInterval kSnapshotOverlayTransition = 0.5;
return [self.nativeController url];
}
}
- return [self currentNavigationURL];
+ web::NavigationItem* item = [self currentNavItem];
+ return item ? item->GetVirtualURL() : GURL::EmptyGURL();
}
- (WKWebView*)webView {
@@ -1458,8 +1455,9 @@ const NSTimeInterval kSnapshotOverlayTransition = 0.5;
if ([referrerString length] == 0)
return web::Referrer();
- NSString* previousURLString =
- base::SysUTF8ToNSString([self currentNavigationURL].spec());
+ web::NavigationItem* item = [self currentNavItem];
+ GURL navigationURL = item ? item->GetVirtualURL() : GURL::EmptyGURL();
+ NSString* previousURLString = base::SysUTF8ToNSString(navigationURL.spec());
// Check if the referrer is equal to the previous URL minus the hash symbol.
// L'#' is used to convert the char '#' to a unichar.
if ([previousURLString length] > [referrerString length] &&
@@ -1833,9 +1831,11 @@ const NSTimeInterval kSnapshotOverlayTransition = 0.5;
// Clear the set of URLs opened in external applications.
_openedApplicationURL.reset([[NSMutableSet alloc] init]);
+ web::NavigationItem* item = [self currentNavItem];
+ GURL navigationURL = item ? item->GetVirtualURL() : GURL::EmptyGURL();
Eugene But (OOO till 7-30) 2016/12/16 17:12:48 s/navigationURL/targetURL and drop |targetURL| var
Olivier 2016/12/19 09:51:48 Done.
// Load the url. The UIWebView delegate callbacks take care of updating the
// session history and UI.
- const GURL targetURL([self currentNavigationURL]);
+ const GURL targetURL(navigationURL);
if (!targetURL.is_valid()) {
[self didFinishWithURL:targetURL loadSuccess:NO];
return;
@@ -1887,7 +1887,9 @@ const NSTimeInterval kSnapshotOverlayTransition = 0.5;
}
- (NSMutableURLRequest*)requestForCurrentNavigationItem {
- const GURL currentNavigationURL([self currentNavigationURL]);
+ web::NavigationItem* item = [self currentNavItem];
+ const GURL currentNavigationURL =
+ item ? item->GetVirtualURL() : GURL::EmptyGURL();
NSMutableURLRequest* request = [NSMutableURLRequest
requestWithURL:net::NSURLWithGURL(currentNavigationURL)];
const web::Referrer referrer([self currentSessionEntryReferrer]);
@@ -1972,8 +1974,8 @@ const NSTimeInterval kSnapshotOverlayTransition = 0.5;
- (void)loadErrorInNativeView:(NSError*)error {
[self removeWebViewAllowingCachedReconstruction:NO];
-
- const GURL currentUrl = [self currentNavigationURL];
+ web::NavigationItem* item = [self currentNavItem];
+ const GURL currentURL = item ? item->GetVirtualURL() : GURL::EmptyGURL();
if (web::IsWKWebViewSSLCertError(error)) {
// This could happen only if certificate is absent or could not be parsed.
@@ -1988,7 +1990,7 @@ const NSTimeInterval kSnapshotOverlayTransition = 0.5;
}
BOOL isPost = [self isCurrentNavigationItemPOST];
- [self setNativeController:[_nativeProvider controllerForURL:currentUrl
+ [self setNativeController:[_nativeProvider controllerForURL:currentURL
withError:error
isPost:isPost]];
[self loadNativeViewWithSuccess:NO];
@@ -2000,7 +2002,8 @@ const NSTimeInterval kSnapshotOverlayTransition = 0.5;
// Free the web view.
[self removeWebViewAllowingCachedReconstruction:NO];
- const GURL targetURL = [self currentNavigationURL];
+ web::NavigationItem* item = [self currentNavItem];
+ const GURL targetURL = item ? item->GetVirtualURL() : GURL::EmptyGURL();
const web::Referrer referrer;
id<CRWNativeContent> nativeContent =
[_nativeProvider controllerForURL:targetURL];
@@ -2096,7 +2099,8 @@ const NSTimeInterval kSnapshotOverlayTransition = 0.5;
// Remove the transient content view.
[self clearTransientContentView];
- const GURL currentURL = [self currentNavigationURL];
+ web::NavigationItem* item = [self currentNavItem];
+ const GURL currentURL = item ? item->GetVirtualURL() : GURL::EmptyGURL();
// If it's a chrome URL, but not a native one, create the WebUI instance.
if (web::GetWebClient()->IsAppSpecificURL(currentURL) &&
![_nativeProvider hasControllerForURL:currentURL]) {
@@ -2163,8 +2167,11 @@ const NSTimeInterval kSnapshotOverlayTransition = 0.5;
[_containerView addGestureRecognizer:[self touchTrackingRecognizer]];
[_containerView setAccessibilityIdentifier:web::kContainerViewID];
// Is |currentUrl| a web scheme or native chrome scheme.
+ web::NavigationItem* item = [self currentNavItem];
+ const GURL currentNavigationURL =
+ item ? item->GetVirtualURL() : GURL::EmptyGURL();
BOOL isChromeScheme =
- web::GetWebClient()->IsAppSpecificURL([self currentNavigationURL]);
+ web::GetWebClient()->IsAppSpecificURL(currentNavigationURL);
// Don't immediately load the web page if in overlay mode. Always load if
// native.
@@ -3402,9 +3409,12 @@ const NSTimeInterval kSnapshotOverlayTransition = 0.5;
if (isPossibleLinkClick || isOpenInNewTabNavigation ||
PageTransitionCoreTypeIs([self currentTransition],
ui::PAGE_TRANSITION_AUTO_BOOKMARK)) {
+ web::NavigationItem* item = [self currentNavItem];
+ const GURL currentNavigationURL =
+ item ? item->GetVirtualURL() : GURL::EmptyGURL();
// Check If the URL is handled by a native app.
if ([self urlTriggersNativeAppLaunch:requestURL
- sourceURL:[self currentNavigationURL]
+ sourceURL:currentNavigationURL
linkActivatedNavigation:isNavigationTypeLinkActivated]) {
// External app has been launched successfully. Stop the current page
// load operation (e.g. notifying all observers) and record the URL so
@@ -3762,7 +3772,8 @@ const NSTimeInterval kSnapshotOverlayTransition = 0.5;
- (void)openPopupWithInfo:(const web::NewWindowInfo&)windowInfo {
const GURL url(windowInfo.url);
- const GURL currentURL([self currentNavigationURL]);
+ web::NavigationItem* item = [self currentNavItem];
+ const GURL currentURL = item ? item->GetVirtualURL() : GURL::EmptyGURL();
NSString* windowName = windowInfo.window_name.get();
web::Referrer referrer(currentURL, windowInfo.referrer_policy);
base::WeakNSObject<CRWWebController> weakSelf(self);
@@ -4048,14 +4059,6 @@ const NSTimeInterval kSnapshotOverlayTransition = 0.5;
return [[self currentSessionEntry] navigationItem];
}
-- (const GURL&)currentNavigationURL {
- // TODO(stuartmorgan): Fix the fact that this method doesn't have clear usage
- // delination that would allow changing to one of the non-deprecated URL
- // calls.
- web::NavigationItem* item = [self currentNavItem];
- return item ? item->GetVirtualURL() : GURL::EmptyGURL();
-}
-
- (ui::PageTransition)currentTransition {
if ([self currentNavItem])
return [self currentNavItem]->GetTransitionType();
@@ -4819,10 +4822,13 @@ const NSTimeInterval kSnapshotOverlayTransition = 0.5;
[self.UIDelegate cancelDialogsForWebController:self];
_webStateImpl->CancelDialogs();
- if (allowCache)
- _expectedReconstructionURL = [self currentNavigationURL];
- else
+ if (allowCache) {
Eugene But (OOO till 7-30) 2016/12/16 17:12:48 How about this?: web::NavigationItem* item = [sel
Olivier 2016/12/19 09:51:48 Done.
+ web::NavigationItem* item = [self currentNavItem];
+ _expectedReconstructionURL =
+ item ? item->GetVirtualURL() : GURL::EmptyGURL();
+ } else {
_expectedReconstructionURL = GURL();
+ }
[self abortLoad];
[_webView removeFromSuperview];
@@ -4912,10 +4918,12 @@ const NSTimeInterval kSnapshotOverlayTransition = 0.5;
// observers of the change via |-abortLoad|.
[[self sessionController] discardNonCommittedEntries];
[self abortLoad];
+ web::NavigationItem* item = [self currentNavItem];
+ GURL navigationURL = item ? item->GetVirtualURL() : GURL::EmptyGURL();
// If discarding the non-committed entries results in an app-specific URL,
// reload it in its native view.
if (!self.nativeController &&
- [self shouldLoadURLInNativeView:[self currentNavigationURL]]) {
+ [self shouldLoadURLInNativeView:navigationURL]) {
[self loadCurrentURLInNativeView];
}
}
@@ -5653,7 +5661,9 @@ const NSTimeInterval kSnapshotOverlayTransition = 0.5;
[request setHTTPMethod:@"POST"];
[request setHTTPBody:POSTData];
[request setAllHTTPHeaderFields:[self currentHTTPHeaders]];
- [self registerLoadRequest:[self currentNavigationURL]
+ web::NavigationItem* item = [self currentNavItem];
Eugene But (OOO till 7-30) 2016/12/16 17:12:48 Do you need this variable? Can you use use |curren
Olivier 2016/12/19 09:51:48 Done.
+ GURL navigationURL = item ? item->GetVirtualURL() : GURL::EmptyGURL();
+ [self registerLoadRequest:navigationURL
referrer:[self currentSessionEntryReferrer]
transition:[self currentTransition]];
[self loadPOSTRequest:request];
@@ -5661,7 +5671,9 @@ const NSTimeInterval kSnapshotOverlayTransition = 0.5;
}
ProceduralBlock defaultNavigationBlock = ^{
- [self registerLoadRequest:[self currentNavigationURL]
+ web::NavigationItem* item = [self currentNavItem];
+ GURL navigationURL = item ? item->GetVirtualURL() : GURL::EmptyGURL();
+ [self registerLoadRequest:navigationURL
referrer:[self currentSessionEntryReferrer]
transition:[self currentTransition]];
[self loadRequest:request];
@@ -5694,10 +5706,12 @@ const NSTimeInterval kSnapshotOverlayTransition = 0.5;
// page, that means the user requested a reload. |goToBackForwardListItem|
// will be a no-op when it is passed the current back forward list item,
// so |reload| must be explicitly called.
- [self registerLoadRequest:[self currentNavigationURL]
+ web::NavigationItem* item = [self currentNavItem];
+ GURL navigationURL = item ? item->GetVirtualURL() : GURL::EmptyGURL();
+ [self registerLoadRequest:navigationURL
referrer:[self currentSessionEntryReferrer]
transition:[self currentTransition]];
- if ([self currentNavigationURL] == net::GURLWithNSURL([_webView URL])) {
+ if (navigationURL == net::GURLWithNSURL([_webView URL])) {
[_webView reload];
} else {
// |didCommitNavigation:| may not be called for fast navigation, so update
« 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