summaryrefslogtreecommitdiffstats
path: root/webkit
diff options
context:
space:
mode:
authorkinuko@chromium.org <kinuko@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98>2012-08-13 11:39:18 +0000
committerkinuko@chromium.org <kinuko@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98>2012-08-13 11:39:18 +0000
commit98a15b108d3e4c8321a6efbf807b060f28fb4db3 (patch)
treeca788cb88445d4752f2fad92636c3d98ae630ff5 /webkit
parenteecb70f89ce0302c169267beaefcdf7d63e45f65 (diff)
downloadchromium_src-98a15b108d3e4c8321a6efbf807b060f28fb4db3.zip
chromium_src-98a15b108d3e4c8321a6efbf807b060f28fb4db3.tar.gz
chromium_src-98a15b108d3e4c8321a6efbf807b060f28fb4db3.tar.bz2
Invalid FileSystemURL should not be given to FileUtils
(In usual call path it errors out before it calls into FileUtil) BUG=none TEST=IsolatedFileUtilTest.UnregisteredPathsTest Review URL: https://chromiumcodereview.appspot.com/10825316 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@151253 0039d316-1c4b-4281-b951-d872f2087c98
Diffstat (limited to 'webkit')
-rw-r--r--webkit/fileapi/isolated_file_util.cc4
-rw-r--r--webkit/fileapi/isolated_file_util_unittest.cc13
2 files changed, 10 insertions, 7 deletions
diff --git a/webkit/fileapi/isolated_file_util.cc b/webkit/fileapi/isolated_file_util.cc
index d618978..24ff4ab 100644
--- a/webkit/fileapi/isolated_file_util.cc
+++ b/webkit/fileapi/isolated_file_util.cc
@@ -118,6 +118,7 @@ PlatformFileError IsolatedFileUtil::GetLocalFilePath(
const FileSystemURL& url,
FilePath* local_file_path) {
DCHECK(local_file_path);
+ DCHECK(url.is_valid());
if (url.path().empty()) {
// Root direcory case, which should not be accessed.
return base::PLATFORM_FILE_ERROR_ACCESS_DENIED;
@@ -137,6 +138,7 @@ PlatformFileError DraggedFileUtil::GetFileInfo(
FilePath* platform_path) {
DCHECK(file_info);
std::string filesystem_id;
+ DCHECK(url.is_valid());
if (url.path().empty()) {
// The root directory case.
// For now we leave three time fields (modified/accessed/creation time)
@@ -164,6 +166,7 @@ DraggedFileUtil::CreateFileEnumerator(
FileSystemOperationContext* context,
const FileSystemURL& root,
bool recursive) {
+ DCHECK(root.is_valid());
if (!root.path().empty())
return NativeFileUtil::CreateFileEnumerator(root.path(), recursive);
@@ -179,6 +182,7 @@ DraggedFileUtil::CreateFileEnumerator(
bool DraggedFileUtil::IsDirectoryEmpty(
FileSystemOperationContext* context,
const FileSystemURL& url) {
+ DCHECK(url.is_valid());
if (url.path().empty()) {
// The root directory case.
std::vector<FileInfo> toplevels;
diff --git a/webkit/fileapi/isolated_file_util_unittest.cc b/webkit/fileapi/isolated_file_util_unittest.cc
index d3e6303..03953c8 100644
--- a/webkit/fileapi/isolated_file_util_unittest.cc
+++ b/webkit/fileapi/isolated_file_util_unittest.cc
@@ -20,6 +20,7 @@
#include "webkit/fileapi/file_util_helper.h"
#include "webkit/fileapi/isolated_context.h"
#include "webkit/fileapi/isolated_file_util.h"
+#include "webkit/fileapi/local_file_system_operation.h"
#include "webkit/fileapi/local_file_system_test_helper.h"
#include "webkit/fileapi/local_file_util.h"
#include "webkit/fileapi/mock_file_system_options.h"
@@ -299,13 +300,11 @@ TEST_F(IsolatedFileUtilTest, UnregisteredPathsTest) {
const test::TestCaseRecord& test_case = kUnregisteredCases[i];
FileSystemURL url = GetFileSystemURL(FilePath(test_case.path));
- // This should fail as the paths in kUnregisteredCases are not included
- // in the dropped files (i.e. the regular test cases).
- base::PlatformFileInfo info;
- FilePath platform_path;
- FileSystemOperationContext context(file_system_context());
- ASSERT_EQ(base::PLATFORM_FILE_ERROR_NOT_FOUND,
- file_util()->GetFileInfo(&context, url, &info, &platform_path));
+ // We should not be able to get the valid URL for unregistered files.
+ ASSERT_FALSE(url.is_valid());
+
+ // We should not be able to create a new operation for an invalid URL.
+ ASSERT_EQ(NULL, file_system_context()->CreateFileSystemOperation(url));
}
}