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

Unified Diff: chrome/browser/extensions/extension_special_storage_policy.cc

Issue 6810037: File API changes needed for safely passing user selected file entities from the file browser comp... (Closed) Base URL: svn://svn.chromium.org/chrome/trunk/src/
Patch Set: '' Created 9 years, 8 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
Index: chrome/browser/extensions/extension_special_storage_policy.cc
===================================================================
--- chrome/browser/extensions/extension_special_storage_policy.cc (revision 81576)
+++ chrome/browser/extensions/extension_special_storage_policy.cc (working copy)
@@ -4,7 +4,9 @@
#include "chrome/browser/extensions/extension_special_storage_policy.h"
+#include "base/command_line.h"
michaeln 2011/04/14 21:25:34 still needed?
zel 2011/04/14 21:46:20 Done.
#include "base/logging.h"
+#include "chrome/common/chrome_switches.h"
michaeln 2011/04/14 21:25:34 still needed?
zel 2011/04/14 21:46:20 Done.
#include "chrome/common/extensions/extension.h"
#include "chrome/common/url_constants.h"
@@ -24,10 +26,10 @@
return unlimited_extensions_.Contains(origin);
}
-bool ExtensionSpecialStoragePolicy::IsLocalFileSystemAccessAllowed(
- const GURL& origin) {
+bool ExtensionSpecialStoragePolicy::IsFileHanlder(
+ const std::string& extension_id) {
base::AutoLock locker(lock_);
- return local_filesystem_extensions_.Contains(origin);
+ return file_handler_extensions_.ContainsExtension(extension_id);
}
void ExtensionSpecialStoragePolicy::GrantRightsForExtension(
@@ -35,7 +37,7 @@
DCHECK(extension);
if (!extension->is_hosted_app() &&
!extension->HasApiPermission(Extension::kUnlimitedStoragePermission) &&
- !extension->HasApiPermission(Extension::kFileSystemPermission)) {
+ !extension->HasApiPermission(Extension::kFileBrowserHandlerPermission)) {
return;
}
base::AutoLock locker(lock_);
@@ -43,8 +45,8 @@
protected_apps_.Add(extension);
if (extension->HasApiPermission(Extension::kUnlimitedStoragePermission))
unlimited_extensions_.Add(extension);
- if (extension->HasApiPermission(Extension::kFileSystemPermission))
- local_filesystem_extensions_.Add(extension);
+ if (extension->HasApiPermission(Extension::kFileBrowserHandlerPermission))
+ file_handler_extensions_.Add(extension);
}
void ExtensionSpecialStoragePolicy::RevokeRightsForExtension(
@@ -52,7 +54,7 @@
DCHECK(extension);
if (!extension->is_hosted_app() &&
!extension->HasApiPermission(Extension::kUnlimitedStoragePermission) &&
- !extension->HasApiPermission(Extension::kFileSystemPermission)) {
+ !extension->HasApiPermission(Extension::kFileBrowserHandlerPermission)) {
return;
}
base::AutoLock locker(lock_);
@@ -60,15 +62,15 @@
protected_apps_.Remove(extension);
if (extension->HasApiPermission(Extension::kUnlimitedStoragePermission))
unlimited_extensions_.Remove(extension);
- if (extension->HasApiPermission(Extension::kFileSystemPermission))
- local_filesystem_extensions_.Remove(extension);
+ if (extension->HasApiPermission(Extension::kFileBrowserHandlerPermission))
+ file_handler_extensions_.Remove(extension);
}
void ExtensionSpecialStoragePolicy::RevokeRightsForAllExtensions() {
base::AutoLock locker(lock_);
protected_apps_.Clear();
unlimited_extensions_.Clear();
- local_filesystem_extensions_.Clear();
+ file_handler_extensions_.Clear();
}
//-----------------------------------------------------------------------------
@@ -81,34 +83,39 @@
bool ExtensionSpecialStoragePolicy::SpecialCollection::Contains(
const GURL& origin) {
- CachedResults::const_iterator found = cached_resuts_.find(origin);
- if (found != cached_resuts_.end())
+ CachedResults::const_iterator found = cached_results_.find(origin);
+ if (found != cached_results_.end())
return found->second;
for (Extensions::const_iterator iter = extensions_.begin();
iter != extensions_.end(); ++iter) {
if (iter->second->OverlapsWithOrigin(origin)) {
- cached_resuts_[origin] = true;
+ cached_results_[origin] = true;
return true;
}
}
- cached_resuts_[origin] = false;
+ cached_results_[origin] = false;
return false;
}
+bool ExtensionSpecialStoragePolicy::SpecialCollection::ContainsExtension(
+ const std::string& extension_id) {
+ return extensions_.find(extension_id) != extensions_.end();
+}
+
void ExtensionSpecialStoragePolicy::SpecialCollection::Add(
const Extension* extension) {
- cached_resuts_.clear();
+ cached_results_.clear();
extensions_[extension->id()] = extension;
}
void ExtensionSpecialStoragePolicy::SpecialCollection::Remove(
const Extension* extension) {
- cached_resuts_.clear();
+ cached_results_.clear();
extensions_.erase(extension->id());
}
void ExtensionSpecialStoragePolicy::SpecialCollection::Clear() {
- cached_resuts_.clear();
+ cached_results_.clear();
extensions_.clear();
}

Powered by Google App Engine
This is Rietveld 408576698