diff options
author | vandebo@chromium.org <vandebo@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98> | 2014-03-28 21:06:48 +0000 |
---|---|---|
committer | vandebo@chromium.org <vandebo@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98> | 2014-03-28 21:06:48 +0000 |
commit | 65486ad7c53dd9da35c5464bf8f6ade16bca1f58 (patch) | |
tree | 54bd4e702efaf01d0abf5c2e2ae4edb4a7cc898a /chrome/browser/media_galleries/fileapi/picasa_file_util.cc | |
parent | 20e7cd1e49135d40d2d84f87358000defbf82cf6 (diff) | |
download | chromium_src-65486ad7c53dd9da35c5464bf8f6ade16bca1f58.zip chromium_src-65486ad7c53dd9da35c5464bf8f6ade16bca1f58.tar.gz chromium_src-65486ad7c53dd9da35c5464bf8f6ade16bca1f58.tar.bz2 |
Change media galleries to external file system type to add toURL support
BUG=160900
R=creis@chromium.org, joi@chromium.org, thestig@chromium.org, tsepez@chromium.org, tzik@chromium.org
Review URL: https://codereview.chromium.org/185393012
git-svn-id: svn://svn.chromium.org/chrome/trunk/src@260276 0039d316-1c4b-4281-b951-d872f2087c98
Diffstat (limited to 'chrome/browser/media_galleries/fileapi/picasa_file_util.cc')
-rw-r--r-- | chrome/browser/media_galleries/fileapi/picasa_file_util.cc | 29 |
1 files changed, 19 insertions, 10 deletions
diff --git a/chrome/browser/media_galleries/fileapi/picasa_file_util.cc b/chrome/browser/media_galleries/fileapi/picasa_file_util.cc index 646f9548..6b3ca1f 100644 --- a/chrome/browser/media_galleries/fileapi/picasa_file_util.cc +++ b/chrome/browser/media_galleries/fileapi/picasa_file_util.cc @@ -49,11 +49,24 @@ base::File::Error FindAlbumInfo(const std::string& key, return base::File::FILE_OK; } -PicasaDataProvider::DataType GetDataTypeForURL( +std::vector<std::string> GetVirtualPathComponents( const fileapi::FileSystemURL& url) { - std::vector<std::string> components; - fileapi::VirtualPath::GetComponentsUTF8Unsafe(url.path(), &components); + ImportedMediaGalleryRegistry* imported_registry = + ImportedMediaGalleryRegistry::GetInstance(); + base::FilePath root = imported_registry->ImportedRoot().AppendASCII("picasa"); + + DCHECK(root.IsParent(url.path()) || root == url.path()); + base::FilePath virtual_path; + root.AppendRelativePath(url.path(), &virtual_path); + + std::vector<std::string> result; + fileapi::VirtualPath::GetComponentsUTF8Unsafe(virtual_path, &result); + return result; +} +PicasaDataProvider::DataType GetDataTypeForURL( + const fileapi::FileSystemURL& url) { + std::vector<std::string> components = GetVirtualPathComponents(url); if (components.size() >= 2 && components[0] == kPicasaDirAlbums) return PicasaDataProvider::ALBUMS_IMAGES_DATA; @@ -107,8 +120,7 @@ base::File::Error PicasaFileUtil::GetFileInfoSync( if (platform_path) *platform_path = base::FilePath(); - std::vector<std::string> components; - fileapi::VirtualPath::GetComponentsUTF8Unsafe(url.path(), &components); + std::vector<std::string> components = GetVirtualPathComponents(url); switch (components.size()) { case 0: @@ -176,9 +188,7 @@ base::File::Error PicasaFileUtil::ReadDirectorySync( if (!file_info.is_directory) return base::File::FILE_ERROR_NOT_A_DIRECTORY; - std::vector<std::string> components; - fileapi::VirtualPath::GetComponentsUTF8Unsafe(url.path(), &components); - + std::vector<std::string> components = GetVirtualPathComponents(url); switch (components.size()) { case 0: { // Root directory. @@ -283,8 +293,7 @@ base::File::Error PicasaFileUtil::GetLocalFilePath( base::FilePath* local_file_path) { DCHECK(local_file_path); DCHECK(url.is_valid()); - std::vector<std::string> components; - fileapi::VirtualPath::GetComponentsUTF8Unsafe(url.path(), &components); + std::vector<std::string> components = GetVirtualPathComponents(url); switch (components.size()) { case 2: |