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

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

Issue 4439002: Support FileSystem API in extensions (Closed) Base URL: svn://svn.chromium.org/chrome/trunk/src
Patch Set: '' Created 10 years, 1 month 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 | « no previous file | no next file » | 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) 2010 The Chromium Authors. All rights reserved. 1 // Copyright (c) 2010 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_path_manager.h" 5 #include "webkit/fileapi/file_system_path_manager.h"
6 6
7 #include "base/file_util.h" 7 #include "base/file_util.h"
8 #include "base/rand_util.h" 8 #include "base/rand_util.h"
9 #include "base/logging.h" 9 #include "base/logging.h"
10 #include "base/message_loop.h" 10 #include "base/message_loop.h"
(...skipping 57 matching lines...) Expand 10 before | Expand all | Expand 10 after
68 FilePath::StringType CreateUniqueDirectoryName(const GURL& origin_url) { 68 FilePath::StringType CreateUniqueDirectoryName(const GURL& origin_url) {
69 // This can be anything but need to be unpredictable. 69 // This can be anything but need to be unpredictable.
70 static const FilePath::CharType letters[] = FILE_PATH_LITERAL( 70 static const FilePath::CharType letters[] = FILE_PATH_LITERAL(
71 "abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789"); 71 "abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789");
72 FilePath::StringType unique(kFileSystemUniqueNamePrefix); 72 FilePath::StringType unique(kFileSystemUniqueNamePrefix);
73 for (int i = 0; i < kFileSystemUniqueLength; ++i) 73 for (int i = 0; i < kFileSystemUniqueLength; ++i)
74 unique += letters[base::RandInt(0, arraysize(letters) - 2)]; 74 unique += letters[base::RandInt(0, arraysize(letters) - 2)];
75 return unique; 75 return unique;
76 } 76 }
77 77
78 static const char kExtensionScheme[] = "chrome-extension";
79
78 } // anonymous namespace 80 } // anonymous namespace
79 81
80 class FileSystemPathManager::GetFileSystemRootPathTask 82 class FileSystemPathManager::GetFileSystemRootPathTask
81 : public base::RefCountedThreadSafe< 83 : public base::RefCountedThreadSafe<
82 FileSystemPathManager::GetFileSystemRootPathTask> { 84 FileSystemPathManager::GetFileSystemRootPathTask> {
83 public: 85 public:
84 GetFileSystemRootPathTask( 86 GetFileSystemRootPathTask(
85 scoped_refptr<base::MessageLoopProxy> file_message_loop, 87 scoped_refptr<base::MessageLoopProxy> file_message_loop,
86 const std::string& name, 88 const std::string& name,
87 FileSystemPathManager::GetRootPathCallback* callback) 89 FileSystemPathManager::GetRootPathCallback* callback)
(...skipping 225 matching lines...) Expand 10 before | Expand all | Expand 10 after
313 return true; 315 return true;
314 } 316 }
315 317
316 return false; 318 return false;
317 } 319 }
318 320
319 bool FileSystemPathManager::IsAllowedScheme(const GURL& url) const { 321 bool FileSystemPathManager::IsAllowedScheme(const GURL& url) const {
320 // Basically we only accept http or https. We allow file:// URLs 322 // Basically we only accept http or https. We allow file:// URLs
321 // only if --allow-file-access-from-files flag is given. 323 // only if --allow-file-access-from-files flag is given.
322 return url.SchemeIs("http") || url.SchemeIs("https") || 324 return url.SchemeIs("http") || url.SchemeIs("https") ||
325 url.SchemeIs(kExtensionScheme) ||
323 (url.SchemeIsFile() && allow_file_access_from_files_); 326 (url.SchemeIsFile() && allow_file_access_from_files_);
324 } 327 }
325 328
326 std::string FileSystemPathManager::GetStorageIdentifierFromURL( 329 std::string FileSystemPathManager::GetStorageIdentifierFromURL(
327 const GURL& url) { 330 const GURL& url) {
328 WebKit::WebSecurityOrigin web_security_origin = 331 WebKit::WebSecurityOrigin web_security_origin =
329 WebKit::WebSecurityOrigin::createFromString(UTF8ToUTF16(url.spec())); 332 WebKit::WebSecurityOrigin::createFromString(UTF8ToUTF16(url.spec()));
330 return web_security_origin.databaseIdentifier().utf8(); 333 return web_security_origin.databaseIdentifier().utf8();
331 } 334 }
332 335
333 } // namespace fileapi 336 } // namespace fileapi
334 337
335 COMPILE_ASSERT(int(WebFileSystem::TypeTemporary) == \ 338 COMPILE_ASSERT(int(WebFileSystem::TypeTemporary) == \
336 int(fileapi::kFileSystemTypeTemporary), mismatching_enums); 339 int(fileapi::kFileSystemTypeTemporary), mismatching_enums);
337 COMPILE_ASSERT(int(WebFileSystem::TypePersistent) == \ 340 COMPILE_ASSERT(int(WebFileSystem::TypePersistent) == \
338 int(fileapi::kFileSystemTypePersistent), mismatching_enums); 341 int(fileapi::kFileSystemTypePersistent), mismatching_enums);
OLDNEW
« no previous file with comments | « no previous file | no next file » | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698