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

Side by Side Diff: chrome/browser/tab_contents/tab_contents.cc

Issue 147145: Fix: Certain redirections remove sites from the history... (Closed) Base URL: svn://chrome-svn.corp.google.com/chrome/trunk/src/
Patch Set: '' Created 11 years, 5 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 | « chrome/browser/tab_contents/tab_contents.h ('k') | chrome/tools/profiles/generate_profile.cc » ('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 (c) 2009 The Chromium Authors. All rights reserved. 1 // Copyright (c) 2009 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 #include "chrome/browser/tab_contents/tab_contents.h" 5 #include "chrome/browser/tab_contents/tab_contents.h"
6 6
7 #include "app/l10n_util.h" 7 #include "app/l10n_util.h"
8 #include "app/resource_bundle.h" 8 #include "app/resource_bundle.h"
9 #include "base/file_version_info.h" 9 #include "base/file_version_info.h"
10 #include "base/process_util.h" 10 #include "base/process_util.h"
(...skipping 1228 matching lines...) Expand 10 before | Expand all | Expand 10 after
1239 // reload the page to stop blocking. 1239 // reload the page to stop blocking.
1240 suppress_javascript_messages_ = false; 1240 suppress_javascript_messages_ = false;
1241 1241
1242 // Update history. Note that this needs to happen after the entry is complete, 1242 // Update history. Note that this needs to happen after the entry is complete,
1243 // which WillNavigate[Main,Sub]Frame will do before this function is called. 1243 // which WillNavigate[Main,Sub]Frame will do before this function is called.
1244 if (params.should_update_history) { 1244 if (params.should_update_history) {
1245 // Most of the time, the displayURL matches the loaded URL, but for about: 1245 // Most of the time, the displayURL matches the loaded URL, but for about:
1246 // URLs, we use a data: URL as the real value. We actually want to save 1246 // URLs, we use a data: URL as the real value. We actually want to save
1247 // the about: URL to the history db and keep the data: URL hidden. This is 1247 // the about: URL to the history db and keep the data: URL hidden. This is
1248 // what the TabContents' URL getter does. 1248 // what the TabContents' URL getter does.
1249 UpdateHistoryForNavigation(GetURL(), params); 1249 UpdateHistoryForNavigation(GetURL(), details, params);
1250 } 1250 }
1251 1251
1252 // Notify the password manager of the navigation or form submit. 1252 // Notify the password manager of the navigation or form submit.
1253 // TODO(brettw) bug 1343111: Password manager stuff in here needs to be 1253 // TODO(brettw) bug 1343111: Password manager stuff in here needs to be
1254 // cleaned up and covered by tests. 1254 // cleaned up and covered by tests.
1255 if (params.password_form.origin.is_valid()) 1255 if (params.password_form.origin.is_valid())
1256 GetPasswordManager()->ProvisionallySavePassword(params.password_form); 1256 GetPasswordManager()->ProvisionallySavePassword(params.password_form);
1257 } 1257 }
1258 1258
1259 void TabContents::MaybeCloseChildWindows(const GURL& previous_url, 1259 void TabContents::MaybeCloseChildWindows(const GURL& previous_url,
(...skipping 51 matching lines...) Expand 10 before | Expand all | Expand 10 after
1311 // the max. 1311 // the max.
1312 if (curr_max_page_id < 0) 1312 if (curr_max_page_id < 0)
1313 curr_max_page_id = 0; 1313 curr_max_page_id = 0;
1314 rvh->ReservePageIDRange(max_restored_page_id - curr_max_page_id); 1314 rvh->ReservePageIDRange(max_restored_page_id - curr_max_page_id);
1315 } 1315 }
1316 } 1316 }
1317 } 1317 }
1318 1318
1319 void TabContents::UpdateHistoryForNavigation( 1319 void TabContents::UpdateHistoryForNavigation(
1320 const GURL& display_url, 1320 const GURL& display_url,
1321 const NavigationController::LoadCommittedDetails& details,
1321 const ViewHostMsg_FrameNavigate_Params& params) { 1322 const ViewHostMsg_FrameNavigate_Params& params) {
1322 if (profile()->IsOffTheRecord()) 1323 if (profile()->IsOffTheRecord())
1323 return; 1324 return;
1324 1325
1325 // Add to history service. 1326 // Add to history service.
1326 HistoryService* hs = profile()->GetHistoryService(Profile::IMPLICIT_ACCESS); 1327 HistoryService* hs = profile()->GetHistoryService(Profile::IMPLICIT_ACCESS);
1327 if (hs) { 1328 if (hs) {
1328 if (PageTransition::IsMainFrame(params.transition) && 1329 if (PageTransition::IsMainFrame(params.transition) &&
1329 display_url != params.url) { 1330 display_url != params.url) {
1330 // Hack on the "display" URL so that it will appear in history. For some 1331 // Hack on the "display" URL so that it will appear in history. For some
1331 // types of URLs, we will display a magic URL that is different from where 1332 // types of URLs, we will display a magic URL that is different from where
1332 // the page is actually navigated. We want the user to see in history 1333 // the page is actually navigated. We want the user to see in history
1333 // what they saw in the URL bar, so we add the display URL as a redirect. 1334 // what they saw in the URL bar, so we add the display URL as a redirect.
1334 // This only applies to the main frame, as the display URL doesn't apply 1335 // This only applies to the main frame, as the display URL doesn't apply
1335 // to sub-frames. 1336 // to sub-frames.
1336 std::vector<GURL> redirects = params.redirects; 1337 std::vector<GURL> redirects = params.redirects;
1337 if (!redirects.empty()) 1338 if (!redirects.empty())
1338 redirects.back() = display_url; 1339 redirects.back() = display_url;
1339 hs->AddPage(display_url, this, params.page_id, params.referrer, 1340 hs->AddPage(display_url, this, params.page_id, params.referrer,
1340 params.transition, redirects); 1341 params.transition, redirects, details.did_replace_entry);
1341 } else { 1342 } else {
1342 hs->AddPage(params.url, this, params.page_id, params.referrer, 1343 hs->AddPage(params.url, this, params.page_id, params.referrer,
1343 params.transition, params.redirects); 1344 params.transition, params.redirects,
1345 details.did_replace_entry);
1344 } 1346 }
1345 } 1347 }
1346 } 1348 }
1347 1349
1348 bool TabContents::UpdateTitleForEntry(NavigationEntry* entry, 1350 bool TabContents::UpdateTitleForEntry(NavigationEntry* entry,
1349 const std::wstring& title) { 1351 const std::wstring& title) {
1350 // For file URLs without a title, use the pathname instead. In the case of a 1352 // For file URLs without a title, use the pathname instead. In the case of a
1351 // synthesized title, we don't want the update to count toward the "one set 1353 // synthesized title, we don't want the update to count toward the "one set
1352 // per page of the title to history." 1354 // per page of the title to history."
1353 std::wstring final_title; 1355 std::wstring final_title;
(...skipping 987 matching lines...) Expand 10 before | Expand all | Expand 10 after
2341 NavigationController::LoadCommittedDetails& committed_details = 2343 NavigationController::LoadCommittedDetails& committed_details =
2342 *(Details<NavigationController::LoadCommittedDetails>(details).ptr()); 2344 *(Details<NavigationController::LoadCommittedDetails>(details).ptr());
2343 ExpireInfoBars(committed_details); 2345 ExpireInfoBars(committed_details);
2344 break; 2346 break;
2345 } 2347 }
2346 2348
2347 default: 2349 default:
2348 NOTREACHED(); 2350 NOTREACHED();
2349 } 2351 }
2350 } 2352 }
OLDNEW
« no previous file with comments | « chrome/browser/tab_contents/tab_contents.h ('k') | chrome/tools/profiles/generate_profile.cc » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698