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

Side by Side Diff: content/browser/dom_storage/session_storage_database.cc

Issue 121033002: Update uses of UTF conversions in content/ to use the base:: namespace. (Closed) Base URL: svn://svn.chromium.org/chrome/trunk/src
Patch Set: Created 6 years, 12 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 | Annotate | Revision Log
OLDNEW
1 // Copyright 2013 The Chromium Authors. All rights reserved. 1 // Copyright 2013 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 "content/browser/dom_storage/session_storage_database.h" 5 #include "content/browser/dom_storage/session_storage_database.h"
6 6
7 #include "base/file_util.h" 7 #include "base/file_util.h"
8 #include "base/logging.h" 8 #include "base/logging.h"
9 #include "base/metrics/histogram.h" 9 #include "base/metrics/histogram.h"
10 #include "base/strings/string_number_conversions.h" 10 #include "base/strings/string_number_conversions.h"
(...skipping 59 matching lines...) Expand 10 before | Expand all | Expand 10 after
70 base::AutoLock auto_lock(session_storage_database_->db_lock_); 70 base::AutoLock auto_lock(session_storage_database_->db_lock_);
71 --session_storage_database_->operation_count_; 71 --session_storage_database_->operation_count_;
72 if ((session_storage_database_->is_inconsistent_ || 72 if ((session_storage_database_->is_inconsistent_ ||
73 session_storage_database_->db_error_) && 73 session_storage_database_->db_error_) &&
74 session_storage_database_->operation_count_ == 0 && 74 session_storage_database_->operation_count_ == 0 &&
75 !session_storage_database_->invalid_db_deleted_) { 75 !session_storage_database_->invalid_db_deleted_) {
76 // No other operations are ongoing and the data is bad -> delete it now. 76 // No other operations are ongoing and the data is bad -> delete it now.
77 session_storage_database_->db_.reset(); 77 session_storage_database_->db_.reset();
78 #if defined(OS_WIN) 78 #if defined(OS_WIN)
79 leveldb::DestroyDB( 79 leveldb::DestroyDB(
80 WideToUTF8(session_storage_database_->file_path_.value()), 80 base::WideToUTF8(session_storage_database_->file_path_.value()),
81 leveldb::Options()); 81 leveldb::Options());
82 #else 82 #else
83 leveldb::DestroyDB(session_storage_database_->file_path_.value(), 83 leveldb::DestroyDB(session_storage_database_->file_path_.value(),
84 leveldb::Options()); 84 leveldb::Options());
85 #endif 85 #endif
86 session_storage_database_->invalid_db_deleted_ = true; 86 session_storage_database_->invalid_db_deleted_ = true;
87 } 87 }
88 } 88 }
89 89
90 private: 90 private:
(...skipping 279 matching lines...) Expand 10 before | Expand all | Expand 10 after
370 } 370 }
371 371
372 leveldb::Status SessionStorageDatabase::TryToOpen(leveldb::DB** db) { 372 leveldb::Status SessionStorageDatabase::TryToOpen(leveldb::DB** db) {
373 leveldb::Options options; 373 leveldb::Options options;
374 // The directory exists but a valid leveldb database might not exist inside it 374 // The directory exists but a valid leveldb database might not exist inside it
375 // (e.g., a subset of the needed files might be missing). Handle this 375 // (e.g., a subset of the needed files might be missing). Handle this
376 // situation gracefully by creating the database now. 376 // situation gracefully by creating the database now.
377 options.max_open_files = 0; // Use minimum. 377 options.max_open_files = 0; // Use minimum.
378 options.create_if_missing = true; 378 options.create_if_missing = true;
379 #if defined(OS_WIN) 379 #if defined(OS_WIN)
380 return leveldb::DB::Open(options, WideToUTF8(file_path_.value()), db); 380 return leveldb::DB::Open(options, base::WideToUTF8(file_path_.value()), db);
381 #elif defined(OS_POSIX) 381 #elif defined(OS_POSIX)
382 return leveldb::DB::Open(options, file_path_.value(), db); 382 return leveldb::DB::Open(options, file_path_.value(), db);
383 #endif 383 #endif
384 } 384 }
385 385
386 bool SessionStorageDatabase::IsOpen() const { 386 bool SessionStorageDatabase::IsOpen() const {
387 return db_.get() != NULL; 387 return db_.get() != NULL;
388 } 388 }
389 389
390 bool SessionStorageDatabase::CallerErrorCheck(bool ok) const { 390 bool SessionStorageDatabase::CallerErrorCheck(bool ok) const {
(...skipping 173 matching lines...) Expand 10 before | Expand all | Expand 10 after
564 if (!DatabaseErrorCheck(it->status().ok())) 564 if (!DatabaseErrorCheck(it->status().ok()))
565 return false; 565 return false;
566 // Skip the dummy entry "map-<mapid>-". 566 // Skip the dummy entry "map-<mapid>-".
567 for (it->Next(); it->Valid(); it->Next()) { 567 for (it->Next(); it->Valid(); it->Next()) {
568 std::string key = it->key().ToString(); 568 std::string key = it->key().ToString();
569 if (key.find(map_start_key) != 0) { 569 if (key.find(map_start_key) != 0) {
570 // Iterated past the keys in this map. 570 // Iterated past the keys in this map.
571 break; 571 break;
572 } 572 }
573 // Key is of the form "map-<mapid>-<key>". 573 // Key is of the form "map-<mapid>-<key>".
574 base::string16 key16 = UTF8ToUTF16(key.substr(map_start_key.length())); 574 base::string16 key16 =
575 base::UTF8ToUTF16(key.substr(map_start_key.length()));
575 if (only_keys) { 576 if (only_keys) {
576 (*result)[key16] = base::NullableString16(); 577 (*result)[key16] = base::NullableString16();
577 } else { 578 } else {
578 // Convert the raw data stored in std::string (it->value()) to raw data 579 // Convert the raw data stored in std::string (it->value()) to raw data
579 // stored in base::string16. 580 // stored in base::string16.
580 size_t len = it->value().size() / sizeof(char16); 581 size_t len = it->value().size() / sizeof(char16);
581 const char16* data_ptr = 582 const char16* data_ptr =
582 reinterpret_cast<const char16*>(it->value().data()); 583 reinterpret_cast<const char16*>(it->value().data());
583 (*result)[key16] = 584 (*result)[key16] =
584 base::NullableString16(base::string16(data_ptr, len), false); 585 base::NullableString16(base::string16(data_ptr, len), false);
585 } 586 }
586 } 587 }
587 return true; 588 return true;
588 } 589 }
589 590
590 void SessionStorageDatabase::WriteValuesToMap(const std::string& map_id, 591 void SessionStorageDatabase::WriteValuesToMap(const std::string& map_id,
591 const DOMStorageValuesMap& values, 592 const DOMStorageValuesMap& values,
592 leveldb::WriteBatch* batch) { 593 leveldb::WriteBatch* batch) {
593 for (DOMStorageValuesMap::const_iterator it = values.begin(); 594 for (DOMStorageValuesMap::const_iterator it = values.begin();
594 it != values.end(); 595 it != values.end();
595 ++it) { 596 ++it) {
596 base::NullableString16 value = it->second; 597 base::NullableString16 value = it->second;
597 std::string key = MapKey(map_id, UTF16ToUTF8(it->first)); 598 std::string key = MapKey(map_id, base::UTF16ToUTF8(it->first));
598 if (value.is_null()) { 599 if (value.is_null()) {
599 batch->Delete(key); 600 batch->Delete(key);
600 } else { 601 } else {
601 // Convert the raw data stored in base::string16 to raw data stored in 602 // Convert the raw data stored in base::string16 to raw data stored in
602 // std::string. 603 // std::string.
603 const char* data = reinterpret_cast<const char*>(value.string().data()); 604 const char* data = reinterpret_cast<const char*>(value.string().data());
604 size_t size = value.string().size() * 2; 605 size_t size = value.string().size() * 2;
605 batch->Put(key, leveldb::Slice(data, size)); 606 batch->Put(key, leveldb::Slice(data, size));
606 } 607 }
607 } 608 }
(...skipping 41 matching lines...) Expand 10 before | Expand all | Expand 10 after
649 return true; 650 return true;
650 } 651 }
651 652
652 bool SessionStorageDatabase::ClearMap(const std::string& map_id, 653 bool SessionStorageDatabase::ClearMap(const std::string& map_id,
653 leveldb::WriteBatch* batch) { 654 leveldb::WriteBatch* batch) {
654 DOMStorageValuesMap values; 655 DOMStorageValuesMap values;
655 if (!ReadMap(map_id, leveldb::ReadOptions(), &values, true)) 656 if (!ReadMap(map_id, leveldb::ReadOptions(), &values, true))
656 return false; 657 return false;
657 for (DOMStorageValuesMap::const_iterator it = values.begin(); 658 for (DOMStorageValuesMap::const_iterator it = values.begin();
658 it != values.end(); ++it) 659 it != values.end(); ++it)
659 batch->Delete(MapKey(map_id, UTF16ToUTF8(it->first))); 660 batch->Delete(MapKey(map_id, base::UTF16ToUTF8(it->first)));
660 return true; 661 return true;
661 } 662 }
662 663
663 bool SessionStorageDatabase::DeepCopyArea( 664 bool SessionStorageDatabase::DeepCopyArea(
664 const std::string& namespace_id, const GURL& origin, bool copy_data, 665 const std::string& namespace_id, const GURL& origin, bool copy_data,
665 std::string* map_id, leveldb::WriteBatch* batch) { 666 std::string* map_id, leveldb::WriteBatch* batch) {
666 // Example, data before deep copy: 667 // Example, data before deep copy:
667 // | namespace-1- (1 = namespace id)| dummy | 668 // | namespace-1- (1 = namespace id)| dummy |
668 // | namespace-1-origin1 | 1 (mapid) | 669 // | namespace-1-origin1 | 1 (mapid) |
669 // | namespace-2- | dummy | 670 // | namespace-2- | dummy |
(...skipping 49 matching lines...) Expand 10 before | Expand all | Expand 10 after
719 std::string SessionStorageDatabase::MapKey(const std::string& map_id, 720 std::string SessionStorageDatabase::MapKey(const std::string& map_id,
720 const std::string& key) { 721 const std::string& key) {
721 return base::StringPrintf("map-%s-%s", map_id.c_str(), key.c_str()); 722 return base::StringPrintf("map-%s-%s", map_id.c_str(), key.c_str());
722 } 723 }
723 724
724 const char* SessionStorageDatabase::NextMapIdKey() { 725 const char* SessionStorageDatabase::NextMapIdKey() {
725 return "next-map-id"; 726 return "next-map-id";
726 } 727 }
727 728
728 } // namespace content 729 } // namespace content
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698