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

Side by Side Diff: chrome/browser/bookmarks/bookmark_codec.cc

Issue 10834004: Correct const accessors in base/values.(h|cc) (Closed) Base URL: http://git.chromium.org/chromium/src.git@master
Patch Set: Reverting webdriver:Command::parameters_ to const Created 8 years, 4 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) 2011 The Chromium Authors. All rights reserved. 1 // Copyright (c) 2011 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/bookmarks/bookmark_codec.h" 5 #include "chrome/browser/bookmarks/bookmark_codec.h"
6 6
7 #include <algorithm> 7 #include <algorithm>
8 8
9 #include "base/string_number_conversions.h" 9 #include "base/string_number_conversions.h"
10 #include "base/string_util.h" 10 #include "base/string_util.h"
(...skipping 116 matching lines...) Expand 10 before | Expand all | Expand 10 after
127 const Value& value) { 127 const Value& value) {
128 if (value.GetType() != Value::TYPE_DICTIONARY) 128 if (value.GetType() != Value::TYPE_DICTIONARY)
129 return false; // Unexpected type. 129 return false; // Unexpected type.
130 130
131 const DictionaryValue& d_value = static_cast<const DictionaryValue&>(value); 131 const DictionaryValue& d_value = static_cast<const DictionaryValue&>(value);
132 132
133 int version; 133 int version;
134 if (!d_value.GetInteger(kVersionKey, &version) || version != kCurrentVersion) 134 if (!d_value.GetInteger(kVersionKey, &version) || version != kCurrentVersion)
135 return false; // Unknown version. 135 return false; // Unknown version.
136 136
137 Value* checksum_value; 137 const Value* checksum_value;
138 if (d_value.Get(kChecksumKey, &checksum_value)) { 138 if (d_value.Get(kChecksumKey, &checksum_value)) {
139 if (checksum_value->GetType() != Value::TYPE_STRING) 139 if (checksum_value->GetType() != Value::TYPE_STRING)
140 return false; 140 return false;
141 StringValue* checksum_value_str = static_cast<StringValue*>(checksum_value); 141 const StringValue* checksum_value_str =
142 static_cast<const StringValue*>(checksum_value);
142 if (!checksum_value_str->GetAsString(&stored_checksum_)) 143 if (!checksum_value_str->GetAsString(&stored_checksum_))
143 return false; 144 return false;
144 } 145 }
145 146
146 Value* roots; 147 const Value* roots;
147 if (!d_value.Get(kRootsKey, &roots)) 148 if (!d_value.Get(kRootsKey, &roots))
148 return false; // No roots. 149 return false; // No roots.
149 150
150 if (roots->GetType() != Value::TYPE_DICTIONARY) 151 if (roots->GetType() != Value::TYPE_DICTIONARY)
151 return false; // Invalid type for roots. 152 return false; // Invalid type for roots.
152 153
153 DictionaryValue* roots_d_value = static_cast<DictionaryValue*>(roots); 154 const DictionaryValue* roots_d_value =
154 Value* root_folder_value; 155 static_cast<const DictionaryValue*>(roots);
155 Value* other_folder_value; 156 const Value* root_folder_value;
157 const Value* other_folder_value;
156 if (!roots_d_value->Get(kRootFolderNameKey, &root_folder_value) || 158 if (!roots_d_value->Get(kRootFolderNameKey, &root_folder_value) ||
157 root_folder_value->GetType() != Value::TYPE_DICTIONARY || 159 root_folder_value->GetType() != Value::TYPE_DICTIONARY ||
158 !roots_d_value->Get(kOtherBookmarkFolderNameKey, &other_folder_value) || 160 !roots_d_value->Get(kOtherBookmarkFolderNameKey, &other_folder_value) ||
159 other_folder_value->GetType() != Value::TYPE_DICTIONARY) { 161 other_folder_value->GetType() != Value::TYPE_DICTIONARY) {
160 return false; // Invalid type for root folder and/or other 162 return false; // Invalid type for root folder and/or other
161 // folder. 163 // folder.
162 } 164 }
163 DecodeNode(*static_cast<DictionaryValue*>(root_folder_value), NULL, 165 DecodeNode(*static_cast<const DictionaryValue*>(root_folder_value), NULL,
164 bb_node); 166 bb_node);
165 DecodeNode(*static_cast<DictionaryValue*>(other_folder_value), NULL, 167 DecodeNode(*static_cast<const DictionaryValue*>(other_folder_value), NULL,
166 other_folder_node); 168 other_folder_node);
167 169
168 // Fail silently if we can't deserialize mobile bookmarks. We can't require 170 // Fail silently if we can't deserialize mobile bookmarks. We can't require
169 // them to exist in order to be backwards-compatible with older versions of 171 // them to exist in order to be backwards-compatible with older versions of
170 // chrome. 172 // chrome.
171 Value* mobile_folder_value; 173 const Value* mobile_folder_value;
172 if (roots_d_value->Get(kMobileBookmarkFolderNameKey, &mobile_folder_value) && 174 if (roots_d_value->Get(kMobileBookmarkFolderNameKey, &mobile_folder_value) &&
173 mobile_folder_value->GetType() == Value::TYPE_DICTIONARY) { 175 mobile_folder_value->GetType() == Value::TYPE_DICTIONARY) {
174 DecodeNode(*static_cast<DictionaryValue*>(mobile_folder_value), NULL, 176 DecodeNode(*static_cast<const DictionaryValue*>(mobile_folder_value), NULL,
175 mobile_folder_node); 177 mobile_folder_node);
176 } else { 178 } else {
177 // If we didn't find the mobile folder, we're almost guaranteed to have a 179 // If we didn't find the mobile folder, we're almost guaranteed to have a
178 // duplicate id when we add the mobile folder. Consequently, if we don't 180 // duplicate id when we add the mobile folder. Consequently, if we don't
179 // intend to reassign ids in the future (ids_valid_ is still true), then at 181 // intend to reassign ids in the future (ids_valid_ is still true), then at
180 // least reassign the mobile bookmarks to avoid it colliding with anything 182 // least reassign the mobile bookmarks to avoid it colliding with anything
181 // else. 183 // else.
182 if (ids_valid_) 184 if (ids_valid_)
183 ReassignIDsHelper(mobile_folder_node); 185 ReassignIDsHelper(mobile_folder_node);
184 } 186 }
(...skipping 95 matching lines...) Expand 10 before | Expand all | Expand 10 after
280 282
281 if (parent) 283 if (parent)
282 parent->Add(node, parent->child_count()); 284 parent->Add(node, parent->child_count());
283 node->set_type(BookmarkNode::URL); 285 node->set_type(BookmarkNode::URL);
284 UpdateChecksumWithUrlNode(id_string, title, url_string); 286 UpdateChecksumWithUrlNode(id_string, title, url_string);
285 } else { 287 } else {
286 std::string last_modified_date; 288 std::string last_modified_date;
287 if (!value.GetString(kDateModifiedKey, &last_modified_date)) 289 if (!value.GetString(kDateModifiedKey, &last_modified_date))
288 last_modified_date = base::Int64ToString(Time::Now().ToInternalValue()); 290 last_modified_date = base::Int64ToString(Time::Now().ToInternalValue());
289 291
290 Value* child_values; 292 const Value* child_values;
291 if (!value.Get(kChildrenKey, &child_values)) 293 if (!value.Get(kChildrenKey, &child_values))
292 return false; 294 return false;
293 295
294 if (child_values->GetType() != Value::TYPE_LIST) 296 if (child_values->GetType() != Value::TYPE_LIST)
295 return false; 297 return false;
296 298
297 if (!node) { 299 if (!node) {
298 node = new BookmarkNode(id, GURL()); 300 node = new BookmarkNode(id, GURL());
299 } else { 301 } else {
300 // If a new node is not created, explicitly assign ID to the existing one. 302 // If a new node is not created, explicitly assign ID to the existing one.
301 node->set_id(id); 303 node->set_id(id);
302 } 304 }
303 305
304 node->set_type(BookmarkNode::FOLDER); 306 node->set_type(BookmarkNode::FOLDER);
305 int64 internal_time; 307 int64 internal_time;
306 base::StringToInt64(last_modified_date, &internal_time); 308 base::StringToInt64(last_modified_date, &internal_time);
307 node->set_date_folder_modified(Time::FromInternalValue(internal_time)); 309 node->set_date_folder_modified(Time::FromInternalValue(internal_time));
308 310
309 if (parent) 311 if (parent)
310 parent->Add(node, parent->child_count()); 312 parent->Add(node, parent->child_count());
311 313
312 UpdateChecksumWithFolderNode(id_string, title); 314 UpdateChecksumWithFolderNode(id_string, title);
313 315
314 if (!DecodeChildren(*static_cast<ListValue*>(child_values), node)) 316 if (!DecodeChildren(*static_cast<const ListValue*>(child_values), node))
315 return false; 317 return false;
316 } 318 }
317 319
318 node->SetTitle(title); 320 node->SetTitle(title);
319 node->set_date_added(date_added); 321 node->set_date_added(date_added);
320 return true; 322 return true;
321 } 323 }
322 324
323 void BookmarkCodec::ReassignIDs(BookmarkNode* bb_node, 325 void BookmarkCodec::ReassignIDs(BookmarkNode* bb_node,
324 BookmarkNode* other_node, 326 BookmarkNode* other_node,
(...skipping 42 matching lines...) Expand 10 before | Expand all | Expand 10 after
367 369
368 void BookmarkCodec::InitializeChecksum() { 370 void BookmarkCodec::InitializeChecksum() {
369 base::MD5Init(&md5_context_); 371 base::MD5Init(&md5_context_);
370 } 372 }
371 373
372 void BookmarkCodec::FinalizeChecksum() { 374 void BookmarkCodec::FinalizeChecksum() {
373 base::MD5Digest digest; 375 base::MD5Digest digest;
374 base::MD5Final(&digest, &md5_context_); 376 base::MD5Final(&digest, &md5_context_);
375 computed_checksum_ = base::MD5DigestToBase16(digest); 377 computed_checksum_ = base::MD5DigestToBase16(digest);
376 } 378 }
OLDNEW
« no previous file with comments | « chrome/browser/background/background_contents_service_unittest.cc ('k') | chrome/browser/bookmarks/bookmark_html_writer.cc » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698