| OLD | NEW |
| 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 #ifndef CONTENT_BROWSER_DOM_STORAGE_DOM_STORAGE_AREA_H_ | 5 #ifndef CONTENT_BROWSER_DOM_STORAGE_DOM_STORAGE_AREA_H_ |
| 6 #define CONTENT_BROWSER_DOM_STORAGE_DOM_STORAGE_AREA_H_ | 6 #define CONTENT_BROWSER_DOM_STORAGE_DOM_STORAGE_AREA_H_ |
| 7 | 7 |
| 8 #include <string> | 8 #include <string> |
| 9 | 9 |
| 10 #include "base/files/file_path.h" | 10 #include "base/files/file_path.h" |
| (...skipping 17 matching lines...) Expand all Loading... |
| 28 // backed by storage on disk and lazily commits changes to disk. | 28 // backed by storage on disk and lazily commits changes to disk. |
| 29 // See class comments for DOMStorageContextImpl for a larger overview. | 29 // See class comments for DOMStorageContextImpl for a larger overview. |
| 30 class CONTENT_EXPORT DOMStorageArea | 30 class CONTENT_EXPORT DOMStorageArea |
| 31 : public base::RefCountedThreadSafe<DOMStorageArea> { | 31 : public base::RefCountedThreadSafe<DOMStorageArea> { |
| 32 | 32 |
| 33 public: | 33 public: |
| 34 static const base::FilePath::CharType kDatabaseFileExtension[]; | 34 static const base::FilePath::CharType kDatabaseFileExtension[]; |
| 35 static base::FilePath DatabaseFileNameFromOrigin(const GURL& origin); | 35 static base::FilePath DatabaseFileNameFromOrigin(const GURL& origin); |
| 36 static GURL OriginFromDatabaseFileName(const base::FilePath& file_name); | 36 static GURL OriginFromDatabaseFileName(const base::FilePath& file_name); |
| 37 | 37 |
| 38 // Commence aggressive flushing. This should be called early in the startup - |
| 39 // before any localStorage writing. Currently scheduled writes will not be |
| 40 // rescheduled and will be flushed at the scheduled time after which |
| 41 // aggressive flushing will commence. |
| 42 static void EnableAggressiveCommitDelay(); |
| 43 |
| 38 // Local storage. Backed on disk if directory is nonempty. | 44 // Local storage. Backed on disk if directory is nonempty. |
| 39 DOMStorageArea(const GURL& origin, | 45 DOMStorageArea(const GURL& origin, |
| 40 const base::FilePath& directory, | 46 const base::FilePath& directory, |
| 41 DOMStorageTaskRunner* task_runner); | 47 DOMStorageTaskRunner* task_runner); |
| 42 | 48 |
| 43 // Session storage. Backed on disk if |session_storage_backing| is not NULL. | 49 // Session storage. Backed on disk if |session_storage_backing| is not NULL. |
| 44 DOMStorageArea(int64 namespace_id, | 50 DOMStorageArea(int64 namespace_id, |
| 45 const std::string& persistent_namespace_id, | 51 const std::string& persistent_namespace_id, |
| 46 const GURL& origin, | 52 const GURL& origin, |
| 47 SessionStorageDatabase* session_storage_backing, | 53 SessionStorageDatabase* session_storage_backing, |
| (...skipping 97 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 145 // task sequence when complete. | 151 // task sequence when complete. |
| 146 CommitBatch* CreateCommitBatchIfNeeded(); | 152 CommitBatch* CreateCommitBatchIfNeeded(); |
| 147 void OnCommitTimer(); | 153 void OnCommitTimer(); |
| 148 void PostCommitTask(); | 154 void PostCommitTask(); |
| 149 void CommitChanges(const CommitBatch* commit_batch); | 155 void CommitChanges(const CommitBatch* commit_batch); |
| 150 void OnCommitComplete(); | 156 void OnCommitComplete(); |
| 151 base::TimeDelta ComputeCommitDelay() const; | 157 base::TimeDelta ComputeCommitDelay() const; |
| 152 | 158 |
| 153 void ShutdownInCommitSequence(); | 159 void ShutdownInCommitSequence(); |
| 154 | 160 |
| 161 static bool s_aggressive_flushing_enabled_; |
| 162 |
| 155 int64 namespace_id_; | 163 int64 namespace_id_; |
| 156 std::string persistent_namespace_id_; | 164 std::string persistent_namespace_id_; |
| 157 GURL origin_; | 165 GURL origin_; |
| 158 base::FilePath directory_; | 166 base::FilePath directory_; |
| 159 scoped_refptr<DOMStorageTaskRunner> task_runner_; | 167 scoped_refptr<DOMStorageTaskRunner> task_runner_; |
| 160 scoped_refptr<DOMStorageMap> map_; | 168 scoped_refptr<DOMStorageMap> map_; |
| 161 scoped_ptr<DOMStorageDatabaseAdapter> backing_; | 169 scoped_ptr<DOMStorageDatabaseAdapter> backing_; |
| 162 scoped_refptr<SessionStorageDatabase> session_storage_backing_; | 170 scoped_refptr<SessionStorageDatabase> session_storage_backing_; |
| 163 bool is_initial_import_done_; | 171 bool is_initial_import_done_; |
| 164 bool is_shutdown_; | 172 bool is_shutdown_; |
| 165 scoped_ptr<CommitBatch> commit_batch_; | 173 scoped_ptr<CommitBatch> commit_batch_; |
| 166 int commit_batches_in_flight_; | 174 int commit_batches_in_flight_; |
| 167 base::TimeTicks start_time_; | 175 base::TimeTicks start_time_; |
| 168 RateLimiter data_rate_limiter_; | 176 RateLimiter data_rate_limiter_; |
| 169 RateLimiter commit_rate_limiter_; | 177 RateLimiter commit_rate_limiter_; |
| 170 | 178 |
| 171 DISALLOW_COPY_AND_ASSIGN(DOMStorageArea); | 179 DISALLOW_COPY_AND_ASSIGN(DOMStorageArea); |
| 172 }; | 180 }; |
| 173 | 181 |
| 174 } // namespace content | 182 } // namespace content |
| 175 | 183 |
| 176 #endif // CONTENT_BROWSER_DOM_STORAGE_DOM_STORAGE_AREA_H_ | 184 #endif // CONTENT_BROWSER_DOM_STORAGE_DOM_STORAGE_AREA_H_ |
| OLD | NEW |