[SCM] WebKit Debian packaging branch, debian/experimental, updated. upstream/1.3.3-9427-gc2be6fc

andersca at apple.com andersca at apple.com
Wed Dec 22 13:55:42 UTC 2010


The following commit has been merged in the debian/experimental branch:
commit 31c35fc2d6144d483e1c255049f49eab766daefd
Author: andersca at apple.com <andersca at apple.com@268f45cc-cd09-0410-ab3c-d52691b4dbfc>
Date:   Wed Sep 29 21:39:41 2010 +0000

    Implement more of PluginProxy and PLuginControllerProxy.
    
    Reviewed by Sam Weinig.
    
    * Platform/CoreIPC/ArgumentDecoder.cpp:
    (CoreIPC::ArgumentDecoder::decodeBytes):
    * Platform/CoreIPC/ArgumentDecoder.h:
    Add new overload that takes a DataReference. Wrap the debug function in #ifndef NDEBUG.
    
    * Platform/CoreIPC/ArgumentEncoder.cpp:
    * Platform/CoreIPC/ArgumentEncoder.h:
    Wrap the debug function in #ifndef NDEBUG.
    
    * Platform/CoreIPC/Arguments.h:
    Add new typedefs.
    
    * Platform/CoreIPC/DataReference.cpp:
    * Platform/CoreIPC/DataReference.h:
    Add a DataReference class.
    
    * Platform/CoreIPC/HandleMessage.h:
    (CoreIPC::handleMessage):
    Add new overload.
    
    * PluginProcess/PluginControllerProxy.cpp:
    (WebKit::PluginControllerProxy::didEvaluateJavaScript):
    (WebKit::PluginControllerProxy::streamDidReceiveResponse):
    (WebKit::PluginControllerProxy::streamDidReceiveData):
    (WebKit::PluginControllerProxy::streamDidFinishLoading):
    (WebKit::PluginControllerProxy::streamDidFail):
    call Plugin member functions.
    
    * PluginProcess/PluginControllerProxy.messages.in:
    Add new messages.
    
    * WebKit2.pro:
    * WebKit2.xcodeproj/project.pbxproj:
    * win/WebKit2.vcproj:
    Add DataReference.cpp and DataReference.h
    
    * WebProcess/Plugins/PluginProxy.cpp:
    (WebKit::PluginProxy::didEvaluateJavaScript):
    (WebKit::PluginProxy::streamDidReceiveResponse):
    (WebKit::PluginProxy::streamDidReceiveData):
    (WebKit::PluginProxy::streamDidFinishLoading):
    (WebKit::PluginProxy::streamDidFail):
    Send messages.
    
    git-svn-id: http://svn.webkit.org/repository/webkit/trunk@68686 268f45cc-cd09-0410-ab3c-d52691b4dbfc

diff --git a/WebKit2/ChangeLog b/WebKit2/ChangeLog
index aa1baa8..f0a3c06 100644
--- a/WebKit2/ChangeLog
+++ b/WebKit2/ChangeLog
@@ -1,5 +1,55 @@
 2010-09-29  Anders Carlsson  <andersca at apple.com>
 
