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

Unified Diff: webkit/tools/test_shell/simple_file_system.cc

Issue 15946006: Move C++ code from webkit/tools/test_shell to webkit/support (Closed) Base URL: svn://svn.chromium.org/chrome/trunk/src
Patch Set: fix npapi_test_plugin Created 7 years, 7 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
« no previous file with comments | « webkit/tools/test_shell/simple_file_system.h ('k') | webkit/tools/test_shell/simple_file_writer.h » ('j') | no next file with comments »
Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
Index: webkit/tools/test_shell/simple_file_system.cc
diff --git a/webkit/tools/test_shell/simple_file_system.cc b/webkit/tools/test_shell/simple_file_system.cc
deleted file mode 100644
index 7fe4ff5a036273cb78f763fe89023b3c57bf223b..0000000000000000000000000000000000000000
--- a/webkit/tools/test_shell/simple_file_system.cc
+++ /dev/null
@@ -1,410 +0,0 @@
-// Copyright (c) 2012 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 "webkit/tools/test_shell/simple_file_system.h"
-
-#include "base/bind.h"
-#include "base/files/file_path.h"
-#include "base/message_loop.h"
-#include "base/message_loop_proxy.h"
-#include "base/time.h"
-#include "base/utf_string_conversions.h"
-#include "googleurl/src/gurl.h"
-#include "net/base/mime_util.h"
-#include "third_party/WebKit/public/platform/WebFileInfo.h"
-#include "third_party/WebKit/public/platform/WebURL.h"
-#include "third_party/WebKit/public/platform/WebVector.h"
-#include "third_party/WebKit/Source/WebKit/chromium/public/WebDocument.h"
-#include "third_party/WebKit/Source/WebKit/chromium/public/WebFileSystemCallbacks.h"
-#include "third_party/WebKit/Source/WebKit/chromium/public/WebFileSystemEntry.h"
-#include "third_party/WebKit/Source/WebKit/chromium/public/WebFrame.h"
-#include "webkit/base/file_path_string_conversions.h"
-#include "webkit/browser/blob/blob_storage_controller.h"
-#include "webkit/browser/fileapi/file_permission_policy.h"
-#include "webkit/browser/fileapi/file_system_mount_point_provider.h"
-#include "webkit/browser/fileapi/file_system_url.h"
-#include "webkit/browser/fileapi/mock_file_system_context.h"
-#include "webkit/common/fileapi/directory_entry.h"
-#include "webkit/common/fileapi/file_system_util.h"
-#include "webkit/tools/test_shell/simple_file_writer.h"
-
-using base::WeakPtr;
-
-using WebKit::WebFileInfo;
-using WebKit::WebFileSystem;
-using WebKit::WebFileSystemCallbacks;
-using WebKit::WebFileSystemEntry;
-using WebKit::WebFileWriter;
-using WebKit::WebFileWriterClient;
-using WebKit::WebFrame;
-using WebKit::WebString;
-using WebKit::WebURL;
-using WebKit::WebVector;
-
-using webkit_blob::BlobData;
-using webkit_blob::BlobStorageController;
-using fileapi::DirectoryEntry;
-using fileapi::FileSystemContext;
-using fileapi::FileSystemOperation;
-using fileapi::FileSystemTaskRunners;
-using fileapi::FileSystemURL;
-
-namespace {
-base::MessageLoop* g_io_thread;
-webkit_blob::BlobStorageController* g_blob_storage_controller;
-
-void RegisterBlob(const GURL& blob_url, const base::FilePath& file_path) {
- DCHECK(g_blob_storage_controller);
-
- base::FilePath::StringType extension = file_path.Extension();
- if (!extension.empty())
- extension = extension.substr(1); // Strip leading ".".
-
- // This may fail, but then we'll be just setting the empty mime type.
- std::string mime_type;
- net::GetWellKnownMimeTypeFromExtension(extension, &mime_type);
-
- BlobData::Item item;
- item.SetToFilePathRange(file_path, 0, -1, base::Time());
- g_blob_storage_controller->StartBuildingBlob(blob_url);
- g_blob_storage_controller->AppendBlobDataItem(blob_url, item);
- g_blob_storage_controller->FinishBuildingBlob(blob_url, mime_type);
-}
-
-} // namespace
-
-SimpleFileSystem::SimpleFileSystem() {
- if (file_system_dir_.CreateUniqueTempDir()) {
- file_system_context_ = fileapi::CreateFileSystemContextForTesting(
- NULL /* quota manager */,
- file_system_dir_.path());
- } else {
- LOG(WARNING) << "Failed to create a temp dir for the filesystem."
- "FileSystem feature will be disabled.";
- }
-}
-
-SimpleFileSystem::~SimpleFileSystem() {
-}
-
-void SimpleFileSystem::OpenFileSystem(
- WebFrame* frame,
- WebKit::WebFileSystemType type,
- long long, bool create,
- WebFileSystemCallbacks* callbacks) {
- if (!frame || !file_system_context_.get()) {
- // The FileSystem temp directory was not initialized successfully.
- callbacks->didFail(WebKit::WebFileErrorSecurity);
- return;
- }
-
- fileapi::OpenFileSystemMode mode =
- create ? fileapi::OPEN_FILE_SYSTEM_CREATE_IF_NONEXISTENT
- : fileapi::OPEN_FILE_SYSTEM_FAIL_IF_NONEXISTENT;
- GURL origin_url(frame->document().securityOrigin().toString());
- file_system_context_->OpenFileSystem(
- origin_url, static_cast<fileapi::FileSystemType>(type), mode,
- OpenFileSystemHandler(callbacks));
-}
-
-void SimpleFileSystem::DeleteFileSystem(
- WebFrame* frame,
- WebKit::WebFileSystemType type,
- WebFileSystemCallbacks* callbacks) {
- if (!frame || !file_system_context_.get()) {
- callbacks->didFail(WebKit::WebFileErrorSecurity);
- return;
- }
-
- GURL origin_url(frame->document().securityOrigin().toString());
- file_system_context_->DeleteFileSystem(
- origin_url, static_cast<fileapi::FileSystemType>(type),
- DeleteFileSystemHandler(callbacks));
-}
-
-void SimpleFileSystem::move(
- const WebURL& src_path,
- const WebURL& dest_path, WebFileSystemCallbacks* callbacks) {
- FileSystemURL src_url(file_system_context()->CrackURL(src_path));
- FileSystemURL dest_url(file_system_context()->CrackURL(dest_path));
- if (!HasFilePermission(src_url, fileapi::kWriteFilePermissions) ||
- !HasFilePermission(dest_url, fileapi::kCreateFilePermissions)) {
- callbacks->didFail(WebKit::WebFileErrorSecurity);
- return;
- }
- GetNewOperation(src_url)->Move(src_url, dest_url,
- FinishHandler(callbacks));
-}
-
-void SimpleFileSystem::copy(
- const WebURL& src_path, const WebURL& dest_path,
- WebFileSystemCallbacks* callbacks) {
- FileSystemURL src_url(file_system_context()->CrackURL(src_path));
- FileSystemURL dest_url(file_system_context()->CrackURL(dest_path));
- if (!HasFilePermission(src_url, fileapi::kReadFilePermissions) ||
- !HasFilePermission(dest_url, fileapi::kCreateFilePermissions)) {
- callbacks->didFail(WebKit::WebFileErrorSecurity);
- return;
- }
- GetNewOperation(src_url)->Copy(src_url, dest_url,
- FinishHandler(callbacks));
-}
-
-void SimpleFileSystem::remove(
- const WebURL& path, WebFileSystemCallbacks* callbacks) {
- FileSystemURL url(file_system_context()->CrackURL(path));
- if (!HasFilePermission(url, fileapi::kWriteFilePermissions)) {
- callbacks->didFail(WebKit::WebFileErrorSecurity);
- return;
- }
- GetNewOperation(url)->Remove(url, false /* recursive */,
- FinishHandler(callbacks));
-}
-
-void SimpleFileSystem::removeRecursively(
- const WebURL& path, WebFileSystemCallbacks* callbacks) {
- FileSystemURL url(file_system_context()->CrackURL(path));
- if (!HasFilePermission(url, fileapi::kWriteFilePermissions)) {
- callbacks->didFail(WebKit::WebFileErrorSecurity);
- return;
- }
- GetNewOperation(url)->Remove(url, true /* recursive */,
- FinishHandler(callbacks));
-}
-
-void SimpleFileSystem::readMetadata(
- const WebURL& path, WebFileSystemCallbacks* callbacks) {
- FileSystemURL url(file_system_context()->CrackURL(path));
- if (!HasFilePermission(url, fileapi::kReadFilePermissions)) {
- callbacks->didFail(WebKit::WebFileErrorSecurity);
- return;
- }
- GetNewOperation(url)->GetMetadata(url, GetMetadataHandler(callbacks));
-}
-
-void SimpleFileSystem::createFile(
- const WebURL& path, bool exclusive, WebFileSystemCallbacks* callbacks) {
- FileSystemURL url(file_system_context()->CrackURL(path));
- if (!HasFilePermission(url, fileapi::kCreateFilePermissions)) {
- callbacks->didFail(WebKit::WebFileErrorSecurity);
- return;
- }
- GetNewOperation(url)->CreateFile(url, exclusive, FinishHandler(callbacks));
-}
-
-void SimpleFileSystem::createDirectory(
- const WebURL& path, bool exclusive, WebFileSystemCallbacks* callbacks) {
- FileSystemURL url(file_system_context()->CrackURL(path));
- if (!HasFilePermission(url, fileapi::kCreateFilePermissions)) {
- callbacks->didFail(WebKit::WebFileErrorSecurity);
- return;
- }
- GetNewOperation(url)->CreateDirectory(url, exclusive, false,
- FinishHandler(callbacks));
-}
-
-void SimpleFileSystem::fileExists(
- const WebURL& path, WebFileSystemCallbacks* callbacks) {
- FileSystemURL url(file_system_context()->CrackURL(path));
- if (!HasFilePermission(url, fileapi::kReadFilePermissions)) {
- callbacks->didFail(WebKit::WebFileErrorSecurity);
- return;
- }
- GetNewOperation(url)->FileExists(url, FinishHandler(callbacks));
-}
-
-void SimpleFileSystem::directoryExists(
- const WebURL& path, WebFileSystemCallbacks* callbacks) {
- FileSystemURL url(file_system_context()->CrackURL(path));
- if (!HasFilePermission(url, fileapi::kReadFilePermissions)) {
- callbacks->didFail(WebKit::WebFileErrorSecurity);
- return;
- }
- GetNewOperation(url)->DirectoryExists(url, FinishHandler(callbacks));
-}
-
-void SimpleFileSystem::readDirectory(
- const WebURL& path, WebFileSystemCallbacks* callbacks) {
- FileSystemURL url(file_system_context()->CrackURL(path));
- if (!HasFilePermission(url, fileapi::kReadFilePermissions)) {
- callbacks->didFail(WebKit::WebFileErrorSecurity);
- return;
- }
- GetNewOperation(url)->ReadDirectory(url, ReadDirectoryHandler(callbacks));
-}
-
-WebFileWriter* SimpleFileSystem::createFileWriter(
- const WebURL& path, WebFileWriterClient* client) {
- return new SimpleFileWriter(path, client, file_system_context_.get());
-}
-
-void SimpleFileSystem::createSnapshotFileAndReadMetadata(
- const WebURL& path,
- WebFileSystemCallbacks* callbacks) {
- FileSystemURL url(file_system_context()->CrackURL(path));
- if (!HasFilePermission(url, fileapi::kReadFilePermissions)) {
- callbacks->didFail(WebKit::WebFileErrorSecurity);
- return;
- }
- GetNewOperation(url)->CreateSnapshotFile(
- url, SnapshotFileHandler(callbacks));
-}
-
-// static
-void SimpleFileSystem::InitializeOnIOThread(
- webkit_blob::BlobStorageController* blob_storage_controller) {
- g_io_thread = base::MessageLoop::current();
- g_blob_storage_controller = blob_storage_controller;
-}
-
-// static
-void SimpleFileSystem::CleanupOnIOThread() {
- g_io_thread = NULL;
- g_blob_storage_controller = NULL;
-}
-
-bool SimpleFileSystem::HasFilePermission(
- const fileapi::FileSystemURL& url, int permissions) {
- if (!url.is_valid())
- return false;
- fileapi::FileSystemMountPointProvider* mount_point_provider =
- file_system_context_->GetMountPointProvider(url.type());
- DCHECK(mount_point_provider);
- // In test_shell we don't perform further detailed security checks if it's
- // not specifically forbidden by ALWAYS_DENY.
- return (mount_point_provider->GetPermissionPolicy(url, permissions)
- != fileapi::FILE_PERMISSION_ALWAYS_DENY);
-}
-
-FileSystemOperation* SimpleFileSystem::GetNewOperation(
- const fileapi::FileSystemURL& url) {
- return file_system_context_->CreateFileSystemOperation(url, NULL);
-}
-
-FileSystemOperation::StatusCallback
-SimpleFileSystem::FinishHandler(WebFileSystemCallbacks* callbacks) {
- return base::Bind(&SimpleFileSystem::DidFinish,
- AsWeakPtr(), base::Unretained(callbacks));
-}
-
-FileSystemOperation::ReadDirectoryCallback
-SimpleFileSystem::ReadDirectoryHandler(WebFileSystemCallbacks* callbacks) {
- return base::Bind(&SimpleFileSystem::DidReadDirectory,
- AsWeakPtr(), base::Unretained(callbacks));
-}
-
-FileSystemOperation::GetMetadataCallback
-SimpleFileSystem::GetMetadataHandler(WebFileSystemCallbacks* callbacks) {
- return base::Bind(&SimpleFileSystem::DidGetMetadata,
- AsWeakPtr(), base::Unretained(callbacks));
-}
-
-FileSystemContext::OpenFileSystemCallback
-SimpleFileSystem::OpenFileSystemHandler(WebFileSystemCallbacks* callbacks) {
- return base::Bind(&SimpleFileSystem::DidOpenFileSystem,
- AsWeakPtr(), base::Unretained(callbacks));
-}
-
-FileSystemContext::DeleteFileSystemCallback
-SimpleFileSystem::DeleteFileSystemHandler(WebFileSystemCallbacks* callbacks) {
- return base::Bind(&SimpleFileSystem::DidDeleteFileSystem,
- AsWeakPtr(), callbacks);
-}
-
-FileSystemOperation::SnapshotFileCallback
-SimpleFileSystem::SnapshotFileHandler(
- WebFileSystemCallbacks* callbacks) {
- return base::Bind(&SimpleFileSystem::DidCreateSnapshotFile,
- AsWeakPtr(), base::Unretained(callbacks));
-}
-
-void SimpleFileSystem::DidFinish(WebFileSystemCallbacks* callbacks,
- base::PlatformFileError result) {
- if (result == base::PLATFORM_FILE_OK)
- callbacks->didSucceed();
- else
- callbacks->didFail(fileapi::PlatformFileErrorToWebFileError(result));
-}
-
-void SimpleFileSystem::DidGetMetadata(WebFileSystemCallbacks* callbacks,
- base::PlatformFileError result,
- const base::PlatformFileInfo& info,
- const base::FilePath& platform_path) {
- if (result == base::PLATFORM_FILE_OK) {
- WebFileInfo web_file_info;
- web_file_info.length = info.size;
- web_file_info.modificationTime = info.last_modified.ToDoubleT();
- web_file_info.type = info.is_directory ?
- WebFileInfo::TypeDirectory : WebFileInfo::TypeFile;
- web_file_info.platformPath =
- webkit_base::FilePathToWebString(platform_path);
- callbacks->didReadMetadata(web_file_info);
- } else {
- callbacks->didFail(fileapi::PlatformFileErrorToWebFileError(result));
- }
-}
-
-void SimpleFileSystem::DidReadDirectory(
- WebFileSystemCallbacks* callbacks,
- base::PlatformFileError result,
- const std::vector<DirectoryEntry>& entries,
- bool has_more) {
- if (result == base::PLATFORM_FILE_OK) {
- std::vector<WebFileSystemEntry> web_entries_vector;
- for (std::vector<DirectoryEntry>::const_iterator it = entries.begin();
- it != entries.end(); ++it) {
- WebFileSystemEntry entry;
- entry.name = webkit_base::FilePathStringToWebString(it->name);
- entry.isDirectory = it->is_directory;
- web_entries_vector.push_back(entry);
- }
- WebVector<WebKit::WebFileSystemEntry> web_entries = web_entries_vector;
- callbacks->didReadDirectory(web_entries, has_more);
- } else {
- callbacks->didFail(fileapi::PlatformFileErrorToWebFileError(result));
- }
-}
-
-void SimpleFileSystem::DidOpenFileSystem(
- WebFileSystemCallbacks* callbacks,
- base::PlatformFileError result,
- const std::string& name, const GURL& root) {
- if (result == base::PLATFORM_FILE_OK) {
- if (!root.is_valid())
- callbacks->didFail(WebKit::WebFileErrorSecurity);
- else
- callbacks->didOpenFileSystem(WebString::fromUTF8(name), root);
- } else {
- callbacks->didFail(fileapi::PlatformFileErrorToWebFileError(result));
- }
-}
-
-void SimpleFileSystem::DidDeleteFileSystem(
- WebFileSystemCallbacks* callbacks,
- base::PlatformFileError result) {
- if (result == base::PLATFORM_FILE_OK)
- callbacks->didSucceed();
- else
- callbacks->didFail(fileapi::PlatformFileErrorToWebFileError(result));
-}
-
-void SimpleFileSystem::DidCreateSnapshotFile(
- WebFileSystemCallbacks* callbacks,
- base::PlatformFileError result,
- const base::PlatformFileInfo& info,
- const base::FilePath& platform_path,
- const scoped_refptr<webkit_blob::ShareableFileReference>& file_ref) {
- if (result == base::PLATFORM_FILE_OK) {
- WebFileInfo web_file_info;
- web_file_info.length = info.size;
- web_file_info.modificationTime = info.last_modified.ToDoubleT();
- web_file_info.type = info.is_directory ?
- WebFileInfo::TypeDirectory : WebFileInfo::TypeFile;
- web_file_info.platformPath =
- webkit_base::FilePathToWebString(platform_path);
- callbacks->didCreateSnapshotFile(web_file_info);
- } else {
- callbacks->didFail(fileapi::PlatformFileErrorToWebFileError(result));
- }
-}
« no previous file with comments | « webkit/tools/test_shell/simple_file_system.h ('k') | webkit/tools/test_shell/simple_file_writer.h » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698