OLD | NEW |
1 // Copyright 2014 The Chromium Authors. All rights reserved. | 1 // Copyright 2014 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/bookmarks/browser/bookmark_storage.h" | 5 #include "components/bookmarks/browser/bookmark_storage.h" |
6 | 6 |
7 #include "base/bind.h" | 7 #include "base/bind.h" |
8 #include "base/compiler_specific.h" | 8 #include "base/compiler_specific.h" |
9 #include "base/files/file_util.h" | 9 #include "base/files/file_util.h" |
10 #include "base/json/json_file_value_serializer.h" | 10 #include "base/json/json_file_value_serializer.h" |
(...skipping 38 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
49 | 49 |
50 void LoadCallback(const base::FilePath& path, | 50 void LoadCallback(const base::FilePath& path, |
51 const base::WeakPtr<BookmarkStorage>& storage, | 51 const base::WeakPtr<BookmarkStorage>& storage, |
52 scoped_ptr<BookmarkLoadDetails> details, | 52 scoped_ptr<BookmarkLoadDetails> details, |
53 base::SequencedTaskRunner* task_runner) { | 53 base::SequencedTaskRunner* task_runner) { |
54 startup_metric_utils::ScopedSlowStartupUMA | 54 startup_metric_utils::ScopedSlowStartupUMA |
55 scoped_timer("Startup.SlowStartupBookmarksLoad"); | 55 scoped_timer("Startup.SlowStartupBookmarksLoad"); |
56 bool load_index = false; | 56 bool load_index = false; |
57 bool bookmark_file_exists = base::PathExists(path); | 57 bool bookmark_file_exists = base::PathExists(path); |
58 if (bookmark_file_exists) { | 58 if (bookmark_file_exists) { |
59 JSONFileValueSerializer serializer(path); | 59 JSONFileValueDeserializer deserializer(path); |
60 scoped_ptr<base::Value> root(serializer.Deserialize(NULL, NULL)); | 60 scoped_ptr<base::Value> root(deserializer.Deserialize(NULL, NULL)); |
61 | 61 |
62 if (root.get()) { | 62 if (root.get()) { |
63 // Building the index can take a while, so we do it on the background | 63 // Building the index can take a while, so we do it on the background |
64 // thread. | 64 // thread. |
65 int64 max_node_id = 0; | 65 int64 max_node_id = 0; |
66 BookmarkCodec codec; | 66 BookmarkCodec codec; |
67 TimeTicks start_time = TimeTicks::Now(); | 67 TimeTicks start_time = TimeTicks::Now(); |
68 codec.Decode(details->bb_node(), details->other_folder_node(), | 68 codec.Decode(details->bb_node(), details->other_folder_node(), |
69 details->mobile_folder_node(), &max_node_id, *root.get()); | 69 details->mobile_folder_node(), &max_node_id, *root.get()); |
70 details->set_max_id(std::max(max_node_id, details->max_id())); | 70 details->set_max_id(std::max(max_node_id, details->max_id())); |
(...skipping 135 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
206 } | 206 } |
207 | 207 |
208 std::string data; | 208 std::string data; |
209 if (!SerializeData(&data)) | 209 if (!SerializeData(&data)) |
210 return false; | 210 return false; |
211 writer_.WriteNow(data); | 211 writer_.WriteNow(data); |
212 return true; | 212 return true; |
213 } | 213 } |
214 | 214 |
215 } // namespace bookmarks | 215 } // namespace bookmarks |
OLD | NEW |