+        Reviewed by Sam Weinig.
+
+        Implement more of PluginProxy and PLuginControllerProxy.
+
+        * Platform/CoreIPC/ArgumentDecoder.cpp:
+        (CoreIPC::ArgumentDecoder::decodeBytes):
+        * Platform/CoreIPC/ArgumentDecoder.h:
+        Add new overload that takes a DataReference. Wrap the debug function in #ifndef NDEBUG.
+
+        * Platform/CoreIPC/ArgumentEncoder.cpp:
+        * Platform/CoreIPC/ArgumentEncoder.h:
+        Wrap the debug function in #ifndef NDEBUG.
+
+        * Platform/CoreIPC/Arguments.h:
+        Add new typedefs.
+        
+        * Platform/CoreIPC/DataReference.cpp:
+        * Platform/CoreIPC/DataReference.h:
+        Add a DataReference class.
+    
+        * Platform/CoreIPC/HandleMessage.h:
+        (CoreIPC::handleMessage):
+        Add new overload.
+
+        * PluginProcess/PluginControllerProxy.cpp:
+        (WebKit::PluginControllerProxy::didEvaluateJavaScript):
+        (WebKit::PluginControllerProxy::streamDidReceiveResponse):
+        (WebKit::PluginControllerProxy::streamDidReceiveData):
+        (WebKit::PluginControllerProxy::streamDidFinishLoading):
+        (WebKit::PluginControllerProxy::streamDidFail):
+        call Plugin member functions.
+
+        * PluginProcess/PluginControllerProxy.messages.in:
+        Add new messages.
+        
+        * WebKit2.pro:
+        * WebKit2.xcodeproj/project.pbxproj:
+        * win/WebKit2.vcproj:
+        Add DataReference.cpp and DataReference.h
+
+        * WebProcess/Plugins/PluginProxy.cpp:
+        (WebKit::PluginProxy::didEvaluateJavaScript):
+        (WebKit::PluginProxy::streamDidReceiveResponse):
+        (WebKit::PluginProxy::streamDidReceiveData):
+        (WebKit::PluginProxy::streamDidFinishLoading):
+        (WebKit::PluginProxy::streamDidFail):
+        Send messages.
+
+2010-09-29  Anders Carlsson  <andersca at apple.com>
+
         Update expected results.
 
         * Scripts/webkit2/messages_unittest.py:
diff --git a/WebKit2/Platform/CoreIPC/ArgumentDecoder.cpp b/WebKit2/Platform/CoreIPC/ArgumentDecoder.cpp
index f8bf34b..336f72f 100644
--- a/WebKit2/Platform/CoreIPC/ArgumentDecoder.cpp
+++ b/WebKit2/Platform/CoreIPC/ArgumentDecoder.cpp
@@ -25,6 +25,7 @@
 
 #include "ArgumentDecoder.h"
 
+#include "DataReference.h"
 #include <stdio.h>
 
 namespace CoreIPC {
@@ -98,6 +99,22 @@ bool ArgumentDecoder::decodeBytes(Vector<uint8_t>& buffer)
     return true;
 }
 
+bool ArgumentDecoder::decodeBytes(DataReference& dataReference)
+{
+    uint64_t size;
+    if (!decodeUInt64(size))
+        return false;
+    
+    if (!alignBufferPosition(1, size))
+        return false;
+
+    uint8_t* data = m_bufferPos;
+    m_bufferPos += size;
+
+    dataReference = DataReference(data, size);
+    return true;
+}
+
 bool ArgumentDecoder::decodeBytes(uint8_t* buffer, size_t bufferSize)
 {
     // FIXME: Decoding the size is not strictly necessary here since we know the size upfront.
@@ -196,11 +213,13 @@ bool ArgumentDecoder::removeAttachment(Attachment& attachment)
     return true;
 }
 
+#ifndef NDEBUG
 void ArgumentDecoder::debug()
 {
     printf("ArgumentDecoder::debug()\n");
     printf("Number of Attachments: %d\n", (int)m_attachments.size());
     printf("Size of buffer: %d\n", (int)(m_bufferEnd - m_buffer));
 }
+#endif
 
 } // namespace CoreIPC
