Changeset 80313 in webkit


Ignore:
Timestamp:
Mar 3, 2011 8:25:39 PM (13 years ago)
Author:
commit-queue@webkit.org
Message:

2011-03-03 Adam Klein <adamk@chromium.org>

Reviewed by David Levin.

[fileapi] Tighten up ResolveURICallbacks
https://bugs.webkit.org/show_bug.cgi?id=55638

Two changes:

  • Retry only on TYPE_MISMATCH_ERR now that Chromium properly sets that error code.
  • Call DirectoryEntry instead of DOMFileSystem methods.

No change in behavior, so no new tests.

  • fileapi/FileSystemCallbacks.cpp: (WebCore::ResolveURICallbacks::didOpenFileSystem):
Location:
trunk/Source/WebCore
Files:
2 edited

Legend:

Unmodified
Added
Removed
  • trunk/Source/WebCore/ChangeLog

    r80310 r80313  
     12011-03-03  Adam Klein  <adamk@chromium.org>
     2
     3        Reviewed by David Levin.
     4
     5        [fileapi] Tighten up ResolveURICallbacks
     6        https://bugs.webkit.org/show_bug.cgi?id=55638
     7
     8        Two changes:
     9          - Retry only on TYPE_MISMATCH_ERR now that Chromium
     10            properly sets that error code.
     11          - Call DirectoryEntry instead of DOMFileSystem methods.
     12
     13        No change in behavior, so no new tests.
     14
     15        * fileapi/FileSystemCallbacks.cpp:
     16        (WebCore::ResolveURICallbacks::didOpenFileSystem):
     17
    1182011-03-03  Anders Carlsson  <andersca@apple.com>
    219
  • trunk/Source/WebCore/fileapi/FileSystemCallbacks.cpp

    r79917 r80313  
    199199class ErrorCallbackWrapper : public ErrorCallback {
    200200public:
    201     static PassRefPtr<ErrorCallbackWrapper> create(PassRefPtr<DOMFileSystem> fileSystem, PassRefPtr<EntryCallback> successCallback, PassRefPtr<ErrorCallback> errorCallback, const String& filePath)
     201    static PassRefPtr<ErrorCallbackWrapper> create(PassRefPtr<EntryCallback> successCallback, PassRefPtr<ErrorCallback> errorCallback, PassRefPtr<DirectoryEntry> root, const String& filePath)
    202202    {
    203         return adoptRef(new ErrorCallbackWrapper(fileSystem, successCallback, errorCallback, filePath));
     203        return adoptRef(new ErrorCallbackWrapper(successCallback, errorCallback, root, filePath));
    204204    }
    205205
     
    207207    {
    208208        ASSERT(error);
    209         // FIXME: Only check for TYPE_MISMATCH_ERR once Chromium is fixed to return that as required by the spec.
    210         if (error->code() == FileError::TYPE_MISMATCH_ERR || error->code() == FileError::INVALID_STATE_ERR)
    211             m_fileSystem->getFile(m_fileSystem->root().get(), m_filePath, 0, m_successCallback, m_errorCallback);
     209        if (error->code() == FileError::TYPE_MISMATCH_ERR)
     210            m_root->getFile(m_filePath, 0, m_successCallback, m_errorCallback);
    212211        else if (m_errorCallback)
    213212            m_errorCallback->handleEvent(error);
     
    216215
    217216private:
    218     ErrorCallbackWrapper(PassRefPtr<DOMFileSystem> fileSystem, PassRefPtr<EntryCallback> successCallback, PassRefPtr<ErrorCallback> errorCallback, const String& filePath)
    219         : m_fileSystem(fileSystem)
    220         , m_successCallback(successCallback)
     217    ErrorCallbackWrapper(PassRefPtr<EntryCallback> successCallback, PassRefPtr<ErrorCallback> errorCallback, PassRefPtr<DirectoryEntry> root, const String& filePath)
     218        : m_successCallback(successCallback)
    221219        , m_errorCallback(errorCallback)
     220        , m_root(root)
    222221        , m_filePath(filePath)
    223222    {
    224     }
    225 
    226     RefPtr<DOMFileSystem> m_fileSystem;
     223        ASSERT(m_root);
     224    }
     225
    227226    RefPtr<EntryCallback> m_successCallback;
    228227    RefPtr<ErrorCallback> m_errorCallback;
     228    RefPtr<DirectoryEntry> m_root;
    229229    String m_filePath;
    230230};
     
    248248{
    249249    ASSERT(asyncFileSystem);
    250     RefPtr<DOMFileSystem> fileSystem = DOMFileSystem::create(m_scriptExecutionContext.get(), name, asyncFileSystem.leakPtr());
    251     fileSystem->getDirectory(fileSystem->root().get(), m_filePath, 0, m_successCallback, ErrorCallbackWrapper::create(fileSystem, m_successCallback, m_errorCallback, m_filePath));
     250    RefPtr<DirectoryEntry> root = DOMFileSystem::create(m_scriptExecutionContext.get(), name, asyncFileSystem.leakPtr())->root();
     251    root->getDirectory(m_filePath, 0, m_successCallback, ErrorCallbackWrapper::create(m_successCallback, m_errorCallback, root, m_filePath));
    252252}
    253253
Note: See TracChangeset for help on using the changeset viewer.