Index: webkit/browser/fileapi/dump_file_system.cc |
diff --git a/webkit/browser/fileapi/dump_file_system.cc b/webkit/browser/fileapi/dump_file_system.cc |
deleted file mode 100644 |
index 0f30ef2daa4daea297ed6e72fea802f07d628c14..0000000000000000000000000000000000000000 |
--- a/webkit/browser/fileapi/dump_file_system.cc |
+++ /dev/null |
@@ -1,204 +0,0 @@ |
-// Copyright (c) 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. |
-// |
-// A tool to dump HTML5 filesystem from CUI. |
-// |
-// Usage: |
-// |
-// ./out/Release/dump_file_system [options] <filesystem dir> [origin]... |
-// |
-// If no origin is specified, this dumps all origins in the profile dir. |
-// |
-// Available options: |
-// |
-// -t : dumps temporary files instead of persistent. |
-// -s : dumps syncable files instead of persistent. |
-// -l : more information will be displayed. |
-// |
-// The format of -l option is: |
-// |
-// === ORIGIN origin_name origin_dir === |
-// file_name file_id file_size file_content_path |
-// ... |
-// |
-// where file_name has a trailing slash, file_size is the number of |
-// children, and file_content_path is empty if the file is a directory. |
-// |
- |
-#include <stdio.h> |
-#include <stdlib.h> |
- |
-#include <stack> |
-#include <string> |
-#include <utility> |
-#include <vector> |
- |
-#include "base/files/file_path.h" |
-#include "base/files/file_util.h" |
-#include "base/format_macros.h" |
-#include "base/strings/stringprintf.h" |
-#include "webkit/browser/fileapi/obfuscated_file_util.h" |
-#include "webkit/browser/fileapi/sandbox_directory_database.h" |
-#include "webkit/browser/fileapi/sandbox_file_system_backend.h" |
-#include "webkit/browser/fileapi/sandbox_origin_database.h" |
-#include "webkit/common/fileapi/file_system_types.h" |
-#include "webkit/common/fileapi/file_system_util.h" |
- |
-namespace { |
- |
-bool g_opt_long; |
-const char* g_opt_fs_type = "p"; |
- |
-void ShowMessageAndExit(const std::string& msg) { |
- fprintf(stderr, "%s\n", msg.c_str()); |
- exit(EXIT_FAILURE); |
-} |
- |
-void ShowUsageAndExit(const std::string& arg0) { |
- ShowMessageAndExit( |
- "Usage: " + arg0 + |
- " [-l] [-t] [-s] <filesystem dir> [origin]..."); |
-} |
- |
-} // namespace |
- |
-namespace storage { |
- |
-static void DumpDirectoryTree(const std::string& origin_name, |
- base::FilePath origin_dir) { |
- origin_dir = origin_dir.Append(g_opt_fs_type); |
- |
- printf("=== ORIGIN %s %s ===\n", |
- origin_name.c_str(), FilePathToString(origin_dir).c_str()); |
- |
- if (!base::DirectoryExists(origin_dir)) |
- return; |
- |
- SandboxDirectoryDatabase directory_db(origin_dir, NULL); |
- SandboxDirectoryDatabase::FileId root_id; |
- if (!directory_db.GetFileWithPath(StringToFilePath("/"), &root_id)) |
- return; |
- |
- std::stack<std::pair<SandboxDirectoryDatabase::FileId, |
- std::string> > paths; |
- paths.push(std::make_pair(root_id, "")); |
- while (!paths.empty()) { |
- SandboxDirectoryDatabase::FileId id = paths.top().first; |
- const std::string dirname = paths.top().second; |
- paths.pop(); |
- |
- SandboxDirectoryDatabase::FileInfo info; |
- if (!directory_db.GetFileInfo(id, &info)) { |
- ShowMessageAndExit(base::StringPrintf("GetFileInfo failed for %"PRId64, |
- id)); |
- } |
- |
- const std::string name = |
- dirname + "/" + FilePathToString(base::FilePath(info.name)); |
- std::vector<SandboxDirectoryDatabase::FileId> children; |
- if (info.is_directory()) { |
- if (!directory_db.ListChildren(id, &children)) { |
- ShowMessageAndExit(base::StringPrintf( |
- "ListChildren failed for %s (%"PRId64")", |
- info.name.c_str(), id)); |
- } |
- |
- for (size_t j = children.size(); j; j--) |
- paths.push(make_pair(children[j-1], name)); |
- } |
- |
- // +1 for the leading extra slash. |
- const char* display_name = name.c_str() + 1; |
- const char* directory_suffix = info.is_directory() ? "/" : ""; |
- if (g_opt_long) { |
- int64 size; |
- if (info.is_directory()) { |
- size = static_cast<int64>(children.size()); |
- } else { |
- base::GetFileSize(origin_dir.Append(info.data_path), &size); |
- } |
- // TODO(hamaji): Modification time? |
- printf("%s%s %"PRId64" %"PRId64" %s\n", |
- display_name, |
- directory_suffix, |
- id, |
- size, |
- FilePathToString(info.data_path).c_str()); |
- } else { |
- printf("%s%s\n", display_name, directory_suffix); |
- } |
- } |
-} |
- |
-static void DumpOrigin(const base::FilePath& file_system_dir, |
- const std::string& origin_name) { |
- SandboxOriginDatabase origin_db(file_system_dir, NULL); |
- base::FilePath origin_dir; |
- if (!origin_db.HasOriginPath(origin_name)) { |
- ShowMessageAndExit("Origin " + origin_name + " is not in " + |
- FilePathToString(file_system_dir)); |
- } |
- |
- if (!origin_db.GetPathForOrigin(origin_name, &origin_dir)) { |
- ShowMessageAndExit("Failed to get path of origin " + origin_name + |
- " in " + FilePathToString(file_system_dir)); |
- } |
- DumpDirectoryTree(origin_name, file_system_dir.Append(origin_dir)); |
-} |
- |
-static void DumpFileSystem(const base::FilePath& file_system_dir) { |
- SandboxOriginDatabase origin_db(file_system_dir, NULL); |
- std::vector<SandboxOriginDatabase::OriginRecord> origins; |
- origin_db.ListAllOrigins(&origins); |
- for (size_t i = 0; i < origins.size(); i++) { |
- const SandboxOriginDatabase::OriginRecord& origin = origins[i]; |
- DumpDirectoryTree(origin.origin, file_system_dir.Append(origin.path)); |
- puts(""); |
- } |
-} |
- |
-} // namespace storage |
- |
-int main(int argc, char* argv[]) { |
- const char* arg0 = argv[0]; |
- std::string username = "Default"; |
- while (true) { |
- if (argc < 2) |
- ShowUsageAndExit(arg0); |
- |
- if (std::string(argv[1]) == "-l") { |
- g_opt_long = true; |
- argc--; |
- argv++; |
- } else if (std::string(argv[1]) == "-t") { |
- g_opt_fs_type = "t"; |
- argc--; |
- argv++; |
- } else if (std::string(argv[1]) == "-s") { |
- g_opt_fs_type = "s"; |
- argc--; |
- argv++; |
- } else { |
- break; |
- } |
- } |
- |
- if (argc < 2) |
- ShowUsageAndExit(arg0); |
- |
- const base::FilePath file_system_dir = storage::StringToFilePath(argv[1]); |
- if (!base::DirectoryExists(file_system_dir)) { |
- ShowMessageAndExit(storage::FilePathToString(file_system_dir) + |
- " is not a filesystem directory"); |
- } |
- |
- if (argc == 2) { |
- storage::DumpFileSystem(file_system_dir); |
- } else { |
- for (int i = 2; i < argc; i++) { |
- storage::DumpOrigin(file_system_dir, argv[i]); |
- } |
- } |
- return 0; |
-} |