| Index: Source/modules/filesystem/WorkerGlobalScopeFileSystem.cpp
|
| diff --git a/Source/modules/filesystem/WorkerGlobalScopeFileSystem.cpp b/Source/modules/filesystem/WorkerGlobalScopeFileSystem.cpp
|
| index 5e32339cc81b115efa17ef1bd18c71c5030f7b46..0f9e22f1aef0aa507e94b7ff4ccdc61f172f0fca 100644
|
| --- a/Source/modules/filesystem/WorkerGlobalScopeFileSystem.cpp
|
| +++ b/Source/modules/filesystem/WorkerGlobalScopeFileSystem.cpp
|
| @@ -95,14 +95,12 @@ void WorkerGlobalScopeFileSystem::webkitResolveLocalFileSystemURL(WorkerGlobalSc
|
| return;
|
| }
|
|
|
| - FileSystemType type;
|
| - String filePath;
|
| - if (!completedURL.isValid() || !DOMFileSystemBase::crackFileSystemURL(completedURL, type, filePath)) {
|
| + if (!completedURL.isValid()) {
|
| DOMFileSystem::scheduleCallback(worker, errorCallback, FileError::create(FileError::ENCODING_ERR));
|
| return;
|
| }
|
|
|
| - WorkerLocalFileSystem::from(worker)->readFileSystem(worker, type, ResolveURICallbacks::create(successCallback, errorCallback, worker, type, filePath));
|
| + WorkerLocalFileSystem::from(worker)->resolveURL(worker, completedURL, ResolveURICallbacks::create(successCallback, errorCallback, worker));
|
| }
|
|
|
| PassRefPtr<EntrySync> WorkerGlobalScopeFileSystem::webkitResolveLocalFileSystemSyncURL(WorkerGlobalScope* worker, const String& url, ExceptionState& es)
|
| @@ -114,28 +112,20 @@ PassRefPtr<EntrySync> WorkerGlobalScopeFileSystem::webkitResolveLocalFileSystemS
|
| return 0;
|
| }
|
|
|
| - FileSystemType type;
|
| - String filePath;
|
| - if (!completedURL.isValid() || !DOMFileSystemBase::crackFileSystemURL(completedURL, type, filePath)) {
|
| + if (!completedURL.isValid()) {
|
| es.throwDOMException(EncodingError, ExceptionMessages::failedToExecute("webkitResolveLocalFileSystemSyncURL", "WorkerGlobalScopeFileSystem", "the URL '" + url + "' is invalid."));
|
| return 0;
|
| }
|
|
|
| - FileSystemSyncCallbackHelper readFileSystemHelper;
|
| - OwnPtr<AsyncFileSystemCallbacks> callbacks = FileSystemCallbacks::create(readFileSystemHelper.successCallback(), readFileSystemHelper.errorCallback(), worker, type);
|
| + EntrySyncCallbackHelper resolveURLHelper;
|
| + OwnPtr<AsyncFileSystemCallbacks> callbacks = ResolveURICallbacks::create(resolveURLHelper.successCallback(), resolveURLHelper.errorCallback(), worker);
|
| callbacks->setShouldBlockUntilCompletion(true);
|
|
|
| - WorkerLocalFileSystem::from(worker)->readFileSystem(worker, type, callbacks.release());
|
| - RefPtr<DOMFileSystemSync> fileSystem = readFileSystemHelper.getResult(es);
|
| - if (!fileSystem)
|
| - return 0;
|
| -
|
| - RefPtr<EntrySync> entry = fileSystem->root()->getDirectory(filePath, Dictionary(), es);
|
| - if (es.code() == TypeMismatchError) {
|
| - es.clearException();
|
| - return fileSystem->root()->getFile(filePath, Dictionary(), es);
|
| - }
|
| + WorkerLocalFileSystem::from(worker)->resolveURL(worker, completedURL, callbacks.release());
|
|
|
| + RefPtr<EntrySync> entry = resolveURLHelper.getResult(es);
|
| + if (!entry)
|
| + return 0;
|
| return entry.release();
|
| }
|
|
|
|
|