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 2594 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
2605 chained_blob_writer_.get(); | 2605 chained_blob_writer_.get(); |
2606 raw_tmp->AddRef(); | 2606 raw_tmp->AddRef(); |
2607 chained_blob_writer_ = NULL; | 2607 chained_blob_writer_ = NULL; |
2608 task_runner_->ReleaseSoon(FROM_HERE, raw_tmp); | 2608 task_runner_->ReleaseSoon(FROM_HERE, raw_tmp); |
2609 } | 2609 } |
2610 friend class base::RefCountedThreadSafe<LocalWriteClosure>; | 2610 friend class base::RefCountedThreadSafe<LocalWriteClosure>; |
2611 | 2611 |
2612 // If necessary, update the timestamps on the file as a final | 2612 // If necessary, update the timestamps on the file as a final |
2613 // step before reporting success. | 2613 // step before reporting success. |
2614 void UpdateTimeStamp() { | 2614 void UpdateTimeStamp() { |
2615 DCHECK(task_runner_->RunsTasksOnCurrentThread()); | 2615 DCHECK(task_runner_->RunsTasksInCurrentSequence()); |
2616 if (!base::TouchFile(file_path_, last_modified_, last_modified_)) { | 2616 if (!base::TouchFile(file_path_, last_modified_, last_modified_)) { |
2617 // TODO(ericu): Complain quietly; timestamp's probably not vital. | 2617 // TODO(ericu): Complain quietly; timestamp's probably not vital. |
2618 } | 2618 } |
2619 chained_blob_writer_->ReportWriteCompletion(true, bytes_written_); | 2619 chained_blob_writer_->ReportWriteCompletion(true, bytes_written_); |
2620 } | 2620 } |
2621 | 2621 |
2622 // Create an empty file. | 2622 // Create an empty file. |
2623 void CreateEmptyFile() { | 2623 void CreateEmptyFile() { |
2624 DCHECK(task_runner_->RunsTasksOnCurrentThread()); | 2624 DCHECK(task_runner_->RunsTasksInCurrentSequence()); |
2625 base::File file(file_path_, | 2625 base::File file(file_path_, |
2626 base::File::FLAG_CREATE_ALWAYS | base::File::FLAG_WRITE); | 2626 base::File::FLAG_CREATE_ALWAYS | base::File::FLAG_WRITE); |
2627 bool success = file.created(); | 2627 bool success = file.created(); |
2628 if (success && !last_modified_.is_null() && | 2628 if (success && !last_modified_.is_null() && |
2629 !file.SetTimes(last_modified_, last_modified_)) { | 2629 !file.SetTimes(last_modified_, last_modified_)) { |
2630 // TODO(cmumford): Complain quietly; timestamp's probably not vital. | 2630 // TODO(cmumford): Complain quietly; timestamp's probably not vital. |
2631 } | 2631 } |
2632 file.Close(); | 2632 file.Close(); |
2633 chained_blob_writer_->ReportWriteCompletion(success, bytes_written_); | 2633 chained_blob_writer_->ReportWriteCompletion(success, bytes_written_); |
2634 } | 2634 } |
(...skipping 1511 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
4146 live_blobs->push_back(iter); | 4146 live_blobs->push_back(iter); |
4147 else | 4147 else |
4148 dead_blobs->push_back(iter); | 4148 dead_blobs->push_back(iter); |
4149 } | 4149 } |
4150 } | 4150 } |
4151 | 4151 |
4152 Status IndexedDBBackingStore::Transaction::CommitPhaseOne( | 4152 Status IndexedDBBackingStore::Transaction::CommitPhaseOne( |
4153 scoped_refptr<BlobWriteCallback> callback) { | 4153 scoped_refptr<BlobWriteCallback> callback) { |
4154 IDB_TRACE("IndexedDBBackingStore::Transaction::CommitPhaseOne"); | 4154 IDB_TRACE("IndexedDBBackingStore::Transaction::CommitPhaseOne"); |
4155 DCHECK(transaction_.get()); | 4155 DCHECK(transaction_.get()); |
4156 DCHECK(backing_store_->task_runner()->RunsTasksOnCurrentThread()); | 4156 DCHECK(backing_store_->task_runner()->RunsTasksInCurrentSequence()); |
4157 | 4157 |
4158 Status s; | 4158 Status s; |
4159 | 4159 |
4160 BlobEntryKeyValuePairVec new_blob_entries; | 4160 BlobEntryKeyValuePairVec new_blob_entries; |
4161 WriteDescriptorVec new_files_to_write; | 4161 WriteDescriptorVec new_files_to_write; |
4162 s = HandleBlobPreTransaction(&new_blob_entries, &new_files_to_write); | 4162 s = HandleBlobPreTransaction(&new_blob_entries, &new_files_to_write); |
4163 if (!s.ok()) { | 4163 if (!s.ok()) { |
4164 INTERNAL_WRITE_ERROR_UNTESTED(TRANSACTION_COMMIT_METHOD); | 4164 INTERNAL_WRITE_ERROR_UNTESTED(TRANSACTION_COMMIT_METHOD); |
4165 transaction_ = NULL; | 4165 transaction_ = NULL; |
4166 return s; | 4166 return s; |
(...skipping 320 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
4487 | 4487 |
4488 IndexedDBBackingStore::Transaction::WriteDescriptor::WriteDescriptor( | 4488 IndexedDBBackingStore::Transaction::WriteDescriptor::WriteDescriptor( |
4489 const WriteDescriptor& other) = default; | 4489 const WriteDescriptor& other) = default; |
4490 IndexedDBBackingStore::Transaction::WriteDescriptor::~WriteDescriptor() = | 4490 IndexedDBBackingStore::Transaction::WriteDescriptor::~WriteDescriptor() = |
4491 default; | 4491 default; |
4492 IndexedDBBackingStore::Transaction::WriteDescriptor& | 4492 IndexedDBBackingStore::Transaction::WriteDescriptor& |
4493 IndexedDBBackingStore::Transaction::WriteDescriptor:: | 4493 IndexedDBBackingStore::Transaction::WriteDescriptor:: |
4494 operator=(const WriteDescriptor& other) = default; | 4494 operator=(const WriteDescriptor& other) = default; |
4495 | 4495 |
4496 } // namespace content | 4496 } // namespace content |
OLD | NEW |