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

Side by Side Diff: chrome/browser/history/history_backend.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/history/history.cc ('k') | chrome/browser/history/history_backend_unittest.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/history/history_backend.h" 5 #include "chrome/browser/history/history_backend.h"
6 6
7 #include <set> 7 #include <set>
8 8
9 #include "base/compiler_specific.h" 9 #include "base/compiler_specific.h"
10 #include "base/file_util.h" 10 #include "base/file_util.h"
(...skipping 384 matching lines...) Expand 10 before | Expand all | Expand 10 after
395 // transition to client redirect. 395 // transition to client redirect.
396 // 396 //
397 // The referrer is invalid when restoring a session that features an 397 // The referrer is invalid when restoring a session that features an
398 // https tab that redirects to a different host or to http. In this 398 // https tab that redirects to a different host or to http. In this
399 // case we don't need to reconnect the new redirect with the existing 399 // case we don't need to reconnect the new redirect with the existing
400 // chain. 400 // chain.
401 if (request->referrer.is_valid()) { 401 if (request->referrer.is_valid()) {
402 DCHECK(request->referrer == request->redirects[0]); 402 DCHECK(request->referrer == request->redirects[0]);
403 request->redirects.erase(request->redirects.begin()); 403 request->redirects.erase(request->redirects.begin());
404 404
405 // Make sure to remove the CHAIN_END marker from the first visit. This 405 // If the navigation entry for this visit has replaced that for the
406 // first visit, remove the CHAIN_END marker from the first visit. This
406 // can be called a lot, for example, the page cycler, and most of the 407 // can be called a lot, for example, the page cycler, and most of the
407 // time we won't have changed anything. 408 // time we won't have changed anything.
408 // TODO(brettw) this should be unit tested.
409 VisitRow visit_row; 409 VisitRow visit_row;
410 if (db_->GetRowForVisit(last_ids.second, &visit_row) && 410 if (request->did_replace_entry &&
411 db_->GetRowForVisit(last_ids.second, &visit_row) &&
411 visit_row.transition | PageTransition::CHAIN_END) { 412 visit_row.transition | PageTransition::CHAIN_END) {
412 visit_row.transition &= ~PageTransition::CHAIN_END; 413 visit_row.transition &= ~PageTransition::CHAIN_END;
413 db_->UpdateVisitRow(visit_row); 414 db_->UpdateVisitRow(visit_row);
414 } 415 }
415 } 416 }
416 } 417 }
417 418
418 for (size_t redirect_index = 0; redirect_index < request->redirects.size(); 419 for (size_t redirect_index = 0; redirect_index < request->redirects.size();
419 redirect_index++) { 420 redirect_index++) {
420 PageTransition::Type t = transition | redirect_info; 421 PageTransition::Type t = transition | redirect_info;
(...skipping 1483 matching lines...) Expand 10 before | Expand all | Expand 10 after
1904 return true; 1905 return true;
1905 } 1906 }
1906 1907
1907 BookmarkService* HistoryBackend::GetBookmarkService() { 1908 BookmarkService* HistoryBackend::GetBookmarkService() {
1908 if (bookmark_service_) 1909 if (bookmark_service_)
1909 bookmark_service_->BlockTillLoaded(); 1910 bookmark_service_->BlockTillLoaded();
1910 return bookmark_service_; 1911 return bookmark_service_;
1911 } 1912 }
1912 1913
1913 } // namespace history 1914 } // namespace history
OLDNEW
« no previous file with comments | « chrome/browser/history/history.cc ('k') | chrome/browser/history/history_backend_unittest.cc » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698