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

Side by Side Diff: ios/chrome/browser/tabs/tab.mm

Issue 2578173005: Add GetOriginalRequestURL() to NavigationItem interface. (Closed)
Patch Set: fix callers Created 3 years, 11 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
« no previous file with comments | « no previous file | ios/web/navigation/crw_session_controller.mm » ('j') | 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/chrome/browser/tabs/tab.h" 5 #import "ios/chrome/browser/tabs/tab.h"
6 6
7 #import <CoreLocation/CoreLocation.h> 7 #import <CoreLocation/CoreLocation.h>
8 #import <UIKit/UIKit.h> 8 #import <UIKit/UIKit.h>
9 9
10 #include <utility> 10 #include <utility>
(...skipping 1024 matching lines...) Expand 10 before | Expand all | Expand 10 after
1035 DCHECK(historyService); 1035 DCHECK(historyService);
1036 historyService->SetPageTitle(self.url, base::SysNSStringToUTF16(title)); 1036 historyService->SetPageTitle(self.url, base::SysNSStringToUTF16(title));
1037 } 1037 }
1038 1038
1039 - (void)addCurrentEntryToHistoryDB { 1039 - (void)addCurrentEntryToHistoryDB {
1040 DCHECK(self.currentSessionEntry); 1040 DCHECK(self.currentSessionEntry);
1041 // If incognito, don't update history. 1041 // If incognito, don't update history.
1042 if (browserState_->IsOffTheRecord()) 1042 if (browserState_->IsOffTheRecord())
1043 return; 1043 return;
1044 1044
1045 CRWSessionEntry* sessionEntry = self.currentSessionEntry;
1046 web::NavigationItem* item = [self navigationManager]->GetVisibleItem(); 1045 web::NavigationItem* item = [self navigationManager]->GetVisibleItem();
1047 1046
1048 // Do not update the history db for back/forward navigations. 1047 // Do not update the history db for back/forward navigations.
1049 // TODO(crbug.com/661667): We do not currently tag the entry with a 1048 // TODO(crbug.com/661667): We do not currently tag the entry with a
1050 // FORWARD_BACK transition. Fix. 1049 // FORWARD_BACK transition. Fix.
1051 if (item->GetTransitionType() & ui::PAGE_TRANSITION_FORWARD_BACK) 1050 if (item->GetTransitionType() & ui::PAGE_TRANSITION_FORWARD_BACK)
1052 return; 1051 return;
1053 1052
1054 history::HistoryService* historyService = 1053 history::HistoryService* historyService =
1055 ios::HistoryServiceFactory::GetForBrowserState( 1054 ios::HistoryServiceFactory::GetForBrowserState(
1056 browserState_, ServiceAccessType::IMPLICIT_ACCESS); 1055 browserState_, ServiceAccessType::IMPLICIT_ACCESS);
1057 DCHECK(historyService); 1056 DCHECK(historyService);
1058 1057
1059 const GURL url(item->GetURL()); 1058 const GURL url(item->GetURL());
1060 const web::Referrer& referrer = item->GetReferrer(); 1059 const web::Referrer& referrer = item->GetReferrer();
1061 1060
1062 // Do not update the history db for data: urls. This diverges from upstream, 1061 // Do not update the history db for data: urls. This diverges from upstream,
1063 // but prevents us from dumping huge view-source urls into the history 1062 // but prevents us from dumping huge view-source urls into the history
1064 // database. Since view-source is only activated in Debug builds, this check 1063 // database. Since view-source is only activated in Debug builds, this check
1065 // can be Debug-only as well. 1064 // can be Debug-only as well.
1066 #ifndef NDEBUG 1065 #ifndef NDEBUG
1067 if (url.scheme() == url::kDataScheme) 1066 if (url.scheme() == url::kDataScheme)
1068 return; 1067 return;
1069 #endif 1068 #endif
1070 1069
1071 history::RedirectList redirects; 1070 history::RedirectList redirects;
1072 if (item->GetURL() != sessionEntry.originalUrl) { 1071 GURL originalURL = item->GetOriginalRequestURL();
1072 if (item->GetURL() != originalURL) {
1073 // Simulate a valid redirect chain in case of URL that have been modified 1073 // Simulate a valid redirect chain in case of URL that have been modified
1074 // in |CRWWebController finishHistoryNavigationFromEntry:|. 1074 // in |CRWWebController finishHistoryNavigationFromEntry:|.
1075 const std::string& urlSpec = item->GetURL().spec(); 1075 const std::string& urlSpec = item->GetURL().spec();
1076 size_t urlSpecLength = urlSpec.size(); 1076 size_t urlSpecLength = urlSpec.size();
1077 if (item->GetTransitionType() & ui::PAGE_TRANSITION_CLIENT_REDIRECT || 1077 if (item->GetTransitionType() & ui::PAGE_TRANSITION_CLIENT_REDIRECT ||
1078 (urlSpecLength && (urlSpec.at(urlSpecLength - 1) == '#') && 1078 (urlSpecLength && (urlSpec.at(urlSpecLength - 1) == '#') &&
1079 !urlSpec.compare(0, urlSpecLength - 1, 1079 !urlSpec.compare(0, urlSpecLength - 1, originalURL.spec()))) {
1080 sessionEntry.originalUrl.spec()))) {
1081 redirects.push_back(referrer.url); 1080 redirects.push_back(referrer.url);
1082 } 1081 }
1083 // TODO(crbug.com/661670): the redirect chain is not constructed the same 1082 // TODO(crbug.com/661670): the redirect chain is not constructed the same
1084 // way as upstream so this part needs to be revised. 1083 // way as upstream so this part needs to be revised.
1085 redirects.push_back(sessionEntry.originalUrl); 1084 redirects.push_back(originalURL);
1086 redirects.push_back(url); 1085 redirects.push_back(url);
1087 } 1086 }
1088 1087
1089 DCHECK(item->GetTimestamp().ToInternalValue() > 0); 1088 DCHECK(item->GetTimestamp().ToInternalValue() > 0);
1090 if ([self isPrerenderTab]) { 1089 if ([self isPrerenderTab]) {
1091 // Clicks on content suggestions on the NTP should not contribute to the 1090 // Clicks on content suggestions on the NTP should not contribute to the
1092 // Most Visited tiles in the NTP. 1091 // Most Visited tiles in the NTP.
1093 const bool consider_for_ntp_most_visited = 1092 const bool consider_for_ntp_most_visited =
1094 referrer.url != GURL(kChromeContentSuggestionsReferrer); 1093 referrer.url != GURL(kChromeContentSuggestionsReferrer);
1095 1094
(...skipping 503 matching lines...) Expand 10 before | Expand all | Expand 10 after
1599 ui::PageTransition transition = 1598 ui::PageTransition transition =
1600 ui::PageTransitionFromInt(ui::PAGE_TRANSITION_FORM_SUBMIT); 1599 ui::PageTransitionFromInt(ui::PAGE_TRANSITION_FORM_SUBMIT);
1601 DCHECK([self navigationManager]); 1600 DCHECK([self navigationManager]);
1602 CRWSessionController* sessionController = 1601 CRWSessionController* sessionController =
1603 [self navigationManager]->GetSessionController(); 1602 [self navigationManager]->GetSessionController();
1604 CRWSessionEntry* lastUserEntry = [sessionController lastUserEntry]; 1603 CRWSessionEntry* lastUserEntry = [sessionController lastUserEntry];
1605 if (!lastUserEntry) 1604 if (!lastUserEntry)
1606 return; 1605 return;
1607 1606
1608 // |originalUrl| will be empty if a page was open by DOM. 1607 // |originalUrl| will be empty if a page was open by DOM.
1609 GURL reloadURL(lastUserEntry.originalUrl); 1608 GURL reloadURL(lastUserEntry.navigationItem->GetOriginalRequestURL());
1610 if (reloadURL.is_empty()) { 1609 if (reloadURL.is_empty()) {
1611 DCHECK(sessionController.openedByDOM); 1610 DCHECK(sessionController.openedByDOM);
1612 reloadURL = [lastUserEntry navigationItem]->GetVirtualURL(); 1611 reloadURL = [lastUserEntry navigationItem]->GetVirtualURL();
1613 } 1612 }
1614 1613
1615 web::NavigationManager::WebLoadParams params(reloadURL); 1614 web::NavigationManager::WebLoadParams params(reloadURL);
1616 params.referrer = lastUserEntry.navigationItem->GetReferrer(); 1615 params.referrer = lastUserEntry.navigationItem->GetReferrer();
1617 params.transition_type = transition; 1616 params.transition_type = transition;
1618 if (self.navigationManager) 1617 if (self.navigationManager)
1619 self.navigationManager->LoadURLWithParams(params); 1618 self.navigationManager->LoadURLWithParams(params);
(...skipping 714 matching lines...) Expand 10 before | Expand all | Expand 10 after
2334 2333
2335 - (TabModel*)parentTabModel { 2334 - (TabModel*)parentTabModel {
2336 return parentTabModel_; 2335 return parentTabModel_;
2337 } 2336 }
2338 2337
2339 - (FormInputAccessoryViewController*)inputAccessoryViewController { 2338 - (FormInputAccessoryViewController*)inputAccessoryViewController {
2340 return inputAccessoryViewController_.get(); 2339 return inputAccessoryViewController_.get();
2341 } 2340 }
2342 2341
2343 @end 2342 @end
OLDNEW
« no previous file with comments | « no previous file | ios/web/navigation/crw_session_controller.mm » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698