Changeset 83972 in webkit


Ignore:
Timestamp:
Apr 15, 2011 7:35:32 AM (13 years ago)
Author:
commit-queue@webkit.org
Message:

2011-04-15 Zelidrag Hornung <zelidrag@chromium.org>

Reviewed by Darin Fisher.

Added enums for external file system type.
https://bugs.webkit.org/show_bug.cgi?id=58456

  • fileapi/DOMFileSystemBase.cpp: (WebCore::DOMFileSystemBase::crackFileSystemURL):
  • fileapi/DOMFileSystemBase.h:
  • fileapi/EntryBase.cpp: (WebCore::EntryBase::toURL):
  • page/DOMWindow.cpp: (WebCore::DOMWindow::requestFileSystem):
  • page/DOMWindow.h:
  • platform/AsyncFileSystem.h:
  • workers/WorkerContext.cpp: (WebCore::WorkerContext::requestFileSystem): (WebCore::WorkerContext::requestFileSystemSync):
  • workers/WorkerContext.h:

2011-04-15 Zelidrag Hornung <zelidrag@chromium.org>

Reviewed by Darin Fisher.

Added enums for external file system type and exposed factory function
for creating File- and DirectoryEntry objects from Chromium side.
https://bugs.webkit.org/show_bug.cgi?id=58456

  • public/WebFileSystem.h:
  • public/WebFrame.h:
  • src/AssertMatchingEnums.cpp:
  • src/WebFrameImpl.cpp: (WebKit::WebFrameImpl::createFileSystem): (WebKit::WebFrameImpl::createFileEntry):
  • src/WebFrameImpl.h:
Location:
trunk/Source
Files:
15 edited

Legend:

Unmodified
Added
Removed
  • trunk/Source/WebCore/ChangeLog

    r83969 r83972  
     12011-04-15  Zelidrag Hornung  <zelidrag@chromium.org>
     2
     3        Reviewed by Darin Fisher.
     4
     5        Added enums for external file system type.
     6        https://bugs.webkit.org/show_bug.cgi?id=58456
     7
     8        * fileapi/DOMFileSystemBase.cpp:
     9        (WebCore::DOMFileSystemBase::crackFileSystemURL):
     10        * fileapi/DOMFileSystemBase.h:
     11        * fileapi/EntryBase.cpp:
     12        (WebCore::EntryBase::toURL):
     13        * page/DOMWindow.cpp:
     14        (WebCore::DOMWindow::requestFileSystem):
     15        * page/DOMWindow.h:
     16        * platform/AsyncFileSystem.h:
     17        * workers/WorkerContext.cpp:
     18        (WebCore::WorkerContext::requestFileSystem):
     19        (WebCore::WorkerContext::requestFileSystemSync):
     20        * workers/WorkerContext.h:
     21
    1222011-04-15  Pavel Feldman  <pfeldman@google.com>
    223
  • trunk/Source/WebCore/fileapi/DOMFileSystemBase.cpp

    r79917 r83972  
    5555const char DOMFileSystemBase::kTemporaryPathPrefix[] = "temporary";
    5656const size_t DOMFileSystemBase::kTemporaryPathPrefixLength = sizeof(DOMFileSystemBase::kTemporaryPathPrefix) - 1;
     57const char DOMFileSystemBase::kExternalPathPrefix[] = "external";
     58const size_t DOMFileSystemBase::kExternalPathPrefixLength = sizeof(DOMFileSystemBase::kExternalPathPrefix) - 1;
    5759
    5860bool DOMFileSystemBase::crackFileSystemURL(const KURL& url, AsyncFileSystem::Type& type, String& filePath)
     
    7375        type = AsyncFileSystem::Persistent;
    7476        path = path.substring(kPersistentPathPrefixLength);
     77    } else if (path.startsWith(kExternalPathPrefix)) {
     78        type = AsyncFileSystem::External;
     79        path = path.substring(kExternalPathPrefixLength);
    7580    } else
    7681        return false;
  • trunk/Source/WebCore/fileapi/DOMFileSystemBase.h

    r79917 r83972  
    6767    static const char kTemporaryPathPrefix[];
    6868    static const size_t kTemporaryPathPrefixLength;
     69    static const char kExternalPathPrefix[];
     70    static const size_t kExternalPathPrefixLength;
    6971    static bool crackFileSystemURL(const KURL&, AsyncFileSystem::Type&, String& filePath);
    7072
  • trunk/Source/WebCore/fileapi/EntryBase.cpp

    r81438 r83972  
    6565    result.append(originString);
    6666    result.append("/");
    67     result.append(m_fileSystem->asyncFileSystem()->type() == AsyncFileSystem::Temporary ? DOMFileSystemBase::kTemporaryPathPrefix : DOMFileSystemBase::kPersistentPathPrefix);
     67    switch (m_fileSystem->asyncFileSystem()->type()) {
     68    case AsyncFileSystem::Temporary:
     69        result.append(DOMFileSystemBase::kTemporaryPathPrefix);
     70        break;
     71    case AsyncFileSystem::Persistent:
     72        result.append(DOMFileSystemBase::kPersistentPathPrefix);
     73        break;
     74    case AsyncFileSystem::External:
     75        result.append(DOMFileSystemBase::kExternalPathPrefix);
     76        break;
     77    }
    6878    result.append(m_fullPath);
    6979    return result.toString();
  • trunk/Source/WebCore/page/DOMWindow.cpp

    r83375 r83972  
    756756
    757757    AsyncFileSystem::Type fileSystemType = static_cast<AsyncFileSystem::Type>(type);
    758     if (fileSystemType != AsyncFileSystem::Temporary && fileSystemType != AsyncFileSystem::Persistent) {
     758    if (fileSystemType != AsyncFileSystem::Temporary && fileSystemType != AsyncFileSystem::Persistent && fileSystemType != AsyncFileSystem::External) {
    759759        DOMFileSystem::scheduleCallback(document, errorCallback, FileError::create(FileError::INVALID_MODIFICATION_ERR));
    760760        return;
     
    789789COMPILE_ASSERT(static_cast<int>(DOMWindow::TEMPORARY) == static_cast<int>(AsyncFileSystem::Temporary), enum_mismatch);
    790790COMPILE_ASSERT(static_cast<int>(DOMWindow::PERSISTENT) == static_cast<int>(AsyncFileSystem::Persistent), enum_mismatch);
     791COMPILE_ASSERT(static_cast<int>(DOMWindow::EXTERNAL) == static_cast<int>(AsyncFileSystem::External), enum_mismatch);
    791792
    792793#endif
  • trunk/Source/WebCore/page/DOMWindow.h

    r82925 r83972  
    387387            TEMPORARY,
    388388            PERSISTENT,
     389            EXTERNAL,
    389390        };
    390391        void requestFileSystem(int type, long long size, PassRefPtr<FileSystemCallback>, PassRefPtr<ErrorCallback>);
  • trunk/Source/WebCore/platform/AsyncFileSystem.h

    r78362 r83972  
    5454        Temporary,
    5555        Persistent,
     56        External,
    5657    };
    5758
  • trunk/Source/WebCore/workers/WorkerContext.cpp

    r83900 r83972  
    355355
    356356    AsyncFileSystem::Type fileSystemType = static_cast<AsyncFileSystem::Type>(type);
    357     if (fileSystemType != AsyncFileSystem::Temporary && fileSystemType != AsyncFileSystem::Persistent) {
     357    if (fileSystemType != AsyncFileSystem::Temporary && fileSystemType != AsyncFileSystem::Persistent && fileSystemType != AsyncFileSystem::External) {
    358358        DOMFileSystem::scheduleCallback(this, errorCallback, FileError::create(FileError::INVALID_MODIFICATION_ERR));
    359359        return;
     
    372372
    373373    AsyncFileSystem::Type fileSystemType = static_cast<AsyncFileSystem::Type>(type);
    374     if (fileSystemType != AsyncFileSystem::Temporary && fileSystemType != AsyncFileSystem::Persistent) {
     374    if (fileSystemType != AsyncFileSystem::Temporary && fileSystemType != AsyncFileSystem::Persistent && fileSystemType != AsyncFileSystem::External) {
    375375        ec = FileException::INVALID_MODIFICATION_ERR;
    376376        return 0;
     
    431431COMPILE_ASSERT(static_cast<int>(WorkerContext::TEMPORARY) == static_cast<int>(AsyncFileSystem::Temporary), enum_mismatch);
    432432COMPILE_ASSERT(static_cast<int>(WorkerContext::PERSISTENT) == static_cast<int>(AsyncFileSystem::Persistent), enum_mismatch);
     433COMPILE_ASSERT(static_cast<int>(WorkerContext::EXTERNAL) == static_cast<int>(AsyncFileSystem::External), enum_mismatch);
    433434#endif
    434435
  • trunk/Source/WebCore/workers/WorkerContext.h

    r83900 r83972  
    131131            TEMPORARY,
    132132            PERSISTENT,
     133            EXTERNAL,
    133134        };
    134135        void requestFileSystem(int type, long long size, PassRefPtr<FileSystemCallback> successCallback, PassRefPtr<ErrorCallback>);
  • trunk/Source/WebKit/chromium/ChangeLog

    r83958 r83972  
     12011-04-15  Zelidrag Hornung  <zelidrag@chromium.org>
     2
     3        Reviewed by Darin Fisher.
     4
     5        Added enums for external file system type and exposed factory function
     6        for creating File- and DirectoryEntry objects from Chromium side.
     7        https://bugs.webkit.org/show_bug.cgi?id=58456
     8
     9        * public/WebFileSystem.h:
     10        * public/WebFrame.h:
     11        * src/AssertMatchingEnums.cpp:
     12        * src/WebFrameImpl.cpp:
     13        (WebKit::WebFrameImpl::createFileSystem):
     14        (WebKit::WebFrameImpl::createFileEntry):
     15        * src/WebFrameImpl.h:
     16
    1172011-04-15  Vsevolod Vlasov  <vsevik@chromium.org>
    218
  • trunk/Source/WebKit/chromium/public/WebFileSystem.h

    r68741 r83972  
    4141class WebFileWriterClient;
    4242
     43// FIXME(zelidrag): Remove this define once Chromium side catches up.
     44#define WEB_FILE_SYSTEM_TYPE_EXTERNAL
     45
    4346class WebFileSystem {
    4447public:
     
    4649        TypeTemporary,
    4750        TypePersistent,
     51        TypeExternal,
    4852    };
    4953
  • trunk/Source/WebKit/chromium/public/WebFrame.h

    r83366 r83972  
    3333
    3434#include "WebCanvas.h"
     35#include "WebFileSystem.h"
    3536#include "WebNode.h"
    3637#include "WebURL.h"
     
    7374struct WebSize;
    7475struct WebURLLoaderOptions;
     76
    7577template <typename T> class WebVector;
    7678
     
    264266
    265267    // Creates an instance of file system object.
    266     virtual v8::Handle<v8::Value> createFileSystem(int type,
     268    virtual v8::Handle<v8::Value> createFileSystem(WebFileSystem::Type,
    267269                                                   const WebString& name,
    268270                                                   const WebString& path) = 0;
     271    // Creates an instance of file or directory entry object.
     272    virtual v8::Handle<v8::Value> createFileEntry(WebFileSystem::Type,
     273                                                  const WebString& fileSystemName,
     274                                                  const WebString& fileSystemPath,
     275                                                  const WebString& filePath,
     276                                                  bool isDirectory) = 0;
    269277#endif
    270278
  • trunk/Source/WebKit/chromium/src/AssertMatchingEnums.cpp

    r83258 r83972  
    393393COMPILE_ASSERT_MATCHING_ENUM(WebFileSystem::TypeTemporary, AsyncFileSystem::Temporary);
    394394COMPILE_ASSERT_MATCHING_ENUM(WebFileSystem::TypePersistent, AsyncFileSystem::Persistent);
     395COMPILE_ASSERT_MATCHING_ENUM(WebFileSystem::TypeExternal, AsyncFileSystem::External);
    395396COMPILE_ASSERT_MATCHING_ENUM(WebFileInfo::TypeUnknown, FileMetadata::TypeUnknown);
    396397COMPILE_ASSERT_MATCHING_ENUM(WebFileInfo::TypeFile, FileMetadata::TypeFile);
  • trunk/Source/WebKit/chromium/src/WebFrameImpl.cpp

    r83941 r83972  
    165165#include "AsyncFileSystem.h"
    166166#include "AsyncFileSystemChromium.h"
     167#include "DirectoryEntry.h"
    167168#include "DOMFileSystem.h"
     169#include "FileEntry.h"
     170#include "V8DirectoryEntry.h"
    168171#include "V8DOMFileSystem.h"
     172#include "V8FileEntry.h"
     173#include "WebFileSystem.h"
    169174#endif
    170175
     
    852857}
    853858
    854 v8::Handle<v8::Value> WebFrameImpl::createFileSystem(int type,
     859v8::Handle<v8::Value> WebFrameImpl::createFileSystem(WebFileSystem::Type type,
    855860                                                     const WebString& name,
    856861                                                     const WebString& path)
    857862{
    858863    return toV8(DOMFileSystem::create(frame()->document(), name, AsyncFileSystemChromium::create(static_cast<AsyncFileSystem::Type>(type), path)));
     864}
     865
     866v8::Handle<v8::Value> WebFrameImpl::createFileEntry(WebFileSystem::Type type,
     867                                                    const WebString& fileSystemName,
     868                                                    const WebString& fileSystemPath,
     869                                                    const WebString& filePath,
     870                                                    bool isDirectory)
     871{
     872    RefPtr<DOMFileSystemBase> fileSystem = DOMFileSystem::create(frame()->document(), fileSystemName, AsyncFileSystemChromium::create(static_cast<AsyncFileSystem::Type>(type), fileSystemPath));
     873    if (isDirectory)
     874        return toV8(DirectoryEntry::create(fileSystem, filePath));
     875    return toV8(FileEntry::create(fileSystem, filePath));
    859876}
    860877#endif
  • trunk/Source/WebKit/chromium/src/WebFrameImpl.h

    r83320 r83972  
    110110        const WebScriptSource&);
    111111    virtual v8::Local<v8::Context> mainWorldScriptContext() const;
    112     virtual v8::Handle<v8::Value> createFileSystem(int type,
     112    virtual v8::Handle<v8::Value> createFileSystem(WebFileSystem::Type,
    113113                                                   const WebString& name,
    114114                                                   const WebString& path);
     115    virtual v8::Handle<v8::Value> createFileEntry(WebFileSystem::Type,
     116                                                  const WebString& fileSystemName,
     117                                                  const WebString& fileSystemPath,
     118                                                  const WebString& filePath,
     119                                                  bool isDirectory);
    115120#endif
    116121    virtual bool insertStyleText(const WebString& css, const WebString& id);
Note: See TracChangeset for help on using the changeset viewer.