blob: 69ff70610ac866e467b8e0779eec240aca8c596b (
plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
|
// Copyright (c) 2010 The Chromium Authors. All rights reserved.
// Use of this source code is governed by a BSD-style license that can be
// found in the LICENSE file.
#include "webkit/fileapi/file_system_quota_manager.h"
#include "base/file_path.h"
#include "base/file_util_proxy.h"
#include "base/ref_counted.h"
#include "base/scoped_callback_factory.h"
#include "webkit/quota/special_storage_policy.h"
namespace fileapi {
const int64 FileSystemQuotaManager::kUnknownSize = -1;
FileSystemQuotaManager::FileSystemQuotaManager(
bool allow_file_access_from_files,
bool unlimited_quota,
quota::SpecialStoragePolicy* special_storage_policy)
: allow_file_access_from_files_(allow_file_access_from_files),
unlimited_quota_(unlimited_quota),
special_storage_policy_(special_storage_policy) {
}
FileSystemQuotaManager::~FileSystemQuotaManager() {}
bool FileSystemQuotaManager::CheckOriginQuota(const GURL& origin, int64) {
// If allow-file-access-from-files flag is explicitly given and the scheme
// is file, or if unlimited quota for this process was explicitly requested,
// return true.
return unlimited_quota_ ||
(allow_file_access_from_files_ && origin.SchemeIsFile()) ||
(special_storage_policy_.get() &&
special_storage_policy_->IsStorageUnlimited(origin));
}
} // namespace fileapi
|