diff --git a/WebKit2/Platform/CoreIPC/ArgumentDecoder.h b/WebKit2/Platform/CoreIPC/ArgumentDecoder.h
index dee0152..9283e4f 100644
--- a/WebKit2/Platform/CoreIPC/ArgumentDecoder.h
+++ b/WebKit2/Platform/CoreIPC/ArgumentDecoder.h
@@ -34,6 +34,8 @@
 
 namespace CoreIPC {
 
+class DataReference;
+    
 class ArgumentDecoder {
 public:
     ArgumentDecoder(const uint8_t* buffer, size_t bufferSize);
@@ -48,6 +50,9 @@ public:
     bool decodeBytes(Vector<uint8_t>&);
     bool decodeBytes(uint8_t*, size_t);
 
+    // The data in the data reference here will only be valid for the lifetime of the ArgumentDecoder object.
+    bool decodeBytes(DataReference&);
+
     bool decodeBool(bool&);
     bool decodeUInt32(uint32_t&);
     bool decodeUInt64(uint64_t&);
@@ -82,7 +87,9 @@ public:
 
     bool removeAttachment(Attachment&);
 
+#ifndef NDEBUG
     void debug();
+#endif
 
 private:
     ArgumentDecoder(const ArgumentDecoder*);
diff --git a/WebKit2/Platform/CoreIPC/ArgumentEncoder.cpp b/WebKit2/Platform/CoreIPC/ArgumentEncoder.cpp
index 4b469d9..ed3057f 100644
--- a/WebKit2/Platform/CoreIPC/ArgumentEncoder.cpp
+++ b/WebKit2/Platform/CoreIPC/ArgumentEncoder.cpp
@@ -145,11 +145,13 @@ Vector<Attachment> ArgumentEncoder::releaseAttachments()
     return newList;
 }
 
+#ifndef NDEBUG
 void ArgumentEncoder::debug()
 {
     printf("ArgumentEncoder::debug()\n");
     printf("Number of Attachments: %d\n", (int)m_attachments.size());
     printf("Size of buffer: %d\n", (int)m_bufferSize);
 }
+#endif
 
 } // namespace CoreIPC
diff --git a/WebKit2/Platform/CoreIPC/ArgumentEncoder.h b/WebKit2/Platform/CoreIPC/ArgumentEncoder.h
index b30fbab..e45aa5d 100644
--- a/WebKit2/Platform/CoreIPC/ArgumentEncoder.h
+++ b/WebKit2/Platform/CoreIPC/ArgumentEncoder.h
@@ -62,7 +62,9 @@ public:
     void addAttachment(const Attachment&);
     Vector<Attachment> releaseAttachments();
 
+#ifndef NDEBUG
     void debug();
+#endif
 
 private:
     uint8_t* grow(unsigned alignment, size_t size);
