OLD | NEW |
1 // Copyright (c) 2013 The Chromium Authors. All rights reserved. | 1 // Copyright (c) 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/indexed_db/indexed_db_backing_store.h" | 5 #include "content/browser/indexed_db/indexed_db_backing_store.h" |
6 | 6 |
7 #include <algorithm> | 7 #include <algorithm> |
8 #include <utility> | 8 #include <utility> |
9 | 9 |
10 #include "base/files/file_path.h" | 10 #include "base/files/file_path.h" |
(...skipping 752 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
763 active_blob_registry_(this), | 763 active_blob_registry_(this), |
764 committing_transaction_count_(0) {} | 764 committing_transaction_count_(0) {} |
765 | 765 |
766 IndexedDBBackingStore::~IndexedDBBackingStore() { | 766 IndexedDBBackingStore::~IndexedDBBackingStore() { |
767 if (!blob_path_.empty() && !child_process_ids_granted_.empty()) { | 767 if (!blob_path_.empty() && !child_process_ids_granted_.empty()) { |
768 ChildProcessSecurityPolicyImpl* policy = | 768 ChildProcessSecurityPolicyImpl* policy = |
769 ChildProcessSecurityPolicyImpl::GetInstance(); | 769 ChildProcessSecurityPolicyImpl::GetInstance(); |
770 for (const auto& pid : child_process_ids_granted_) | 770 for (const auto& pid : child_process_ids_granted_) |
771 policy->RevokeAllPermissionsForFile(pid, blob_path_); | 771 policy->RevokeAllPermissionsForFile(pid, blob_path_); |
772 } | 772 } |
773 STLDeleteContainerPairSecondPointers(incognito_blob_map_.begin(), | 773 base::STLDeleteContainerPairSecondPointers(incognito_blob_map_.begin(), |
774 incognito_blob_map_.end()); | 774 incognito_blob_map_.end()); |
775 // db_'s destructor uses comparator_. The order of destruction is important. | 775 // db_'s destructor uses comparator_. The order of destruction is important. |
776 db_.reset(); | 776 db_.reset(); |
777 comparator_.reset(); | 777 comparator_.reset(); |
778 } | 778 } |
779 | 779 |
780 IndexedDBBackingStore::RecordIdentifier::RecordIdentifier( | 780 IndexedDBBackingStore::RecordIdentifier::RecordIdentifier( |
781 const std::string& primary_key, | 781 const std::string& primary_key, |
782 int64_t version) | 782 int64_t version) |
783 : primary_key_(primary_key), version_(version) { | 783 : primary_key_(primary_key), version_(version) { |
784 DCHECK(!primary_key.empty()); | 784 DCHECK(!primary_key.empty()); |
(...skipping 125 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
910 return false; | 910 return false; |
911 if (!file_size) { | 911 if (!file_size) { |
912 NOTREACHED(); | 912 NOTREACHED(); |
913 return false; | 913 return false; |
914 } | 914 } |
915 | 915 |
916 base::File file(info_path, base::File::FLAG_OPEN | base::File::FLAG_READ); | 916 base::File file(info_path, base::File::FLAG_OPEN | base::File::FLAG_READ); |
917 bool success = false; | 917 bool success = false; |
918 if (file.IsValid()) { | 918 if (file.IsValid()) { |
919 std::string input_js(file_size, '\0'); | 919 std::string input_js(file_size, '\0'); |
920 if (file_size == file.Read(0, string_as_array(&input_js), file_size)) { | 920 if (file_size == |
| 921 file.Read(0, base::string_as_array(&input_js), file_size)) { |
921 base::JSONReader reader; | 922 base::JSONReader reader; |
922 std::unique_ptr<base::DictionaryValue> val( | 923 std::unique_ptr<base::DictionaryValue> val( |
923 base::DictionaryValue::From(reader.ReadToValue(input_js))); | 924 base::DictionaryValue::From(reader.ReadToValue(input_js))); |
924 success = val->GetString("message", message); | 925 success = val->GetString("message", message); |
925 } | 926 } |
926 file.Close(); | 927 file.Close(); |
927 } | 928 } |
928 | 929 |
929 base::DeleteFile(info_path, false); | 930 base::DeleteFile(info_path, false); |
930 | 931 |
(...skipping 3067 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
3998 | 3999 |
3999 return std::move(cursor); | 4000 return std::move(cursor); |
4000 } | 4001 } |
4001 | 4002 |
4002 IndexedDBBackingStore::Transaction::Transaction( | 4003 IndexedDBBackingStore::Transaction::Transaction( |
4003 IndexedDBBackingStore* backing_store) | 4004 IndexedDBBackingStore* backing_store) |
4004 : backing_store_(backing_store), database_id_(-1), committing_(false) { | 4005 : backing_store_(backing_store), database_id_(-1), committing_(false) { |
4005 } | 4006 } |
4006 | 4007 |
4007 IndexedDBBackingStore::Transaction::~Transaction() { | 4008 IndexedDBBackingStore::Transaction::~Transaction() { |
4008 STLDeleteContainerPairSecondPointers( | 4009 base::STLDeleteContainerPairSecondPointers(blob_change_map_.begin(), |
4009 blob_change_map_.begin(), blob_change_map_.end()); | 4010 blob_change_map_.end()); |
4010 STLDeleteContainerPairSecondPointers(incognito_blob_map_.begin(), | 4011 base::STLDeleteContainerPairSecondPointers(incognito_blob_map_.begin(), |
4011 incognito_blob_map_.end()); | 4012 incognito_blob_map_.end()); |
4012 DCHECK(!committing_); | 4013 DCHECK(!committing_); |
4013 } | 4014 } |
4014 | 4015 |
4015 void IndexedDBBackingStore::Transaction::Begin() { | 4016 void IndexedDBBackingStore::Transaction::Begin() { |
4016 IDB_TRACE("IndexedDBBackingStore::Transaction::Begin"); | 4017 IDB_TRACE("IndexedDBBackingStore::Transaction::Begin"); |
4017 DCHECK(!transaction_.get()); | 4018 DCHECK(!transaction_.get()); |
4018 transaction_ = IndexedDBClassFactory::Get()->CreateLevelDBTransaction( | 4019 transaction_ = IndexedDBClassFactory::Get()->CreateLevelDBTransaction( |
4019 backing_store_->db_.get()); | 4020 backing_store_->db_.get()); |
4020 | 4021 |
4021 // If incognito, this snapshots blobs just as the above transaction_ | 4022 // If incognito, this snapshots blobs just as the above transaction_ |
(...skipping 445 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
4467 | 4468 |
4468 IndexedDBBackingStore::Transaction::WriteDescriptor::WriteDescriptor( | 4469 IndexedDBBackingStore::Transaction::WriteDescriptor::WriteDescriptor( |
4469 const WriteDescriptor& other) = default; | 4470 const WriteDescriptor& other) = default; |
4470 IndexedDBBackingStore::Transaction::WriteDescriptor::~WriteDescriptor() = | 4471 IndexedDBBackingStore::Transaction::WriteDescriptor::~WriteDescriptor() = |
4471 default; | 4472 default; |
4472 IndexedDBBackingStore::Transaction::WriteDescriptor& | 4473 IndexedDBBackingStore::Transaction::WriteDescriptor& |
4473 IndexedDBBackingStore::Transaction::WriteDescriptor:: | 4474 IndexedDBBackingStore::Transaction::WriteDescriptor:: |
4474 operator=(const WriteDescriptor& other) = default; | 4475 operator=(const WriteDescriptor& other) = default; |
4475 | 4476 |
4476 } // namespace content | 4477 } // namespace content |
OLD | NEW |