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

Unified Diff: components/bookmarks/core/browser/bookmark_storage.cc

Issue 284893003: Move bookmarks/core/... to bookmarks/... (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@master
Patch Set: Fixing errors reported by presubmit Created 6 years, 7 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 side-by-side diff with in-line comments
Download patch
Index: components/bookmarks/core/browser/bookmark_storage.cc
diff --git a/components/bookmarks/core/browser/bookmark_storage.cc b/components/bookmarks/core/browser/bookmark_storage.cc
deleted file mode 100644
index 29709c4166308b760c7a80229bf41692cbe7fa51..0000000000000000000000000000000000000000
--- a/components/bookmarks/core/browser/bookmark_storage.cc
+++ /dev/null
@@ -1,187 +0,0 @@
-// Copyright 2014 The Chromium Authors. All rights reserved.
-// Use of this source code is governed by a BSD-style license that can be
-// found in the LICENSE file.
-
-#include "components/bookmarks/core/browser/bookmark_storage.h"
-
-#include "base/bind.h"
-#include "base/compiler_specific.h"
-#include "base/file_util.h"
-#include "base/json/json_file_value_serializer.h"
-#include "base/json/json_string_value_serializer.h"
-#include "base/metrics/histogram.h"
-#include "base/sequenced_task_runner.h"
-#include "base/time/time.h"
-#include "components/bookmarks/core/browser/bookmark_codec.h"
-#include "components/bookmarks/core/browser/bookmark_index.h"
-#include "components/bookmarks/core/browser/bookmark_model.h"
-#include "components/bookmarks/core/common/bookmark_constants.h"
-#include "components/startup_metric_utils/startup_metric_utils.h"
-
-using base::TimeTicks;
-
-namespace {
-
-// Extension used for backup files (copy of main file created during startup).
-const base::FilePath::CharType kBackupExtension[] = FILE_PATH_LITERAL("bak");
-
-// How often we save.
-const int kSaveDelayMS = 2500;
-
-void BackupCallback(const base::FilePath& path) {
- base::FilePath backup_path = path.ReplaceExtension(kBackupExtension);
- base::CopyFile(path, backup_path);
-}
-
-// Adds node to the model's index, recursing through all children as well.
-void AddBookmarksToIndex(BookmarkLoadDetails* details,
- BookmarkNode* node) {
- if (node->is_url()) {
- if (node->url().is_valid())
- details->index()->Add(node);
- } else {
- for (int i = 0; i < node->child_count(); ++i)
- AddBookmarksToIndex(details, node->GetChild(i));
- }
-}
-
-void LoadCallback(const base::FilePath& path,
- BookmarkStorage* storage,
- BookmarkLoadDetails* details,
- base::SequencedTaskRunner* task_runner) {
- startup_metric_utils::ScopedSlowStartupUMA
- scoped_timer("Startup.SlowStartupBookmarksLoad");
- bool bookmark_file_exists = base::PathExists(path);
- if (bookmark_file_exists) {
- JSONFileValueSerializer serializer(path);
- scoped_ptr<base::Value> root(serializer.Deserialize(NULL, NULL));
-
- if (root.get()) {
- // Building the index can take a while, so we do it on the background
- // thread.
- int64 max_node_id = 0;
- BookmarkCodec codec;
- TimeTicks start_time = TimeTicks::Now();
- codec.Decode(details->bb_node(), details->other_folder_node(),
- details->mobile_folder_node(), &max_node_id, *root.get());
- details->set_max_id(std::max(max_node_id, details->max_id()));
- details->set_computed_checksum(codec.computed_checksum());
- details->set_stored_checksum(codec.stored_checksum());
- details->set_ids_reassigned(codec.ids_reassigned());
- details->set_model_meta_info_map(codec.model_meta_info_map());
- details->set_model_sync_transaction_version(
- codec.model_sync_transaction_version());
- UMA_HISTOGRAM_TIMES("Bookmarks.DecodeTime",
- TimeTicks::Now() - start_time);
-
- start_time = TimeTicks::Now();
- AddBookmarksToIndex(details, details->bb_node());
- AddBookmarksToIndex(details, details->other_folder_node());
- AddBookmarksToIndex(details, details->mobile_folder_node());
- UMA_HISTOGRAM_TIMES("Bookmarks.CreateBookmarkIndexTime",
- TimeTicks::Now() - start_time);
- }
- }
-
- task_runner->PostTask(FROM_HERE,
- base::Bind(&BookmarkStorage::OnLoadFinished, storage));
-}
-
-} // namespace
-
-// BookmarkLoadDetails ---------------------------------------------------------
-
-BookmarkLoadDetails::BookmarkLoadDetails(
- BookmarkPermanentNode* bb_node,
- BookmarkPermanentNode* other_folder_node,
- BookmarkPermanentNode* mobile_folder_node,
- BookmarkIndex* index,
- int64 max_id)
- : bb_node_(bb_node),
- other_folder_node_(other_folder_node),
- mobile_folder_node_(mobile_folder_node),
- index_(index),
- model_sync_transaction_version_(
- BookmarkNode::kInvalidSyncTransactionVersion),
- max_id_(max_id),
- ids_reassigned_(false) {
-}
-
-BookmarkLoadDetails::~BookmarkLoadDetails() {
-}
-
-// BookmarkStorage -------------------------------------------------------------
-
-BookmarkStorage::BookmarkStorage(
- BookmarkModel* model,
- const base::FilePath& profile_path,
- base::SequencedTaskRunner* sequenced_task_runner)
- : model_(model),
- writer_(profile_path.Append(bookmarks::kBookmarksFileName),
- sequenced_task_runner) {
- sequenced_task_runner_ = sequenced_task_runner;
- writer_.set_commit_interval(base::TimeDelta::FromMilliseconds(kSaveDelayMS));
- sequenced_task_runner_->PostTask(FROM_HERE,
- base::Bind(&BackupCallback, writer_.path()));
-}
-
-BookmarkStorage::~BookmarkStorage() {
- if (writer_.HasPendingWrite())
- writer_.DoScheduledWrite();
-}
-
-void BookmarkStorage::LoadBookmarks(
- scoped_ptr<BookmarkLoadDetails> details,
- const scoped_refptr<base::SequencedTaskRunner>& task_runner) {
- DCHECK(!details_.get());
- DCHECK(details);
- details_ = details.Pass();
- sequenced_task_runner_->PostTask(FROM_HERE,
- base::Bind(&LoadCallback,
- writer_.path(),
- make_scoped_refptr(this),
- details_.get(),
- task_runner));
-}
-
-void BookmarkStorage::ScheduleSave() {
- writer_.ScheduleWrite(this);
-}
-
-void BookmarkStorage::BookmarkModelDeleted() {
- // We need to save now as otherwise by the time SaveNow is invoked
- // the model is gone.
- if (writer_.HasPendingWrite())
- SaveNow();
- model_ = NULL;
-}
-
-bool BookmarkStorage::SerializeData(std::string* output) {
- BookmarkCodec codec;
- scoped_ptr<base::Value> value(codec.Encode(model_));
- JSONStringValueSerializer serializer(output);
- serializer.set_pretty_print(true);
- return serializer.Serialize(*(value.get()));
-}
-
-void BookmarkStorage::OnLoadFinished() {
- if (!model_)
- return;
-
- model_->DoneLoading(details_.Pass());
-}
-
-bool BookmarkStorage::SaveNow() {
- if (!model_ || !model_->loaded()) {
- // We should only get here if we have a valid model and it's finished
- // loading.
- NOTREACHED();
- return false;
- }
-
- std::string data;
- if (!SerializeData(&data))
- return false;
- writer_.WriteNow(data);
- return true;
-}
« no previous file with comments | « components/bookmarks/core/browser/bookmark_storage.h ('k') | components/bookmarks/core/browser/bookmark_utils.h » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698