Index: components/bookmarks/core/browser/bookmark_codec.h |
diff --git a/components/bookmarks/core/browser/bookmark_codec.h b/components/bookmarks/core/browser/bookmark_codec.h |
deleted file mode 100644 |
index 909ed6e393b0f6d4433091287a4faf63d1e63b2e..0000000000000000000000000000000000000000 |
--- a/components/bookmarks/core/browser/bookmark_codec.h |
+++ /dev/null |
@@ -1,207 +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. |
- |
-#ifndef COMPONENTS_BOOKMARKS_CORE_BROWSER_BOOKMARK_CODEC_H_ |
-#define COMPONENTS_BOOKMARKS_CORE_BROWSER_BOOKMARK_CODEC_H_ |
- |
-#include <set> |
-#include <string> |
- |
-#include "base/basictypes.h" |
-#include "base/md5.h" |
-#include "base/strings/string16.h" |
-#include "components/bookmarks/core/browser/bookmark_node.h" |
- |
-class BookmarkModel; |
- |
-namespace base { |
-class DictionaryValue; |
-class ListValue; |
-class Value; |
-} |
- |
-// BookmarkCodec is responsible for encoding and decoding the BookmarkModel |
-// into JSON values. The encoded values are written to disk via the |
-// BookmarkStorage. |
-class BookmarkCodec { |
- public: |
- // Creates an instance of the codec. During decoding, if the IDs in the file |
- // are not unique, we will reassign IDs to make them unique. There are no |
- // guarantees on how the IDs are reassigned or about doing minimal |
- // reassignments to achieve uniqueness. |
- BookmarkCodec(); |
- ~BookmarkCodec(); |
- |
- // Encodes the model to a JSON value. It's up to the caller to delete the |
- // returned object. This is invoked to encode the contents of the bookmark bar |
- // model and is currently a convenience to invoking Encode that takes the |
- // bookmark bar node and other folder node. |
- base::Value* Encode(BookmarkModel* model); |
- |
- // Encodes the bookmark bar and other folders returning the JSON value. It's |
- // up to the caller to delete the returned object. |
- base::Value* Encode(const BookmarkNode* bookmark_bar_node, |
- const BookmarkNode* other_folder_node, |
- const BookmarkNode* mobile_folder_node, |
- const BookmarkNode::MetaInfoMap* model_meta_info_map, |
- int64 sync_transaction_version); |
- |
- // Decodes the previously encoded value to the specified nodes as well as |
- // setting |max_node_id| to the greatest node id. Returns true on success, |
- // false otherwise. If there is an error (such as unexpected version) all |
- // children are removed from the bookmark bar and other folder nodes. On exit |
- // |max_node_id| is set to the max id of the nodes. |
- bool Decode(BookmarkNode* bb_node, |
- BookmarkNode* other_folder_node, |
- BookmarkNode* mobile_folder_node, |
- int64* max_node_id, |
- const base::Value& value); |
- |
- // Returns the checksum computed during last encoding/decoding call. |
- const std::string& computed_checksum() const { return computed_checksum_; } |
- |
- // Returns the checksum that's stored in the file. After a call to Encode, |
- // the computed and stored checksums are the same since the computed checksum |
- // is stored to the file. After a call to decode, the computed checksum can |
- // differ from the stored checksum if the file contents were changed by the |
- // user. |
- const std::string& stored_checksum() const { return stored_checksum_; } |
- |
- // Return meta info of bookmark model root. |
- const BookmarkNode::MetaInfoMap& model_meta_info_map() const { |
- return model_meta_info_map_; |
- } |
- |
- // Return the sync transaction version of the bookmark model root. |
- int64 model_sync_transaction_version() const { |
- return model_sync_transaction_version_; |
- } |
- |
- // Returns whether the IDs were reassigned during decoding. Always returns |
- // false after encoding. |
- bool ids_reassigned() const { return ids_reassigned_; } |
- |
- // Names of the various keys written to the Value. |
- static const char* kRootsKey; |
- static const char* kRootFolderNameKey; |
- static const char* kOtherBookmarkFolderNameKey; |
- static const char* kMobileBookmarkFolderNameKey; |
- static const char* kVersionKey; |
- static const char* kChecksumKey; |
- static const char* kIdKey; |
- static const char* kTypeKey; |
- static const char* kNameKey; |
- static const char* kDateAddedKey; |
- static const char* kURLKey; |
- static const char* kDateModifiedKey; |
- static const char* kChildrenKey; |
- static const char* kMetaInfo; |
- static const char* kSyncTransactionVersion; |
- |
- // Possible values for kTypeKey. |
- static const char* kTypeURL; |
- static const char* kTypeFolder; |
- |
- private: |
- // Encodes node and all its children into a Value object and returns it. |
- // The caller takes ownership of the returned object. |
- base::Value* EncodeNode(const BookmarkNode* node); |
- |
- // Encodes the given meta info into a Value object and returns it. The caller |
- // takes ownership of the returned object. |
- base::Value* EncodeMetaInfo(const BookmarkNode::MetaInfoMap& meta_info_map); |
- |
- // Helper to perform decoding. |
- bool DecodeHelper(BookmarkNode* bb_node, |
- BookmarkNode* other_folder_node, |
- BookmarkNode* mobile_folder_node, |
- const base::Value& value); |
- |
- // Decodes the children of the specified node. Returns true on success. |
- bool DecodeChildren(const base::ListValue& child_value_list, |
- BookmarkNode* parent); |
- |
- // Reassigns bookmark IDs for all nodes. |
- void ReassignIDs(BookmarkNode* bb_node, |
- BookmarkNode* other_node, |
- BookmarkNode* mobile_node); |
- |
- // Helper to recursively reassign IDs. |
- void ReassignIDsHelper(BookmarkNode* node); |
- |
- // Decodes the supplied node from the supplied value. Child nodes are |
- // created appropriately by way of DecodeChildren. If node is NULL a new |
- // node is created and added to parent (parent must then be non-NULL), |
- // otherwise node is used. |
- bool DecodeNode(const base::DictionaryValue& value, |
- BookmarkNode* parent, |
- BookmarkNode* node); |
- |
- // Decodes the meta info from the supplied value. If the meta info contains |
- // a "sync.transaction_version" key, the value of that field will be stored |
- // in the sync_transaction_version variable, then deleted. This is for |
- // backward-compatibility reasons. |
- // meta_info_map and sync_transaction_version must not be NULL. |
- bool DecodeMetaInfo(const base::DictionaryValue& value, |
- BookmarkNode::MetaInfoMap* meta_info_map, |
- int64* sync_transaction_version); |
- |
- // Decodes the meta info from the supplied sub-node dictionary. The values |
- // found will be inserted in meta_info_map with the given prefix added to the |
- // start of their keys. |
- void DecodeMetaInfoHelper(const base::DictionaryValue& dict, |
- const std::string& prefix, |
- BookmarkNode::MetaInfoMap* meta_info_map); |
- |
- // Updates the check-sum with the given string. |
- void UpdateChecksum(const std::string& str); |
- void UpdateChecksum(const base::string16& str); |
- |
- // Updates the check-sum with the given contents of URL/folder bookmark node. |
- // NOTE: These functions take in individual properties of a bookmark node |
- // instead of taking in a BookmarkNode for efficiency so that we don't convert |
- // various data-types to UTF16 strings multiple times - once for serializing |
- // and once for computing the check-sum. |
- // The url parameter should be a valid UTF8 string. |
- void UpdateChecksumWithUrlNode(const std::string& id, |
- const base::string16& title, |
- const std::string& url); |
- void UpdateChecksumWithFolderNode(const std::string& id, |
- const base::string16& title); |
- |
- // Initializes/Finalizes the checksum. |
- void InitializeChecksum(); |
- void FinalizeChecksum(); |
- |
- // Whether or not IDs were reassigned by the codec. |
- bool ids_reassigned_; |
- |
- // Whether or not IDs are valid. This is initially true, but set to false |
- // if an id is missing or not unique. |
- bool ids_valid_; |
- |
- // Contains the id of each of the nodes found in the file. Used to determine |
- // if we have duplicates. |
- std::set<int64> ids_; |
- |
- // MD5 context used to compute MD5 hash of all bookmark data. |
- base::MD5Context md5_context_; |
- |
- // Checksums. |
- std::string computed_checksum_; |
- std::string stored_checksum_; |
- |
- // Maximum ID assigned when decoding data. |
- int64 maximum_id_; |
- |
- // Meta info set on bookmark model root. |
- BookmarkNode::MetaInfoMap model_meta_info_map_; |
- |
- // Sync transaction version set on bookmark model root. |
- int64 model_sync_transaction_version_; |
- |
- DISALLOW_COPY_AND_ASSIGN(BookmarkCodec); |
-}; |
- |
-#endif // COMPONENTS_BOOKMARKS_CORE_BROWSER_BOOKMARK_CODEC_H_ |