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

Side by Side Diff: webkit/fileapi/file_system_url.h

Issue 12258021: Fix filesystem API file_handlers to work for drive on ChromeOS. (Closed) Base URL: svn://svn.chromium.org/chrome/trunk/src
Patch Set: . Created 7 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 unified diff | Download patch | Annotate | Revision Log
« no previous file with comments | « webkit/fileapi/file_system_context.cc ('k') | webkit/fileapi/file_system_url.cc » ('j') | no next file with comments »
Toggle Intra-line Diffs ('i') | Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
OLDNEW
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 #ifndef WEBKIT_FILEAPI_FILE_SYSTEM_URL_H_ 5 #ifndef WEBKIT_FILEAPI_FILE_SYSTEM_URL_H_
6 #define WEBKIT_FILEAPI_FILE_SYSTEM_URL_H_ 6 #define WEBKIT_FILEAPI_FILE_SYSTEM_URL_H_
7 7
8 #include <set> 8 #include <set>
9 #include <string> 9 #include <string>
10 10
(...skipping 102 matching lines...) Expand 10 before | Expand all | Expand 10 after
113 // See the class comment for details. 113 // See the class comment for details.
114 const std::string& filesystem_id() const { return filesystem_id_; } 114 const std::string& filesystem_id() const { return filesystem_id_; }
115 115
116 FileSystemType mount_type() const { return mount_type_; } 116 FileSystemType mount_type() const { return mount_type_; }
117 117
118 std::string DebugString() const; 118 std::string DebugString() const;
119 119
120 // Returns true if this URL is a strict parent of the |child|. 120 // Returns true if this URL is a strict parent of the |child|.
121 bool IsParent(const FileSystemURL& child) const; 121 bool IsParent(const FileSystemURL& child) const;
122 122
123 // Returns URL to be used in file system operations. In general the returned
124 // URL is the same as |this|. The exceptions are FileSystemURLs that are build
125 // on top of other FileSystemURLs (e.g. Isolated urls on ChromeOS are build on
126 // top of External urls). In this case the underlying FileSystemURL is
127 // returned.
128 //
129 // Note that the underlying url is determined recursively.
130 FileSystemURL GetForOperations() const;
131
123 bool operator==(const FileSystemURL& that) const; 132 bool operator==(const FileSystemURL& that) const;
124 133
125 struct WEBKIT_STORAGE_EXPORT Comparator { 134 struct WEBKIT_STORAGE_EXPORT Comparator {
126 bool operator() (const FileSystemURL& lhs, const FileSystemURL& rhs) const; 135 bool operator() (const FileSystemURL& lhs, const FileSystemURL& rhs) const;
127 }; 136 };
128 137
129 private: 138 private:
130 friend class FileSystemContext; 139 friend class FileSystemContext;
131 friend class ExternalMountPoints; 140 friend class ExternalMountPoints;
132 friend class IsolatedContext; 141 friend class IsolatedContext;
133 142
134 explicit FileSystemURL(const GURL& filesystem_url); 143 explicit FileSystemURL(const GURL& filesystem_url);
135 FileSystemURL(const GURL& origin, 144 FileSystemURL(const GURL& origin,
136 FileSystemType mount_type, 145 FileSystemType mount_type,
137 const base::FilePath& virtual_path); 146 const base::FilePath& virtual_path);
138 // Creates a cracked FileSystemURL. 147 // Creates a cracked FileSystemURL.
139 FileSystemURL(const GURL& origin, 148 FileSystemURL(const GURL& origin,
140 FileSystemType mount_type, 149 FileSystemType mount_type,
141 const base::FilePath& virtual_path, 150 const base::FilePath& virtual_path,
142 const std::string& filesystem_id, 151 const std::string& filesystem_id,
143 FileSystemType cracked_type, 152 FileSystemType cracked_type,
144 const base::FilePath& cracked_path); 153 const base::FilePath& cracked_path);
145 154
155 // Sets parameters for the underlying file system URL (the one that will be
156 // returned by |GetForOperations|) that differ from |this|.
157 void SetUnderlyingURL(const FileSystemURL& underlying_url);
158
146 bool is_valid_; 159 bool is_valid_;
147 160
148 GURL origin_; 161 GURL origin_;
149 FileSystemType type_; 162 FileSystemType type_;
150 FileSystemType mount_type_; 163 FileSystemType mount_type_;
151 base::FilePath path_; 164 base::FilePath path_;
152 165
153 // Values specific to cracked URLs. 166 // Values specific to cracked URLs.
154 std::string filesystem_id_; 167 std::string filesystem_id_;
155 base::FilePath virtual_path_; 168 base::FilePath virtual_path_;
156 169
170 // Parameters for the underlying file system URL that are different from this
171 // URL.
172 bool has_underlying_url_;
173 std::string underlying_filesystem_id_;
174 FileSystemType underlying_type_;
175 base::FilePath underlying_virtual_path_;
kinuko 2013/03/15 06:54:39 Hmm, do we need all these additional params? If so
tonibarzic 2013/03/15 07:36:57 we could do without underlaying virtual path, and
kinuko 2013/03/17 21:39:09 So are these changes basically for not changing th
157 }; 176 };
158 177
159 typedef std::set<FileSystemURL, FileSystemURL::Comparator> FileSystemURLSet; 178 typedef std::set<FileSystemURL, FileSystemURL::Comparator> FileSystemURLSet;
160 179
161 } // namespace fileapi 180 } // namespace fileapi
162 181
163 #endif // WEBKIT_FILEAPI_FILE_SYSTEM_URL_H_ 182 #endif // WEBKIT_FILEAPI_FILE_SYSTEM_URL_H_
OLDNEW
« no previous file with comments | « webkit/fileapi/file_system_context.cc ('k') | webkit/fileapi/file_system_url.cc » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698