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

Side by Side Diff: webkit/browser/fileapi/sandbox_file_system_backend.cc

Issue 18418009: FileAPI: Add FileObserver related interfaces into FileSystemQuotaUtil (Closed) Base URL: svn://svn.chromium.org/chrome/trunk/src
Patch Set: rebase Created 7 years, 5 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 (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 "webkit/browser/fileapi/sandbox_file_system_backend.h" 5 #include "webkit/browser/fileapi/sandbox_file_system_backend.h"
6 6
7 #include "base/bind.h" 7 #include "base/bind.h"
8 #include "base/command_line.h" 8 #include "base/command_line.h"
9 #include "base/file_util.h" 9 #include "base/file_util.h"
10 #include "base/logging.h" 10 #include "base/logging.h"
(...skipping 436 matching lines...) Expand 10 before | Expand all | Expand 10 after
447 447
448 void SandboxFileSystemBackend::StickyInvalidateUsageCache( 448 void SandboxFileSystemBackend::StickyInvalidateUsageCache(
449 const GURL& origin, 449 const GURL& origin,
450 fileapi::FileSystemType type) { 450 fileapi::FileSystemType type) {
451 DCHECK(CanHandleType(type)); 451 DCHECK(CanHandleType(type));
452 sticky_dirty_origins_.insert(std::make_pair(origin, type)); 452 sticky_dirty_origins_.insert(std::make_pair(origin, type));
453 sandbox_context_->quota_observer()->SetUsageCacheEnabled(origin, type, false); 453 sandbox_context_->quota_observer()->SetUsageCacheEnabled(origin, type, false);
454 InvalidateUsageCache(origin, type); 454 InvalidateUsageCache(origin, type);
455 } 455 }
456 456
457 void SandboxFileSystemBackend::AddFileUpdateObserver(
458 FileSystemType type,
459 FileUpdateObserver* observer,
460 base::SequencedTaskRunner* task_runner) {
461 DCHECK(CanHandleType(type));
462 UpdateObserverList* list = &update_observers_;
463 if (type == kFileSystemTypeSyncable)
464 list = &syncable_update_observers_;
465 UpdateObserverList::Source observer_source = list->source();
466 observer_source.AddObserver(observer, task_runner);
467 *list = UpdateObserverList(observer_source);
468 }
469
470 void SandboxFileSystemBackend::AddFileChangeObserver(
471 FileSystemType type,
472 FileChangeObserver* observer,
473 base::SequencedTaskRunner* task_runner) {
474 DCHECK(CanHandleType(type));
475 ChangeObserverList* list = &change_observers_;
476 if (type == kFileSystemTypeSyncable)
477 list = &syncable_change_observers_;
478 ChangeObserverList::Source observer_source = list->source();
479 observer_source.AddObserver(observer, task_runner);
480 *list = ChangeObserverList(observer_source);
481 }
482
483 void SandboxFileSystemBackend::AddFileAccessObserver(
484 FileSystemType type,
485 FileAccessObserver* observer,
486 base::SequencedTaskRunner* task_runner) {
487 DCHECK(CanHandleType(type));
488 AccessObserverList* list = &access_observers_;
489 AccessObserverList::Source observer_source = list->source();
490 observer_source.AddObserver(observer, task_runner);
491 *list = AccessObserverList(observer_source);
492 }
493
494 const UpdateObserverList* SandboxFileSystemBackend::GetUpdateObservers(
495 FileSystemType type) const {
496 DCHECK(CanHandleType(type));
497 if (type == kFileSystemTypeSyncable)
498 return &syncable_update_observers_;
499 return &update_observers_;
500 }
501
502 const ChangeObserverList* SandboxFileSystemBackend::GetChangeObservers(
503 FileSystemType type) const {
504 DCHECK(CanHandleType(type));
505 if (type == kFileSystemTypeSyncable)
506 return &syncable_change_observers_;
507 return &change_observers_;
508 }
509
510 const AccessObserverList* SandboxFileSystemBackend::GetAccessObservers(
511 FileSystemType type) const {
512 DCHECK(CanHandleType(type));
513 return &access_observers_;
514 }
515
457 void SandboxFileSystemBackend::CollectOpenFileSystemMetrics( 516 void SandboxFileSystemBackend::CollectOpenFileSystemMetrics(
458 base::PlatformFileError error_code) { 517 base::PlatformFileError error_code) {
459 base::Time now = base::Time::Now(); 518 base::Time now = base::Time::Now();
460 bool throttled = now < next_release_time_for_open_filesystem_stat_; 519 bool throttled = now < next_release_time_for_open_filesystem_stat_;
461 if (!throttled) { 520 if (!throttled) {
462 next_release_time_for_open_filesystem_stat_ = 521 next_release_time_for_open_filesystem_stat_ =
463 now + base::TimeDelta::FromHours(kMinimumStatsCollectionIntervalHours); 522 now + base::TimeDelta::FromHours(kMinimumStatsCollectionIntervalHours);
464 } 523 }
465 524
466 #define REPORT(report_value) \ 525 #define REPORT(report_value) \
(...skipping 17 matching lines...) Expand all
484 REPORT(kNotFound); 543 REPORT(kNotFound);
485 break; 544 break;
486 case base::PLATFORM_FILE_ERROR_FAILED: 545 case base::PLATFORM_FILE_ERROR_FAILED:
487 default: 546 default:
488 REPORT(kUnknownError); 547 REPORT(kUnknownError);
489 break; 548 break;
490 } 549 }
491 #undef REPORT 550 #undef REPORT
492 } 551 }
493 552
494 const UpdateObserverList* SandboxFileSystemBackend::GetUpdateObservers(
495 FileSystemType type) const {
496 DCHECK(CanHandleType(type));
497 if (type == kFileSystemTypeSyncable)
498 return &syncable_update_observers_;
499 return &update_observers_;
500 }
501
502 const AccessObserverList* SandboxFileSystemBackend::GetAccessObservers(
503 FileSystemType type) const {
504 DCHECK(CanHandleType(type));
505 return &access_observers_;
506 }
507
508 void SandboxFileSystemBackend::AddFileUpdateObserver(
509 FileSystemType type,
510 FileUpdateObserver* observer,
511 base::SequencedTaskRunner* task_runner) {
512 DCHECK(CanHandleType(type));
513 UpdateObserverList* list = &update_observers_;
514 if (type == kFileSystemTypeSyncable)
515 list = &syncable_update_observers_;
516 UpdateObserverList::Source observer_source = list->source();
517 observer_source.AddObserver(observer, task_runner);
518 *list = UpdateObserverList(observer_source);
519 }
520
521 void SandboxFileSystemBackend::AddFileChangeObserver(
522 FileSystemType type,
523 FileChangeObserver* observer,
524 base::SequencedTaskRunner* task_runner) {
525 ChangeObserverList* list = &change_observers_;
526 if (type == kFileSystemTypeSyncable)
527 list = &syncable_change_observers_;
528 ChangeObserverList::Source observer_source = list->source();
529 observer_source.AddObserver(observer, task_runner);
530 *list = ChangeObserverList(observer_source);
531 }
532
533 bool SandboxFileSystemBackend::IsAccessValid( 553 bool SandboxFileSystemBackend::IsAccessValid(
534 const FileSystemURL& url) const { 554 const FileSystemURL& url) const {
535 if (!IsAllowedScheme(url.origin())) 555 if (!IsAllowedScheme(url.origin()))
536 return false; 556 return false;
537 557
538 if (!CanHandleType(url.type())) 558 if (!CanHandleType(url.type()))
539 return false; 559 return false;
540 560
541 if (url.path().ReferencesParent()) 561 if (url.path().ReferencesParent())
542 return false; 562 return false;
(...skipping 104 matching lines...) Expand 10 before | Expand all | Expand 10 after
647 667
648 while (!(file_path_each = enumerator->Next()).empty()) { 668 while (!(file_path_each = enumerator->Next()).empty()) {
649 usage += enumerator->Size(); 669 usage += enumerator->Size();
650 usage += ObfuscatedFileUtil::ComputeFilePathCost(file_path_each); 670 usage += ObfuscatedFileUtil::ComputeFilePathCost(file_path_each);
651 } 671 }
652 672
653 return usage; 673 return usage;
654 } 674 }
655 675
656 } // namespace fileapi 676 } // namespace fileapi
OLDNEW
« no previous file with comments | « webkit/browser/fileapi/sandbox_file_system_backend.h ('k') | webkit/browser/fileapi/test_file_system_backend.h » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698