Index: webkit/fileapi/file_system_url.cc |
diff --git a/webkit/fileapi/file_system_url.cc b/webkit/fileapi/file_system_url.cc |
index d83310d425ee7c42e7f17e13930d6268a0b9d77c..ab0c2d8f6838d4f6f578ff9c4d8108b8c2be3943 100644 |
--- a/webkit/fileapi/file_system_url.cc |
+++ b/webkit/fileapi/file_system_url.cc |
@@ -6,6 +6,7 @@ |
#include "webkit/fileapi/file_system_types.h" |
#include "webkit/fileapi/file_system_util.h" |
+#include "webkit/fileapi/isolated_context.h" |
namespace fileapi { |
@@ -15,6 +16,7 @@ FileSystemURL::FileSystemURL() |
FileSystemURL::FileSystemURL(const GURL& url) |
: type_(kFileSystemTypeUnknown) { |
is_valid_ = CrackFileSystemURL(url, &origin_, &type_, &path_); |
+ MayCrackIsolatedPath(); |
} |
FileSystemURL::FileSystemURL( |
@@ -24,7 +26,9 @@ FileSystemURL::FileSystemURL( |
: origin_(origin), |
type_(type), |
path_(path), |
- is_valid_(true) {} |
+ is_valid_(true) { |
+ MayCrackIsolatedPath(); |
+} |
FileSystemURL::~FileSystemURL() {} |
@@ -43,7 +47,17 @@ bool FileSystemURL::operator==(const FileSystemURL& that) const { |
return origin_ == that.origin_ && |
type_ == that.type_ && |
path_ == that.path_ && |
+ filesystem_id_ == that.filesystem_id_ && |
is_valid_ == that.is_valid_; |
} |
+void FileSystemURL::MayCrackIsolatedPath() { |
+ if (is_valid_ && type_ == kFileSystemTypeIsolated) { |
+ // If the type is isolated, crack the path further to get the 'real' |
+ // filesystem type and path. |
+ is_valid_ = IsolatedContext::GetInstance()->CrackIsolatedPath( |
+ path_, &filesystem_id_, &type_, &path_); |
+ } |
+} |
+ |
} // namespace fileapi |