diff options
-rw-r--r-- | chrome/browser/chromeos/extensions/file_browser_private_apitest.cc | 82 | ||||
-rw-r--r-- | chrome/test/data/extensions/api_test/filebrowser_mount/test.js | 2 | ||||
-rw-r--r-- | chromeos/dbus/cros_disks_client.cc | 16 | ||||
-rw-r--r-- | chromeos/dbus/cros_disks_client.h | 10 | ||||
-rw-r--r-- | webkit/chromeos/DEPS | 3 | ||||
-rw-r--r-- | webkit/chromeos/fileapi/cros_mount_point_provider.cc | 14 | ||||
-rw-r--r-- | webkit/chromeos/fileapi/cros_mount_point_provider_unittest.cc | 11 | ||||
-rw-r--r-- | webkit/fileapi/external_mount_points.cc | 20 |
8 files changed, 94 insertions, 64 deletions
diff --git a/chrome/browser/chromeos/extensions/file_browser_private_apitest.cc b/chrome/browser/chromeos/extensions/file_browser_private_apitest.cc index e7fa7c5..0fbd87c 100644 --- a/chrome/browser/chromeos/extensions/file_browser_private_apitest.cc +++ b/chrome/browser/chromeos/extensions/file_browser_private_apitest.cc @@ -9,6 +9,7 @@ #include "chrome/browser/profiles/profile.h" #include "chrome/browser/ui/browser.h" #include "chrome/test/base/ui_test_utils.h" +#include "chromeos/dbus/cros_disks_client.h" #include "chromeos/disks/mock_disk_mount_manager.h" #include "content/public/browser/browser_context.h" #include "content/public/browser/storage_partition.h" @@ -16,10 +17,7 @@ #include "webkit/fileapi/file_system_mount_point_provider.h" using ::testing::_; -using ::testing::AnyNumber; using ::testing::ReturnRef; -using ::testing::StrEq; -using content::BrowserContext; using chromeos::disks::DiskMountManager; @@ -46,8 +44,8 @@ struct TestDiskInfo { }; struct TestMountPoint { - const char* source_path; - const char* mount_path; + std::string source_path; + std::string mount_path; chromeos::MountType mount_type; chromeos::disks::MountCondition mount_condition; @@ -115,38 +113,6 @@ TestDiskInfo kTestDisks[] = { } }; -TestMountPoint kTestMountPoints[] = { - { - "device_path1", - "/media/removable/mount_path1", - chromeos::MOUNT_TYPE_DEVICE, - chromeos::disks::MOUNT_CONDITION_NONE, - 0 - }, - { - "device_path2", - "/media/removable/mount_path2", - chromeos::MOUNT_TYPE_DEVICE, - chromeos::disks::MOUNT_CONDITION_NONE, - 1 - }, - { - "device_path3", - "/media/removable/mount_path3", - chromeos::MOUNT_TYPE_DEVICE, - chromeos::disks::MOUNT_CONDITION_NONE, - 2 - }, - { - "/media/removable/archive_path", - "/media/archive/archive_mount_path", - chromeos::MOUNT_TYPE_ARCHIVE, - chromeos::disks::MOUNT_CONDITION_NONE, - -1 - } -}; - - } // namespace class ExtensionFileBrowserPrivateApiTest : public ExtensionApiTest { @@ -186,6 +152,41 @@ class ExtensionFileBrowserPrivateApiTest : public ExtensionApiTest { private: void InitMountPoints() { + const TestMountPoint kTestMountPoints[] = { + { + "device_path1", + chromeos::CrosDisksClient::GetRemovableDiskMountPoint().AppendASCII( + "mount_path1").AsUTF8Unsafe(), + chromeos::MOUNT_TYPE_DEVICE, + chromeos::disks::MOUNT_CONDITION_NONE, + 0 + }, + { + "device_path2", + chromeos::CrosDisksClient::GetRemovableDiskMountPoint().AppendASCII( + "mount_path2").AsUTF8Unsafe(), + chromeos::MOUNT_TYPE_DEVICE, + chromeos::disks::MOUNT_CONDITION_NONE, + 1 + }, + { + "device_path3", + chromeos::CrosDisksClient::GetRemovableDiskMountPoint().AppendASCII( + "mount_path3").AsUTF8Unsafe(), + chromeos::MOUNT_TYPE_DEVICE, + chromeos::disks::MOUNT_CONDITION_NONE, + 2 + }, + { + "archive_path", + chromeos::CrosDisksClient::GetArchiveMountPoint().AppendASCII( + "archive_mount_path").AsUTF8Unsafe(), + chromeos::MOUNT_TYPE_ARCHIVE, + chromeos::disks::MOUNT_CONDITION_NONE, + -1 + } + }; + for (size_t i = 0; i < arraysize(kTestMountPoints); i++) { mount_points_.insert(DiskMountManager::MountPointMap::value_type( kTestMountPoints[i].mount_path, @@ -247,9 +248,10 @@ IN_PROC_BROWSER_TEST_F(ExtensionFileBrowserPrivateApiTest, FileBrowserMount) { EXPECT_CALL(*disk_mount_manager_mock_, UnmountPath(_, _)) .Times(0); EXPECT_CALL(*disk_mount_manager_mock_, - UnmountPath(StrEq("/media/archive/archive_mount_path"), - chromeos::UNMOUNT_OPTIONS_NONE)) - .Times(1); + UnmountPath( + chromeos::CrosDisksClient::GetArchiveMountPoint().AppendASCII( + "archive_mount_path").AsUTF8Unsafe(), + chromeos::UNMOUNT_OPTIONS_NONE)).Times(1); EXPECT_CALL(*disk_mount_manager_mock_, disks()) .WillRepeatedly(ReturnRef(volumes_)); diff --git a/chrome/test/data/extensions/api_test/filebrowser_mount/test.js b/chrome/test/data/extensions/api_test/filebrowser_mount/test.js index b6b6812..f6a141e 100644 --- a/chrome/test/data/extensions/api_test/filebrowser_mount/test.js +++ b/chrome/test/data/extensions/api_test/filebrowser_mount/test.js @@ -53,7 +53,7 @@ var expectedVolume3 = { // and values sorted by mountPath. var expectedMountPoints = [ { - sourcePath: '/media/removable/archive_path', + sourcePath: 'archive_path', mountPath: 'archive/archive_mount_path', mountType: 'file', mountCondition: '' diff --git a/chromeos/dbus/cros_disks_client.cc b/chromeos/dbus/cros_disks_client.cc index ab24b37..0116a63 100644 --- a/chromeos/dbus/cros_disks_client.cc +++ b/chromeos/dbus/cros_disks_client.cc @@ -7,6 +7,8 @@ #include <map> #include "base/bind.h" +#include "base/chromeos/chromeos_version.h" +#include "base/files/file_path.h" #include "base/stl_util.h" #include "base/stringprintf.h" #include "dbus/bus.h" @@ -610,4 +612,18 @@ CrosDisksClient* CrosDisksClient::Create(DBusClientImplementationType type, return new CrosDisksClientStubImpl(); } +// static +base::FilePath CrosDisksClient::GetArchiveMountPoint() { + return base::FilePath(base::chromeos::IsRunningOnChromeOS() ? + FILE_PATH_LITERAL("/media/archive") : + FILE_PATH_LITERAL("/tmp/chromeos/media/archive")); +} + +// static +base::FilePath CrosDisksClient::GetRemovableDiskMountPoint() { + return base::FilePath(base::chromeos::IsRunningOnChromeOS() ? + FILE_PATH_LITERAL("/media/removable") : + FILE_PATH_LITERAL("/tmp/chromeos/media/removable")); +} + } // namespace chromeos diff --git a/chromeos/dbus/cros_disks_client.h b/chromeos/dbus/cros_disks_client.h index ea0e425..047aeca 100644 --- a/chromeos/dbus/cros_disks_client.h +++ b/chromeos/dbus/cros_disks_client.h @@ -13,6 +13,10 @@ #include "chromeos/chromeos_export.h" #include "chromeos/dbus/dbus_client_implementation_type.h" +namespace base { +class FilePath; +} + namespace dbus { class Bus; class Response; @@ -288,6 +292,12 @@ class CHROMEOS_EXPORT CrosDisksClient { static CrosDisksClient* Create(DBusClientImplementationType type, dbus::Bus* bus); + // Returns the path of the mount point for archive files. + static base::FilePath GetArchiveMountPoint(); + + // Returns the path of the mount point for removable disks. + static base::FilePath GetRemovableDiskMountPoint(); + protected: // Create() should be used instead. CrosDisksClient(); diff --git a/webkit/chromeos/DEPS b/webkit/chromeos/DEPS new file mode 100644 index 0000000..79b8e8b --- /dev/null +++ b/webkit/chromeos/DEPS @@ -0,0 +1,3 @@ +include_rules = [ + "+chromeos", +] diff --git a/webkit/chromeos/fileapi/cros_mount_point_provider.cc b/webkit/chromeos/fileapi/cros_mount_point_provider.cc index 7f13002..731b10c 100644 --- a/webkit/chromeos/fileapi/cros_mount_point_provider.cc +++ b/webkit/chromeos/fileapi/cros_mount_point_provider.cc @@ -11,6 +11,7 @@ #include "base/stringprintf.h" #include "base/synchronization/lock.h" #include "base/utf_string_conversions.h" +#include "chromeos/dbus/cros_disks_client.h" #include "third_party/WebKit/Source/Platform/chromium/public/WebCString.h" #include "third_party/WebKit/Source/Platform/chromium/public/WebFileSystem.h" #include "third_party/WebKit/Source/Platform/chromium/public/WebString.h" @@ -57,6 +58,19 @@ CrosMountPointProvider::CrosMountPointProvider( new fileapi::IsolatedFileUtil())), mount_points_(mount_points), system_mount_points_(system_mount_points) { + // Add default system mount points. + system_mount_points_->RegisterFileSystem( + "archive", + fileapi::kFileSystemTypeNativeLocal, + chromeos::CrosDisksClient::GetArchiveMountPoint()); + system_mount_points_->RegisterFileSystem( + "removable", + fileapi::kFileSystemTypeNativeLocal, + chromeos::CrosDisksClient::GetRemovableDiskMountPoint()); + system_mount_points_->RegisterFileSystem( + "oem", + fileapi::kFileSystemTypeRestrictedNativeLocal, + base::FilePath(FILE_PATH_LITERAL("/usr/share/oem"))); } CrosMountPointProvider::~CrosMountPointProvider() { diff --git a/webkit/chromeos/fileapi/cros_mount_point_provider_unittest.cc b/webkit/chromeos/fileapi/cros_mount_point_provider_unittest.cc index 1910ee3..22f74df 100644 --- a/webkit/chromeos/fileapi/cros_mount_point_provider_unittest.cc +++ b/webkit/chromeos/fileapi/cros_mount_point_provider_unittest.cc @@ -7,6 +7,7 @@ #include <set> #include "base/files/file_path.h" +#include "chromeos/dbus/cros_disks_client.h" #include "googleurl/src/url_util.h" #include "testing/gtest/include/gtest/gtest.h" #include "webkit/fileapi/external_mount_points.h" @@ -45,8 +46,10 @@ TEST(CrosMountPointProviderTest, DefaultMountPoints) { // By default there should be 3 mount points (in system mount points): EXPECT_EQ(3u, root_dirs.size()); - EXPECT_TRUE(root_dirs_set.count(base::FilePath(FPL("/media/removable")))); - EXPECT_TRUE(root_dirs_set.count(base::FilePath(FPL("/media/archive")))); + EXPECT_TRUE(root_dirs_set.count( + chromeos::CrosDisksClient::GetRemovableDiskMountPoint())); + EXPECT_TRUE(root_dirs_set.count( + chromeos::CrosDisksClient::GetArchiveMountPoint())); EXPECT_TRUE(root_dirs_set.count(base::FilePath(FPL("/usr/share/oem")))); } @@ -64,6 +67,8 @@ TEST(CrosMountPointProviderTest, GetRootDirectories) { mount_points.get(), system_mount_points.get()); + const size_t initial_root_dirs_size = provider.GetRootDirectories().size(); + // Register 'local' test mount points. mount_points->RegisterFileSystem("c", fileapi::kFileSystemTypeNativeLocal, @@ -82,7 +87,7 @@ TEST(CrosMountPointProviderTest, GetRootDirectories) { std::vector<base::FilePath> root_dirs = provider.GetRootDirectories(); std::set<base::FilePath> root_dirs_set(root_dirs.begin(), root_dirs.end()); - EXPECT_EQ(4u, root_dirs.size()); + EXPECT_EQ(initial_root_dirs_size + 4, root_dirs.size()); EXPECT_TRUE(root_dirs_set.count(base::FilePath(FPL("/a/b/c")))); EXPECT_TRUE(root_dirs_set.count(base::FilePath(FPL("/b/c/d")))); EXPECT_TRUE(root_dirs_set.count(base::FilePath(FPL("/g/c/d")))); diff --git a/webkit/fileapi/external_mount_points.cc b/webkit/fileapi/external_mount_points.cc index 5c84c1b..58a8883 100644 --- a/webkit/fileapi/external_mount_points.cc +++ b/webkit/fileapi/external_mount_points.cc @@ -37,7 +37,6 @@ class SystemMountPointsLazyWrapper { public: SystemMountPointsLazyWrapper() : system_mount_points_(fileapi::ExternalMountPoints::CreateRefCounted()) { - RegisterDefaultMountPoints(); } ~SystemMountPointsLazyWrapper() {} @@ -47,24 +46,6 @@ class SystemMountPointsLazyWrapper { } private: - void RegisterDefaultMountPoints() { -#if defined(OS_CHROMEOS) - // Add default system mount points. - system_mount_points_->RegisterFileSystem( - "archive", - fileapi::kFileSystemTypeNativeLocal, - base::FilePath(FILE_PATH_LITERAL("/media/archive"))); - system_mount_points_->RegisterFileSystem( - "removable", - fileapi::kFileSystemTypeNativeLocal, - base::FilePath(FILE_PATH_LITERAL("/media/removable"))); - system_mount_points_->RegisterFileSystem( - "oem", - fileapi::kFileSystemTypeRestrictedNativeLocal, - base::FilePath(FILE_PATH_LITERAL("/usr/share/oem"))); -#endif // defined(OS_CHROMEOS) - } - scoped_refptr<fileapi::ExternalMountPoints> system_mount_points_; }; @@ -351,4 +332,3 @@ ScopedExternalFileSystem::~ScopedExternalFileSystem() { } } // namespace fileapi - |