diff --git a/WebKit2/Platform/CoreIPC/Arguments.h b/WebKit2/Platform/CoreIPC/Arguments.h
index 3c8d8d9..b2fa428 100644
--- a/WebKit2/Platform/CoreIPC/Arguments.h
+++ b/WebKit2/Platform/CoreIPC/Arguments.h
@@ -239,6 +239,13 @@ template<typename T1, typename T2, typename T3, typename T4, typename T5> Argume
 
 template<typename T1, typename T2, typename T3, typename T4, typename T5, typename T6> class Arguments6 : Arguments5<T1, T2, T3, T4, T5> {
 public:
+    typedef T1 FirstArgumentType;
+    typedef T2 SecondArgumentType;
+    typedef T3 ThirdArgumentType;
+    typedef T4 FourthArgumentType;
+    typedef T5 FifthArgumentType;
+    typedef T6 SixthArgumentType;
+
     Arguments6(T1 t1, T2 t2, T3 t3, T4 t4, T5 t5, T6 t6)
         : Arguments5<T1, T2, T3, T4, T5>(t1, t2, t3, t4, t5)
         , m_value(t6)
diff --git a/WebKit2/Platform/CoreIPC/DataReference.cpp b/WebKit2/Platform/CoreIPC/DataReference.cpp
new file mode 100644
index 0000000..308fd6e
--- /dev/null
+++ b/WebKit2/Platform/CoreIPC/DataReference.cpp
@@ -0,0 +1,45 @@
+/*
+ * Copyright (C) 2010 Apple Inc. All rights reserved.
+ *
+ * Redistribution and use in source and binary forms, with or without
+ * modification, are permitted provided that the following conditions
+ * are met:
+ * 1. Redistributions of source code must retain the above copyright
+ *    notice, this list of conditions and the following disclaimer.
+ * 2. Redistributions in binary form must reproduce the above copyright
+ *    notice, this list of conditions and the following disclaimer in the
+ *    documentation and/or other materials provided with the distribution.
+ *
+ * THIS SOFTWARE IS PROVIDED BY APPLE INC. AND ITS CONTRIBUTORS ``AS IS''
+ * AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO,
+ * THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR
+ * PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL APPLE INC. OR ITS CONTRIBUTORS
+ * BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
+ * CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
+ * SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
+ * INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
+ * CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
+ * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF
+ * THE POSSIBILITY OF SUCH DAMAGE.
+ */
+
+#include "DataReference.h"
+
+#include "ArgumentDecoder.h"
+#include "ArgumentEncoder.h"
+
+namespace CoreIPC {
+
+void DataReference::encode(ArgumentEncoder* encoder) const
+{
+    encoder->encodeBytes(m_data, m_size);
+}
+
+bool DataReference::decode(ArgumentDecoder* decoder, DataReference& dataReference)
+{
+    return decoder->decodeBytes(dataReference);
+}
+
+} // namespace CoreIPC
+
+
diff --git a/WebKit2/Platform/CoreIPC/DataReference.h b/WebKit2/Platform/CoreIPC/DataReference.h
new file mode 100644
index 0000000..244cdbd
--- /dev/null
+++ b/WebKit2/Platform/CoreIPC/DataReference.h
@@ -0,0 +1,68 @@
+/*
+ * Copyright (C) 2010 Apple Inc. All rights reserved.
+ *
+ * Redistribution and use in source and binary forms, with or without
+ * modification, are permitted provided that the following conditions
+ * are met:
+ * 1. Redistributions of source code must retain the above copyright
+ *    notice, this list of conditions and the following disclaimer.
+ * 2. Redistributions in binary form must reproduce the above copyright
+ *    notice, this list of conditions and the following disclaimer in the
+ *    documentation and/or other materials provided with the distribution.
+ *
+ * THIS SOFTWARE IS PROVIDED BY APPLE INC. AND ITS CONTRIBUTORS ``AS IS''
+ * AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO,
+ * THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR
+ * PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL APPLE INC. OR ITS CONTRIBUTORS
+ * BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
+ * CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
+ * SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
+ * INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
+ * CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
+ * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF
+ * THE POSSIBILITY OF SUCH DAMAGE.
+ */
+
+#ifndef DataReference_h
+#define DataReference_h
+
+namespace CoreIPC {
+
+class ArgumentDecoder;
+class ArgumentEncoder;
+    
+class DataReference {
+public:
+    DataReference()
+        : m_data(0)
+        , m_size(0)
+    {
+    }
+
+    DataReference(const uint8_t* data, size_t size)
+        : m_data(data)
+        , m_size(size)
+    {
+    }
+
+    bool isEmpty() const { return size() == 0; }
+
+    size_t size() const { return m_size; }
+    const uint8_t* data() const 
+    { 
+        ASSERT(!isEmpty());
+        
+        return m_data; 
+    }
+
+    void encode(ArgumentEncoder* encoder) const;
+    static bool decode(ArgumentDecoder* decoder, DataReference& dataReference);
+
+private:
+    const uint8_t* m_data;
+    size_t m_size;
+};
+
+} // namespace CoreIPC
+
+#endif // DataReference_h
diff --git a/WebKit2/Platform/CoreIPC/HandleMessage.h b/WebKit2/Platform/CoreIPC/HandleMessage.h
index 8b169b8..a01a01a 100644
--- a/WebKit2/Platform/CoreIPC/HandleMessage.h
+++ b/WebKit2/Platform/CoreIPC/HandleMessage.h
@@ -48,6 +48,30 @@ void handleMessage(ArgumentDecoder* arguments, C* object, void (C::*function)(P1
     (object->*function)(firstArgument, secondArgument, thirdArgument);
 }
 
+template<typename T, typename C, typename P1, typename P2, typename P3, typename P4, typename P5, typename P6>
+void handleMessage(ArgumentDecoder* arguments, C* object, void (C::*function)(P1, P2, P3, P4, P5, P6))
+{
+    typename RemoveReference<typename T::FirstArgumentType>::Type firstArgument;
+    if (!arguments->decode(firstArgument))
+        return;
+    typename RemoveReference<typename T::SecondArgumentType>::Type secondArgument;
+    if (!arguments->decode(secondArgument))
+        return;
+    typename RemoveReference<typename T::ThirdArgumentType>::Type thirdArgument;
+    if (!arguments->decode(thirdArgument))
+        return;
+    typename RemoveReference<typename T::FourthArgumentType>::Type fourthArgument;
+    if (!arguments->decode(fourthArgument))
+        return;
+    typename RemoveReference<typename T::FifthArgumentType>::Type fifthArgument;
+    if (!arguments->decode(fifthArgument))
+        return;
+    typename RemoveReference<typename T::SixthArgumentType>::Type sixthArgument;
+    if (!arguments->decode(sixthArgument))
+        return;
+    (object->*function)(firstArgument, secondArgument, thirdArgument, fourthArgument, fifthArgument, sixthArgument);
+}
+
 template<typename T, typename C, typename P1, typename P2, typename P3, typename P4, typename P5, typename P6, typename P7>
 void handleMessage(ArgumentDecoder* arguments, C* object, void (C::*function)(P1, P2, P3, P4, P5, P6, P7))
 {
diff --git a/WebKit2/PluginProcess/PluginControllerProxy.cpp b/WebKit2/PluginProcess/PluginControllerProxy.cpp
index dd69e3e..a7e9e19 100644
--- a/WebKit2/PluginProcess/PluginControllerProxy.cpp
+++ b/WebKit2/PluginProcess/PluginControllerProxy.cpp
@@ -28,6 +28,7 @@
 #include "PluginControllerProxy.h"
 
 #include "BackingStore.h"
+#include "DataReference.h"
 #include "NetscapePlugin.h"
 #include "NotImplemented.h"
 #include "PluginProcess.h"
@@ -194,6 +195,31 @@ void PluginControllerProxy::geometryDidChange(const IntRect& frameRect, const In
     m_plugin->geometryDidChange(frameRect, clipRect);
 }
 
+void PluginControllerProxy::didEvaluateJavaScript(uint64_t requestID, const String& requestURLString, const String& result)
+{
+    m_plugin->didEvaluateJavaScript(requestID, requestURLString, result);
+}
+
+void PluginControllerProxy::streamDidReceiveResponse(uint64_t streamID, const String& responseURLString, uint32_t streamLength, uint32_t lastModifiedTime, const String& mimeType, const String& headers)
+{
+    m_plugin->streamDidReceiveResponse(streamID, KURL(ParsedURLString, responseURLString), streamLength, lastModifiedTime, mimeType, headers);
+}
+
+void PluginControllerProxy::streamDidReceiveData(uint64_t streamID, const CoreIPC::DataReference& data)
+{
+    m_plugin->streamDidReceiveData(streamID, reinterpret_cast<const char*>(data.data()), data.size());
+}
+
+void PluginControllerProxy::streamDidFinishLoading(uint64_t streamID)
+{
+    m_plugin->streamDidFinishLoading(streamID);
+}
+
+void PluginControllerProxy::streamDidFail(uint64_t streamID, bool wasCancelled)
+{
+    m_plugin->streamDidFail(streamID, wasCancelled);
+}
+    
 void PluginControllerProxy::handleMouseEvent(const WebMouseEvent& mouseEvent, bool& handled)
 {
     handled = m_plugin->handleMouseEvent(mouseEvent);
diff --git a/WebKit2/PluginProcess/PluginControllerProxy.h b/WebKit2/PluginProcess/PluginControllerProxy.h
index bec4043..38a5dc0 100644
--- a/WebKit2/PluginProcess/PluginControllerProxy.h
+++ b/WebKit2/PluginProcess/PluginControllerProxy.h
@@ -35,6 +35,10 @@
 #include "SharedMemory.h"
 #include <wtf/Noncopyable.h>
 
+namespace CoreIPC {
+    class DataReference;
+}
+
 namespace WebKit {
 
 class BackingStore;
@@ -75,6 +79,11 @@ private:
 
     // Message handlers.
     void geometryDidChange(const WebCore::IntRect& frameRect, const WebCore::IntRect& clipRect, const SharedMemory::Handle& backingStoreHandle);
+    void didEvaluateJavaScript(uint64_t requestID, const String& requestURLString, const String& result);
+    void streamDidReceiveResponse(uint64_t streamID, const String& responseURLString, uint32_t streamLength, uint32_t lastModifiedTime, const String& mimeType, const String& headers);
+    void streamDidReceiveData(uint64_t streamID, const CoreIPC::DataReference& data);
+    void streamDidFinishLoading(uint64_t streamID);
+    void streamDidFail(uint64_t streamID, bool wasCancelled);
     void handleMouseEvent(const WebMouseEvent&, bool& handled);
     void handleWheelEvent(const WebWheelEvent&, bool& handled);
     void handleMouseEnterEvent(const WebMouseEvent&, bool& handled);
diff --git a/WebKit2/PluginProcess/PluginControllerProxy.messages.in b/WebKit2/PluginProcess/PluginControllerProxy.messages.in
index 30333eb..cc6abf0 100644
--- a/WebKit2/PluginProcess/PluginControllerProxy.messages.in
+++ b/WebKit2/PluginProcess/PluginControllerProxy.messages.in
@@ -26,6 +26,21 @@ messages -> PluginControllerProxy {
     # Sent when the plug-in geometry changes.
     GeometryDidChange(WebCore::IntRect frameRect, WebCore::IntRect clipRect, WebKit::SharedMemory::Handle backingStoreHandle)
 
+    # Sent when JavaScript that the plug-in asked to be evaluated has been evaluated.
+    DidEvaluateJavaScript(uint64_t requestID, WTF::String requestURLString, WTF::String result)
+
+    # Sent when the plug-in receives a response for a stream.
+    StreamDidReceiveResponse(uint64_t streamID, WTF::String responseURLString, uint32_t streamLength, uint32_t lastModifiedTime, WTF::String mimeType, WTF::String headers)
+
+    # Sent when the plug-in receives data for a stream.
+    StreamDidReceiveData(uint64_t streamID, CoreIPC::DataReference data)
+
+    # Sent when a plug-in stream has finishes loading.
+    StreamDidFinishLoading(uint64_t streamID)
+
+    # Sent when a plug-in stream has failed to load.
+    StreamDidFail(uint64_t streamID, bool wasCancelled)
+
     # Sent when a mouse event (that isn't a mouse enter/leave event or a wheel event) should be processed.
     HandleMouseEvent(WebKit::WebMouseEvent mouseEvent) -> (bool handled)
     
diff --git a/WebKit2/WebKit2.pro b/WebKit2/WebKit2.pro
index c038c70..5f1731b 100644
--- a/WebKit2/WebKit2.pro
+++ b/WebKit2/WebKit2.pro
@@ -152,6 +152,7 @@ HEADERS += \
     Platform/CoreIPC/Attachment.h \
     Platform/CoreIPC/Connection.h \
     Platform/CoreIPC/CoreIPCMessageKinds.h \
+    Platform/CoreIPC/DataReference.h \
     Platform/CoreIPC/HandleMessage.h \
     Platform/CoreIPC/MessageID.h \
     Platform/Module.h \
@@ -291,6 +292,7 @@ SOURCES += \
     Platform/CoreIPC/ArgumentEncoder.cpp \
     Platform/CoreIPC/Attachment.cpp \
     Platform/CoreIPC/Connection.cpp \
+    Platform/CoreIPC/DataReference.cpp \
     Platform/CoreIPC/qt/ConnectionQt.cpp \
     Platform/Module.cpp \
     Platform/RunLoop.cpp \
diff --git a/WebKit2/WebKit2.xcodeproj/project.pbxproj b/WebKit2/WebKit2.xcodeproj/project.pbxproj
index 8295fff..8327a3b 100644
--- a/WebKit2/WebKit2.xcodeproj/project.pbxproj
+++ b/WebKit2/WebKit2.xcodeproj/project.pbxproj
@@ -116,6 +116,8 @@
 		1A8EFA5C1252B7CE00F7067F /* PluginProxy.messages.in in Resources */ = {isa = PBXBuildFile; fileRef = 1A8EFA5B1252B7CE00F7067F /* PluginProxy.messages.in */; };
 		1A8EFA701252B84100F7067F /* PluginProxyMessageReceiver.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 1A8EFA6E1252B84100F7067F /* PluginProxyMessageReceiver.cpp */; };
 		1A8EFA711252B84100F7067F /* PluginProxyMessages.h in Headers */ = {isa = PBXBuildFile; fileRef = 1A8EFA6F1252B84100F7067F /* PluginProxyMessages.h */; };
+		1A8EFDFA1253CAA200F7067F /* DataReference.h in Headers */ = {isa = PBXBuildFile; fileRef = 1A8EFDF91253CAA200F7067F /* DataReference.h */; };
+		1A8EFDFE1253CB6E00F7067F /* DataReference.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 1A8EFDFD1253CB6E00F7067F /* DataReference.cpp */; };
 		1AA1CC5D100FA1A10078DEBC /* QuartzCore.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 1AA1CC5C100FA1A10078DEBC /* QuartzCore.framework */; };
 		1AA1CD07100FA1BA0078DEBC /* Carbon.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 1AA1CD06100FA1BA0078DEBC /* Carbon.framework */; };
 		1AA56F2911E92BC80061B882 /* PluginController.h in Headers */ = {isa = PBXBuildFile; fileRef = 1AA56F2811E92BC80061B882 /* PluginController.h */; };
@@ -553,6 +555,8 @@
 		1A8EFA5B1252B7CE00F7067F /* PluginProxy.messages.in */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text; path = PluginProxy.messages.in; sourceTree = "<group>"; };
 		1A8EFA6E1252B84100F7067F /* PluginProxyMessageReceiver.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = PluginProxyMessageReceiver.cpp; sourceTree = "<group>"; };
 		1A8EFA6F1252B84100F7067F /* PluginProxyMessages.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = PluginProxyMessages.h; sourceTree = "<group>"; };
+		1A8EFDF91253CAA200F7067F /* DataReference.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = DataReference.h; sourceTree = "<group>"; };
+		1A8EFDFD1253CB6E00F7067F /* DataReference.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = DataReference.cpp; sourceTree = "<group>"; };
 		1AA1C79A100E7FC50078DEBC /* WebCore.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; path = WebCore.framework; sourceTree = BUILT_PRODUCTS_DIR; };
 		1AA1C7DE100E846E0078DEBC /* JavaScriptCore.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; path = JavaScriptCore.framework; sourceTree = BUILT_PRODUCTS_DIR; };
 		1AA1CC5C100FA1A10078DEBC /* QuartzCore.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = QuartzCore.framework; path = /System/Library/Frameworks/QuartzCore.framework; sourceTree = "<absolute>"; };
@@ -1148,6 +1152,8 @@
 				BCEE966B112FAF57006BCC24 /* Attachment.h */,
 				BC032DA210F437D10058C15A /* Connection.cpp */,
 				BC032DA310F437D10058C15A /* Connection.h */,
+				1A8EFDFD1253CB6E00F7067F /* DataReference.cpp */,
+				1A8EFDF91253CAA200F7067F /* DataReference.h */,
 				BC131BC811726C2800B69727 /* CoreIPCMessageKinds.h */,
 				C0CE72AC1247E78D00BC0EC4 /* HandleMessage.h */,
 				BC032DA410F437D10058C15A /* MessageID.h */,
@@ -1907,6 +1913,7 @@
 				C09AE5E9125257C20025825D /* WKNativeEvent.h in Headers */,
 				1A8EF96F1252AF6B00F7067F /* PluginControllerProxyMessages.h in Headers */,
 				1A8EFA711252B84100F7067F /* PluginProxyMessages.h in Headers */,
+				1A8EFDFA1253CAA200F7067F /* DataReference.h in Headers */,
 			);
 			runOnlyForDeploymentPostprocessing = 0;
 		};
