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

Unified Diff: webkit/fileapi/isolated_mount_point_provider.cc

Issue 10825042: Implement media path filter (Closed) Base URL: svn://svn.chromium.org/chrome/trunk/src
Patch Set: s/LocalMediaFileUtil/NativeMediaFileUtil/ Created 8 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 side-by-side diff with in-line comments
Download patch
Index: webkit/fileapi/isolated_mount_point_provider.cc
diff --git a/webkit/fileapi/isolated_mount_point_provider.cc b/webkit/fileapi/isolated_mount_point_provider.cc
index a8875a0b670ea2abc0ec462869e84ab36449890a..7e66106949bf6ded23544e23b6304ec346cb09b6 100644
--- a/webkit/fileapi/isolated_mount_point_provider.cc
+++ b/webkit/fileapi/isolated_mount_point_provider.cc
@@ -21,6 +21,8 @@
#include "webkit/fileapi/isolated_file_util.h"
#include "webkit/fileapi/local_file_stream_writer.h"
#include "webkit/fileapi/local_file_system_operation.h"
+#include "webkit/fileapi/media/media_path_filter.h"
+#include "webkit/fileapi/media/native_media_file_util.h"
#include "webkit/fileapi/native_file_util.h"
namespace fileapi {
@@ -34,8 +36,10 @@ IsolatedContext* isolated_context() {
} // namespace
IsolatedMountPointProvider::IsolatedMountPointProvider()
- : isolated_file_util_(new IsolatedFileUtil()),
- dragged_file_util_(new DraggedFileUtil()) {
+ : media_path_filter_(new MediaPathFilter()),
+ isolated_file_util_(new IsolatedFileUtil()),
+ dragged_file_util_(new DraggedFileUtil()),
+ native_media_file_util_(new NativeMediaFileUtil()) {
}
IsolatedMountPointProvider::~IsolatedMountPointProvider() {
@@ -76,10 +80,23 @@ bool IsolatedMountPointProvider::IsRestrictedFileName(
FileSystemFileUtil* IsolatedMountPointProvider::GetFileUtil(
FileSystemType type) {
- if (type == kFileSystemTypeDragged)
- return dragged_file_util_.get();
- else
- return isolated_file_util_.get();
+ switch (type) {
+ case kFileSystemTypeIsolated:
+ return isolated_file_util_.get();
+ case kFileSystemTypeDragged:
+ return dragged_file_util_.get();
+ case kFileSystemTypeNativeMedia:
+ return native_media_file_util_.get();
+
+ case kFileSystemTypeDeviceMedia:
+ case kFileSystemTypeTemporary:
+ case kFileSystemTypePersistent:
+ case kFileSystemTypeExternal:
+ case kFileSystemTypeTest:
+ case kFileSystemTypeUnknown:
+ NOTREACHED();
+ }
+ return NULL;
}
FilePath IsolatedMountPointProvider::GetPathForPermissionsCheck(
@@ -95,6 +112,9 @@ IsolatedMountPointProvider::CreateFileSystemOperation(
FileSystemContext* context) const {
scoped_ptr<FileSystemOperationContext> operation_context(
new FileSystemOperationContext(context));
+ if (url.type() == kFileSystemTypeNativeMedia ||
+ url.type() == kFileSystemTypeDeviceMedia)
+ operation_context->set_media_path_filter(media_path_filter_.get());
return new LocalFileSystemOperation(context, operation_context.Pass());
}

Powered by Google App Engine
This is Rietveld 408576698