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

Side by Side Diff: webkit/fileapi/file_system_util.cc

Issue 10386069: Add RegisterMountPointProvider and TestMountPointProvider for testing (Closed) Base URL: svn://svn.chromium.org/chrome/trunk/src
Patch Set: Created 8 years, 7 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
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 #include "webkit/fileapi/file_system_util.h" 5 #include "webkit/fileapi/file_system_util.h"
6 6
7 #include "build/build_config.h" 7 #include "build/build_config.h"
8 8
9 #include "base/file_path.h" 9 #include "base/file_path.h"
10 #include "base/logging.h" 10 #include "base/logging.h"
11 #include "base/string_util.h" 11 #include "base/string_util.h"
12 #include "base/sys_string_conversions.h" 12 #include "base/sys_string_conversions.h"
13 #include "base/utf_string_conversions.h" 13 #include "base/utf_string_conversions.h"
14 #include "googleurl/src/gurl.h" 14 #include "googleurl/src/gurl.h"
15 #include "net/base/escape.h" 15 #include "net/base/escape.h"
16 #include "third_party/WebKit/Source/WebKit/chromium/public/platform/WebCString.h " 16 #include "third_party/WebKit/Source/WebKit/chromium/public/platform/WebCString.h "
17 #include "third_party/WebKit/Source/WebKit/chromium/public/WebSecurityOrigin.h" 17 #include "third_party/WebKit/Source/WebKit/chromium/public/WebSecurityOrigin.h"
18 #include "third_party/WebKit/Source/WebKit/chromium/public/platform/WebString.h" 18 #include "third_party/WebKit/Source/WebKit/chromium/public/platform/WebString.h"
19 #include "webkit/fileapi/file_system_types.h" 19 #include "webkit/fileapi/file_system_types.h"
20 20
21 namespace fileapi { 21 namespace fileapi {
22 22
23 const char kPersistentDir[] = "/persistent"; 23 const char kPersistentDir[] = "/persistent";
24 const char kTemporaryDir[] = "/temporary"; 24 const char kTemporaryDir[] = "/temporary";
25 const char kIsolatedDir[] = "/isolated"; 25 const char kIsolatedDir[] = "/isolated";
26 const char kExternalDir[] = "/external"; 26 const char kExternalDir[] = "/external";
27 const char kTestDir[] = "/test";
27 28
28 const char kPersistentName[] = "Persistent"; 29 const char kPersistentName[] = "Persistent";
29 const char kTemporaryName[] = "Temporary"; 30 const char kTemporaryName[] = "Temporary";
30 const char kIsolatedName[] = "Isolated"; 31 const char kIsolatedName[] = "Isolated";
31 const char kExternalName[] = "External"; 32 const char kExternalName[] = "External";
33 const char kTestName[] = "Test";
32 34
33 bool CrackFileSystemURL(const GURL& url, GURL* origin_url, FileSystemType* type, 35 bool CrackFileSystemURL(const GURL& url, GURL* origin_url, FileSystemType* type,
34 FilePath* file_path) { 36 FilePath* file_path) {
35 GURL origin; 37 GURL origin;
36 FileSystemType file_system_type = kFileSystemTypeUnknown; 38 FileSystemType file_system_type = kFileSystemTypeUnknown;
37 39
38 if (!url.is_valid() || !url.SchemeIsFileSystem()) 40 if (!url.is_valid() || !url.SchemeIsFileSystem())
39 return false; 41 return false;
40 DCHECK(url.inner_url()); 42 DCHECK(url.inner_url());
41 43
42 std::string inner_path = url.inner_url()->path(); 44 std::string inner_path = url.inner_url()->path();
43 45
44 const struct { 46 const struct {
45 FileSystemType type; 47 FileSystemType type;
46 const char* dir; 48 const char* dir;
47 } kValidTypes[] = { 49 } kValidTypes[] = {
48 { kFileSystemTypePersistent, kPersistentDir }, 50 { kFileSystemTypePersistent, kPersistentDir },
49 { kFileSystemTypeTemporary, kTemporaryDir }, 51 { kFileSystemTypeTemporary, kTemporaryDir },
50 { kFileSystemTypeIsolated, kIsolatedDir }, 52 { kFileSystemTypeIsolated, kIsolatedDir },
51 { kFileSystemTypeExternal, kExternalDir }, 53 { kFileSystemTypeExternal, kExternalDir },
54 { kFileSystemTypeTest, kTestDir },
52 }; 55 };
53 for (size_t i = 0; i < ARRAYSIZE_UNSAFE(kValidTypes); ++i) { 56 for (size_t i = 0; i < ARRAYSIZE_UNSAFE(kValidTypes); ++i) {
54 if (StartsWithASCII(inner_path, kValidTypes[i].dir, true)) { 57 if (StartsWithASCII(inner_path, kValidTypes[i].dir, true)) {
55 file_system_type = kValidTypes[i].type; 58 file_system_type = kValidTypes[i].type;
56 break; 59 break;
57 } 60 }
58 } 61 }
59 62
60 if (file_system_type == kFileSystemTypeUnknown) 63 if (file_system_type == kFileSystemTypeUnknown)
61 return false; 64 return false;
(...skipping 77 matching lines...) Expand 10 before | Expand all | Expand 10 after
139 switch (type) { 142 switch (type) {
140 case kFileSystemTypeTemporary: 143 case kFileSystemTypeTemporary:
141 url += (kTemporaryDir + 1); // We don't want the leading slash. 144 url += (kTemporaryDir + 1); // We don't want the leading slash.
142 return GURL(url + "/"); 145 return GURL(url + "/");
143 case kFileSystemTypePersistent: 146 case kFileSystemTypePersistent:
144 url += (kPersistentDir + 1); // We don't want the leading slash. 147 url += (kPersistentDir + 1); // We don't want the leading slash.
145 return GURL(url + "/"); 148 return GURL(url + "/");
146 case kFileSystemTypeExternal: 149 case kFileSystemTypeExternal:
147 url += (kExternalDir + 1); // We don't want the leading slash. 150 url += (kExternalDir + 1); // We don't want the leading slash.
148 return GURL(url + "/"); 151 return GURL(url + "/");
152 case kFileSystemTypeTest:
153 url += (kTestDir + 1); // We don't want the leading slash.
154 return GURL(url + "/");
149 case kFileSystemTypeIsolated: 155 case kFileSystemTypeIsolated:
150 // Falling through; we won't call this for isolated filesystems. 156 // Falling through; we won't call this for isolated filesystems.
151 case kFileSystemTypeUnknown: 157 case kFileSystemTypeUnknown:
152 NOTREACHED(); 158 NOTREACHED();
153 } 159 }
154 NOTREACHED(); 160 NOTREACHED();
155 return GURL(); 161 return GURL();
156 } 162 }
157 163
158 std::string GetFileSystemName(const GURL& origin_url, FileSystemType type) { 164 std::string GetFileSystemName(const GURL& origin_url, FileSystemType type) {
(...skipping 50 matching lines...) Expand 10 before | Expand all | Expand 10 after
209 } 215 }
210 216
211 std::string GetFileSystemTypeString(FileSystemType type) { 217 std::string GetFileSystemTypeString(FileSystemType type) {
212 switch (type) { 218 switch (type) {
213 case kFileSystemTypeTemporary: 219 case kFileSystemTypeTemporary:
214 return fileapi::kTemporaryName; 220 return fileapi::kTemporaryName;
215 case kFileSystemTypePersistent: 221 case kFileSystemTypePersistent:
216 return fileapi::kPersistentName; 222 return fileapi::kPersistentName;
217 case kFileSystemTypeExternal: 223 case kFileSystemTypeExternal:
218 return fileapi::kExternalName; 224 return fileapi::kExternalName;
225 case kFileSystemTypeTest:
226 return fileapi::kTestName;
219 case kFileSystemTypeUnknown: 227 case kFileSystemTypeUnknown:
220 default: 228 default:
221 return std::string(); 229 return std::string();
222 } 230 }
223 } 231 }
224 232
225 std::string FilePathToString(const FilePath& file_path) { 233 std::string FilePathToString(const FilePath& file_path) {
226 #if defined(OS_WIN) 234 #if defined(OS_WIN)
227 return UTF16ToUTF8(file_path.value()); 235 return UTF16ToUTF8(file_path.value());
228 #elif defined(OS_POSIX) 236 #elif defined(OS_POSIX)
229 return file_path.value(); 237 return file_path.value();
230 #endif 238 #endif
231 } 239 }
232 240
233 FilePath StringToFilePath(const std::string& file_path_string) { 241 FilePath StringToFilePath(const std::string& file_path_string) {
234 #if defined(OS_WIN) 242 #if defined(OS_WIN)
235 return FilePath(UTF8ToUTF16(file_path_string)); 243 return FilePath(UTF8ToUTF16(file_path_string));
236 #elif defined(OS_POSIX) 244 #elif defined(OS_POSIX)
237 return FilePath(file_path_string); 245 return FilePath(file_path_string);
238 #endif 246 #endif
239 } 247 }
240 248
241 } // namespace fileapi 249 } // namespace fileapi
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698