Index: webkit/fileapi/file_system_context.cc |
diff --git a/webkit/fileapi/file_system_context.cc b/webkit/fileapi/file_system_context.cc |
index 017cf29f417ed78b3a73a84a6a864fdbf0f909b5..e19d5da4fff27df94f582d95d7b743c9b166bf62 100644 |
--- a/webkit/fileapi/file_system_context.cc |
+++ b/webkit/fileapi/file_system_context.cc |
@@ -141,6 +141,7 @@ FileSystemMountPointProvider* FileSystemContext::GetMountPointProvider( |
case kFileSystemTypeSyncable: |
return sandbox_provider_.get(); |
case kFileSystemTypeExternal: |
+ case kFileSystemTypeExternalFullPath: |
case kFileSystemTypeDrive: |
case kFileSystemTypeRestrictedNativeLocal: |
return external_provider_.get(); |
@@ -351,17 +352,22 @@ FileSystemURL FileSystemContext::CrackFileSystemURL( |
// This is valid situation for non isolated/external file systems. |
FileSystemURL result = url; |
- for (size_t i = 0; i < url_crackers_.size(); ++i) { |
- if (!url_crackers_[i]->HandlesFileSystemMountType(url.type())) |
- continue; |
- |
- result = url_crackers_[i]->CreateCrackedFileSystemURL(url.origin(), |
- url.type(), |
- url.path()); |
- if (result.is_valid()) |
- return result; |
+ bool cracked = true; |
+ while (cracked) { |
+ LOG(ERROR) << "CRACKING: " << result.type() << " " << result.path().value(); |
+ cracked = false; |
+ for (size_t i = 0; i < url_crackers_.size(); ++i) { |
+ if (!url_crackers_[i]->HandlesFileSystemMountType(result.type())) |
+ continue; |
+ |
+ result = url_crackers_[i]->CrackFileSystemURL(result); |
+ if (result.is_valid()) { |
+ cracked = true; |
+ break; |
+ } |
+ } |
} |
- |
+ LOG(ERROR) << "RESULT: " << result.type() << " " << result.path().value(); |
return result; |
} |