[Chromium] Add a chromium-webkit API to create a serializable file system.
authorcommit-queue@webkit.org <commit-queue@webkit.org@268f45cc-cd09-0410-ab3c-d52691b4dbfc>
Tue, 26 Jun 2012 00:11:55 +0000 (00:11 +0000)
committercommit-queue@webkit.org <commit-queue@webkit.org@268f45cc-cd09-0410-ab3c-d52691b4dbfc>
Tue, 26 Jun 2012 00:11:55 +0000 (00:11 +0000)
https://bugs.webkit.org/show_bug.cgi?id=89776

In order to send a DOMFileSystem as part of WebIntent payload data it
should be serializable. Therefore, I added an API that allows us to
create serializable file system in chromium code.

Patch by Kausalya Madhusudhanan <kmadhusu@chromium.org> on 2012-06-25
Reviewed by Adam Barth.

* public/WebFrame.h:
(WebFrame):
* src/WebFrameImpl.cpp:
(WebKit::WebFrameImpl::createSerializableFileSystem):
(WebKit):
* src/WebFrameImpl.h:
(WebFrameImpl):

git-svn-id: http://svn.webkit.org/repository/webkit/trunk@121197 268f45cc-cd09-0410-ab3c-d52691b4dbfc

Source/WebKit/chromium/ChangeLog
Source/WebKit/chromium/public/WebFrame.h
Source/WebKit/chromium/src/WebFrameImpl.cpp
Source/WebKit/chromium/src/WebFrameImpl.h

index 9d60e49..91ee21b 100644 (file)
@@ -1,3 +1,22 @@
+2012-06-25  Kausalya Madhusudhanan  <kmadhusu@chromium.org>
+
+        [Chromium] Add a chromium-webkit API to create a serializable file system.
+        https://bugs.webkit.org/show_bug.cgi?id=89776
+
+        In order to send a DOMFileSystem as part of WebIntent payload data it
+        should be serializable. Therefore, I added an API that allows us to
+        create serializable file system in chromium code.
+
+        Reviewed by Adam Barth.
+
+        * public/WebFrame.h:
+        (WebFrame):
+        * src/WebFrameImpl.cpp:
+        (WebKit::WebFrameImpl::createSerializableFileSystem):
+        (WebKit):
+        * src/WebFrameImpl.h:
+        (WebFrameImpl):
+
 2012-06-25  Alpha Lam  <hclam@chromium.org>
 
         Unreviewed, rolling out r121178.
index 5cd7f5f..ab67c49 100644 (file)
@@ -297,6 +297,12 @@ public:
     virtual v8::Handle<v8::Value> createFileSystem(WebFileSystem::Type,
                                                    const WebString& name,
                                                    const WebString& rootURL) = 0;
+    // Creates an instance of serializable file system object.
+    // FIXME: Remove this API after we have a better way of creating serialized
+    // file system object.
+    virtual v8::Handle<v8::Value> createSerializableFileSystem(WebFileSystem::Type,
+                                                               const WebString& name,
+                                                               const WebString& rootURL) = 0;
     // Creates an instance of file or directory entry object.
     virtual v8::Handle<v8::Value> createFileEntry(WebFileSystem::Type,
                                                   const WebString& fileSystemName,
index 8ccec72..afe0f99 100644 (file)
@@ -950,6 +950,15 @@ v8::Handle<v8::Value> WebFrameImpl::createFileSystem(WebFileSystem::Type type,
     return toV8(DOMFileSystem::create(frame()->document(), name, static_cast<WebCore::FileSystemType>(type), KURL(ParsedURLString, path.utf8().data()), AsyncFileSystemChromium::create()));
 }
 
+v8::Handle<v8::Value> WebFrameImpl::createSerializableFileSystem(WebFileSystem::Type type,
+                                                                 const WebString& name,
+                                                                 const WebString& path)
+{
+    RefPtr<DOMFileSystem> fs = DOMFileSystem::create(frame()->document(), name, static_cast<WebCore::FileSystemType>(type), KURL(ParsedURLString, path.utf8().data()), AsyncFileSystemChromium::create());
+    fs->makeClonable();
+    return toV8(fs.release());
+}
+
 v8::Handle<v8::Value> WebFrameImpl::createFileEntry(WebFileSystem::Type type,
                                                     const WebString& fileSystemName,
                                                     const WebString& fileSystemPath,
index 3993747..3ddfb76 100644 (file)
@@ -126,6 +126,9 @@ public:
     virtual v8::Handle<v8::Value> createFileSystem(WebFileSystem::Type,
                                                    const WebString& name,
                                                    const WebString& path);
+    virtual v8::Handle<v8::Value> createSerializableFileSystem(WebFileSystem::Type,
+                                                               const WebString& name,
+                                                               const WebString& path);
     virtual v8::Handle<v8::Value> createFileEntry(WebFileSystem::Type,
                                                   const WebString& fileSystemName,
                                                   const WebString& fileSystemPath,