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

Side by Side Diff: components/history/core/browser/history_backend.cc

Issue 1311403011: Removed archived history file deletion on browser start (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@master
Patch Set: Added obsolete tag to archived history histograms Created 5 years, 3 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
OLDNEW
1 // Copyright (c) 2012 The Chromium Authors. All rights reserved. 1 // Copyright (c) 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 #include "components/history/core/browser/history_backend.h" 5 #include "components/history/core/browser/history_backend.h"
6 6
7 #include <algorithm> 7 #include <algorithm>
8 #include <functional> 8 #include <functional>
9 #include <list> 9 #include <list>
10 #include <map> 10 #include <map>
(...skipping 271 matching lines...) Expand 10 before | Expand all | Expand 10 after
282 } 282 }
283 283
284 base::FilePath HistoryBackend::GetThumbnailFileName() const { 284 base::FilePath HistoryBackend::GetThumbnailFileName() const {
285 return history_dir_.Append(kThumbnailsFilename); 285 return history_dir_.Append(kThumbnailsFilename);
286 } 286 }
287 287
288 base::FilePath HistoryBackend::GetFaviconsFileName() const { 288 base::FilePath HistoryBackend::GetFaviconsFileName() const {
289 return history_dir_.Append(kFaviconsFilename); 289 return history_dir_.Append(kFaviconsFilename);
290 } 290 }
291 291
292 base::FilePath HistoryBackend::GetArchivedFileName() const {
293 return history_dir_.Append(kArchivedHistoryFilename);
294 }
295
296 SegmentID HistoryBackend::GetLastSegmentID(VisitID from_visit) { 292 SegmentID HistoryBackend::GetLastSegmentID(VisitID from_visit) {
297 // Set is used to detect referrer loops. Should not happen, but can 293 // Set is used to detect referrer loops. Should not happen, but can
298 // if the database is corrupt. 294 // if the database is corrupt.
299 std::set<VisitID> visit_set; 295 std::set<VisitID> visit_set;
300 VisitID visit_id = from_visit; 296 VisitID visit_id = from_visit;
301 while (visit_id) { 297 while (visit_id) {
302 VisitRow row; 298 VisitRow row;
303 if (!db_->GetRowForVisit(visit_id, &row)) 299 if (!db_->GetRowForVisit(visit_id, &row))
304 return 0; 300 return 0;
305 if (row.segment_id) 301 if (row.segment_id)
(...skipping 305 matching lines...) Expand 10 before | Expand all | Expand 10 after
611 // the blocks the caller, yet allows other messages through. For this reason 607 // the blocks the caller, yet allows other messages through. For this reason
612 // we only set db_ to the created database if creation is successful. That 608 // we only set db_ to the created database if creation is successful. That
613 // way other methods won't do anything as db_ is still null. 609 // way other methods won't do anything as db_ is still null.
614 610
615 TimeTicks beginning_time = TimeTicks::Now(); 611 TimeTicks beginning_time = TimeTicks::Now();
616 612
617 // Compute the file names. 613 // Compute the file names.
618 history_dir_ = history_database_params.history_dir; 614 history_dir_ = history_database_params.history_dir;
619 base::FilePath history_name = history_dir_.Append(kHistoryFilename); 615 base::FilePath history_name = history_dir_.Append(kHistoryFilename);
620 base::FilePath thumbnail_name = GetFaviconsFileName(); 616 base::FilePath thumbnail_name = GetFaviconsFileName();
621 base::FilePath archived_name = GetArchivedFileName();
622 617
623 // Delete the old index database files which are no longer used. 618 // Delete the old index database files which are no longer used.
624 DeleteFTSIndexDatabases(); 619 DeleteFTSIndexDatabases();
625 620
626 // History database. 621 // History database.
627 db_.reset(new HistoryDatabase( 622 db_.reset(new HistoryDatabase(
628 history_database_params.download_interrupt_reason_none, 623 history_database_params.download_interrupt_reason_none,
629 history_database_params.download_interrupt_reason_crash)); 624 history_database_params.download_interrupt_reason_crash));
630 625
631 // Unretained to avoid a ref loop with db_. 626 // Unretained to avoid a ref loop with db_.
(...skipping 43 matching lines...) Expand 10 before | Expand all | Expand 10 after
675 if (thumbnail_db_->Init(thumbnail_name) != sql::INIT_OK) { 670 if (thumbnail_db_->Init(thumbnail_name) != sql::INIT_OK) {
676 // Unlike the main database, we don't error out when the database is too 671 // Unlike the main database, we don't error out when the database is too
677 // new because this error is much less severe. Generally, this shouldn't 672 // new because this error is much less severe. Generally, this shouldn't
678 // happen since the thumbnail and main database versions should be in sync. 673 // happen since the thumbnail and main database versions should be in sync.
679 // We'll just continue without thumbnails & favicons in this case or any 674 // We'll just continue without thumbnails & favicons in this case or any
680 // other error. 675 // other error.
681 LOG(WARNING) << "Could not initialize the thumbnail database."; 676 LOG(WARNING) << "Could not initialize the thumbnail database.";
682 thumbnail_db_.reset(); 677 thumbnail_db_.reset();
683 } 678 }
684 679
685 // Nuke any files corresponding to the legacy Archived History Database, which
686 // previously retained expired (> 3 months old) history entries, but, in the
687 // end, was not used for much, and consequently has been removed as of M37.
688 // TODO(engedy): Remove this code after the end of 2014.
689 sql::Connection::Delete(archived_name);
690
691 // Generate the history and thumbnail database metrics only after performing 680 // Generate the history and thumbnail database metrics only after performing
692 // any migration work. 681 // any migration work.
693 if (base::RandInt(1, 100) == 50) { 682 if (base::RandInt(1, 100) == 50) {
694 // Only do this computation sometimes since it can be expensive. 683 // Only do this computation sometimes since it can be expensive.
695 db_->ComputeDatabaseMetrics(history_name); 684 db_->ComputeDatabaseMetrics(history_name);
696 if (thumbnail_db_) 685 if (thumbnail_db_)
697 thumbnail_db_->ComputeDatabaseMetrics(); 686 thumbnail_db_->ComputeDatabaseMetrics();
698 } 687 }
699 688
700 expirer_.SetDatabases(db_.get(), thumbnail_db_.get()); 689 expirer_.SetDatabases(db_.get(), thumbnail_db_.get());
(...skipping 2007 matching lines...) Expand 10 before | Expand all | Expand 10 after
2708 // transaction is currently open. 2697 // transaction is currently open.
2709 db_->CommitTransaction(); 2698 db_->CommitTransaction();
2710 db_->Vacuum(); 2699 db_->Vacuum();
2711 db_->BeginTransaction(); 2700 db_->BeginTransaction();
2712 db_->GetStartDate(&first_recorded_time_); 2701 db_->GetStartDate(&first_recorded_time_);
2713 2702
2714 return true; 2703 return true;
2715 } 2704 }
2716 2705
2717 } // namespace history 2706 } // namespace history
OLDNEW
« no previous file with comments | « components/history/core/browser/history_backend.h ('k') | components/history/core/browser/history_backend_db_unittest.cc » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698