@@ -2201,6 +2208,7 @@
 				C02BFF1E1251502E009CCBEA /* NativeWebKeyboardEventMac.mm in Sources */,
 				1A8EF96E1252AF6B00F7067F /* PluginControllerProxyMessageReceiver.cpp in Sources */,
 				1A8EFA701252B84100F7067F /* PluginProxyMessageReceiver.cpp in Sources */,
+				1A8EFDFE1253CB6E00F7067F /* DataReference.cpp in Sources */,
 			);
 			runOnlyForDeploymentPostprocessing = 0;
 		};
diff --git a/WebKit2/WebProcess/Plugins/PluginProxy.cpp b/WebKit2/WebProcess/Plugins/PluginProxy.cpp
index 72ad959..46dee53 100644
--- a/WebKit2/WebProcess/Plugins/PluginProxy.cpp
+++ b/WebKit2/WebProcess/Plugins/PluginProxy.cpp
@@ -28,6 +28,7 @@
 #include "PluginProxy.h"
 
 #include "BackingStore.h"
+#include "DataReference.h"
 #include "NotImplemented.h"
 #include "PluginController.h"
 #include "PluginControllerProxyMessages.h"
@@ -179,27 +180,27 @@ void PluginProxy::frameDidFail(uint64_t requestID, bool wasCancelled)
 
 void PluginProxy::didEvaluateJavaScript(uint64_t requestID, const WTF::String& requestURLString, const WTF::String& result)
 {
-    notImplemented();
+    m_connection->connection()->send(Messages::PluginControllerProxy::DidEvaluateJavaScript(requestID, requestURLString, result), m_pluginInstanceID);
 }
 
 void PluginProxy::streamDidReceiveResponse(uint64_t streamID, const KURL& responseURL, uint32_t streamLength, uint32_t lastModifiedTime, const WTF::String& mimeType, const WTF::String& headers)
 {
-    notImplemented();
+    m_connection->connection()->send(Messages::PluginControllerProxy::StreamDidReceiveResponse(streamID, responseURL.string(), streamLength, lastModifiedTime, mimeType, headers), m_pluginInstanceID);
 }
                                            
 void PluginProxy::streamDidReceiveData(uint64_t streamID, const char* bytes, int length)
 {
-    notImplemented();
+    m_connection->connection()->send(Messages::PluginControllerProxy::StreamDidReceiveData(streamID, CoreIPC::DataReference(reinterpret_cast<const uint8_t*>(bytes), length)), m_pluginInstanceID);
 }
 
 void PluginProxy::streamDidFinishLoading(uint64_t streamID)
 {
-    notImplemented();
+    m_connection->connection()->send(Messages::PluginControllerProxy::StreamDidFinishLoading(streamID), m_pluginInstanceID);
 }
 
 void PluginProxy::streamDidFail(uint64_t streamID, bool wasCancelled)
 {
-    notImplemented();
+    m_connection->connection()->send(Messages::PluginControllerProxy::StreamDidFail(streamID, wasCancelled), m_pluginInstanceID);
 }
 
 void PluginProxy::manualStreamDidReceiveResponse(const KURL& responseURL, uint32_t streamLength,  uint32_t lastModifiedTime, const WTF::String& mimeType, const WTF::String& headers)
diff --git a/WebKit2/win/WebKit2.vcproj b/WebKit2/win/WebKit2.vcproj
index 29636ba..a36094f 100755
--- a/WebKit2/win/WebKit2.vcproj
+++ b/WebKit2/win/WebKit2.vcproj
@@ -1860,6 +1860,14 @@
 					>
 				</File>
 				<File
+					RelativePath="..\Platform\CoreIPC\DataReference.cpp"
+					>
+				</File>
+				<File
+					RelativePath="..\Platform\CoreIPC\DataReference.h"
+					>
+				</File>
+				<File
 					RelativePath="..\Platform\CoreIPC\CoreIPCMessageKinds.h"
 					>
 				</File>

-- 
WebKit Debian packaging



More information about the Pkg-webkit-commits mailing list