diff options
author | kinuko@chromium.org <kinuko@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98> | 2013-12-05 05:08:06 +0000 |
---|---|---|
committer | kinuko@chromium.org <kinuko@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98> | 2013-12-05 05:08:06 +0000 |
commit | 8f477c00fe9d679700a3a3d03d3b99cba72a0ca9 (patch) | |
tree | 973c63ff1d90758a4360f7eaca922693c60055a0 /webkit | |
parent | 415685768907a8cb23312931affb64b535e5bf94 (diff) | |
download | chromium_src-8f477c00fe9d679700a3a3d03d3b99cba72a0ca9.zip chromium_src-8f477c00fe9d679700a3a3d03d3b99cba72a0ca9.tar.gz chromium_src-8f477c00fe9d679700a3a3d03d3b99cba72a0ca9.tar.bz2 |
Don't revoke SyncFileSystem in SyncFileSystemBackend dtor
Revoking SyncFileSystem globally removes the
'syncfs' mount point, which could cause INVALID_URL error (== EncodingError) on any syncfs URL conversions.
Also added ExternalFileSystem::RevokeAllFileSystems() so that tests like
ChromeOSFileSystemBackendTest.DefaultMountPoints that assumes no
global external mount points are registered before the test runs can use it.
(Ideally we should call RevokeAllFileSystems() at the end of all tests that create
FileSystemContext, but that sounds impractical)
BUG=325588
Review URL: https://codereview.chromium.org/101523004
git-svn-id: svn://svn.chromium.org/chrome/trunk/src@238901 0039d316-1c4b-4281-b951-d872f2087c98
Diffstat (limited to 'webkit')
-rw-r--r-- | webkit/browser/fileapi/external_mount_points.cc | 6 | ||||
-rw-r--r-- | webkit/browser/fileapi/external_mount_points.h | 3 |
2 files changed, 9 insertions, 0 deletions
diff --git a/webkit/browser/fileapi/external_mount_points.cc b/webkit/browser/fileapi/external_mount_points.cc index cfc155a..137db87 100644 --- a/webkit/browser/fileapi/external_mount_points.cc +++ b/webkit/browser/fileapi/external_mount_points.cc @@ -233,6 +233,12 @@ FileSystemURL ExternalMountPoints::CreateExternalFileSystemURL( base::FilePath::kSeparators[0] + path.value())); } +void ExternalMountPoints::RevokeAllFileSystems() { + base::AutoLock locker(lock_); + instance_map_.clear(); + path_to_name_map_.clear(); +} + ExternalMountPoints::ExternalMountPoints() {} ExternalMountPoints::~ExternalMountPoints() { diff --git a/webkit/browser/fileapi/external_mount_points.h b/webkit/browser/fileapi/external_mount_points.h index e4d059f..e4ce660 100644 --- a/webkit/browser/fileapi/external_mount_points.h +++ b/webkit/browser/fileapi/external_mount_points.h @@ -101,6 +101,9 @@ class WEBKIT_STORAGE_BROWSER_EXPORT ExternalMountPoints const std::string& mount_name, const base::FilePath& path) const; + // Revoke all registered filesystems. Used only by testing (for clean-ups). + void RevokeAllFileSystems(); + private: friend class base::RefCountedThreadSafe<ExternalMountPoints>; |