diff options
3 files changed, 29 insertions, 7 deletions
diff --git a/storage/browser/fileapi/dump_file_system.cc b/storage/browser/fileapi/dump_file_system.cc index 49a2fa3..0c999c8 100644 --- a/storage/browser/fileapi/dump_file_system.cc +++ b/storage/browser/fileapi/dump_file_system.cc @@ -9,6 +9,8 @@ // ./out/Release/dump_file_system [options] <filesystem dir> [origin]... // // If no origin is specified, this dumps all origins in the profile dir. +// For Chrome App, which has a separate storage directory, specify "primary" +// as the origin name. // // Available options: // @@ -42,6 +44,7 @@ #include "storage/browser/fileapi/sandbox_directory_database.h" #include "storage/browser/fileapi/sandbox_file_system_backend.h" #include "storage/browser/fileapi/sandbox_origin_database.h" +#include "storage/browser/fileapi/sandbox_prioritized_origin_database.h" #include "storage/common/fileapi/file_system_types.h" #include "storage/common/fileapi/file_system_util.h" @@ -131,8 +134,14 @@ static void DumpDirectoryTree(const std::string& origin_name, } } -static void DumpOrigin(const base::FilePath& file_system_dir, - const std::string& origin_name) { +static base::FilePath GetOriginDir(const base::FilePath& file_system_dir, + const std::string& origin_name) { + if (base::PathExists(file_system_dir.Append( + SandboxPrioritizedOriginDatabase::kPrimaryOriginFile))) { + return base::FilePath( + SandboxPrioritizedOriginDatabase::kPrimaryOriginFile); + } + SandboxOriginDatabase origin_db(file_system_dir, NULL); base::FilePath origin_dir; if (!origin_db.HasOriginPath(origin_name)) { @@ -144,6 +153,13 @@ static void DumpOrigin(const base::FilePath& file_system_dir, ShowMessageAndExit("Failed to get path of origin " + origin_name + " in " + FilePathToString(file_system_dir)); } + + return origin_dir; +} + +static void DumpOrigin(const base::FilePath& file_system_dir, + const std::string& origin_name) { + base::FilePath origin_dir = GetOriginDir(file_system_dir, origin_name); DumpDirectoryTree(origin_name, file_system_dir.Append(origin_dir)); } diff --git a/storage/browser/fileapi/sandbox_prioritized_origin_database.cc b/storage/browser/fileapi/sandbox_prioritized_origin_database.cc index 80ccd27..c55ad42 100644 --- a/storage/browser/fileapi/sandbox_prioritized_origin_database.cc +++ b/storage/browser/fileapi/sandbox_prioritized_origin_database.cc @@ -5,7 +5,6 @@ #include "storage/browser/fileapi/sandbox_prioritized_origin_database.h" #include "base/files/file.h" -#include "base/files/file_path.h" #include "base/files/file_util.h" #include "base/logging.h" #include "base/pickle.h" @@ -14,13 +13,16 @@ namespace storage { -namespace { - -const base::FilePath::CharType kPrimaryDirectory[] = +const base::FilePath::CharType* +SandboxPrioritizedOriginDatabase::kPrimaryDirectory = FILE_PATH_LITERAL("primary"); -const base::FilePath::CharType kPrimaryOriginFile[] = + +const base::FilePath::CharType* +SandboxPrioritizedOriginDatabase::kPrimaryOriginFile = FILE_PATH_LITERAL("primary.origin"); +namespace { + bool WritePrimaryOriginFile(const base::FilePath& path, const std::string& origin) { base::File file(path, base::File::FLAG_OPEN_ALWAYS | base::File::FLAG_WRITE); diff --git a/storage/browser/fileapi/sandbox_prioritized_origin_database.h b/storage/browser/fileapi/sandbox_prioritized_origin_database.h index 438b0b14..4309bb3 100644 --- a/storage/browser/fileapi/sandbox_prioritized_origin_database.h +++ b/storage/browser/fileapi/sandbox_prioritized_origin_database.h @@ -8,6 +8,7 @@ #include <string> #include <vector> +#include "base/files/file_path.h" #include "base/memory/scoped_ptr.h" #include "storage/browser/fileapi/sandbox_origin_database_interface.h" @@ -24,6 +25,9 @@ class SandboxOriginDatabase; class STORAGE_EXPORT_PRIVATE SandboxPrioritizedOriginDatabase : public SandboxOriginDatabaseInterface { public: + static const base::FilePath::CharType* kPrimaryDirectory; + static const base::FilePath::CharType* kPrimaryOriginFile; + SandboxPrioritizedOriginDatabase(const base::FilePath& file_system_directory, leveldb::Env* env_override); virtual ~SandboxPrioritizedOriginDatabase(); |