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

Unified Diff: storage/browser/fileapi/plugin_private_file_system_backend.cc

Issue 2359393002: Adds media license nodes to cookie tree model and cookies view. (Closed)
Patch Set: nullptr Created 4 years, 3 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 side-by-side diff with in-line comments
Download patch
« no previous file with comments | « storage/browser/fileapi/plugin_private_file_system_backend.h ('k') | no next file » | no next file with comments »
Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
Index: storage/browser/fileapi/plugin_private_file_system_backend.cc
diff --git a/storage/browser/fileapi/plugin_private_file_system_backend.cc b/storage/browser/fileapi/plugin_private_file_system_backend.cc
index 06e9aefb3f1f49a0db1f66b796b502854e998cfb..323c90f9b28bf9d382343533becdbd12a1387dd3 100644
--- a/storage/browser/fileapi/plugin_private_file_system_backend.cc
+++ b/storage/browser/fileapi/plugin_private_file_system_backend.cc
@@ -266,8 +266,61 @@ int64_t PluginPrivateFileSystemBackend::GetOriginUsageOnFileTaskRunner(
FileSystemContext* context,
const GURL& origin_url,
FileSystemType type) {
- // We don't track usage on this filesystem.
- return 0;
+ DCHECK(file_task_runner_->RunsTasksOnCurrentThread());
+
+ if (!CanHandleType(type))
+ return 0;
+
+ int64_t total_size;
+ base::Time last_modified_time;
+ GetOriginDetailsOnFileTaskRunner(context, origin_url, &total_size,
+ &last_modified_time);
+ return total_size;
+}
+
+void PluginPrivateFileSystemBackend::GetOriginDetailsOnFileTaskRunner(
+ FileSystemContext* context,
+ const GURL& origin_url,
+ int64_t* total_size,
+ base::Time* last_modified_time) {
+ DCHECK(file_task_runner_->RunsTasksOnCurrentThread());
+
+ *total_size = 0;
+ *last_modified_time = base::Time::UnixEpoch();
+ std::string fsid =
+ storage::IsolatedContext::GetInstance()->RegisterFileSystemForVirtualPath(
+ storage::kFileSystemTypePluginPrivate, "pluginprivate",
+ base::FilePath());
+ DCHECK(storage::ValidateIsolatedFileSystemId(fsid));
+
+ std::string root = storage::GetIsolatedFileSystemRootURIString(
+ origin_url, fsid, "pluginprivate");
+
+ std::unique_ptr<FileSystemOperationContext> operation_context(
+ new FileSystemOperationContext(context));
+
+ std::vector<std::string> supported_plugins = {
+ "application_x-ppapi-widevine-cdm", // Widevine
+ "application_x-ppapi-clearkey-cdm", // ClearKey
nhiroki 2016/09/30 08:34:19 I'd prefer to avoid widevine-specific code from th
jrummell 2016/10/03 19:05:47 Done.
+ };
+
+ for (const auto& plugin : supported_plugins) {
+ if (OpenFileSystemOnFileTaskRunner(
+ obfuscated_file_util(), plugin_map_, origin_url, fsid, plugin,
+ storage::OPEN_FILE_SYSTEM_FAIL_IF_NONEXISTENT) ==
+ base::File::FILE_OK) {
nhiroki 2016/09/30 08:34:19 nit: Early-continue could be more readable because
jrummell 2016/10/03 19:05:47 Done.
+ std::unique_ptr<FileSystemFileUtil::AbstractFileEnumerator> enumerator(
+ obfuscated_file_util()->CreateFileEnumerator(
+ operation_context.get(), context->CrackURL(GURL(root)), true));
+
+ base::FilePath current;
+ while (!(current = enumerator->Next()).empty()) {
+ *total_size += enumerator->Size();
+ if (enumerator->LastModifiedTime() > *last_modified_time)
+ *last_modified_time = enumerator->LastModifiedTime();
+ }
+ }
+ }
}
scoped_refptr<QuotaReservation>
« no previous file with comments | « storage/browser/fileapi/plugin_private_file_system_backend.h ('k') | no next file » | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698