| 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 "chrome/browser/browsing_data/browsing_data_file_system_helper.h" | 5 #include "chrome/browser/browsing_data/browsing_data_file_system_helper.h" |
| 6 | 6 |
| 7 #include <set> | 7 #include <set> |
| 8 | 8 |
| 9 #include "base/bind.h" | 9 #include "base/bind.h" |
| 10 #include "base/location.h" | 10 #include "base/location.h" |
| 11 #include "base/macros.h" |
| 11 #include "base/memory/scoped_ptr.h" | 12 #include "base/memory/scoped_ptr.h" |
| 12 #include "base/sequenced_task_runner.h" | 13 #include "base/sequenced_task_runner.h" |
| 13 #include "chrome/browser/browsing_data/browsing_data_helper.h" | 14 #include "chrome/browser/browsing_data/browsing_data_helper.h" |
| 14 #include "content/public/browser/browser_thread.h" | 15 #include "content/public/browser/browser_thread.h" |
| 15 #include "storage/browser/fileapi/file_system_context.h" | 16 #include "storage/browser/fileapi/file_system_context.h" |
| 16 #include "storage/browser/fileapi/file_system_quota_util.h" | 17 #include "storage/browser/fileapi/file_system_quota_util.h" |
| 17 #include "storage/common/fileapi/file_system_types.h" | 18 #include "storage/common/fileapi/file_system_types.h" |
| 18 | 19 |
| 19 using content::BrowserThread; | 20 using content::BrowserThread; |
| 20 | 21 |
| (...skipping 88 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 109 for (size_t i = 0; i < arraysize(types); ++i) { | 110 for (size_t i = 0; i < arraysize(types); ++i) { |
| 110 storage::FileSystemType type = types[i]; | 111 storage::FileSystemType type = types[i]; |
| 111 storage::FileSystemQuotaUtil* quota_util = | 112 storage::FileSystemQuotaUtil* quota_util = |
| 112 filesystem_context_->GetQuotaUtil(type); | 113 filesystem_context_->GetQuotaUtil(type); |
| 113 DCHECK(quota_util); | 114 DCHECK(quota_util); |
| 114 std::set<GURL> origins; | 115 std::set<GURL> origins; |
| 115 quota_util->GetOriginsForTypeOnFileTaskRunner(type, &origins); | 116 quota_util->GetOriginsForTypeOnFileTaskRunner(type, &origins); |
| 116 for (const GURL& current : origins) { | 117 for (const GURL& current : origins) { |
| 117 if (!BrowsingDataHelper::HasWebScheme(current)) | 118 if (!BrowsingDataHelper::HasWebScheme(current)) |
| 118 continue; // Non-websafe state is not considered browsing data. | 119 continue; // Non-websafe state is not considered browsing data. |
| 119 int64 usage = quota_util->GetOriginUsageOnFileTaskRunner( | 120 int64_t usage = quota_util->GetOriginUsageOnFileTaskRunner( |
| 120 filesystem_context_.get(), current, type); | 121 filesystem_context_.get(), current, type); |
| 121 OriginInfoMap::iterator inserted = | 122 OriginInfoMap::iterator inserted = |
| 122 file_system_info_map.insert( | 123 file_system_info_map.insert( |
| 123 std::make_pair(current, FileSystemInfo(current))).first; | 124 std::make_pair(current, FileSystemInfo(current))).first; |
| 124 inserted->second.usage_map[type] = usage; | 125 inserted->second.usage_map[type] = usage; |
| 125 } | 126 } |
| 126 } | 127 } |
| 127 | 128 |
| 128 for (const auto& iter : file_system_info_map) | 129 for (const auto& iter : file_system_info_map) |
| 129 result.push_back(iter.second); | 130 result.push_back(iter.second); |
| (...skipping 23 matching lines...) Expand all Loading... |
| 153 | 154 |
| 154 CannedBrowsingDataFileSystemHelper::CannedBrowsingDataFileSystemHelper( | 155 CannedBrowsingDataFileSystemHelper::CannedBrowsingDataFileSystemHelper( |
| 155 Profile* profile) { | 156 Profile* profile) { |
| 156 } | 157 } |
| 157 | 158 |
| 158 CannedBrowsingDataFileSystemHelper::~CannedBrowsingDataFileSystemHelper() {} | 159 CannedBrowsingDataFileSystemHelper::~CannedBrowsingDataFileSystemHelper() {} |
| 159 | 160 |
| 160 void CannedBrowsingDataFileSystemHelper::AddFileSystem( | 161 void CannedBrowsingDataFileSystemHelper::AddFileSystem( |
| 161 const GURL& origin, | 162 const GURL& origin, |
| 162 const storage::FileSystemType type, | 163 const storage::FileSystemType type, |
| 163 const int64 size) { | 164 const int64_t size) { |
| 164 DCHECK_CURRENTLY_ON(BrowserThread::UI); | 165 DCHECK_CURRENTLY_ON(BrowserThread::UI); |
| 165 // This canned implementation of AddFileSystem uses an O(n^2) algorithm; which | 166 // This canned implementation of AddFileSystem uses an O(n^2) algorithm; which |
| 166 // is fine, as it isn't meant for use in a high-volume context. If it turns | 167 // is fine, as it isn't meant for use in a high-volume context. If it turns |
| 167 // out that we want to start using this in a context with many, many origins, | 168 // out that we want to start using this in a context with many, many origins, |
| 168 // we should think about reworking the implementation. | 169 // we should think about reworking the implementation. |
| 169 bool duplicate_origin = false; | 170 bool duplicate_origin = false; |
| 170 for (FileSystemInfo& file_system : file_system_info_) { | 171 for (FileSystemInfo& file_system : file_system_info_) { |
| 171 if (file_system.origin == origin) { | 172 if (file_system.origin == origin) { |
| 172 file_system.usage_map[type] = size; | 173 file_system.usage_map[type] = size; |
| 173 duplicate_origin = true; | 174 duplicate_origin = true; |
| (...skipping 25 matching lines...) Expand all Loading... |
| 199 } | 200 } |
| 200 | 201 |
| 201 void CannedBrowsingDataFileSystemHelper::StartFetching( | 202 void CannedBrowsingDataFileSystemHelper::StartFetching( |
| 202 const FetchCallback& callback) { | 203 const FetchCallback& callback) { |
| 203 DCHECK_CURRENTLY_ON(BrowserThread::UI); | 204 DCHECK_CURRENTLY_ON(BrowserThread::UI); |
| 204 DCHECK(!callback.is_null()); | 205 DCHECK(!callback.is_null()); |
| 205 | 206 |
| 206 BrowserThread::PostTask( | 207 BrowserThread::PostTask( |
| 207 BrowserThread::UI, FROM_HERE, base::Bind(callback, file_system_info_)); | 208 BrowserThread::UI, FROM_HERE, base::Bind(callback, file_system_info_)); |
| 208 } | 209 } |
| OLD | NEW |