OLD | NEW |
1 // Copyright (c) 2012 The Chromium Authors. All rights reserved. | 1 // Copyright (c) 2012 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/appcache/appcache_storage_impl.h" | 5 #include "content/browser/appcache/appcache_storage_impl.h" |
6 | 6 |
7 #include <algorithm> | 7 #include <algorithm> |
8 #include <functional> | 8 #include <functional> |
9 #include <set> | 9 #include <set> |
10 #include <vector> | 10 #include <vector> |
(...skipping 250 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
261 last_deletable_response_rowid_(0) { | 261 last_deletable_response_rowid_(0) { |
262 if (!storage->is_incognito_) { | 262 if (!storage->is_incognito_) { |
263 db_file_path_ = | 263 db_file_path_ = |
264 storage->cache_directory_.Append(kAppCacheDatabaseName); | 264 storage->cache_directory_.Append(kAppCacheDatabaseName); |
265 disk_cache_directory_ = | 265 disk_cache_directory_ = |
266 storage->cache_directory_.Append(kDiskCacheDirectoryName); | 266 storage->cache_directory_.Append(kDiskCacheDirectoryName); |
267 } | 267 } |
268 } | 268 } |
269 | 269 |
270 // DatabaseTask: | 270 // DatabaseTask: |
271 virtual void Run() OVERRIDE; | 271 virtual void Run() override; |
272 virtual void RunCompleted() OVERRIDE; | 272 virtual void RunCompleted() override; |
273 | 273 |
274 protected: | 274 protected: |
275 virtual ~InitTask() {} | 275 virtual ~InitTask() {} |
276 | 276 |
277 private: | 277 private: |
278 base::FilePath db_file_path_; | 278 base::FilePath db_file_path_; |
279 base::FilePath disk_cache_directory_; | 279 base::FilePath disk_cache_directory_; |
280 int64 last_group_id_; | 280 int64 last_group_id_; |
281 int64 last_cache_id_; | 281 int64 last_cache_id_; |
282 int64 last_response_id_; | 282 int64 last_response_id_; |
(...skipping 40 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
323 } | 323 } |
324 | 324 |
325 // DisableDatabaseTask ------- | 325 // DisableDatabaseTask ------- |
326 | 326 |
327 class AppCacheStorageImpl::DisableDatabaseTask : public DatabaseTask { | 327 class AppCacheStorageImpl::DisableDatabaseTask : public DatabaseTask { |
328 public: | 328 public: |
329 explicit DisableDatabaseTask(AppCacheStorageImpl* storage) | 329 explicit DisableDatabaseTask(AppCacheStorageImpl* storage) |
330 : DatabaseTask(storage) {} | 330 : DatabaseTask(storage) {} |
331 | 331 |
332 // DatabaseTask: | 332 // DatabaseTask: |
333 virtual void Run() OVERRIDE { database_->Disable(); } | 333 virtual void Run() override { database_->Disable(); } |
334 | 334 |
335 protected: | 335 protected: |
336 virtual ~DisableDatabaseTask() {} | 336 virtual ~DisableDatabaseTask() {} |
337 }; | 337 }; |
338 | 338 |
339 // GetAllInfoTask ------- | 339 // GetAllInfoTask ------- |
340 | 340 |
341 class AppCacheStorageImpl::GetAllInfoTask : public DatabaseTask { | 341 class AppCacheStorageImpl::GetAllInfoTask : public DatabaseTask { |
342 public: | 342 public: |
343 explicit GetAllInfoTask(AppCacheStorageImpl* storage) | 343 explicit GetAllInfoTask(AppCacheStorageImpl* storage) |
344 : DatabaseTask(storage), | 344 : DatabaseTask(storage), |
345 info_collection_(new AppCacheInfoCollection()) { | 345 info_collection_(new AppCacheInfoCollection()) { |
346 } | 346 } |
347 | 347 |
348 // DatabaseTask: | 348 // DatabaseTask: |
349 virtual void Run() OVERRIDE; | 349 virtual void Run() override; |
350 virtual void RunCompleted() OVERRIDE; | 350 virtual void RunCompleted() override; |
351 | 351 |
352 protected: | 352 protected: |
353 virtual ~GetAllInfoTask() {} | 353 virtual ~GetAllInfoTask() {} |
354 | 354 |
355 private: | 355 private: |
356 scoped_refptr<AppCacheInfoCollection> info_collection_; | 356 scoped_refptr<AppCacheInfoCollection> info_collection_; |
357 }; | 357 }; |
358 | 358 |
359 void AppCacheStorageImpl::GetAllInfoTask::Run() { | 359 void AppCacheStorageImpl::GetAllInfoTask::Run() { |
360 std::set<GURL> origins; | 360 std::set<GURL> origins; |
(...skipping 132 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
493 | 493 |
494 // CacheLoadTask ------- | 494 // CacheLoadTask ------- |
495 | 495 |
496 class AppCacheStorageImpl::CacheLoadTask : public StoreOrLoadTask { | 496 class AppCacheStorageImpl::CacheLoadTask : public StoreOrLoadTask { |
497 public: | 497 public: |
498 CacheLoadTask(int64 cache_id, AppCacheStorageImpl* storage) | 498 CacheLoadTask(int64 cache_id, AppCacheStorageImpl* storage) |
499 : StoreOrLoadTask(storage), cache_id_(cache_id), | 499 : StoreOrLoadTask(storage), cache_id_(cache_id), |
500 success_(false) {} | 500 success_(false) {} |
501 | 501 |
502 // DatabaseTask: | 502 // DatabaseTask: |
503 virtual void Run() OVERRIDE; | 503 virtual void Run() override; |
504 virtual void RunCompleted() OVERRIDE; | 504 virtual void RunCompleted() override; |
505 | 505 |
506 protected: | 506 protected: |
507 virtual ~CacheLoadTask() {} | 507 virtual ~CacheLoadTask() {} |
508 | 508 |
509 private: | 509 private: |
510 int64 cache_id_; | 510 int64 cache_id_; |
511 bool success_; | 511 bool success_; |
512 }; | 512 }; |
513 | 513 |
514 void AppCacheStorageImpl::CacheLoadTask::Run() { | 514 void AppCacheStorageImpl::CacheLoadTask::Run() { |
(...skipping 20 matching lines...) Expand all Loading... |
535 | 535 |
536 // GroupLoadTask ------- | 536 // GroupLoadTask ------- |
537 | 537 |
538 class AppCacheStorageImpl::GroupLoadTask : public StoreOrLoadTask { | 538 class AppCacheStorageImpl::GroupLoadTask : public StoreOrLoadTask { |
539 public: | 539 public: |
540 GroupLoadTask(GURL manifest_url, AppCacheStorageImpl* storage) | 540 GroupLoadTask(GURL manifest_url, AppCacheStorageImpl* storage) |
541 : StoreOrLoadTask(storage), manifest_url_(manifest_url), | 541 : StoreOrLoadTask(storage), manifest_url_(manifest_url), |
542 success_(false) {} | 542 success_(false) {} |
543 | 543 |
544 // DatabaseTask: | 544 // DatabaseTask: |
545 virtual void Run() OVERRIDE; | 545 virtual void Run() override; |
546 virtual void RunCompleted() OVERRIDE; | 546 virtual void RunCompleted() override; |
547 | 547 |
548 protected: | 548 protected: |
549 virtual ~GroupLoadTask() {} | 549 virtual ~GroupLoadTask() {} |
550 | 550 |
551 private: | 551 private: |
552 GURL manifest_url_; | 552 GURL manifest_url_; |
553 bool success_; | 553 bool success_; |
554 }; | 554 }; |
555 | 555 |
556 void AppCacheStorageImpl::GroupLoadTask::Run() { | 556 void AppCacheStorageImpl::GroupLoadTask::Run() { |
(...skipping 32 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
589 public: | 589 public: |
590 StoreGroupAndCacheTask(AppCacheStorageImpl* storage, AppCacheGroup* group, | 590 StoreGroupAndCacheTask(AppCacheStorageImpl* storage, AppCacheGroup* group, |
591 AppCache* newest_cache); | 591 AppCache* newest_cache); |
592 | 592 |
593 void GetQuotaThenSchedule(); | 593 void GetQuotaThenSchedule(); |
594 void OnQuotaCallback(storage::QuotaStatusCode status, | 594 void OnQuotaCallback(storage::QuotaStatusCode status, |
595 int64 usage, | 595 int64 usage, |
596 int64 quota); | 596 int64 quota); |
597 | 597 |
598 // DatabaseTask: | 598 // DatabaseTask: |
599 virtual void Run() OVERRIDE; | 599 virtual void Run() override; |
600 virtual void RunCompleted() OVERRIDE; | 600 virtual void RunCompleted() override; |
601 virtual void CancelCompletion() OVERRIDE; | 601 virtual void CancelCompletion() override; |
602 | 602 |
603 protected: | 603 protected: |
604 virtual ~StoreGroupAndCacheTask() {} | 604 virtual ~StoreGroupAndCacheTask() {} |
605 | 605 |
606 private: | 606 private: |
607 scoped_refptr<AppCacheGroup> group_; | 607 scoped_refptr<AppCacheGroup> group_; |
608 scoped_refptr<AppCache> cache_; | 608 scoped_refptr<AppCache> cache_; |
609 bool success_; | 609 bool success_; |
610 bool would_exceed_quota_; | 610 bool would_exceed_quota_; |
611 int64 space_available_; | 611 int64 space_available_; |
(...skipping 282 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
894 AppCacheGroup* group = it->second; | 894 AppCacheGroup* group = it->second; |
895 AppCache* cache = group->newest_complete_cache(); | 895 AppCache* cache = group->newest_complete_cache(); |
896 if (group->is_obsolete() || !cache) | 896 if (group->is_obsolete() || !cache) |
897 continue; | 897 continue; |
898 cache_ids_in_use_.insert(cache->cache_id()); | 898 cache_ids_in_use_.insert(cache->cache_id()); |
899 } | 899 } |
900 } | 900 } |
901 } | 901 } |
902 | 902 |
903 // DatabaseTask: | 903 // DatabaseTask: |
904 virtual void Run() OVERRIDE; | 904 virtual void Run() override; |
905 virtual void RunCompleted() OVERRIDE; | 905 virtual void RunCompleted() override; |
906 | 906 |
907 protected: | 907 protected: |
908 virtual ~FindMainResponseTask() {} | 908 virtual ~FindMainResponseTask() {} |
909 | 909 |
910 private: | 910 private: |
911 typedef std::vector<AppCacheDatabase::NamespaceRecord*> | 911 typedef std::vector<AppCacheDatabase::NamespaceRecord*> |
912 NamespaceRecordPtrVector; | 912 NamespaceRecordPtrVector; |
913 | 913 |
914 bool FindExactMatch(int64 preferred_id); | 914 bool FindExactMatch(int64 preferred_id); |
915 bool FindNamespaceMatch(int64 preferred_id); | 915 bool FindNamespaceMatch(int64 preferred_id); |
(...skipping 179 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
1095 | 1095 |
1096 // MarkEntryAsForeignTask ------- | 1096 // MarkEntryAsForeignTask ------- |
1097 | 1097 |
1098 class AppCacheStorageImpl::MarkEntryAsForeignTask : public DatabaseTask { | 1098 class AppCacheStorageImpl::MarkEntryAsForeignTask : public DatabaseTask { |
1099 public: | 1099 public: |
1100 MarkEntryAsForeignTask( | 1100 MarkEntryAsForeignTask( |
1101 AppCacheStorageImpl* storage, const GURL& url, int64 cache_id) | 1101 AppCacheStorageImpl* storage, const GURL& url, int64 cache_id) |
1102 : DatabaseTask(storage), cache_id_(cache_id), entry_url_(url) {} | 1102 : DatabaseTask(storage), cache_id_(cache_id), entry_url_(url) {} |
1103 | 1103 |
1104 // DatabaseTask: | 1104 // DatabaseTask: |
1105 virtual void Run() OVERRIDE; | 1105 virtual void Run() override; |
1106 virtual void RunCompleted() OVERRIDE; | 1106 virtual void RunCompleted() override; |
1107 | 1107 |
1108 protected: | 1108 protected: |
1109 virtual ~MarkEntryAsForeignTask() {} | 1109 virtual ~MarkEntryAsForeignTask() {} |
1110 | 1110 |
1111 private: | 1111 private: |
1112 int64 cache_id_; | 1112 int64 cache_id_; |
1113 GURL entry_url_; | 1113 GURL entry_url_; |
1114 }; | 1114 }; |
1115 | 1115 |
1116 void AppCacheStorageImpl::MarkEntryAsForeignTask::Run() { | 1116 void AppCacheStorageImpl::MarkEntryAsForeignTask::Run() { |
1117 database_->AddEntryFlags(entry_url_, cache_id_, AppCacheEntry::FOREIGN); | 1117 database_->AddEntryFlags(entry_url_, cache_id_, AppCacheEntry::FOREIGN); |
1118 } | 1118 } |
1119 | 1119 |
1120 void AppCacheStorageImpl::MarkEntryAsForeignTask::RunCompleted() { | 1120 void AppCacheStorageImpl::MarkEntryAsForeignTask::RunCompleted() { |
1121 DCHECK(storage_->pending_foreign_markings_.front().first == entry_url_ && | 1121 DCHECK(storage_->pending_foreign_markings_.front().first == entry_url_ && |
1122 storage_->pending_foreign_markings_.front().second == cache_id_); | 1122 storage_->pending_foreign_markings_.front().second == cache_id_); |
1123 storage_->pending_foreign_markings_.pop_front(); | 1123 storage_->pending_foreign_markings_.pop_front(); |
1124 } | 1124 } |
1125 | 1125 |
1126 // MakeGroupObsoleteTask ------- | 1126 // MakeGroupObsoleteTask ------- |
1127 | 1127 |
1128 class AppCacheStorageImpl::MakeGroupObsoleteTask : public DatabaseTask { | 1128 class AppCacheStorageImpl::MakeGroupObsoleteTask : public DatabaseTask { |
1129 public: | 1129 public: |
1130 MakeGroupObsoleteTask(AppCacheStorageImpl* storage, | 1130 MakeGroupObsoleteTask(AppCacheStorageImpl* storage, |
1131 AppCacheGroup* group, | 1131 AppCacheGroup* group, |
1132 int response_code); | 1132 int response_code); |
1133 | 1133 |
1134 // DatabaseTask: | 1134 // DatabaseTask: |
1135 virtual void Run() OVERRIDE; | 1135 virtual void Run() override; |
1136 virtual void RunCompleted() OVERRIDE; | 1136 virtual void RunCompleted() override; |
1137 virtual void CancelCompletion() OVERRIDE; | 1137 virtual void CancelCompletion() override; |
1138 | 1138 |
1139 protected: | 1139 protected: |
1140 virtual ~MakeGroupObsoleteTask() {} | 1140 virtual ~MakeGroupObsoleteTask() {} |
1141 | 1141 |
1142 private: | 1142 private: |
1143 scoped_refptr<AppCacheGroup> group_; | 1143 scoped_refptr<AppCacheGroup> group_; |
1144 int64 group_id_; | 1144 int64 group_id_; |
1145 GURL origin_; | 1145 GURL origin_; |
1146 bool success_; | 1146 bool success_; |
1147 int response_code_; | 1147 int response_code_; |
(...skipping 66 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
1214 } | 1214 } |
1215 | 1215 |
1216 // GetDeletableResponseIdsTask ------- | 1216 // GetDeletableResponseIdsTask ------- |
1217 | 1217 |
1218 class AppCacheStorageImpl::GetDeletableResponseIdsTask : public DatabaseTask { | 1218 class AppCacheStorageImpl::GetDeletableResponseIdsTask : public DatabaseTask { |
1219 public: | 1219 public: |
1220 GetDeletableResponseIdsTask(AppCacheStorageImpl* storage, int64 max_rowid) | 1220 GetDeletableResponseIdsTask(AppCacheStorageImpl* storage, int64 max_rowid) |
1221 : DatabaseTask(storage), max_rowid_(max_rowid) {} | 1221 : DatabaseTask(storage), max_rowid_(max_rowid) {} |
1222 | 1222 |
1223 // DatabaseTask: | 1223 // DatabaseTask: |
1224 virtual void Run() OVERRIDE; | 1224 virtual void Run() override; |
1225 virtual void RunCompleted() OVERRIDE; | 1225 virtual void RunCompleted() override; |
1226 | 1226 |
1227 protected: | 1227 protected: |
1228 virtual ~GetDeletableResponseIdsTask() {} | 1228 virtual ~GetDeletableResponseIdsTask() {} |
1229 | 1229 |
1230 private: | 1230 private: |
1231 int64 max_rowid_; | 1231 int64 max_rowid_; |
1232 std::vector<int64> response_ids_; | 1232 std::vector<int64> response_ids_; |
1233 }; | 1233 }; |
1234 | 1234 |
1235 void AppCacheStorageImpl::GetDeletableResponseIdsTask::Run() { | 1235 void AppCacheStorageImpl::GetDeletableResponseIdsTask::Run() { |
1236 const int kSqlLimit = 1000; | 1236 const int kSqlLimit = 1000; |
1237 database_->GetDeletableResponseIds(&response_ids_, max_rowid_, kSqlLimit); | 1237 database_->GetDeletableResponseIds(&response_ids_, max_rowid_, kSqlLimit); |
1238 // TODO(michaeln): retrieve group_ids too | 1238 // TODO(michaeln): retrieve group_ids too |
1239 } | 1239 } |
1240 | 1240 |
1241 void AppCacheStorageImpl::GetDeletableResponseIdsTask::RunCompleted() { | 1241 void AppCacheStorageImpl::GetDeletableResponseIdsTask::RunCompleted() { |
1242 if (!response_ids_.empty()) | 1242 if (!response_ids_.empty()) |
1243 storage_->StartDeletingResponses(response_ids_); | 1243 storage_->StartDeletingResponses(response_ids_); |
1244 } | 1244 } |
1245 | 1245 |
1246 // InsertDeletableResponseIdsTask ------- | 1246 // InsertDeletableResponseIdsTask ------- |
1247 | 1247 |
1248 class AppCacheStorageImpl::InsertDeletableResponseIdsTask | 1248 class AppCacheStorageImpl::InsertDeletableResponseIdsTask |
1249 : public DatabaseTask { | 1249 : public DatabaseTask { |
1250 public: | 1250 public: |
1251 explicit InsertDeletableResponseIdsTask(AppCacheStorageImpl* storage) | 1251 explicit InsertDeletableResponseIdsTask(AppCacheStorageImpl* storage) |
1252 : DatabaseTask(storage) {} | 1252 : DatabaseTask(storage) {} |
1253 | 1253 |
1254 // DatabaseTask: | 1254 // DatabaseTask: |
1255 virtual void Run() OVERRIDE; | 1255 virtual void Run() override; |
1256 | 1256 |
1257 std::vector<int64> response_ids_; | 1257 std::vector<int64> response_ids_; |
1258 | 1258 |
1259 protected: | 1259 protected: |
1260 virtual ~InsertDeletableResponseIdsTask() {} | 1260 virtual ~InsertDeletableResponseIdsTask() {} |
1261 }; | 1261 }; |
1262 | 1262 |
1263 void AppCacheStorageImpl::InsertDeletableResponseIdsTask::Run() { | 1263 void AppCacheStorageImpl::InsertDeletableResponseIdsTask::Run() { |
1264 database_->InsertDeletableResponseIds(response_ids_); | 1264 database_->InsertDeletableResponseIds(response_ids_); |
1265 // TODO(michaeln): store group_ids too | 1265 // TODO(michaeln): store group_ids too |
1266 } | 1266 } |
1267 | 1267 |
1268 // DeleteDeletableResponseIdsTask ------- | 1268 // DeleteDeletableResponseIdsTask ------- |
1269 | 1269 |
1270 class AppCacheStorageImpl::DeleteDeletableResponseIdsTask | 1270 class AppCacheStorageImpl::DeleteDeletableResponseIdsTask |
1271 : public DatabaseTask { | 1271 : public DatabaseTask { |
1272 public: | 1272 public: |
1273 explicit DeleteDeletableResponseIdsTask(AppCacheStorageImpl* storage) | 1273 explicit DeleteDeletableResponseIdsTask(AppCacheStorageImpl* storage) |
1274 : DatabaseTask(storage) {} | 1274 : DatabaseTask(storage) {} |
1275 | 1275 |
1276 // DatabaseTask: | 1276 // DatabaseTask: |
1277 virtual void Run() OVERRIDE; | 1277 virtual void Run() override; |
1278 | 1278 |
1279 std::vector<int64> response_ids_; | 1279 std::vector<int64> response_ids_; |
1280 | 1280 |
1281 protected: | 1281 protected: |
1282 virtual ~DeleteDeletableResponseIdsTask() {} | 1282 virtual ~DeleteDeletableResponseIdsTask() {} |
1283 }; | 1283 }; |
1284 | 1284 |
1285 void AppCacheStorageImpl::DeleteDeletableResponseIdsTask::Run() { | 1285 void AppCacheStorageImpl::DeleteDeletableResponseIdsTask::Run() { |
1286 database_->DeleteDeletableResponseIds(response_ids_); | 1286 database_->DeleteDeletableResponseIds(response_ids_); |
1287 } | 1287 } |
1288 | 1288 |
1289 // UpdateGroupLastAccessTimeTask ------- | 1289 // UpdateGroupLastAccessTimeTask ------- |
1290 | 1290 |
1291 class AppCacheStorageImpl::UpdateGroupLastAccessTimeTask | 1291 class AppCacheStorageImpl::UpdateGroupLastAccessTimeTask |
1292 : public DatabaseTask { | 1292 : public DatabaseTask { |
1293 public: | 1293 public: |
1294 UpdateGroupLastAccessTimeTask( | 1294 UpdateGroupLastAccessTimeTask( |
1295 AppCacheStorageImpl* storage, AppCacheGroup* group, base::Time time) | 1295 AppCacheStorageImpl* storage, AppCacheGroup* group, base::Time time) |
1296 : DatabaseTask(storage), group_id_(group->group_id()), | 1296 : DatabaseTask(storage), group_id_(group->group_id()), |
1297 last_access_time_(time) { | 1297 last_access_time_(time) { |
1298 storage->NotifyStorageAccessed(group->manifest_url().GetOrigin()); | 1298 storage->NotifyStorageAccessed(group->manifest_url().GetOrigin()); |
1299 } | 1299 } |
1300 | 1300 |
1301 // DatabaseTask: | 1301 // DatabaseTask: |
1302 virtual void Run() OVERRIDE; | 1302 virtual void Run() override; |
1303 | 1303 |
1304 protected: | 1304 protected: |
1305 virtual ~UpdateGroupLastAccessTimeTask() {} | 1305 virtual ~UpdateGroupLastAccessTimeTask() {} |
1306 | 1306 |
1307 private: | 1307 private: |
1308 int64 group_id_; | 1308 int64 group_id_; |
1309 base::Time last_access_time_; | 1309 base::Time last_access_time_; |
1310 }; | 1310 }; |
1311 | 1311 |
1312 void AppCacheStorageImpl::UpdateGroupLastAccessTimeTask::Run() { | 1312 void AppCacheStorageImpl::UpdateGroupLastAccessTimeTask::Run() { |
(...skipping 544 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
1857 base::Bind(&AppCacheStorageImpl::CallScheduleReinitialize, | 1857 base::Bind(&AppCacheStorageImpl::CallScheduleReinitialize, |
1858 weak_factory_.GetWeakPtr())); | 1858 weak_factory_.GetWeakPtr())); |
1859 } | 1859 } |
1860 | 1860 |
1861 void AppCacheStorageImpl::CallScheduleReinitialize() { | 1861 void AppCacheStorageImpl::CallScheduleReinitialize() { |
1862 service_->ScheduleReinitialize(); | 1862 service_->ScheduleReinitialize(); |
1863 // note: 'this' may be deleted at this point. | 1863 // note: 'this' may be deleted at this point. |
1864 } | 1864 } |
1865 | 1865 |
1866 } // namespace content | 1866 } // namespace content |
OLD | NEW |