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

Unified Diff: webkit/fileapi/sandbox_mount_point_provider.h

Issue 6603034: Stop returning the true root path of each filesystem from openFileSystem.... (Closed) Base URL: svn://chrome-svn/chrome/trunk/src/
Patch Set: '' Created 9 years, 9 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/sandbox_mount_point_provider.h
===================================================================
--- webkit/fileapi/sandbox_mount_point_provider.h (revision 0)
+++ webkit/fileapi/sandbox_mount_point_provider.h (revision 0)
@@ -0,0 +1,115 @@
+// Copyright (c) 2011 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.
+
+#ifndef WEBKIT_FILEAPI_SANDBOX_MOUNT_POINT_PROVIDER_H_
+#define WEBKIT_FILEAPI_SANDBOX_MOUNT_POINT_PROVIDER_H_
+
+#include "base/file_path.h"
+#include "googleurl/src/gurl.h"
+#include "webkit/fileapi/file_system_mount_point_provider.h"
+
+class GURL;
+
+namespace base {
+class MessageLoopProxy;
+}
+
+namespace fileapi {
+
+class SandboxMountPointProvider : public FileSystemMountPointProvider {
+ public:
+
+ SandboxMountPointProvider(
+ FileSystemPathManager* path_manager,
+ scoped_refptr<base::MessageLoopProxy> file_message_loop,
+ const FilePath& profile_path);
+
+ // Checks if mount point access is allowed from |origin_url|.
+ virtual bool IsAccessAllowed(const GURL& origin_url);
+
+ // Retrieves the root path for the given |origin_url| and |type|, and
+ // calls the given |callback| with the root path and name.
+ // If |create| is true this also creates the directory if it doesn't exist.
+ void GetFileSystemRootPath(const GURL& origin_url,
+ FileSystemType type,
+ bool create,
+ FileSystemPathManager::GetRootPathCallback*
+ callback);
kinuko 2011/03/14 11:03:57 nits: if we format these lines like following the
ericu 2011/03/15 02:43:11 Done.
+
+ // Like GetFileSystemRootPath, but synchronous, and can be called only while
+ // running on the file thread.
+ FilePath GetFileSystemRootPathOnFileThread(const GURL& origin_url,
+ FileSystemType type,
+ bool create);
+
+ // The FileSystem directory name.
+ static const FilePath::CharType kFileSystemDirectory[];
+
+ static const char kPersistentName[];
+ static const char kTemporaryName[];
+
+ const FilePath& base_path() const {
+ return base_path_;
+ }
+
+ // Checks if a given |name| contains any restricted names/chars in it.
+ virtual bool IsRestrictedFileName(const FilePath& filename);
+
+ // Returns the origin identifier string, which is used as a part of the
+ // sandboxed path component, for the given |url|.
+ static std::string GetOriginIdentifierFromURL(const GURL& url);
+
+ // Gets a base directory path of the sandboxed filesystem that is
+ // specified by |origin_identifier| and |type|.
+ // |base_path| must be pointing the FileSystem's data directory
+ // under the profile directory, i.e. <profile_dir>/kFileSystemDirectory.
+ // Returns an empty path if any of the given parameters are invalid.
+ // Returned directory path does not contain 'unique' part, therefore
+ // it is not an actual root path for the filesystem.
+ static FilePath GetFileSystemBaseDirectoryForOriginAndType(
+ const FilePath& base_path,
+ const std::string& origin_identifier,
+ fileapi::FileSystemType type);
+
+ // Enumerates origins under the given |base_path|.
+ // This must be used on the FILE thread.
+ class OriginEnumerator {
+ public:
+ OriginEnumerator(const FilePath& base_path);
+
+ // Returns the next origin identifier. Returns empty if there are no
+ // more origins.
+ std::string Next();
+
+ bool HasTemporary();
+ bool HasPersistent();
+ const FilePath& path() { return current_; }
+
+ private:
+ file_util::FileEnumerator enumerator_;
+ FilePath current_;
+ };
+
+ private:
+ bool GetOriginBasePathAndName(
+ const GURL& origin_url,
+ FilePath* base_path,
+ FileSystemType type,
+ std::string* name);
+
+ class GetFileSystemRootPathTask;
+
+ FileSystemPathManager* path_manager_;
kinuko 2011/03/14 11:03:57 Let's add a comment to note that it's not owned by
ericu 2011/03/15 02:43:11 Done.
+
+ scoped_refptr<base::MessageLoopProxy> file_message_loop_;
+
+ const FilePath base_path_;
+
+ DISALLOW_COPY_AND_ASSIGN(SandboxMountPointProvider);
+};
+
+} // namespace fileapi
+
+#endif // WEBKIT_FILEAPI_SANDBOX_MOUNT_POINT_PROVIDER_H_
+
Property changes on: webkit\fileapi\sandbox_mount_point_provider.h
___________________________________________________________________
Added: svn:eol-style
+ LF

Powered by Google App Engine
This is Rietveld 408576698