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

Unified Diff: chrome/browser/media_galleries/fileapi/picasa/picasa_file_util.cc

Issue 23717027: Media Galleries API Picasa: Move Picasa source files to correct location. (Closed) Base URL: svn://svn.chromium.org/chrome/trunk/src
Patch Set: Created 7 years, 3 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: chrome/browser/media_galleries/fileapi/picasa/picasa_file_util.cc
diff --git a/chrome/browser/media_galleries/fileapi/picasa/picasa_file_util.cc b/chrome/browser/media_galleries/fileapi/picasa/picasa_file_util.cc
deleted file mode 100644
index a43b39e8eeea7cfa1773df0b6a3b765597630bd5..0000000000000000000000000000000000000000
--- a/chrome/browser/media_galleries/fileapi/picasa/picasa_file_util.cc
+++ /dev/null
@@ -1,373 +0,0 @@
-// Copyright 2013 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.
-
-#include "chrome/browser/media_galleries/fileapi/picasa/picasa_file_util.h"
-
-#include <string>
-#include <vector>
-
-#include "base/basictypes.h"
-#include "base/bind_helpers.h"
-#include "base/strings/string_util.h"
-#include "base/strings/stringprintf.h"
-#include "base/strings/sys_string_conversions.h"
-#include "base/strings/utf_string_conversions.h"
-#include "chrome/browser/media_galleries/fileapi/media_file_system_backend.h"
-#include "chrome/browser/media_galleries/fileapi/picasa/picasa_data_provider.h"
-#include "chrome/browser/media_galleries/imported_media_gallery_registry.h"
-#include "chrome/common/media_galleries/picasa_types.h"
-#include "content/public/browser/browser_thread.h"
-#include "webkit/browser/fileapi/file_system_operation_context.h"
-#include "webkit/browser/fileapi/file_system_url.h"
-#include "webkit/browser/fileapi/native_file_util.h"
-#include "webkit/common/fileapi/file_system_util.h"
-
-using base::FilePath;
-using fileapi::DirectoryEntry;
-using fileapi::FileSystemOperationContext;
-using fileapi::FileSystemURL;
-
-namespace picasa {
-
-namespace {
-
-base::PlatformFileError FindAlbumInfo(const std::string& key,
- const AlbumMap* map,
- AlbumInfo* album_info) {
- if (!map)
- return base::PLATFORM_FILE_ERROR_FAILED;
-
- AlbumMap::const_iterator it = map->find(key);
-
- if (it == map->end())
- return base::PLATFORM_FILE_ERROR_NOT_FOUND;
-
- if (album_info != NULL)
- *album_info = it->second;
-
- return base::PLATFORM_FILE_OK;
-}
-
-PicasaDataProvider::DataType GetDataTypeForURL(
- const fileapi::FileSystemURL& url) {
- std::vector<std::string> components;
- fileapi::VirtualPath::GetComponentsUTF8Unsafe(url.path(), &components);
-
- if (components.size() >= 2 && components[0] == kPicasaDirAlbums)
- return PicasaDataProvider::ALBUMS_IMAGES_DATA;
-
- return PicasaDataProvider::LIST_OF_ALBUMS_AND_FOLDERS_DATA;
-}
-
-} // namespace
-
-const char kPicasaDirAlbums[] = "albums";
-const char kPicasaDirFolders[] = "folders";
-
-PicasaFileUtil::PicasaFileUtil(chrome::MediaPathFilter* media_path_filter)
- : chrome::NativeMediaFileUtil(media_path_filter),
- weak_factory_(this) {
-}
-
-PicasaFileUtil::~PicasaFileUtil() {}
-
-void PicasaFileUtil::GetFileInfoOnTaskRunnerThread(
- scoped_ptr<fileapi::FileSystemOperationContext> context,
- const fileapi::FileSystemURL& url,
- const GetFileInfoCallback& callback) {
- GetDataProvider()->RefreshData(
- GetDataTypeForURL(url),
- base::Bind(&PicasaFileUtil::GetFileInfoWithFreshDataProvider,
- weak_factory_.GetWeakPtr(),
- base::Passed(&context),
- url,
- callback));
-}
-
-void PicasaFileUtil::ReadDirectoryOnTaskRunnerThread(
- scoped_ptr<fileapi::FileSystemOperationContext> context,
- const fileapi::FileSystemURL& url,
- const ReadDirectoryCallback& callback) {
- GetDataProvider()->RefreshData(
- GetDataTypeForURL(url),
- base::Bind(&PicasaFileUtil::ReadDirectoryWithFreshDataProvider,
- weak_factory_.GetWeakPtr(),
- base::Passed(&context),
- url,
- callback));
-}
-
-base::PlatformFileError PicasaFileUtil::GetFileInfoSync(
- FileSystemOperationContext* context, const FileSystemURL& url,
- base::PlatformFileInfo* file_info, base::FilePath* platform_path) {
- DCHECK(context);
- DCHECK(file_info);
- DCHECK(platform_path);
-
- *platform_path = base::FilePath();
-
- std::vector<std::string> components;
- fileapi::VirtualPath::GetComponentsUTF8Unsafe(url.path(), &components);
-
- switch (components.size()) {
- case 0:
- // Root directory.
- file_info->is_directory = true;
- return base::PLATFORM_FILE_OK;
- case 1:
- if (components[0] == kPicasaDirAlbums ||
- components[0] == kPicasaDirFolders) {
- file_info->is_directory = true;
- return base::PLATFORM_FILE_OK;
- }
-
- break;
- case 2:
- if (components[0] == kPicasaDirAlbums) {
- scoped_ptr<AlbumMap> album_map = GetDataProvider()->GetAlbums();
- base::PlatformFileError error =
- FindAlbumInfo(components[1], album_map.get(), NULL);
- if (error != base::PLATFORM_FILE_OK)
- return error;
-
- file_info->is_directory = true;
- return base::PLATFORM_FILE_OK;
- }
-
- if (components[0] == kPicasaDirFolders) {
- return NativeMediaFileUtil::GetFileInfoSync(context, url, file_info,
- platform_path);
- }
- break;
- case 3:
- // NativeMediaFileUtil::GetInfo calls into virtual function
- // PicasaFileUtil::GetLocalFilePath, and that will handle both
- // album contents and folder contents.
- base::PlatformFileError result = NativeMediaFileUtil::GetFileInfoSync(
- context, url, file_info, platform_path);
-
- DCHECK(components[0] == kPicasaDirAlbums ||
- components[0] == kPicasaDirFolders ||
- result == base::PLATFORM_FILE_ERROR_NOT_FOUND);
-
- return result;
- }
-
- return base::PLATFORM_FILE_ERROR_NOT_FOUND;
-}
-
-base::PlatformFileError PicasaFileUtil::ReadDirectorySync(
- fileapi::FileSystemOperationContext* context,
- const fileapi::FileSystemURL& url,
- EntryList* file_list) {
- DCHECK(context);
- DCHECK(file_list);
- DCHECK(file_list->empty());
-
- base::PlatformFileInfo file_info;
- base::FilePath platform_directory_path;
- base::PlatformFileError error = GetFileInfoSync(
- context, url, &file_info, &platform_directory_path);
-
- if (error != base::PLATFORM_FILE_OK)
- return error;
-
- if (!file_info.is_directory)
- return base::PLATFORM_FILE_ERROR_NOT_A_DIRECTORY;
-
- std::vector<std::string> components;
- fileapi::VirtualPath::GetComponentsUTF8Unsafe(url.path(), &components);
-
- switch (components.size()) {
- case 0: {
- // Root directory.
- file_list->push_back(
- DirectoryEntry(kPicasaDirAlbums, DirectoryEntry::DIRECTORY, 0,
- base::Time()));
- file_list->push_back(
- DirectoryEntry(kPicasaDirFolders, DirectoryEntry::DIRECTORY, 0,
- base::Time()));
- break;
- }
- case 1:
- if (components[0] == kPicasaDirAlbums) {
- scoped_ptr<AlbumMap> albums = GetDataProvider()->GetAlbums();
- if (!albums)
- return base::PLATFORM_FILE_ERROR_NOT_FOUND;
-
- for (AlbumMap::const_iterator it = albums->begin();
- it != albums->end(); ++it) {
- file_list->push_back(
- DirectoryEntry(it->first, DirectoryEntry::DIRECTORY, 0,
- it->second.timestamp));
- }
- } else if (components[0] == kPicasaDirFolders) {
- scoped_ptr<AlbumMap> folders = GetDataProvider()->GetFolders();
- if (!folders)
- return base::PLATFORM_FILE_ERROR_NOT_FOUND;
-
- for (AlbumMap::const_iterator it = folders->begin();
- it != folders->end(); ++it) {
- file_list->push_back(
- DirectoryEntry(it->first, DirectoryEntry::DIRECTORY, 0,
- it->second.timestamp));
- }
- }
- break;
- case 2:
- if (components[0] == kPicasaDirAlbums) {
- scoped_ptr<AlbumMap> album_map = GetDataProvider()->GetAlbums();
- AlbumInfo album_info;
- base::PlatformFileError error =
- FindAlbumInfo(components[1], album_map.get(), &album_info);
- if (error != base::PLATFORM_FILE_OK)
- return error;
-
- scoped_ptr<AlbumImages> album_images =
- GetDataProvider()->FindAlbumImages(album_info.uid, &error);
- if (error != base::PLATFORM_FILE_OK)
- return error;
-
- for (AlbumImages::const_iterator it = album_images->begin();
- it != album_images->end();
- ++it) {
- fileapi::DirectoryEntry entry;
- base::PlatformFileInfo info;
-
- // Simply skip files that we can't get info on.
- if (fileapi::NativeFileUtil::GetFileInfo(it->second, &info) !=
- base::PLATFORM_FILE_OK) {
- continue;
- }
-
- file_list->push_back(DirectoryEntry(
- it->first, DirectoryEntry::FILE, info.size, info.last_modified));
- }
- }
-
- if (components[0] == kPicasaDirFolders) {
- EntryList super_list;
- base::PlatformFileError error =
- NativeMediaFileUtil::ReadDirectorySync(context, url, &super_list);
- if (error != base::PLATFORM_FILE_OK)
- return error;
-
- for (EntryList::const_iterator it = super_list.begin();
- it != super_list.end(); ++it) {
- if (!it->is_directory)
- file_list->push_back(*it);
- }
- }
-
- break;
- }
-
- return base::PLATFORM_FILE_OK;
-}
-
-base::PlatformFileError PicasaFileUtil::GetLocalFilePath(
- FileSystemOperationContext* context, const FileSystemURL& url,
- base::FilePath* local_file_path) {
- DCHECK(local_file_path);
- DCHECK(url.is_valid());
- std::vector<std::string> components;
- fileapi::VirtualPath::GetComponentsUTF8Unsafe(url.path(), &components);
-
- switch (components.size()) {
- case 2:
- if (components[0] == kPicasaDirFolders) {
- scoped_ptr<AlbumMap> album_map = GetDataProvider()->GetFolders();
- AlbumInfo album_info;
- base::PlatformFileError error =
- FindAlbumInfo(components[1], album_map.get(), &album_info);
- if (error != base::PLATFORM_FILE_OK)
- return error;
-
- *local_file_path = album_info.path;
- return base::PLATFORM_FILE_OK;
- }
- break;
- case 3:
- if (components[0] == kPicasaDirAlbums) {
- scoped_ptr<AlbumMap> album_map = GetDataProvider()->GetAlbums();
- AlbumInfo album_info;
- base::PlatformFileError error =
- FindAlbumInfo(components[1], album_map.get(), &album_info);
- if (error != base::PLATFORM_FILE_OK)
- return error;
-
- scoped_ptr<AlbumImages> album_images =
- GetDataProvider()->FindAlbumImages(album_info.uid, &error);
- if (error != base::PLATFORM_FILE_OK)
- return error;
-
- AlbumImages::const_iterator it = album_images->find(components[2]);
- if (it == album_images->end())
- return base::PLATFORM_FILE_ERROR_NOT_FOUND;
-
- *local_file_path = it->second;
- return base::PLATFORM_FILE_OK;
- }
-
- if (components[0] == kPicasaDirFolders) {
- scoped_ptr<AlbumMap> album_map = GetDataProvider()->GetFolders();
- AlbumInfo album_info;
- base::PlatformFileError error =
- FindAlbumInfo(components[1], album_map.get(), &album_info);
- if (error != base::PLATFORM_FILE_OK)
- return error;
-
- // Not part of this class's mandate to check that it actually exists.
- *local_file_path = album_info.path.Append(url.path().BaseName());
- return base::PLATFORM_FILE_OK;
- }
-
- return base::PLATFORM_FILE_ERROR_NOT_FOUND;
- break;
- }
-
- // All other cases don't have a local path. The valid cases should be
- // intercepted by GetFileInfo()/CreateFileEnumerator(). Invalid cases
- // return a NOT_FOUND error.
- return base::PLATFORM_FILE_ERROR_NOT_FOUND;
-}
-
-void PicasaFileUtil::GetFileInfoWithFreshDataProvider(
- scoped_ptr<fileapi::FileSystemOperationContext> context,
- const fileapi::FileSystemURL& url,
- const GetFileInfoCallback& callback,
- bool success) {
- if (!success) {
- content::BrowserThread::PostTask(
- content::BrowserThread::IO,
- FROM_HERE,
- base::Bind(
- callback, base::PLATFORM_FILE_ERROR_IO, base::PlatformFileInfo()));
- return;
- }
- NativeMediaFileUtil::GetFileInfoOnTaskRunnerThread(
- context.Pass(), url, callback);
-}
-
-void PicasaFileUtil::ReadDirectoryWithFreshDataProvider(
- scoped_ptr<fileapi::FileSystemOperationContext> context,
- const fileapi::FileSystemURL& url,
- const ReadDirectoryCallback& callback,
- bool success) {
- if (!success) {
- content::BrowserThread::PostTask(
- content::BrowserThread::IO,
- FROM_HERE,
- base::Bind(callback, base::PLATFORM_FILE_ERROR_IO, EntryList(), false));
- return;
- }
- NativeMediaFileUtil::ReadDirectoryOnTaskRunnerThread(
- context.Pass(), url, callback);
-}
-
-PicasaDataProvider* PicasaFileUtil::GetDataProvider() {
- return chrome::ImportedMediaGalleryRegistry::PicasaDataProvider();
-}
-
-} // namespace picasa

Powered by Google App Engine
This is Rietveld 408576698