Index: ios/chrome/browser/tabs/tab.mm |
diff --git a/ios/chrome/browser/tabs/tab.mm b/ios/chrome/browser/tabs/tab.mm |
index 7f18cebaf9fa2814eec777f04b0a49647065d55a..ab0b32acd70506771421f602b3a4f202beba78a0 100644 |
--- a/ios/chrome/browser/tabs/tab.mm |
+++ b/ios/chrome/browser/tabs/tab.mm |
@@ -590,7 +590,7 @@ - (void)setParentTabModel:(TabModel*)model { |
- (NSString*)description { |
return [NSString stringWithFormat:@"%p ... %@ - %s", self, self.title, |
- self.url.spec().c_str()]; |
+ self.visibleURL.spec().c_str()]; |
} |
- (CRWWebController*)webController { |
@@ -665,8 +665,8 @@ - (NSString*)originalTitle { |
- (NSString*)urlDisplayString { |
base::string16 urlText = url_formatter::FormatUrl( |
- self.url, url_formatter::kFormatUrlOmitNothing, net::UnescapeRule::SPACES, |
- nullptr, nullptr, nullptr); |
+ self.visibleURL, url_formatter::kFormatUrlOmitNothing, |
+ net::UnescapeRule::SPACES, nullptr, nullptr, nullptr); |
return base::SysUTF16ToNSString(urlText); |
} |
@@ -694,7 +694,7 @@ - (NSString*)tabId { |
} |
- (void)fetchFavicon { |
- const GURL& url = self.url; |
+ const GURL& url = self.visibleURL; |
if (!url.is_valid()) |
return; |
@@ -893,7 +893,8 @@ - (void)saveTitleToHistoryDB { |
ios::HistoryServiceFactory::GetForBrowserState( |
browserState_, ServiceAccessType::IMPLICIT_ACCESS); |
DCHECK(historyService); |
- historyService->SetPageTitle(self.url, base::SysNSStringToUTF16(title)); |
+ historyService->SetPageTitle(self.lastCommittedURL, |
+ base::SysNSStringToUTF16(title)); |
} |
- (void)addCurrentEntryToHistoryDB { |
@@ -1178,7 +1179,7 @@ - (BOOL)openExternalURL:(const GURL&)url |
// Compose u2f-x-callback URL and update urlToOpen. |
finalURL = [U2FController_ XCallbackFromRequestURL:finalURL |
originURL:origin |
- tabURL:self.url |
+ tabURL:self.lastCommittedURL |
tabID:self.tabId]; |
if (!finalURL.is_valid()) { |
@@ -1286,19 +1287,21 @@ - (void)handleExportableFile:(net::HttpResponseHeaders*)headers { |
headers->GetNormalizedHeader("content-disposition", &contentDisposition); |
std::string defaultFilename = |
l10n_util::GetStringUTF8(IDS_IOS_OPEN_IN_FILE_DEFAULT_TITLE); |
+ const GURL& committedURL = self.lastCommittedURL; |
base::string16 filename = |
- net::GetSuggestedFilename(self.url, contentDisposition, |
+ net::GetSuggestedFilename(committedURL, contentDisposition, |
"", // referrer-charset |
"", // suggested-name |
"application/pdf", // mime-type |
defaultFilename); |
[[self openInController] |
- enableWithDocumentURL:self.url |
+ enableWithDocumentURL:committedURL |
suggestedFilename:base::SysUTF16ToNSString(filename)]; |
} |
- (void)countMainFrameLoad { |
- if ([self isPrerenderTab] || [self url].SchemeIs(kChromeUIScheme)) { |
+ if ([self isPrerenderTab] || |
+ self.lastCommittedURL.SchemeIs(kChromeUIScheme)) { |
return; |
} |
base::RecordAction(UserMetricsAction("MobilePageLoaded")); |
@@ -1359,7 +1362,7 @@ - (void)loadReaderModeHTML:(NSString*)html forURL:(const GURL&)url { |
// not changed since reader mode was requested. This could happen for example |
// if the page does a late redirect itself or if the user tapped on a link and |
// triggered reader mode before the page load is detected by webState. |
- if (url == self.url) |
+ if (url == self.visibleURL) |
Eugene But (OOO till 7-30)
2017/04/14 21:53:47
This checks that URL did not change, so lastCommit
kkhorimoto
2017/05/31 22:45:46
Done.
|
[self.webController loadHTMLForCurrentURL:html]; |
[self.readerModeController exitReaderMode]; |
@@ -1471,7 +1474,8 @@ - (void)webWillAddPendingURL:(const GURL&)url |
// into a NavigationManager observer callback, so it doesn't need to be |
// checked in several places. |
if (isUserNavigationEvent && !isPrerenderTab_ && |
- ![self navigationManager]->GetPendingItem() && url != self.url) { |
+ ![self navigationManager]->GetPendingItem() && |
+ url != self.lastCommitted) { |
kkhorimoto
2017/04/14 21:05:16
If this condition passes the !GetPendingItem() che
Eugene But (OOO till 7-30)
2017/04/14 21:53:47
I don't understand this code. Rohit, by any chance
kkhorimoto
2017/05/31 22:45:46
I don't understand super well either, but since th
|
base::RecordAction(UserMetricsAction("MobileTabClobbered")); |
if ([parentTabModel_ tabUsageRecorder]) |
[parentTabModel_ tabUsageRecorder]->RecordPageLoadStart(self); |