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

commit-queue at webkit.org commit-queue at webkit.org
Wed Dec 22 14:20:04 UTC 2010


The following commit has been merged in the debian/experimental branch:
commit b7322ff1ed82daf4a305984b0cc8d7d6fa089215
Author: commit-queue at webkit.org <commit-queue at webkit.org@268f45cc-cd09-0410-ab3c-d52691b4dbfc>
Date:   Wed Oct 6 20:36:57 2010 +0000

    2010-10-06  Sheriff Bot  <webkit.review.bot at gmail.com>
    
            Unreviewed, rolling out r69210.
            http://trac.webkit.org/changeset/69210
            https://bugs.webkit.org/show_bug.cgi?id=47297
    
            This patch broke Windows (Requested by andersca on #webkit).
    
            * DerivedSources.make:
            * DerivedSources.pro:
            * Platform/CoreIPC/Arguments.h:
            * Platform/CoreIPC/HandleMessage.h:
            (CoreIPC::handleMessage):
            * Scripts/webkit2/messages.py:
            * Scripts/webkit2/messages_unittest.py:
            * Shared/CoreIPCSupport/WebPageProxyMessageKinds.h: Added.
            * Shared/StringPairVector.h: Removed.
            * UIProcess/API/mac/PageClientImpl.h:
            * UIProcess/API/mac/PageClientImpl.mm:
            (WebKit::PageClientImpl::registerEditCommand):
            * UIProcess/API/qt/qwkpage.cpp:
            (QWKPagePrivate::registerEditCommand):
            * UIProcess/API/qt/qwkpage_p.h:
            * UIProcess/PageClient.h:
            * UIProcess/WebEditCommandProxy.cpp:
            (WebKit::WebEditCommandProxy::unapply):
            (WebKit::WebEditCommandProxy::reapply):
            * UIProcess/WebFormClient.cpp:
            (WebKit::WebFormClient::willSubmitForm):
            * UIProcess/WebFormClient.h:
            * UIProcess/WebPageProxy.cpp:
            (WebKit::WebPageProxy::didReceiveMessage):
            (WebKit::WebPageProxy::didReceiveSyncMessage):
            (WebKit::WebPageProxy::didStartProvisionalLoadForFrame):
            (WebKit::WebPageProxy::didReceiveServerRedirectForProvisionalLoadForFrame):
            (WebKit::WebPageProxy::didFailProvisionalLoadForFrame):
            (WebKit::WebPageProxy::didCommitLoadForFrame):
            (WebKit::WebPageProxy::didFinishDocumentLoadForFrame):
            (WebKit::WebPageProxy::didFinishLoadForFrame):
            (WebKit::WebPageProxy::didFailLoadForFrame):
            (WebKit::WebPageProxy::didReceiveTitleForFrame):
            (WebKit::WebPageProxy::didFirstLayoutForFrame):
            (WebKit::WebPageProxy::didFirstVisuallyNonEmptyLayoutForFrame):
            (WebKit::WebPageProxy::didRemoveFrameFromHierarchy):
            (WebKit::WebPageProxy::decidePolicyForNavigationAction):
            (WebKit::WebPageProxy::decidePolicyForNewWindowAction):
            (WebKit::WebPageProxy::decidePolicyForMIMEType):
            (WebKit::WebPageProxy::willSubmitForm):
            (WebKit::WebPageProxy::createNewPage):
            (WebKit::WebPageProxy::runJavaScriptAlert):
            (WebKit::WebPageProxy::runJavaScriptConfirm):
            (WebKit::WebPageProxy::runJavaScriptPrompt):
            (WebKit::WebPageProxy::mouseDidMoveOverElement):
            (WebKit::WebPageProxy::contentsSizeChanged):
            (WebKit::WebPageProxy::addItemToBackForwardList):
            (WebKit::WebPageProxy::goToItemInBackForwardList):
            (WebKit::WebPageProxy::registerEditCommandForUndo):
            (WebKit::WebPageProxy::registerEditCommandForRedo):
            (WebKit::WebPageProxy::didReceiveEvent):
            (WebKit::WebPageProxy::didChangeAcceleratedCompositing):
            * UIProcess/WebPageProxy.h:
            * UIProcess/WebPageProxy.messages.in: Removed.
            * UIProcess/win/WebView.cpp:
            (WebKit::WebView::registerEditCommand):
            * UIProcess/win/WebView.h:
            * WebKit2.pro:
            * WebKit2.xcodeproj/project.pbxproj:
            * WebProcess/WebCoreSupport/WebChromeClient.cpp:
            (WebKit::WebChromeClient::setWindowRect):
            (WebKit::WebChromeClient::takeFocus):
            (WebKit::WebChromeClient::createWindow):
            (WebKit::WebChromeClient::runJavaScriptAlert):
            (WebKit::WebChromeClient::runJavaScriptConfirm):
            (WebKit::WebChromeClient::runJavaScriptPrompt):
            (WebKit::WebChromeClient::setStatusbarText):
            (WebKit::WebChromeClient::contentsSizeChanged):
            (WebKit::WebChromeClient::mouseDidMoveOverElement):
            (WebKit::WebChromeClient::setToolTip):
            (WebKit::WebChromeClient::setCursor):
            * WebProcess/WebCoreSupport/WebEditorClient.cpp:
            (WebKit::WebEditorClient::registerCommandForUndo):
            (WebKit::WebEditorClient::clearUndoRedoOperations):
            * WebProcess/WebCoreSupport/WebFrameLoaderClient.cpp:
            (WebKit::WebFrameLoaderClient::detachedFromParent2):
            (WebKit::WebFrameLoaderClient::dispatchDidReceiveServerRedirectForProvisionalLoad):
            (WebKit::WebFrameLoaderClient::dispatchDidStartProvisionalLoad):
            (WebKit::WebFrameLoaderClient::dispatchDidReceiveTitle):
            (WebKit::WebFrameLoaderClient::dispatchDidCommitLoad):
            (WebKit::WebFrameLoaderClient::dispatchDidFailProvisionalLoad):
            (WebKit::WebFrameLoaderClient::dispatchDidFailLoad):
            (WebKit::WebFrameLoaderClient::dispatchDidFinishDocumentLoad):
            (WebKit::WebFrameLoaderClient::dispatchDidFinishLoad):
            (WebKit::WebFrameLoaderClient::dispatchDidFirstLayout):
            (WebKit::WebFrameLoaderClient::dispatchDidFirstVisuallyNonEmptyLayout):
            (WebKit::WebFrameLoaderClient::dispatchDecidePolicyForMIMEType):
            (WebKit::WebFrameLoaderClient::dispatchDecidePolicyForNewWindowAction):
            (WebKit::WebFrameLoaderClient::dispatchDecidePolicyForNavigationAction):
            (WebKit::WebFrameLoaderClient::dispatchWillSubmitForm):
            (WebKit::WebFrameLoaderClient::postProgressStartedNotification):
            (WebKit::WebFrameLoaderClient::postProgressEstimateChangedNotification):
            (WebKit::WebFrameLoaderClient::postProgressFinishedNotification):
            (WebKit::WebFrameLoaderClient::createFrame):
            * WebProcess/WebPage/WebBackForwardListProxy.cpp:
            (WebKit::WebBackForwardListProxy::addItem):
            (WebKit::WebBackForwardListProxy::goToItem):
            (WebKit::WebBackForwardListProxy::backItem):
            (WebKit::WebBackForwardListProxy::currentItem):
            (WebKit::WebBackForwardListProxy::forwardItem):
            (WebKit::WebBackForwardListProxy::itemAtIndex):
            (WebKit::WebBackForwardListProxy::backListCount):
            (WebKit::WebBackForwardListProxy::forwardListCount):
            * WebProcess/WebPage/WebPage.cpp:
            (WebKit::WebPage::WebPage):
            (WebKit::WebPage::changeAcceleratedCompositingMode):
            (WebKit::WebPage::enterAcceleratedCompositingMode):
            (WebKit::WebPage::sendClose):
            (WebKit::WebPage::mouseEvent):
            (WebKit::WebPage::wheelEvent):
            (WebKit::WebPage::keyEvent):
            (WebKit::WebPage::validateMenuItem):
            (WebKit::WebPage::touchEvent):
            (WebKit::WebPage::show):
            (WebKit::WebPage::runJavaScriptInMainFrame):
            (WebKit::WebPage::getRenderTreeExternalRepresentation):
            (WebKit::WebPage::getSourceForFrame):
            * win/WebKit2.vcproj:
    
    git-svn-id: http://svn.webkit.org/repository/webkit/trunk@69229 268f45cc-cd09-0410-ab3c-d52691b4dbfc

diff --git a/WebKit2/ChangeLog b/WebKit2/ChangeLog
index 36a5b26..be819d3 100644
--- a/WebKit2/ChangeLog
+++ b/WebKit2/ChangeLog
@@ -1,3 +1,130 @@
+2010-10-06  Sheriff Bot  <webkit.review.bot at gmail.com>
+
+        Unreviewed, rolling out r69210.
+        http://trac.webkit.org/changeset/69210
+        https://bugs.webkit.org/show_bug.cgi?id=47297
+
+        This patch broke Windows (Requested by andersca on #webkit).
+
+        * DerivedSources.make:
+        * DerivedSources.pro:
+        * Platform/CoreIPC/Arguments.h:
+        * Platform/CoreIPC/HandleMessage.h:
+        (CoreIPC::handleMessage):
+        * Scripts/webkit2/messages.py:
+        * Scripts/webkit2/messages_unittest.py:
+        * Shared/CoreIPCSupport/WebPageProxyMessageKinds.h: Added.
+        * Shared/StringPairVector.h: Removed.
+        * UIProcess/API/mac/PageClientImpl.h:
+        * UIProcess/API/mac/PageClientImpl.mm:
+        (WebKit::PageClientImpl::registerEditCommand):
+        * UIProcess/API/qt/qwkpage.cpp:
+        (QWKPagePrivate::registerEditCommand):
+        * UIProcess/API/qt/qwkpage_p.h:
+        * UIProcess/PageClient.h:
+        * UIProcess/WebEditCommandProxy.cpp:
+        (WebKit::WebEditCommandProxy::unapply):
+        (WebKit::WebEditCommandProxy::reapply):
+        * UIProcess/WebFormClient.cpp:
+        (WebKit::WebFormClient::willSubmitForm):
+        * UIProcess/WebFormClient.h:
+        * UIProcess/WebPageProxy.cpp:
+        (WebKit::WebPageProxy::didReceiveMessage):
+        (WebKit::WebPageProxy::didReceiveSyncMessage):
+        (WebKit::WebPageProxy::didStartProvisionalLoadForFrame):
+        (WebKit::WebPageProxy::didReceiveServerRedirectForProvisionalLoadForFrame):
+        (WebKit::WebPageProxy::didFailProvisionalLoadForFrame):
+        (WebKit::WebPageProxy::didCommitLoadForFrame):
+        (WebKit::WebPageProxy::didFinishDocumentLoadForFrame):
+        (WebKit::WebPageProxy::didFinishLoadForFrame):
+        (WebKit::WebPageProxy::didFailLoadForFrame):
+        (WebKit::WebPageProxy::didReceiveTitleForFrame):
+        (WebKit::WebPageProxy::didFirstLayoutForFrame):
+        (WebKit::WebPageProxy::didFirstVisuallyNonEmptyLayoutForFrame):
+        (WebKit::WebPageProxy::didRemoveFrameFromHierarchy):
+        (WebKit::WebPageProxy::decidePolicyForNavigationAction):
+        (WebKit::WebPageProxy::decidePolicyForNewWindowAction):
+        (WebKit::WebPageProxy::decidePolicyForMIMEType):
+        (WebKit::WebPageProxy::willSubmitForm):
+        (WebKit::WebPageProxy::createNewPage):
+        (WebKit::WebPageProxy::runJavaScriptAlert):
+        (WebKit::WebPageProxy::runJavaScriptConfirm):
+        (WebKit::WebPageProxy::runJavaScriptPrompt):
+        (WebKit::WebPageProxy::mouseDidMoveOverElement):
+        (WebKit::WebPageProxy::contentsSizeChanged):
+        (WebKit::WebPageProxy::addItemToBackForwardList):
+        (WebKit::WebPageProxy::goToItemInBackForwardList):
+        (WebKit::WebPageProxy::registerEditCommandForUndo):
+        (WebKit::WebPageProxy::registerEditCommandForRedo):
+        (WebKit::WebPageProxy::didReceiveEvent):
+        (WebKit::WebPageProxy::didChangeAcceleratedCompositing):
+        * UIProcess/WebPageProxy.h:
+        * UIProcess/WebPageProxy.messages.in: Removed.
+        * UIProcess/win/WebView.cpp:
+        (WebKit::WebView::registerEditCommand):
+        * UIProcess/win/WebView.h:
+        * WebKit2.pro:
+        * WebKit2.xcodeproj/project.pbxproj:
+        * WebProcess/WebCoreSupport/WebChromeClient.cpp:
+        (WebKit::WebChromeClient::setWindowRect):
+        (WebKit::WebChromeClient::takeFocus):
+        (WebKit::WebChromeClient::createWindow):
+        (WebKit::WebChromeClient::runJavaScriptAlert):
+        (WebKit::WebChromeClient::runJavaScriptConfirm):
+        (WebKit::WebChromeClient::runJavaScriptPrompt):
+        (WebKit::WebChromeClient::setStatusbarText):
+        (WebKit::WebChromeClient::contentsSizeChanged):
+        (WebKit::WebChromeClient::mouseDidMoveOverElement):
+        (WebKit::WebChromeClient::setToolTip):
+        (WebKit::WebChromeClient::setCursor):
+        * WebProcess/WebCoreSupport/WebEditorClient.cpp:
+        (WebKit::WebEditorClient::registerCommandForUndo):
+        (WebKit::WebEditorClient::clearUndoRedoOperations):
+        * WebProcess/WebCoreSupport/WebFrameLoaderClient.cpp:
+        (WebKit::WebFrameLoaderClient::detachedFromParent2):
+        (WebKit::WebFrameLoaderClient::dispatchDidReceiveServerRedirectForProvisionalLoad):
+        (WebKit::WebFrameLoaderClient::dispatchDidStartProvisionalLoad):
+        (WebKit::WebFrameLoaderClient::dispatchDidReceiveTitle):
+        (WebKit::WebFrameLoaderClient::dispatchDidCommitLoad):
+        (WebKit::WebFrameLoaderClient::dispatchDidFailProvisionalLoad):
+        (WebKit::WebFrameLoaderClient::dispatchDidFailLoad):
+        (WebKit::WebFrameLoaderClient::dispatchDidFinishDocumentLoad):
+        (WebKit::WebFrameLoaderClient::dispatchDidFinishLoad):
+        (WebKit::WebFrameLoaderClient::dispatchDidFirstLayout):
+        (WebKit::WebFrameLoaderClient::dispatchDidFirstVisuallyNonEmptyLayout):
+        (WebKit::WebFrameLoaderClient::dispatchDecidePolicyForMIMEType):
+        (WebKit::WebFrameLoaderClient::dispatchDecidePolicyForNewWindowAction):
+        (WebKit::WebFrameLoaderClient::dispatchDecidePolicyForNavigationAction):
+        (WebKit::WebFrameLoaderClient::dispatchWillSubmitForm):
+        (WebKit::WebFrameLoaderClient::postProgressStartedNotification):
+        (WebKit::WebFrameLoaderClient::postProgressEstimateChangedNotification):
+        (WebKit::WebFrameLoaderClient::postProgressFinishedNotification):
+        (WebKit::WebFrameLoaderClient::createFrame):
+        * WebProcess/WebPage/WebBackForwardListProxy.cpp:
+        (WebKit::WebBackForwardListProxy::addItem):
+        (WebKit::WebBackForwardListProxy::goToItem):
+        (WebKit::WebBackForwardListProxy::backItem):
+        (WebKit::WebBackForwardListProxy::currentItem):
+        (WebKit::WebBackForwardListProxy::forwardItem):
+        (WebKit::WebBackForwardListProxy::itemAtIndex):
+        (WebKit::WebBackForwardListProxy::backListCount):
+        (WebKit::WebBackForwardListProxy::forwardListCount):
+        * WebProcess/WebPage/WebPage.cpp:
+        (WebKit::WebPage::WebPage):
+        (WebKit::WebPage::changeAcceleratedCompositingMode):
+        (WebKit::WebPage::enterAcceleratedCompositingMode):
+        (WebKit::WebPage::sendClose):
+        (WebKit::WebPage::mouseEvent):
+        (WebKit::WebPage::wheelEvent):
+        (WebKit::WebPage::keyEvent):
+        (WebKit::WebPage::validateMenuItem):
+        (WebKit::WebPage::touchEvent):
+        (WebKit::WebPage::show):
+        (WebKit::WebPage::runJavaScriptInMainFrame):
+        (WebKit::WebPage::getRenderTreeExternalRepresentation):
+        (WebKit::WebPage::getSourceForFrame):
+        * win/WebKit2.vcproj:
+
 2010-10-06  Jessie Berlin  <jberlin at apple.com>
 
         Rubber-stamped by Dan Bernstein.
diff --git a/WebKit2/DerivedSources.make b/WebKit2/DerivedSources.make
index 0138282..34c9cb3 100644
--- a/WebKit2/DerivedSources.make
+++ b/WebKit2/DerivedSources.make
@@ -3,7 +3,6 @@ VPATH = \
     $(WebKit2)/WebProcess/Plugins \
     $(WebKit2)/WebProcess/WebPage \
     $(WebKit2)/WebProcess \
-    $(WebKit2)/UIProcess \
     $(WebKit2)/UIProcess/Plugins \
 #
 
@@ -13,7 +12,6 @@ MESSAGE_RECEIVERS = \
     PluginProcessProxy \
     PluginProxy \
     WebPage \
-    WebPageProxy \
     WebProcess \
     WebProcessConnection \
 #
diff --git a/WebKit2/DerivedSources.pro b/WebKit2/DerivedSources.pro
index 8c5cad5..b73e935 100644
--- a/WebKit2/DerivedSources.pro
+++ b/WebKit2/DerivedSources.pro
@@ -52,18 +52,6 @@ messagereceiver_generator.target   = $${OUTPUT_DIR}/WebKit2/generated/WebPageMes
 generated_files.depends            += messagereceiver_generator
 QMAKE_EXTRA_TARGETS                += messagereceiver_generator
 
-processmessageheader_generator.commands = python $${SRC_ROOT_DIR}/WebKit2/Scripts/generate-messages-header.py  $${SRC_ROOT_DIR}/WebKit2/UIProcess/WebPageProxy.messages.in > $$OUTPUT_DIR/WebKit2/generated/WebPageProxyMessages.h
-processmessageheader_generator.depends  = $${SRC_ROOT_DIR}/WebKit2/Scripts/generate-messages-header.py $${SRC_ROOT_DIR}/UIProcess/WebPageProxy/WebProcess.messages.in
-processmessageheader_generator.target   = $${OUTPUT_DIR}/WebKit2/generated/WebPageProxyMessages.h
-generated_files.depends                 += processmessageheader_generator
-QMAKE_EXTRA_TARGETS                     += processmessageheader_generator
-
-processmessagereceiver_generator.commands = python $${SRC_ROOT_DIR}/WebKit2/Scripts/generate-message-receiver.py  $${SRC_ROOT_DIR}/WebKit2/UIProcess/WebPageProxy.messages.in > $$OUTPUT_DIR/WebKit2/generated/WebPageProxyMessageReceiver.cpp
-processmessagereceiver_generator.depends  = $${SRC_ROOT_DIR}/WebKit2/Scripts/generate-message-receiver.py $${SRC_ROOT_DIR}/WebKit2/UIProcess/WebPageProxy.messages.in
-processmessagereceiver_generator.target   = $${OUTPUT_DIR}/WebKit2/generated/WebPageProxyMessageReceiver.cpp
-generated_files.depends                   += processmessagereceiver_generator
-QMAKE_EXTRA_TARGETS                       += processmessagereceiver_generator
-
 processmessageheader_generator.commands = python $${SRC_ROOT_DIR}/WebKit2/Scripts/generate-messages-header.py  $${SRC_ROOT_DIR}/WebKit2/WebProcess/WebProcess.messages.in > $$OUTPUT_DIR/WebKit2/generated/WebProcessMessages.h
 processmessageheader_generator.depends  = $${SRC_ROOT_DIR}/WebKit2/Scripts/generate-messages-header.py $${SRC_ROOT_DIR}/WebKit2/WebProcess/WebProcess.messages.in
 processmessageheader_generator.target   = $${OUTPUT_DIR}/WebKit2/generated/WebProcessMessages.h
diff --git a/WebKit2/Platform/CoreIPC/Arguments.h b/WebKit2/Platform/CoreIPC/Arguments.h
index 42b6cba..63ec22d 100644
--- a/WebKit2/Platform/CoreIPC/Arguments.h
+++ b/WebKit2/Platform/CoreIPC/Arguments.h
@@ -208,12 +208,6 @@ template<typename T1, typename T2, typename T3, typename T4> Arguments4<T1&, T2&
 
 template<typename T1, typename T2, typename T3, typename T4, typename T5> class Arguments5 : Arguments4<T1, T2, T3, T4> {
 public:
-    typedef T1 FirstArgumentType;
-    typedef T2 SecondArgumentType;
-    typedef T3 ThirdArgumentType;
-    typedef T4 FourthArgumentType;
-    typedef T5 FifthArgumentType;
-
     Arguments5(T1 t1, T2 t2, T3 t3, T4 t4, T5 t5)
         : Arguments4<T1, T2, T3, T4>(t1, t2, t3, t4)
         , m_value(t5)
diff --git a/WebKit2/Platform/CoreIPC/HandleMessage.h b/WebKit2/Platform/CoreIPC/HandleMessage.h
index 0a277ae..46686fb 100644
--- a/WebKit2/Platform/CoreIPC/HandleMessage.h
+++ b/WebKit2/Platform/CoreIPC/HandleMessage.h
@@ -1,28 +1,3 @@
-/*
- * 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 HandleMessage_h
 #define HandleMessage_h
 
@@ -46,12 +21,6 @@ void handleMessage(ArgumentDecoder* arguments, C* object, void (C::*function)(P)
     (object->*function)(argument);
 }
 
-template<typename T, typename C>
-void handleMessage(ArgumentDecoder* arguments, C* object, void (C::*function)(CoreIPC::ArgumentDecoder*))
-{
-    (object->*function)(arguments);
-}
-
 template<typename T, typename C, typename P1, typename P2>
 void handleMessage(ArgumentDecoder* arguments, C* object, void (C::*function)(P1, P2))
 {
@@ -64,15 +33,6 @@ void handleMessage(ArgumentDecoder* arguments, C* object, void (C::*function)(P1
     (object->*function)(firstArgument, secondArgument);
 }
 
-template<typename T, typename C, typename P1>
-void handleMessage(ArgumentDecoder* arguments, C* object, void (C::*function)(P1, CoreIPC::ArgumentDecoder*))
-{
-    typename RemoveReference<typename T::FirstArgumentType>::Type firstArgument;
-    if (!arguments->decode(firstArgument))
-        return;
-    (object->*function)(firstArgument, arguments);
-}
-
 template<typename T, typename C, typename P1, typename P2, typename P3>
 void handleMessage(ArgumentDecoder* arguments, C* object, void (C::*function)(P1, P2, P3))
 {
@@ -88,90 +48,6 @@ void handleMessage(ArgumentDecoder* arguments, C* object, void (C::*function)(P1
     (object->*function)(firstArgument, secondArgument, thirdArgument);
 }
 
-template<typename T, typename C, typename P1, typename P2>
-void handleMessage(ArgumentDecoder* arguments, C* object, void (C::*function)(P1, P2, CoreIPC::ArgumentDecoder*))
-{
-    typename RemoveReference<typename T::FirstArgumentType>::Type firstArgument;
-    if (!arguments->decode(firstArgument))
-        return;
-    typename RemoveReference<typename T::SecondArgumentType>::Type secondArgument;
-    if (!arguments->decode(secondArgument))
-        return;
-    (object->*function)(firstArgument, secondArgument, arguments);
-}
-
-template<typename T, typename C, typename P1, typename P2, typename P3, typename P4>
-void handleMessage(ArgumentDecoder* arguments, C* object, void (C::*function)(P1, P2, P3, P4))
-{
-    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;
-    (object->*function)(firstArgument, secondArgument, thirdArgument, fourthArgument);
-}
-
-template<typename T, typename C, typename P1, typename P2, typename P3>
-void handleMessage(ArgumentDecoder* arguments, C* object, void (C::*function)(P1, P2, P3, CoreIPC::ArgumentDecoder*))
-{
-    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;
-    (object->*function)(firstArgument, secondArgument, thirdArgument, arguments);
-}
-
-template<typename T, typename C, typename P1, typename P2, typename P3, typename P4, typename P5>
-void handleMessage(ArgumentDecoder* arguments, C* object, void (C::*function)(P1, P2, P3, P4, P5))
-{
-    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;
-    (object->*function)(firstArgument, secondArgument, thirdArgument, fourthArgument, fifthArgument);
-}
-
-template<typename T, typename C, typename P1, typename P2, typename P3, typename P4>
-void handleMessage(ArgumentDecoder* arguments, C* object, void (C::*function)(P1, P2, P3, P4, CoreIPC::ArgumentDecoder*))
-{
-    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;
-    (object->*function)(firstArgument, secondArgument, thirdArgument, fourthArgument, arguments);
-}
-
 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))
 {
@@ -233,52 +109,6 @@ void handleMessage(ArgumentDecoder* arguments, ArgumentEncoder* reply, C* object
     (object->*function)(firstArgument);
 }
 
-template<typename T, typename C, typename P1, typename P2>
-void handleMessage(ArgumentDecoder* arguments, ArgumentEncoder* reply, C* object, void (C::*function)(P1, P2))
-{
-    typename RemoveReference<typename T::FirstArgumentType>::Type firstArgument;
-    if (!arguments->decode(firstArgument))
-        return;
-
-    typename RemoveReference<typename T::SecondArgumentType>::Type secondArgument;
-    if (!arguments->decode(secondArgument))
-        return;
-
-    (object->*function)(firstArgument, secondArgument);
-}
-
-template<typename T, typename C, typename P1, typename P2>
-void handleMessage(ArgumentDecoder* arguments, ArgumentEncoder* reply, C* object, void (C::*function)(P1, const P2&))
-{
-    typename RemoveReference<typename T::FirstArgumentType>::Type firstArgument;
-    if (!arguments->decode(firstArgument))
-        return;
-
-    typename RemoveReference<typename T::SecondArgumentType>::Type secondArgument;
-    if (!arguments->decode(secondArgument))
-        return;
-
-    (object->*function)(firstArgument, secondArgument);
-}
-
-template<typename T, typename C, typename R1>
-void handleMessage(ArgumentDecoder* arguments, ArgumentEncoder* reply, C* object, void (C::*function)(R1&))
-{
-    typename RemoveReference<typename T::Reply::FirstArgumentType>::Type firstReplyArgument;
-    (object->*function)(firstReplyArgument);
-    reply->encode(firstReplyArgument);
-}
-
-template<typename T, typename C, typename R1, typename R2>
-void handleMessage(ArgumentDecoder* arguments, ArgumentEncoder* reply, C* object, void (C::*function)(R1&, R2&))
-{
-    typename RemoveReference<typename T::Reply::FirstArgumentType>::Type firstReplyArgument;
-    typename RemoveReference<typename T::Reply::SecondArgumentType>::Type secondReplyArgument;
-    (object->*function)(firstReplyArgument, secondReplyArgument);
-    reply->encode(firstReplyArgument);
-    reply->encode(secondReplyArgument);
-}
-
 template<typename T, typename C, typename P1, typename R1>
 void handleMessage(ArgumentDecoder* arguments, ArgumentEncoder* reply, C* object, void (C::*function)(P1, R1&))
 {
@@ -291,22 +121,6 @@ void handleMessage(ArgumentDecoder* arguments, ArgumentEncoder* reply, C* object
     reply->encode(firstReplyArgument);
 }
 
-template<typename T, typename C, typename P1, typename P2, typename R1>
-void handleMessage(ArgumentDecoder* arguments, ArgumentEncoder* reply, C* object, void (C::*function)(P1, P2, R1&))
-{
-    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::Reply::FirstArgumentType>::Type firstReplyArgument;
-    (object->*function)(firstArgument, secondArgument, firstReplyArgument);
-    reply->encode(firstReplyArgument);
-}
-
 template<typename T, typename C, typename P1, typename P2, typename P3, typename R1>
 void handleMessage(ArgumentDecoder* arguments, ArgumentEncoder* reply, C* object, void (C::*function)(P1, P2, P3, R1&))
 {
@@ -351,6 +165,22 @@ void handleMessage(ArgumentDecoder* arguments, ArgumentEncoder* reply, C* object
     reply->encode(firstReplyArgument);
 }
 
+template<typename T, typename C, typename P1, typename P2, typename R1>
+void handleMessage(ArgumentDecoder* arguments, ArgumentEncoder* reply, C* object, void (C::*function)(P1, P2, R1&))
+{
+    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::Reply::FirstArgumentType>::Type firstReplyArgument;
+    (object->*function)(firstArgument, secondArgument, firstReplyArgument);
+    reply->encode(firstReplyArgument);
+}
+
 } // namespace CoreIPC
 
 #endif // HandleMessage_h
diff --git a/WebKit2/Scripts/webkit2/messages.py b/WebKit2/Scripts/webkit2/messages.py
index 8dfad55..6f2d263 100644
--- a/WebKit2/Scripts/webkit2/messages.py
+++ b/WebKit2/Scripts/webkit2/messages.py
@@ -144,16 +144,12 @@ def function_parameter_type(type):
     # Don't use references for built-in types.
     builtin_types = frozenset([
         'bool',
-        'double',
         'float',
-        'int16_t',
-        'int32_t',
-        'int64_t',
-        'int8_t',
+        'double',
+        'uint8_t',
         'uint16_t',
         'uint32_t',
         'uint64_t',
-        'uint8_t',
     ])
 
     if type in builtin_types:
@@ -326,7 +322,6 @@ def argument_coder_headers_for_type(type):
 
     special_cases = {
         'WTF::String': '"ArgumentCoders.h"',
-        'WebKit::InjectedBundleUserMessageEncoder': '"InjectedBundleUserMessageCoders.h"',
     }
 
     if type in special_cases:
@@ -386,18 +381,6 @@ def generate_message_handler(file):
         type_headers = headers_for_type(type)
         headers.update(type_headers)
 
-    for message in receiver.messages:
-        if message.reply_parameters is not None:
-            for reply_parameter in message.reply_parameters:
-                type = reply_parameter.type
-                argument_encoder_headers = argument_coder_headers_for_type(type)
-                if argument_encoder_headers:
-                    headers.update(argument_encoder_headers)
-                    continue
-
-                type_headers = headers_for_type(type)
-                headers.update(type_headers)
-
     result = []
 
     result.append(_license_header)
diff --git a/WebKit2/Scripts/webkit2/messages_unittest.py b/WebKit2/Scripts/webkit2/messages_unittest.py
index 6826d5c..3b45680 100644
--- a/WebKit2/Scripts/webkit2/messages_unittest.py
+++ b/WebKit2/Scripts/webkit2/messages_unittest.py
@@ -419,11 +419,9 @@ _expected_receiver_implementation = """/*
 
 #include "ArgumentCoders.h"
 #include "ArgumentDecoder.h"
-#include "Connection.h"
 #include "HandleMessage.h"
 #include "MachPort.h"
 #include "Plugin.h"
-#include "WebCoreArgumentCoders.h"
 #include "WebEvent.h"
 #include "WebPageMessages.h"
 #include "WebPreferencesStore.h"
diff --git a/WebKit2/Shared/CoreIPCSupport/WebPageProxyMessageKinds.h b/WebKit2/Shared/CoreIPCSupport/WebPageProxyMessageKinds.h
new file mode 100644
index 0000000..06bc6d2
--- /dev/null
+++ b/WebKit2/Shared/CoreIPCSupport/WebPageProxyMessageKinds.h
@@ -0,0 +1,103 @@
+/*
+ * 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 WebPageProxyMessageKinds_h
+#define WebPageProxyMessageKinds_h
+
+#include "MessageID.h"
+
+// Messages sent from the web process to the WebPageProxy.
+
+namespace WebPageProxyMessage {
+
+enum Kind {
+    CreateNewPage,
+    ShowPage,
+    RunJavaScriptAlert,
+    RunJavaScriptConfirm,
+    RunJavaScriptPrompt,
+
+    ClosePage,
+    ContentsSizeChanged,
+    DecidePolicyForMIMEType,
+    DecidePolicyForNavigationAction,
+    DecidePolicyForNewWindowAction,
+    DidChangeProgress,
+    DidCommitLoadForFrame,
+    DidCreateMainFrame,
+    DidCreateSubFrame,
+    DidFailLoadForFrame,
+    DidFailProvisionalLoadForFrame,
+    DidFinishDocumentLoadForFrame,
+    DidFinishLoadForFrame,
+    DidFinishProgress,
+    DidFirstLayoutForFrame,
+    DidFirstVisuallyNonEmptyLayoutForFrame,
+    DidGetRenderTreeExternalRepresentation,
+    DidGetSourceForFrame,
+    DidReceiveEvent,
+    DidReceiveServerRedirectForProvisionalLoadForFrame,
+    DidReceiveTitleForFrame,
+    DidRemoveFrameFromHierarchy,
+    DidRunJavaScriptInMainFrame,
+    DidSetFrame,
+    DidStartProgress,
+    DidStartProvisionalLoadForFrame,
+    DidValidateMenuItem,
+    MouseDidMoveOverElement,
+    SetCursor,
+    SetStatusText,
+    SetToolTip,
+    TakeFocus,
+    WillSubmitForm,
+
+    BackForwardAddItem,
+    BackForwardGoToItem,
+    BackForwardBackItem,
+    BackForwardCurrentItem,
+    BackForwardForwardItem,
+    BackForwardItemAtIndex,
+    BackForwardBackListCount,
+    BackForwardForwardListCount,
+
+    RegisterEditCommandForUndo,
+    ClearAllEditCommands,
+
+#if USE(ACCELERATED_COMPOSITING)
+    DidChangeAcceleratedCompositing,
+#endif
+};
+
+}
+
+namespace CoreIPC {
+
+template<> struct MessageKindTraits<WebPageProxyMessage::Kind> { 
+    static const MessageClass messageClass = MessageClassWebPageProxy;
+};
+
+}
+
+#endif // WebPageProxyMessageKinds_h
diff --git a/WebKit2/Shared/StringPairVector.h b/WebKit2/Shared/StringPairVector.h
deleted file mode 100644
index ce2da4a..0000000
--- a/WebKit2/Shared/StringPairVector.h
+++ /dev/null
@@ -1,66 +0,0 @@
-/*
- * 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 StringPairVector_h
-#define StringPairVector_h
-
-#include "ArgumentCoders.h"
-#include <wtf/Vector.h>
-#include <wtf/text/WTFString.h>
-
-namespace WebKit {
-
-// This class is a hack to work around the fact that the IPC message generator
-// cannot deal with class templates with more than one paramter.
-class StringPairVector {
-public:
-    StringPairVector()
-    {
-    }
-
-    StringPairVector(Vector<std::pair<String, String> > stringPairVector)
-    {
-        m_stringPairVector.swap(stringPairVector);
-    }
-
-    void encode(CoreIPC::ArgumentEncoder* encoder) const
-    {
-        encoder->encode(m_stringPairVector);
-    }
-
-    static bool decode(CoreIPC::ArgumentDecoder* decoder, StringPairVector& stringPairVector)
-    {
-        return decoder->decode(stringPairVector.m_stringPairVector);
-    }
-
-    const Vector<std::pair<String, String> >& stringPairVector() const { return m_stringPairVector; }
-
-private:
-    Vector<std::pair<String, String> > m_stringPairVector;
-};
-
-} // namespace WebKit
-
-#endif // StringPairVector_h
diff --git a/WebKit2/UIProcess/API/mac/PageClientImpl.h b/WebKit2/UIProcess/API/mac/PageClientImpl.h
index 748d7e3..f45ad71 100644
--- a/WebKit2/UIProcess/API/mac/PageClientImpl.h
+++ b/WebKit2/UIProcess/API/mac/PageClientImpl.h
@@ -52,7 +52,7 @@ private:
     virtual void toolTipChanged(const String& oldToolTip, const String& newToolTip);
     virtual void setCursor(const WebCore::Cursor&);
 
-    void registerEditCommand(PassRefPtr<WebEditCommandProxy>, WebPageProxy::UndoOrRedo);
+    void registerEditCommand(PassRefPtr<WebEditCommandProxy>, UndoOrRedo);
     void clearAllEditCommands();
     void setEditCommandState(const String& commandName, bool isEnabled, int state);
 
diff --git a/WebKit2/UIProcess/API/mac/PageClientImpl.mm b/WebKit2/UIProcess/API/mac/PageClientImpl.mm
index b47f310..54f0b1e 100644
--- a/WebKit2/UIProcess/API/mac/PageClientImpl.mm
+++ b/WebKit2/UIProcess/API/mac/PageClientImpl.mm
@@ -183,7 +183,7 @@ static NSString* nameForEditAction(EditAction editAction)
     return nil;
 }
 
-void PageClientImpl::registerEditCommand(PassRefPtr<WebEditCommandProxy> prpCommand, WebPageProxy::UndoOrRedo undoOrRedo)
+void PageClientImpl::registerEditCommand(PassRefPtr<WebEditCommandProxy> prpCommand, UndoOrRedo undoOrRedo)
 {
     RefPtr<WebEditCommandProxy> command = prpCommand;
 
@@ -191,7 +191,7 @@ void PageClientImpl::registerEditCommand(PassRefPtr<WebEditCommandProxy> prpComm
     NSString *actionName = nameForEditAction(command->editAction());
 
     NSUndoManager *undoManager = [m_wkView undoManager];
-    [undoManager registerUndoWithTarget:m_undoTarget.get() selector:((undoOrRedo == WebPageProxy::Undo) ? @selector(undoEditing:) : @selector(redoEditing:)) object:commandObjC.get()];
+    [undoManager registerUndoWithTarget:m_undoTarget.get() selector:((undoOrRedo == Undo) ? @selector(undoEditing:) : @selector(redoEditing:)) object:commandObjC.get()];
     if (actionName)
         [undoManager setActionName:actionName];
 }
diff --git a/WebKit2/UIProcess/API/qt/qwkpage.cpp b/WebKit2/UIProcess/API/qt/qwkpage.cpp
index 1c6e4ed..15f4f6e 100644
--- a/WebKit2/UIProcess/API/qt/qwkpage.cpp
+++ b/WebKit2/UIProcess/API/qt/qwkpage.cpp
@@ -83,7 +83,7 @@ void QWKPagePrivate::toolTipChanged(const String&, const String& newTooltip)
     emit q->statusBarMessage(QString(newTooltip));
 }
 
-void QWKPagePrivate::registerEditCommand(PassRefPtr<WebEditCommandProxy>, WebPageProxy::UndoOrRedo)
+void QWKPagePrivate::registerEditCommand(PassRefPtr<WebEditCommandProxy>, UndoOrRedo)
 {
 }
 
diff --git a/WebKit2/UIProcess/API/qt/qwkpage_p.h b/WebKit2/UIProcess/API/qt/qwkpage_p.h
index 9ed5867..ad9f13b 100644
--- a/WebKit2/UIProcess/API/qt/qwkpage_p.h
+++ b/WebKit2/UIProcess/API/qt/qwkpage_p.h
@@ -53,7 +53,7 @@ public:
     virtual void setCursor(const WebCore::Cursor&);
     virtual void takeFocus(bool direction) { }
     virtual void toolTipChanged(const WTF::String&, const WTF::String&);
-    virtual void registerEditCommand(PassRefPtr<WebKit::WebEditCommandProxy>, WebPageProxy::UndoOrRedo);
+    virtual void registerEditCommand(PassRefPtr<WebKit::WebEditCommandProxy>, UndoOrRedo);
     virtual void clearAllEditCommands();
 
     void paint(QPainter* painter, QRect);
diff --git a/WebKit2/UIProcess/PageClient.h b/WebKit2/UIProcess/PageClient.h
index 9099446..efa5718 100644
--- a/WebKit2/UIProcess/PageClient.h
+++ b/WebKit2/UIProcess/PageClient.h
@@ -26,7 +26,6 @@
 #ifndef PageClient_h
 #define PageClient_h
 
-#include "WebPageProxy.h"
 #include <wtf/Forward.h>
 
 namespace WebCore {
@@ -49,7 +48,8 @@ public:
 
     virtual void setCursor(const WebCore::Cursor&) = 0;
 
-    virtual void registerEditCommand(PassRefPtr<WebEditCommandProxy>, WebPageProxy::UndoOrRedo) = 0;
+    enum UndoOrRedo { Undo, Redo };
+    virtual void registerEditCommand(PassRefPtr<WebEditCommandProxy>, UndoOrRedo) = 0;
     virtual void clearAllEditCommands() = 0;
     virtual void setEditCommandState(const String& commandName, bool isEnabled, int state) = 0;
 
diff --git a/WebKit2/UIProcess/WebEditCommandProxy.cpp b/WebKit2/UIProcess/WebEditCommandProxy.cpp
index 9a816e3..70b7d19 100644
--- a/WebKit2/UIProcess/WebEditCommandProxy.cpp
+++ b/WebKit2/UIProcess/WebEditCommandProxy.cpp
@@ -53,7 +53,7 @@ void WebEditCommandProxy::unapply()
         return;
 
     m_page->process()->send(Messages::WebPage::UnapplyEditCommand(m_commandID), m_page->pageID());
-    m_page->registerEditCommand(this, WebPageProxy::Undo);
+    m_page->registerEditCommandForRedo(this);
 }
 
 void WebEditCommandProxy::reapply()
@@ -62,7 +62,7 @@ void WebEditCommandProxy::reapply()
         return;
 
     m_page->process()->send(Messages::WebPage::ReapplyEditCommand(m_commandID), m_page->pageID());
-    m_page->registerEditCommand(this, WebPageProxy::Redo);
+    m_page->registerEditCommandForUndo(this);
 }
 
 } // namespace WebKit
diff --git a/WebKit2/UIProcess/WebFormClient.cpp b/WebKit2/UIProcess/WebFormClient.cpp
index 11eaf0d..f5f5843 100644
--- a/WebKit2/UIProcess/WebFormClient.cpp
+++ b/WebKit2/UIProcess/WebFormClient.cpp
@@ -45,7 +45,7 @@ void WebFormClient::initialize(const WKPageFormClient* client)
         memset(&m_pageFormClient, 0, sizeof(m_pageFormClient));
 }
 
-bool WebFormClient::willSubmitForm(WebPageProxy* page, WebFrameProxy* frame, WebFrameProxy* sourceFrame, const Vector<std::pair<String, String> >& textFieldValues, APIObject* userData, WebFormSubmissionListenerProxy* listener)
+bool WebFormClient::willSubmitForm(WebPageProxy* page, WebFrameProxy* frame, WebFrameProxy* sourceFrame, Vector<std::pair<String, String> >& textFieldValues, APIObject* userData, WebFormSubmissionListenerProxy* listener)
 {
     if (!m_pageFormClient.willSubmitForm)
         return false;
diff --git a/WebKit2/UIProcess/WebFormClient.h b/WebKit2/UIProcess/WebFormClient.h
index b8314e6..1f074a6 100644
--- a/WebKit2/UIProcess/WebFormClient.h
+++ b/WebKit2/UIProcess/WebFormClient.h
@@ -43,7 +43,7 @@ public:
     WebFormClient();
     void initialize(const WKPageFormClient*);
 
-    bool willSubmitForm(WebPageProxy*, WebFrameProxy*, WebFrameProxy*, const Vector<std::pair<String, String> >& textFieldValues, APIObject* userData, WebFormSubmissionListenerProxy*); 
+    bool willSubmitForm(WebPageProxy*, WebFrameProxy*, WebFrameProxy*, Vector<std::pair<String, String> >& textFieldValues, APIObject* userData, WebFormSubmissionListenerProxy*); 
 
 private:
     WKPageFormClient m_pageFormClient;
diff --git a/WebKit2/UIProcess/WebPageProxy.cpp b/WebKit2/UIProcess/WebPageProxy.cpp
index 264eaa6..b2521e7 100644
--- a/WebKit2/UIProcess/WebPageProxy.cpp
+++ b/WebKit2/UIProcess/WebPageProxy.cpp
@@ -29,7 +29,6 @@
 #include "MessageID.h"
 #include "NativeWebKeyboardEvent.h"
 #include "PageClient.h"
-#include "StringPairVector.h"
 #include "WebBackForwardList.h"
 #include "WebBackForwardListItem.h"
 #include "WebCertificateInfo.h"
@@ -44,6 +43,7 @@
 #include "WebPageCreationParameters.h"
 #include "WebPageMessages.h"
 #include "WebPageNamespace.h"
+#include "WebPageProxyMessageKinds.h"
 #include "WebPreferences.h"
 #include "WebProcessManager.h"
 #include "WebProcessMessages.h"
@@ -540,8 +540,349 @@ void WebPageProxy::didReceiveMessage(CoreIPC::Connection* connection, CoreIPC::M
         return;
     }
 
-    didReceiveWebPageProxyMessage(connection, messageID, arguments);
+    switch (messageID.get<WebPageProxyMessage::Kind>()) {
+        case WebPageProxyMessage::DidCreateMainFrame: {
+            uint64_t frameID;
+            if (!arguments->decode(frameID))
+                return;
+            didCreateMainFrame(frameID);
+            break;
+        }
+        case WebPageProxyMessage::DidCreateSubFrame: {
+            uint64_t frameID;
+            if (!arguments->decode(frameID))
+                return;
+            didCreateSubFrame(frameID);
+            break;
+        }
+        case WebPageProxyMessage::DidStartProvisionalLoadForFrame: {
+            uint64_t frameID;
+            String url;
+
+            RefPtr<APIObject> userData;
+            WebContextUserMessageDecoder messageDecoder(userData, pageNamespace()->context());
+
+            if (!arguments->decode(CoreIPC::Out(frameID, url, messageDecoder)))
+                return;
+
+            didStartProvisionalLoadForFrame(process()->webFrame(frameID), url, userData.get());
+            break;
+        }
+        case WebPageProxyMessage::DidReceiveServerRedirectForProvisionalLoadForFrame: {
+            uint64_t frameID;
+            String url;
+
+            RefPtr<APIObject> userData;
+            WebContextUserMessageDecoder messageDecoder(userData, pageNamespace()->context());
+
+            if (!arguments->decode(CoreIPC::Out(frameID, url, messageDecoder)))
+                return;
+
+            didReceiveServerRedirectForProvisionalLoadForFrame(process()->webFrame(frameID), url, userData.get());
+            break;
+        }
+        case WebPageProxyMessage::DidFailProvisionalLoadForFrame: {
+            uint64_t frameID;
+            
+            RefPtr<APIObject> userData;
+            WebContextUserMessageDecoder messageDecoder(userData, pageNamespace()->context());
+
+            if (!arguments->decode(CoreIPC::Out(frameID, messageDecoder)))
+                return;
+
+            didFailProvisionalLoadForFrame(process()->webFrame(frameID), userData.get());
+            break;
+        }
+        case WebPageProxyMessage::DidCommitLoadForFrame: {
+            uint64_t frameID;
+            String mimeType;
+            PlatformCertificateInfo certificateInfo;
+
+            RefPtr<APIObject> userData;
+            WebContextUserMessageDecoder messageDecoder(userData, pageNamespace()->context());
+
+            if (!arguments->decode(CoreIPC::Out(frameID, mimeType, certificateInfo, messageDecoder)))
+                return;
+    
+            didCommitLoadForFrame(process()->webFrame(frameID), mimeType, certificateInfo, userData.get());
+            break;
+        }
+        case WebPageProxyMessage::DidFinishDocumentLoadForFrame: {
+            uint64_t frameID;
+
+            RefPtr<APIObject> userData;
+            WebContextUserMessageDecoder messageDecoder(userData, pageNamespace()->context());
+
+            if (!arguments->decode(CoreIPC::Out(frameID, messageDecoder)))
+                return;
+
+            didFinishDocumentLoadForFrame(process()->webFrame(frameID), userData.get());
+            break;
+        }
+        case WebPageProxyMessage::DidFinishLoadForFrame: {
+            uint64_t frameID;
+
+            RefPtr<APIObject> userData;
+            WebContextUserMessageDecoder messageDecoder(userData, pageNamespace()->context());
+
+            if (!arguments->decode(CoreIPC::Out(frameID, messageDecoder)))
+                return;
+
+            didFinishLoadForFrame(process()->webFrame(frameID), userData.get());
+            break;
+        }
+        case WebPageProxyMessage::DidFailLoadForFrame: {
+            uint64_t frameID;
+
+            RefPtr<APIObject> userData;
+            WebContextUserMessageDecoder messageDecoder(userData, pageNamespace()->context());
+
+            if (!arguments->decode(CoreIPC::Out(frameID, messageDecoder)))
+                return;
+
+            didFailLoadForFrame(process()->webFrame(frameID), userData.get());
+            break;
+        }
+        case WebPageProxyMessage::DidReceiveTitleForFrame: {
+            uint64_t frameID;
+            String title;
+
+            RefPtr<APIObject> userData;
+            WebContextUserMessageDecoder messageDecoder(userData, pageNamespace()->context());
+
+            if (!arguments->decode(CoreIPC::Out(frameID, title, messageDecoder)))
+                return;
+
+            didReceiveTitleForFrame(process()->webFrame(frameID), title, userData.get());
+            break;
+        }
+        case WebPageProxyMessage::DidFirstLayoutForFrame: {
+            uint64_t frameID;
+
+            RefPtr<APIObject> userData;
+            WebContextUserMessageDecoder messageDecoder(userData, pageNamespace()->context());
+
+            if (!arguments->decode(CoreIPC::Out(frameID, messageDecoder)))
+                return;
+
+            didFirstLayoutForFrame(process()->webFrame(frameID), userData.get());
+            break;
+        }
+        case WebPageProxyMessage::DidFirstVisuallyNonEmptyLayoutForFrame: {
+            uint64_t frameID;
+
+            RefPtr<APIObject> userData;
+            WebContextUserMessageDecoder messageDecoder(userData, pageNamespace()->context());
+
+            if (!arguments->decode(CoreIPC::Out(frameID, messageDecoder)))
+                return;
+
+            didFirstVisuallyNonEmptyLayoutForFrame(process()->webFrame(frameID), userData.get());
+            break;
+        }
+        case WebPageProxyMessage::DidRemoveFrameFromHierarchy: {
+            uint64_t frameID;
 
+            RefPtr<APIObject> userData;
+            WebContextUserMessageDecoder messageDecoder(userData, pageNamespace()->context());
+
+            if (!arguments->decode(CoreIPC::Out(frameID, messageDecoder)))
+                return;
+
+            didRemoveFrameFromHierarchy(process()->webFrame(frameID), userData.get());
+            break;
+        }
+        case WebPageProxyMessage::DidStartProgress:
+            didStartProgress();
+            break;
+        case WebPageProxyMessage::DidChangeProgress: {
+            double value;
+            if (!arguments->decode(value))
+                return;
+            didChangeProgress(value);
+            break;
+        }
+        case WebPageProxyMessage::DidFinishProgress:
+            didFinishProgress();
+            break;
+        case WebPageProxyMessage::DidReceiveEvent: {
+            uint32_t type;
+            bool handled;
+            if (!arguments->decode(CoreIPC::Out(type, handled)))
+                return;
+            didReceiveEvent((WebEvent::Type)type, handled);
+            break;
+        }
+        case WebPageProxyMessage::TakeFocus: {
+            // FIXME: Use enum here.
+            bool direction;
+            if (!arguments->decode(direction))
+                return;
+            takeFocus(direction);
+            break;
+        }
+        case WebPageProxyMessage::DecidePolicyForNavigationAction: {
+            uint64_t frameID;
+            uint32_t navigationType;
+            uint32_t modifiers;
+            int32_t mouseButton;
+            String url;
+            uint64_t listenerID;
+            if (!arguments->decode(CoreIPC::Out(frameID, navigationType, modifiers, mouseButton, url, listenerID)))
+                return;
+            decidePolicyForNavigationAction(process()->webFrame(frameID), static_cast<NavigationType>(navigationType), static_cast<WebEvent::Modifiers>(modifiers), static_cast<WebMouseEvent::Button>(mouseButton), url, listenerID);
+            break;
+        }
+        case WebPageProxyMessage::DecidePolicyForNewWindowAction: {
+            uint64_t frameID;
+            uint32_t navigationType;
+            uint32_t modifiers;
+            int32_t mouseButton;
+            String url;
+            uint64_t listenerID;
+            if (!arguments->decode(CoreIPC::Out(frameID, navigationType, modifiers, mouseButton, url, listenerID)))
+                return;
+            decidePolicyForNewWindowAction(process()->webFrame(frameID), static_cast<NavigationType>(navigationType), static_cast<WebEvent::Modifiers>(modifiers), static_cast<WebMouseEvent::Button>(mouseButton), url, listenerID);
+            break;
+        }
+        case WebPageProxyMessage::DecidePolicyForMIMEType: {
+            uint64_t frameID;
+            String MIMEType;
+            String url;
+            uint64_t listenerID;
+            if (!arguments->decode(CoreIPC::Out(frameID, MIMEType, url, listenerID)))
+                return;
+            decidePolicyForMIMEType(process()->webFrame(frameID), MIMEType, url, listenerID);
+            break;
+        }
+        case WebPageProxyMessage::WillSubmitForm: {
+            uint64_t frameID;
+            uint64_t sourceFrameID;
+            Vector<std::pair<String, String> > textFieldValues;
+            uint64_t listenerID;
+
+            RefPtr<APIObject> userData;
+            WebContextUserMessageDecoder messageDecoder(userData, pageNamespace()->context());
+
+            if (!arguments->decode(CoreIPC::Out(frameID, sourceFrameID, textFieldValues, listenerID, messageDecoder)))
+                return;
+
+            willSubmitForm(process()->webFrame(frameID), process()->webFrame(sourceFrameID), textFieldValues, userData.get(), listenerID);
+            break;
+        }
+        case WebPageProxyMessage::DidRunJavaScriptInMainFrame: {
+            String resultString;
+            uint64_t callbackID;
+            if (!arguments->decode(CoreIPC::Out(resultString, callbackID)))
+                return;
+            didRunJavaScriptInMainFrame(resultString, callbackID);
+            break;
+        }
+        case WebPageProxyMessage::DidGetRenderTreeExternalRepresentation: {
+            String resultString;
+            uint64_t callbackID;
+            if (!arguments->decode(CoreIPC::Out(resultString, callbackID)))
+                return;
+            didGetRenderTreeExternalRepresentation(resultString, callbackID);
+            break;
+        }
+        case WebPageProxyMessage::DidGetSourceForFrame: {
+            String resultString;
+            uint64_t callbackID;
+            if (!arguments->decode(CoreIPC::Out(resultString, callbackID)))
+                return;
+            didGetSourceForFrame(resultString, callbackID);
+            break;
+        }
+        case WebPageProxyMessage::SetToolTip: {
+            String toolTip;
+            if (!arguments->decode(toolTip))
+                return;
+            setToolTip(toolTip);
+            break;
+        }
+        case WebPageProxyMessage::SetCursor: {
+#if USE(LAZY_NATIVE_CURSOR)
+            Cursor cursor;
+            if (!arguments->decode(cursor))
+                return;
+            setCursor(cursor);
+#endif
+            break;
+        }
+        case WebPageProxyMessage::ShowPage: {
+            showPage();
+            break;
+        }
+        case WebPageProxyMessage::ClosePage: {
+            closePage();
+            break;
+        }
+        case WebPageProxyMessage::BackForwardAddItem: {
+            uint64_t itemID;
+            if (!arguments->decode(CoreIPC::Out(itemID)))
+                return;
+            addItemToBackForwardList(process()->webBackForwardItem(itemID));
+            break;
+        }
+        case WebPageProxyMessage::BackForwardGoToItem: {
+            uint64_t itemID;
+            if (!arguments->decode(CoreIPC::Out(itemID)))
+                return;
+            goToItemInBackForwardList(process()->webBackForwardItem(itemID));
+            break;
+        }
+        case WebPageProxyMessage::ContentsSizeChanged: {
+            IntSize size;
+            uint64_t frameID;
+            if (!arguments->decode(CoreIPC::Out(frameID, size)))
+                return;
+            contentsSizeChanged(process()->webFrame(frameID), size);
+            break;
+        }
+        case WebPageProxyMessage::SetStatusText: {
+            String text;
+            if (!arguments->decode(CoreIPC::Out(text)))
+                return;
+            setStatusText(text);
+            break;
+        }
+        case WebPageProxyMessage::RegisterEditCommandForUndo: {
+            uint64_t commandID;
+            uint32_t editAction;
+            if (!arguments->decode(CoreIPC::Out(commandID, editAction)))
+                return;
+                
+            registerEditCommandForUndo(commandID, static_cast<EditAction>(editAction));
+            break;
+        }
+        case WebPageProxyMessage::ClearAllEditCommands:
+            clearAllEditCommands();
+            break;
+        case WebPageProxyMessage::DidValidateMenuItem: {
+            int state;
+            bool isEnabled;
+            String commandName;
+            if (!arguments->decode(CoreIPC::Out(commandName, isEnabled, state)))
+                return;
+            m_pageClient->setEditCommandState(commandName, isEnabled, state);
+            break;
+        }
+        case WebPageProxyMessage::MouseDidMoveOverElement: {
+            uint32_t modifiers;
+            RefPtr<APIObject> userData;
+            WebContextUserMessageDecoder messageDecoder(userData, pageNamespace()->context());
+
+            if (!arguments->decode(CoreIPC::Out(modifiers, messageDecoder)))
+                return;
+
+            mouseDidMoveOverElement(static_cast<WebEvent::Modifiers>(modifiers), userData.get());
+            break;
+        }
+        default:
+            ASSERT_NOT_REACHED();
+            break;
+    }
 }
 
 void WebPageProxy::didReceiveSyncMessage(CoreIPC::Connection* connection, CoreIPC::MessageID messageID, CoreIPC::ArgumentDecoder* arguments, CoreIPC::ArgumentEncoder* reply)
@@ -551,8 +892,105 @@ void WebPageProxy::didReceiveSyncMessage(CoreIPC::Connection* connection, CoreIP
         return;
     }
 
-    // FIXME: Do something with reply.
-    didReceiveSyncWebPageProxyMessage(connection, messageID, arguments, reply);
+    switch (messageID.get<WebPageProxyMessage::Kind>()) {
+        case WebPageProxyMessage::CreateNewPage: {
+            RefPtr<WebPageProxy> newPage = createNewPage();
+            WebPageCreationParameters parameters;
+            if (newPage) {
+                // FIXME: Pass the real size.
+                parameters = newPage->creationParameters(IntSize(100, 100));
+                reply->encode(CoreIPC::In(newPage->pageID(), parameters));
+            } else {
+                reply->encode(CoreIPC::In(static_cast<uint64_t>(0), parameters));
+            }
+            break;
+        }
+        case WebPageProxyMessage::RunJavaScriptAlert: {
+            uint64_t frameID;
+            String message;
+            if (!arguments->decode(CoreIPC::Out(frameID, message)))
+                return;
+            runJavaScriptAlert(process()->webFrame(frameID), message);
+            break;
+        }
+        case WebPageProxyMessage::RunJavaScriptConfirm: {
+            // FIXME: We should probably encode something in the case that the arguments do not decode correctly.
+            uint64_t frameID;
+            String message;
+            if (!arguments->decode(CoreIPC::Out(frameID, message)))
+                return;
+
+            bool result = runJavaScriptConfirm(process()->webFrame(frameID), message);
+            reply->encode(CoreIPC::In(result));
+            break;
+        }
+        case WebPageProxyMessage::RunJavaScriptPrompt: {
+            // FIXME: We should probably encode something in the case that the arguments do not decode correctly.
+            uint64_t frameID;
+            String message;
+            String defaultValue;
+            if (!arguments->decode(CoreIPC::Out(frameID, message, defaultValue)))
+                return;
+
+            String result = runJavaScriptPrompt(process()->webFrame(frameID), message, defaultValue);
+            reply->encode(CoreIPC::In(result));
+            break;
+        }
+
+        case WebPageProxyMessage::BackForwardBackItem: {
+            WebBackForwardListItem* backItem = m_backForwardList->backItem();
+            uint64_t backItemID = backItem ? backItem->itemID() : 0;
+            reply->encode(CoreIPC::In(backItemID));
+            break;
+        }
+        case WebPageProxyMessage::BackForwardCurrentItem: {
+            WebBackForwardListItem* currentItem = m_backForwardList->currentItem();
+            uint64_t currentItemID = currentItem ? currentItem->itemID() : 0;
+            reply->encode(CoreIPC::In(currentItemID));
+            break;
+        }
+        case WebPageProxyMessage::BackForwardForwardItem: {
+            WebBackForwardListItem* forwardItem = m_backForwardList->forwardItem();
+            uint64_t forwardItemID = forwardItem ? forwardItem->itemID() : 0;
+            reply->encode(CoreIPC::In(forwardItemID));
+            break;
+        }
+        case WebPageProxyMessage::BackForwardItemAtIndex: {
+            int itemIndex;
+            if (!arguments->decode(CoreIPC::Out(itemIndex)))
+                return;
+
+            WebBackForwardListItem* item = m_backForwardList->itemAtIndex(itemIndex);
+            uint64_t itemID = item ? item->itemID() : 0;
+            reply->encode(CoreIPC::In(itemID));
+            break;
+        }
+        case WebPageProxyMessage::BackForwardBackListCount: {
+            int backListCount = m_backForwardList->backListCount();
+            reply->encode(CoreIPC::In(backListCount));
+            break;
+        }
+        case WebPageProxyMessage::BackForwardForwardListCount: {
+            int forwardListCount = m_backForwardList->forwardListCount();
+            reply->encode(CoreIPC::In(forwardListCount));
+            break;
+        }
+#if USE(ACCELERATED_COMPOSITING)
+        case WebPageProxyMessage::DidChangeAcceleratedCompositing: {
+            bool compositing;
+            if (!arguments->decode(CoreIPC::Out(compositing)))
+                return;
+
+            didChangeAcceleratedCompositing(compositing);
+            reply->encode(drawingArea()->info());
+            break;
+        }
+#endif // USE(ACCELERATED_COMPOSITING)
+
+        default:
+            ASSERT_NOT_REACHED();
+            break;
+    }
 }
 
 void WebPageProxy::didCreateMainFrame(uint64_t frameID)
@@ -590,179 +1028,91 @@ void WebPageProxy::didFinishProgress()
     m_loaderClient.didFinishProgress(this);
 }
 
-void WebPageProxy::didStartProvisionalLoadForFrame(uint64_t frameID, const String& url, CoreIPC::ArgumentDecoder* arguments)
+void WebPageProxy::didStartProvisionalLoadForFrame(WebFrameProxy* frame, const String& url, APIObject* userData)
 {
-    RefPtr<APIObject> userData;
-    WebContextUserMessageDecoder messageDecoder(userData, pageNamespace()->context());
-    if (!arguments->decode(messageDecoder))
-        return;
-
-    WebFrameProxy* frame = process()->webFrame(frameID);
-
     frame->didStartProvisionalLoad(url);
-    m_loaderClient.didStartProvisionalLoadForFrame(this, frame, userData.get());
+    m_loaderClient.didStartProvisionalLoadForFrame(this, frame, userData);
 }
 
-void WebPageProxy::didReceiveServerRedirectForProvisionalLoadForFrame(uint64_t frameID, const String& url, CoreIPC::ArgumentDecoder* arguments)
+void WebPageProxy::didReceiveServerRedirectForProvisionalLoadForFrame(WebFrameProxy* frame, const String& url, APIObject* userData)
 {
-    RefPtr<APIObject> userData;
-    WebContextUserMessageDecoder messageDecoder(userData, pageNamespace()->context());
-    if (!arguments->decode(messageDecoder))
-        return;
-
-    WebFrameProxy* frame = process()->webFrame(frameID);
-
     frame->didReceiveServerRedirectForProvisionalLoad(url);
-    m_loaderClient.didReceiveServerRedirectForProvisionalLoadForFrame(this, frame, userData.get());
+    m_loaderClient.didReceiveServerRedirectForProvisionalLoadForFrame(this, frame, userData);
 }
 
-void WebPageProxy::didFailProvisionalLoadForFrame(uint64_t frameID, CoreIPC::ArgumentDecoder* arguments)
+void WebPageProxy::didFailProvisionalLoadForFrame(WebFrameProxy* frame, APIObject* userData)
 {
-    RefPtr<APIObject> userData;
-    WebContextUserMessageDecoder messageDecoder(userData, pageNamespace()->context());
-    if (!arguments->decode(messageDecoder))
-        return;
-
-    WebFrameProxy* frame = process()->webFrame(frameID);
-
-    m_loaderClient.didFailProvisionalLoadWithErrorForFrame(this, frame, userData.get());
+    m_loaderClient.didFailProvisionalLoadWithErrorForFrame(this, frame, userData);
 }
 
-void WebPageProxy::didCommitLoadForFrame(uint64_t frameID, const String& mimeType, const PlatformCertificateInfo& certificateInfo, CoreIPC::ArgumentDecoder* arguments)
+void WebPageProxy::didCommitLoadForFrame(WebFrameProxy* frame, const String& mimeType, const PlatformCertificateInfo& certificateInfo, APIObject* userData)
 {
-    RefPtr<APIObject> userData;
-    WebContextUserMessageDecoder messageDecoder(userData, pageNamespace()->context());
-    if (!arguments->decode(messageDecoder))
-        return;
-
-    WebFrameProxy* frame = process()->webFrame(frameID);
-
     frame->setMIMEType(mimeType);
     frame->setCertificateInfo(WebCertificateInfo::create(certificateInfo));
     frame->didCommitLoad();
-    m_loaderClient.didCommitLoadForFrame(this, frame, userData.get());
+    m_loaderClient.didCommitLoadForFrame(this, frame, userData);
 }
 
-void WebPageProxy::didFinishDocumentLoadForFrame(uint64_t frameID, CoreIPC::ArgumentDecoder* arguments)
+void WebPageProxy::didFinishDocumentLoadForFrame(WebFrameProxy* frame, APIObject* userData)
 {
-    RefPtr<APIObject> userData;
-    WebContextUserMessageDecoder messageDecoder(userData, pageNamespace()->context());
-    if (!arguments->decode(messageDecoder))
-        return;
-
-    WebFrameProxy* frame = process()->webFrame(frameID);
-
-    m_loaderClient.didFinishDocumentLoadForFrame(this, frame, userData.get());
+    m_loaderClient.didFinishDocumentLoadForFrame(this, frame, userData);
 }
 
-void WebPageProxy::didFinishLoadForFrame(uint64_t frameID, CoreIPC::ArgumentDecoder* arguments)
+void WebPageProxy::didFinishLoadForFrame(WebFrameProxy* frame, APIObject* userData)
 {
-    RefPtr<APIObject> userData;
-    WebContextUserMessageDecoder messageDecoder(userData, pageNamespace()->context());
-    if (!arguments->decode(messageDecoder))
-        return;
-
-    WebFrameProxy* frame = process()->webFrame(frameID);
-
     frame->didFinishLoad();
-    m_loaderClient.didFinishLoadForFrame(this, frame, userData.get());
+    m_loaderClient.didFinishLoadForFrame(this, frame, userData);
 }
 
-void WebPageProxy::didFailLoadForFrame(uint64_t frameID, CoreIPC::ArgumentDecoder* arguments)
+void WebPageProxy::didFailLoadForFrame(WebFrameProxy* frame, APIObject* userData)
 {
-    RefPtr<APIObject> userData;
-    WebContextUserMessageDecoder messageDecoder(userData, pageNamespace()->context());
-    if (!arguments->decode(messageDecoder))
-        return;
-
-    WebFrameProxy* frame = process()->webFrame(frameID);
-
-    m_loaderClient.didFailLoadWithErrorForFrame(this, frame, userData.get());
+    m_loaderClient.didFailLoadWithErrorForFrame(this, frame, userData);
 }
 
-void WebPageProxy::didReceiveTitleForFrame(uint64_t frameID, const String& title, CoreIPC::ArgumentDecoder* arguments)
+void WebPageProxy::didReceiveTitleForFrame(WebFrameProxy* frame, const String& title, APIObject* userData)
 {
-    RefPtr<APIObject> userData;
-    WebContextUserMessageDecoder messageDecoder(userData, pageNamespace()->context());
-    if (!arguments->decode(messageDecoder))
-        return;
-
-    WebFrameProxy* frame = process()->webFrame(frameID);
-
     frame->didReceiveTitle(title);
 
     // Cache the title for the main frame in the page.
     if (frame == m_mainFrame)
         m_pageTitle = title;
 
-    m_loaderClient.didReceiveTitleForFrame(this, title, frame, userData.get());
+    m_loaderClient.didReceiveTitleForFrame(this, title, frame, userData);
 }
 
-void WebPageProxy::didFirstLayoutForFrame(uint64_t frameID, CoreIPC::ArgumentDecoder* arguments)
+void WebPageProxy::didFirstLayoutForFrame(WebFrameProxy* frame, APIObject* userData)
 {
-    RefPtr<APIObject> userData;
-    WebContextUserMessageDecoder messageDecoder(userData, pageNamespace()->context());
-    if (!arguments->decode(messageDecoder))
-        return;
-
-    WebFrameProxy* frame = process()->webFrame(frameID);
-
-    m_loaderClient.didFirstLayoutForFrame(this, frame, userData.get());
+    m_loaderClient.didFirstLayoutForFrame(this, frame, userData);
 }
 
-void WebPageProxy::didFirstVisuallyNonEmptyLayoutForFrame(uint64_t frameID, CoreIPC::ArgumentDecoder* arguments)
+void WebPageProxy::didFirstVisuallyNonEmptyLayoutForFrame(WebFrameProxy* frame, APIObject* userData)
 {
-    RefPtr<APIObject> userData;
-    WebContextUserMessageDecoder messageDecoder(userData, pageNamespace()->context());
-    if (!arguments->decode(messageDecoder))
-        return;
-
-    WebFrameProxy* frame = process()->webFrame(frameID);
-
-    m_loaderClient.didFirstVisuallyNonEmptyLayoutForFrame(this, frame, userData.get());
+    m_loaderClient.didFirstVisuallyNonEmptyLayoutForFrame(this, frame, userData);
 }
 
-void WebPageProxy::didRemoveFrameFromHierarchy(uint64_t frameID, CoreIPC::ArgumentDecoder* arguments)
+void WebPageProxy::didRemoveFrameFromHierarchy(WebFrameProxy* frame, APIObject* userData)
 {
-    RefPtr<APIObject> userData;
-    WebContextUserMessageDecoder messageDecoder(userData, pageNamespace()->context());
-    if (!arguments->decode(messageDecoder))
-        return;
-
-    WebFrameProxy* frame = process()->webFrame(frameID);
-
-    m_loaderClient.didRemoveFrameFromHierarchy(this, frame, userData.get());
+    m_loaderClient.didRemoveFrameFromHierarchy(this, frame, userData);
 }
 
 // PolicyClient
 
-void WebPageProxy::decidePolicyForNavigationAction(uint64_t frameID, uint32_t opaqueNavigationType, uint32_t opaqueModifiers, int32_t opaqueMouseButton, const String& url, uint64_t listenerID)
+void WebPageProxy::decidePolicyForNavigationAction(WebFrameProxy* frame, NavigationType navigationType, WebEvent::Modifiers modifiers, WebMouseEvent::Button mouseButton, const String& url, uint64_t listenerID)
 {
-    WebFrameProxy* frame = process()->webFrame(frameID);
-    NavigationType navigationType = static_cast<NavigationType>(opaqueNavigationType);
-    WebEvent::Modifiers modifiers = static_cast<WebEvent::Modifiers>(opaqueModifiers);
-    WebMouseEvent::Button mouseButton = static_cast<WebMouseEvent::Button>(opaqueMouseButton);
-    
     RefPtr<WebFramePolicyListenerProxy> listener = frame->setUpPolicyListenerProxy(listenerID);
     if (!m_policyClient.decidePolicyForNavigationAction(this, navigationType, modifiers, mouseButton, url, frame, listener.get()))
         listener->use();
 }
 
-void WebPageProxy::decidePolicyForNewWindowAction(uint64_t frameID, uint32_t opaqueNavigationType, uint32_t opaqueModifiers, int32_t opaqueMouseButton, const String& url, uint64_t listenerID)
+void WebPageProxy::decidePolicyForNewWindowAction(WebFrameProxy* frame, NavigationType navigationType, WebEvent::Modifiers modifiers, WebMouseEvent::Button mouseButton, const String& url, uint64_t listenerID)
 {
-    WebFrameProxy* frame = process()->webFrame(frameID);
-    NavigationType navigationType = static_cast<NavigationType>(opaqueNavigationType);
-    WebEvent::Modifiers modifiers = static_cast<WebEvent::Modifiers>(opaqueModifiers);
-    WebMouseEvent::Button mouseButton = static_cast<WebMouseEvent::Button>(opaqueMouseButton);
-
     RefPtr<WebFramePolicyListenerProxy> listener = frame->setUpPolicyListenerProxy(listenerID);
     if (!m_policyClient.decidePolicyForNewWindowAction(this, navigationType, modifiers, mouseButton, url, frame, listener.get()))
         listener->use();
 }
 
-void WebPageProxy::decidePolicyForMIMEType(uint64_t frameID, const String& MIMEType, const String& url, uint64_t listenerID)
+void WebPageProxy::decidePolicyForMIMEType(WebFrameProxy* frame, const String& MIMEType, const String& url, uint64_t listenerID)
 {
-    WebFrameProxy* frame = process()->webFrame(frameID);
     RefPtr<WebFramePolicyListenerProxy> listener = frame->setUpPolicyListenerProxy(listenerID);
     if (!m_policyClient.decidePolicyForMIMEType(this, MIMEType, url, frame, listener.get()))
         listener->use();
@@ -770,32 +1120,18 @@ void WebPageProxy::decidePolicyForMIMEType(uint64_t frameID, const String& MIMET
 
 // FormClient
 
-void WebPageProxy::willSubmitForm(uint64_t frameID, uint64_t sourceFrameID, const StringPairVector& textFieldValues, uint64_t listenerID, CoreIPC::ArgumentDecoder* arguments)
+void WebPageProxy::willSubmitForm(WebFrameProxy* frame, WebFrameProxy* sourceFrame, Vector<std::pair<String, String> >& textFieldValues, APIObject* userData, uint64_t listenerID)
 {
-    RefPtr<APIObject> userData;
-    WebContextUserMessageDecoder messageDecoder(userData, pageNamespace()->context());
-    if (!arguments->decode(messageDecoder))
-        return;
-
-    WebFrameProxy* frame = process()->webFrame(frameID);
-    WebFrameProxy* sourceFrame = process()->webFrame(sourceFrameID);
-
     RefPtr<WebFormSubmissionListenerProxy> listener = frame->setUpFormSubmissionListenerProxy(listenerID);
-    if (!m_formClient.willSubmitForm(this, frame, sourceFrame, textFieldValues.stringPairVector(), userData.get(), listener.get()))
+    if (!m_formClient.willSubmitForm(this, frame, sourceFrame, textFieldValues, userData, listener.get()))
         listener->continueSubmission();
 }
 
 // UIClient
 
-void WebPageProxy::createNewPage(uint64_t& newPageID, WebPageCreationParameters& newPageParameters)
+PassRefPtr<WebPageProxy> WebPageProxy::createNewPage()
 {
-    RefPtr<WebPageProxy> newPage = m_uiClient.createNewPage(this);
-    if (newPage) {
-        // FIXME: Pass the real size.
-        newPageID = newPage->pageID();
-        newPageParameters = newPage->creationParameters(IntSize(100, 100));
-    } else
-        newPageID = 0;
+    return m_uiClient.createNewPage(this);
 }
     
 void WebPageProxy::showPage()
@@ -808,19 +1144,19 @@ void WebPageProxy::closePage()
     m_uiClient.close(this);
 }
 
-void WebPageProxy::runJavaScriptAlert(uint64_t frameID, const String& message)
+void WebPageProxy::runJavaScriptAlert(WebFrameProxy* frame, const String& message)
 {
-    m_uiClient.runJavaScriptAlert(this, message, process()->webFrame(frameID));
+    m_uiClient.runJavaScriptAlert(this, message, frame);
 }
 
-void WebPageProxy::runJavaScriptConfirm(uint64_t frameID, const String& message, bool& result)
+bool WebPageProxy::runJavaScriptConfirm(WebFrameProxy* frame, const String& message)
 {
-    result = m_uiClient.runJavaScriptConfirm(this, message, process()->webFrame(frameID));
+    return m_uiClient.runJavaScriptConfirm(this, message, frame);
 }
 
-void WebPageProxy::runJavaScriptPrompt(uint64_t frameID, const String& message, const String& defaultValue, String& result)
+String WebPageProxy::runJavaScriptPrompt(WebFrameProxy* frame, const String& message, const String& defaultValue)
 {
-    result = m_uiClient.runJavaScriptPrompt(this, message, defaultValue, process()->webFrame(frameID));
+    return m_uiClient.runJavaScriptPrompt(this, message, defaultValue, frame);
 }
 
 void WebPageProxy::setStatusText(const String& text)
@@ -828,75 +1164,33 @@ void WebPageProxy::setStatusText(const String& text)
     m_uiClient.setStatusText(this, text);
 }
 
-void WebPageProxy::mouseDidMoveOverElement(uint32_t opaqueModifiers, CoreIPC::ArgumentDecoder* arguments)
+void WebPageProxy::mouseDidMoveOverElement(WebEvent::Modifiers modifiers, APIObject* userData)
 {
-
-    RefPtr<APIObject> userData;
-    WebContextUserMessageDecoder messageDecoder(userData, pageNamespace()->context());
-    if (!arguments->decode(messageDecoder))
-        return;
-
-    WebEvent::Modifiers modifiers = static_cast<WebEvent::Modifiers>(opaqueModifiers);
-
-    m_uiClient.mouseDidMoveOverElement(this, modifiers, userData.get());
+    m_uiClient.mouseDidMoveOverElement(this, modifiers, userData);
 }
 
-void WebPageProxy::contentsSizeChanged(uint64_t frameID, const WebCore::IntSize& size)
+void WebPageProxy::contentsSizeChanged(WebFrameProxy* frame, const WebCore::IntSize& size)
 {
-    m_uiClient.contentsSizeChanged(this, size, process()->webFrame(frameID));
+    m_uiClient.contentsSizeChanged(this, size, frame);
 }
 
 // BackForwardList
 
-void WebPageProxy::backForwardAddItem(uint64_t itemID)
-{
-    m_backForwardList->addItem(process()->webBackForwardItem(itemID));
-}
-
-void WebPageProxy::backForwardGoToItem(uint64_t itemID)
-{
-    m_backForwardList->goToItem(process()->webBackForwardItem(itemID));
-}
-
-void WebPageProxy::backForwardBackItem(uint64_t& itemID)
-{
-    WebBackForwardListItem* backItem = m_backForwardList->backItem();
-    itemID = backItem ? backItem->itemID() : 0;
-}
-
-void WebPageProxy::backForwardCurrentItem(uint64_t& itemID)
-{
-    WebBackForwardListItem* currentItem = m_backForwardList->currentItem();
-    itemID = currentItem ? currentItem->itemID() : 0;
-}
-
-void WebPageProxy::backForwardForwardItem(uint64_t& itemID)
-{
-    WebBackForwardListItem* forwardItem = m_backForwardList->forwardItem();
-    itemID = forwardItem ? forwardItem->itemID() : 0;
-}
-
-void WebPageProxy::backForwardItemAtIndex(int32_t index, uint64_t& itemID)
-{
-    WebBackForwardListItem* item = m_backForwardList->itemAtIndex(index);;
-    itemID = item ? item->itemID() : 0;
-}
-
-void WebPageProxy::backForwardBackListCount(int32_t& count)
+void WebPageProxy::addItemToBackForwardList(WebBackForwardListItem* item)
 {
-    count = m_backForwardList->backListCount();
+    m_backForwardList->addItem(item);
 }
 
-void WebPageProxy::backForwardForwardListCount(int32_t& count)
+void WebPageProxy::goToItemInBackForwardList(WebBackForwardListItem* item)
 {
-    count = m_backForwardList->forwardListCount();
+    m_backForwardList->goToItem(item);
 }
 
 // Undo management
 
-void WebPageProxy::registerEditCommandForUndo(uint64_t commandID, uint32_t editAction)
+void WebPageProxy::registerEditCommandForUndo(uint64_t commandID, EditAction editAction)
 {
-    registerEditCommand(WebEditCommandProxy::create(commandID, static_cast<EditAction>(editAction), this), Undo);
+    registerEditCommandForUndo(WebEditCommandProxy::create(commandID, editAction, this));
 }
 
 void WebPageProxy::clearAllEditCommands()
@@ -904,9 +1198,14 @@ void WebPageProxy::clearAllEditCommands()
     m_pageClient->clearAllEditCommands();
 }
 
-void WebPageProxy::registerEditCommand(PassRefPtr<WebEditCommandProxy> commandProxy, UndoOrRedo undoOrRedo)
+void WebPageProxy::registerEditCommandForUndo(PassRefPtr<WebEditCommandProxy> commandProxy)
 {
-    m_pageClient->registerEditCommand(commandProxy, undoOrRedo);
+    m_pageClient->registerEditCommand(commandProxy, PageClient::Undo);
+}
+
+void WebPageProxy::registerEditCommandForRedo(PassRefPtr<WebEditCommandProxy> commandProxy)
+{
+    m_pageClient->registerEditCommand(commandProxy, PageClient::Redo);
 }
 
 void WebPageProxy::addEditCommand(WebEditCommandProxy* command)
@@ -942,15 +1241,8 @@ void WebPageProxy::setCursor(const WebCore::Cursor& cursor)
     m_pageClient->setCursor(cursor);
 }
 
-void WebPageProxy::didValidateMenuItem(const String& commandName, bool isEnabled, int32_t state)
-{
-    m_pageClient->setEditCommandState(commandName, isEnabled, state);
-}
-
-void WebPageProxy::didReceiveEvent(uint32_t opaqueType, bool handled)
+void WebPageProxy::didReceiveEvent(WebEvent::Type type, bool handled)
 {
-    WebEvent::Type type = static_cast<WebEvent::Type>(opaqueType);
-
     switch (type) {
         case WebEvent::MouseMove:
             break;
@@ -1012,16 +1304,13 @@ void WebPageProxy::didGetSourceForFrame(const String& resultString, uint64_t cal
     callback->performCallbackWithReturnValue(resultString.impl());
 }
 
-
 #if USE(ACCELERATED_COMPOSITING)
-void WebPageProxy::didChangeAcceleratedCompositing(bool compositing, DrawingAreaBase::DrawingAreaInfo& drawingAreaInfo)
+void WebPageProxy::didChangeAcceleratedCompositing(bool compositing)
 {
     if (compositing)
         didEnterAcceleratedCompositing();
     else
         didLeaveAcceleratedCompositing();
-
-    drawingAreaInfo = drawingArea()->info();
 }
 #endif
 
diff --git a/WebKit2/UIProcess/WebPageProxy.h b/WebKit2/UIProcess/WebPageProxy.h
index 41b5a2f..79203c9 100644
--- a/WebKit2/UIProcess/WebPageProxy.h
+++ b/WebKit2/UIProcess/WebPageProxy.h
@@ -66,7 +66,6 @@ class DrawingAreaProxy;
 class NativeWebKeyboardEvent;
 class PageClient;
 class PlatformCertificateInfo;
-class StringPairVector;
 class WebBackForwardList;
 class WebBackForwardListItem;
 class WebData;
@@ -189,10 +188,10 @@ public:
     void didLeaveAcceleratedCompositing();
 #endif
 
-    enum UndoOrRedo { Undo, Redo };
     void addEditCommand(WebEditCommandProxy*);
     void removeEditCommand(WebEditCommandProxy*);
-    void registerEditCommand(PassRefPtr<WebEditCommandProxy>, UndoOrRedo);
+    void registerEditCommandForUndo(PassRefPtr<WebEditCommandProxy>);
+    void registerEditCommandForRedo(PassRefPtr<WebEditCommandProxy>);
 
     WebProcessProxy* process() const;
     WebPageNamespace* pageNamespace() const { return m_pageNamespace.get(); }
@@ -211,64 +210,53 @@ private:
 
     virtual Type type() const { return APIType; }
 
-    // Implemented in generated WebPageProxyMessageReceiver.cpp
-    void didReceiveWebPageProxyMessage(CoreIPC::Connection*, CoreIPC::MessageID, CoreIPC::ArgumentDecoder*);
-    CoreIPC::SyncReplyMode didReceiveSyncWebPageProxyMessage(CoreIPC::Connection*, CoreIPC::MessageID, CoreIPC::ArgumentDecoder*, CoreIPC::ArgumentEncoder*);
-
     void didCreateMainFrame(uint64_t frameID);
     void didCreateSubFrame(uint64_t frameID);
 
-    void didStartProvisionalLoadForFrame(uint64_t frameID, const String&, CoreIPC::ArgumentDecoder*);
-    void didReceiveServerRedirectForProvisionalLoadForFrame(uint64_t frameID, const String&, CoreIPC::ArgumentDecoder*);
-    void didFailProvisionalLoadForFrame(uint64_t frameID, CoreIPC::ArgumentDecoder*);
-    void didCommitLoadForFrame(uint64_t frameID, const String& mimeType, const PlatformCertificateInfo&, CoreIPC::ArgumentDecoder*);
-    void didFinishDocumentLoadForFrame(uint64_t frameID, CoreIPC::ArgumentDecoder*);
-    void didFinishLoadForFrame(uint64_t frameID, CoreIPC::ArgumentDecoder*);
-    void didFailLoadForFrame(uint64_t frameID, CoreIPC::ArgumentDecoder*);
-    void didReceiveTitleForFrame(uint64_t frameID, const String&, CoreIPC::ArgumentDecoder*);
-    void didFirstLayoutForFrame(uint64_t frameID, CoreIPC::ArgumentDecoder*);
-    void didFirstVisuallyNonEmptyLayoutForFrame(uint64_t frameID, CoreIPC::ArgumentDecoder*);
-    void didRemoveFrameFromHierarchy(uint64_t frameID, CoreIPC::ArgumentDecoder*);
+    void didStartProvisionalLoadForFrame(WebFrameProxy*, const String&, APIObject*);
+    void didReceiveServerRedirectForProvisionalLoadForFrame(WebFrameProxy*, const String&, APIObject*);
+    void didFailProvisionalLoadForFrame(WebFrameProxy*, APIObject*);
+    void didCommitLoadForFrame(WebFrameProxy*, const String& mimeType, const PlatformCertificateInfo&, APIObject*);
+    void didFinishDocumentLoadForFrame(WebFrameProxy*, APIObject*);
+    void didFinishLoadForFrame(WebFrameProxy*, APIObject*);
+    void didFailLoadForFrame(WebFrameProxy*, APIObject*);
+    void didReceiveTitleForFrame(WebFrameProxy*, const String&, APIObject*);
+    void didFirstLayoutForFrame(WebFrameProxy*, APIObject*);
+    void didFirstVisuallyNonEmptyLayoutForFrame(WebFrameProxy*, APIObject*);
+    void didRemoveFrameFromHierarchy(WebFrameProxy*, APIObject*);
     void didStartProgress();
     void didChangeProgress(double);
     void didFinishProgress();
     
-    void decidePolicyForNavigationAction(uint64_t frameID, uint32_t navigationType, uint32_t modifiers, int32_t mouseButton, const String& url, uint64_t listenerID);
-    void decidePolicyForNewWindowAction(uint64_t frameID, uint32_t navigationType, uint32_t modifiers, int32_t mouseButton, const String& url, uint64_t listenerID);
-    void decidePolicyForMIMEType(uint64_t frameID, const String& MIMEType, const String& url, uint64_t listenerID);
+    void decidePolicyForNavigationAction(WebFrameProxy*, WebCore::NavigationType, WebEvent::Modifiers, WebMouseEvent::Button, const String& url, uint64_t listenerID);
+    void decidePolicyForNewWindowAction(WebFrameProxy*, WebCore::NavigationType, WebEvent::Modifiers, WebMouseEvent::Button, const String& url, uint64_t listenerID);
+    void decidePolicyForMIMEType(WebFrameProxy*, const String& MIMEType, const String& url, uint64_t listenerID);
 
-    void willSubmitForm(uint64_t frameID, uint64_t sourceFrameID, const StringPairVector& textFieldValues, uint64_t listenerID, CoreIPC::ArgumentDecoder*);
+    void willSubmitForm(WebFrameProxy* frame, WebFrameProxy* frameSource, Vector<std::pair<String, String> >& textFieldValues, APIObject* userData, uint64_t listenerID);
 
-    void createNewPage(uint64_t& newPageID, WebPageCreationParameters&);
+    PassRefPtr<WebPageProxy> createNewPage();
     void showPage();
     void closePage();
-    void runJavaScriptAlert(uint64_t frameID, const String&);
-    void runJavaScriptConfirm(uint64_t frameID, const String&, bool& result);
-    void runJavaScriptPrompt(uint64_t frameID, const String&, const String&, String& result);
+    void runJavaScriptAlert(WebFrameProxy*, const String&);
+    bool runJavaScriptConfirm(WebFrameProxy* frame, const String&);
+    String runJavaScriptPrompt(WebFrameProxy* frame, const String&, const String&);
     void setStatusText(const String&);
-    void mouseDidMoveOverElement(uint32_t modifiers, CoreIPC::ArgumentDecoder*);
-    void contentsSizeChanged(uint64_t frameID, const WebCore::IntSize&);
+    void mouseDidMoveOverElement(WebEvent::Modifiers, APIObject*);
+    void contentsSizeChanged(WebFrameProxy*, const WebCore::IntSize&);
 
     // Back/Forward list management
-    void backForwardAddItem(uint64_t itemID);
-    void backForwardGoToItem(uint64_t itemID);
-    void backForwardBackItem(uint64_t& itemID);
-    void backForwardCurrentItem(uint64_t& itemID);
-    void backForwardForwardItem(uint64_t& itemID);
-    void backForwardItemAtIndex(int32_t index, uint64_t& itemID);
-    void backForwardBackListCount(int32_t& count);
-    void backForwardForwardListCount(int32_t& count);
+    void addItemToBackForwardList(WebBackForwardListItem*);
+    void goToItemInBackForwardList(WebBackForwardListItem*);
 
     // Undo management
-    void registerEditCommandForUndo(uint64_t commandID, uint32_t editAction);
+    void registerEditCommandForUndo(uint64_t commandID, WebCore::EditAction);
     void clearAllEditCommands();
 
     void takeFocus(bool direction);
     void setToolTip(const String&);
     void setCursor(const WebCore::Cursor&);
-    void didValidateMenuItem(const String& commandName, bool isEnabled, int32_t state);
 
-    void didReceiveEvent(uint32_t opaqueType, bool handled);
+    void didReceiveEvent(WebEvent::Type, bool handled);
 
     void didRunJavaScriptInMainFrame(const String&, uint64_t);
     void didGetRenderTreeExternalRepresentation(const String&, uint64_t);
@@ -277,7 +265,7 @@ private:
     WebPageCreationParameters creationParameters(const WebCore::IntSize&) const;
 
 #if USE(ACCELERATED_COMPOSITING)
-    void didChangeAcceleratedCompositing(bool compositing, DrawingAreaBase::DrawingAreaInfo&);
+    void didChangeAcceleratedCompositing(bool compositing);
 #endif    
 
     PageClient* m_pageClient;
diff --git a/WebKit2/UIProcess/WebPageProxy.messages.in b/WebKit2/UIProcess/WebPageProxy.messages.in
deleted file mode 100644
index 1849875..0000000
--- a/WebKit2/UIProcess/WebPageProxy.messages.in
+++ /dev/null
@@ -1,93 +0,0 @@
-# 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.
-
-messages -> WebPageProxy {
-    # UI messages.
-    CreateNewPage() -> (uint64_t newPageID, WebKit::WebPageCreationParameters newPageParameters)
-    ShowPage()
-    ClosePage()
-    RunJavaScriptAlert(uint64_t frameID, WTF::String message) -> ()
-    RunJavaScriptConfirm(uint64_t frameID, WTF::String message) -> (bool result)
-    RunJavaScriptPrompt(uint64_t frameID, WTF::String message, WTF::String defaultValue) -> (WTF::String result)
-    MouseDidMoveOverElement(uint32_t modifiers, WebKit::InjectedBundleUserMessageEncoder userData);
-    ContentsSizeChanged(uint64_t frameID, WebCore::IntSize newSize)
-    DidReceiveEvent(uint32_t type, bool handled)
-    DidValidateMenuItem(WTF::String commandName, bool isEnabled, int32_t state)
-    SetCursor(WebCore::Cursor cursor)
-    SetStatusText(WTF::String statusText)
-    SetToolTip(WTF::String toolTip)
-    TakeFocus(bool direction)
-
-    # Policy messages.
-    DecidePolicyForMIMEType(uint64_t frameID, WTF::String MIMEType, WTF::String url, uint64_t listenerID)
-    DecidePolicyForNavigationAction(uint64_t frameID, uint32_t navigationType, uint32_t modifiers, int32_t mouseButton, WTF::String url, uint64_t listenerID)
-    DecidePolicyForNewWindowAction(uint64_t frameID, uint32_t navigationType, uint32_t modifiers, int32_t mouseButton, WTF::String url, uint64_t listenerID)
-
-    # Progress messages.
-    DidChangeProgress(double value)
-    DidFinishProgress()
-    DidStartProgress()
-
-    # Frame lifetime messages.
-    DidCreateMainFrame(uint64_t frameID)
-    DidCreateSubFrame(uint64_t frameID)
-
-    # Frame load messages.
-    DidCommitLoadForFrame(uint64_t frameID, WTF::String mimeType, WebKit::PlatformCertificateInfo certificateInfo, WebKit::InjectedBundleUserMessageEncoder userData)
-    DidFailLoadForFrame(uint64_t frameID, WebKit::InjectedBundleUserMessageEncoder userData)
-    DidFailProvisionalLoadForFrame(uint64_t frameID, WebKit::InjectedBundleUserMessageEncoder userData)
-    DidFinishDocumentLoadForFrame(uint64_t frameID, WebKit::InjectedBundleUserMessageEncoder userData)
-    DidFinishLoadForFrame(uint64_t frameID, WebKit::InjectedBundleUserMessageEncoder userData)
-    DidFirstLayoutForFrame(uint64_t frameID, WebKit::InjectedBundleUserMessageEncoder userData)
-    DidFirstVisuallyNonEmptyLayoutForFrame(uint64_t frameID, WebKit::InjectedBundleUserMessageEncoder userData)
-    DidReceiveServerRedirectForProvisionalLoadForFrame(uint64_t frameID, WTF::String url, WebKit::InjectedBundleUserMessageEncoder userData)
-    DidRemoveFrameFromHierarchy(uint64_t frameID, WebKit::InjectedBundleUserMessageEncoder userData)
-    DidStartProvisionalLoadForFrame(uint64_t frameID, WTF::String url, WebKit::InjectedBundleUserMessageEncoder userData)
-    DidReceiveTitleForFrame(uint64_t frameID, WTF::String title, WebKit::InjectedBundleUserMessageEncoder userData)
-
-    # Forms messages.
-    WillSubmitForm(uint64_t frameID, uint64_t sourceFrameID, WebKit::StringPairVector textFieldValues, uint64_t listenerID, WebKit::InjectedBundleUserMessageEncoder userData)
-
-    # Callback messages.
-    DidGetRenderTreeExternalRepresentation(WTF::String resultString, uint64_t callbackID)
-    DidGetSourceForFrame(WTF::String resultString, uint64_t callbackID)
-    DidRunJavaScriptInMainFrame(WTF::String resultString, uint64_t callbackID)
-
-    # BackForward messages.
-    BackForwardAddItem(uint64_t itemID)
-    BackForwardGoToItem(uint64_t itemID)
-    BackForwardBackItem() -> (uint64_t itemID)
-    BackForwardCurrentItem() -> (uint64_t itemID)
-    BackForwardForwardItem() -> (uint64_t itemID)
-    BackForwardItemAtIndex(uint64_t itemID) -> (uint64_t itemID)
-    BackForwardBackListCount() -> (int32_t itemID)
-    BackForwardForwardListCount() -> (int32_t itemID)
-
-    # UndoRedo messages.
-    RegisterEditCommandForUndo(uint64_t commandID, uint32_t editAction)
-    ClearAllEditCommands()
-
-#if USE(ACCELERATED_COMPOSITING)
-    # Accelerated compsiting messages.
-    DidChangeAcceleratedCompositing(bool compositing) -> (WebKit::DrawingAreaBase::DrawingAreaInfo newDrawingArea)
-#endif
-}
diff --git a/WebKit2/UIProcess/win/WebView.cpp b/WebKit2/UIProcess/win/WebView.cpp
index f54da57..b47d371 100644
--- a/WebKit2/UIProcess/win/WebView.cpp
+++ b/WebKit2/UIProcess/win/WebView.cpp
@@ -572,7 +572,7 @@ void WebView::setCursor(const WebCore::Cursor& cursor)
     ::SetCursor(platformCursor);
 }
 
-void WebView::registerEditCommand(PassRefPtr<WebEditCommandProxy>, WebPageProxy::UndoOrRedo)
+void WebView::registerEditCommand(PassRefPtr<WebEditCommandProxy>, UndoOrRedo)
 {
 }
 
diff --git a/WebKit2/UIProcess/win/WebView.h b/WebKit2/UIProcess/win/WebView.h
index 60254d5..02b546d 100644
--- a/WebKit2/UIProcess/win/WebView.h
+++ b/WebKit2/UIProcess/win/WebView.h
@@ -95,7 +95,7 @@ private:
     virtual void takeFocus(bool direction);
     virtual void toolTipChanged(const WTF::String&, const WTF::String&);
     virtual void setCursor(const WebCore::Cursor&);
-    virtual void registerEditCommand(PassRefPtr<WebEditCommandProxy>, WebPageProxy::UndoOrRedo);
+    virtual void registerEditCommand(PassRefPtr<WebEditCommandProxy>, UndoOrRedo);
     virtual void clearAllEditCommands();
     virtual void setEditCommandState(const WTF::String&, bool, int);
 
diff --git a/WebKit2/WebKit2.pro b/WebKit2/WebKit2.pro
index caa47c2..064fae6 100644
--- a/WebKit2/WebKit2.pro
+++ b/WebKit2/WebKit2.pro
@@ -141,12 +141,10 @@ DEFINES += BUILDING_QT__
 
 WEBKIT2_GENERATED_HEADERS = \
     $$OUTPUT_DIR/WebKit2/generated/WebPageMessages.h \
-    $$OUTPUT_DIR/WebKit2/generated/WebPageProxyMessages.h \
     $$OUTPUT_DIR/WebKit2/generated/WebProcessMessages.h
 
 WEBKIT2_GENERATED_SOURCES = \
     $$OUTPUT_DIR/WebKit2/generated/WebPageMessageReceiver.cpp \
-    $$OUTPUT_DIR/WebKit2/generated/WebPageProxyMessageReceiver.cpp \
     $$OUTPUT_DIR/WebKit2/generated/WebProcessMessageReceiver.cpp
 
 HEADERS += \
@@ -178,6 +176,7 @@ HEADERS += \
     Shared/API/c/WKURLResponse.h \
     Shared/CoreIPCSupport/DrawingAreaMessageKinds.h \
     Shared/CoreIPCSupport/DrawingAreaProxyMessageKinds.h \
+    Shared/CoreIPCSupport/WebPageProxyMessageKinds.h \
     Shared/CacheModel.h \
     Shared/DrawingAreaBase.h \
     Shared/ImmutableArray.h \
@@ -186,7 +185,6 @@ HEADERS += \
     Shared/MutableDictionary.h \
     Shared/NativeWebKeyboardEvent.h \
     Shared/NotImplemented.h \
-    Shared/StringPairVector.h \
     Shared/qt/MappedMemory.h \
     Shared/qt/PlatformCertificateInfo.h \
     Shared/qt/UpdateChunk.h \
diff --git a/WebKit2/WebKit2.xcodeproj/project.pbxproj b/WebKit2/WebKit2.xcodeproj/project.pbxproj
index ba8eb4f..192dc28 100644
--- a/WebKit2/WebKit2.xcodeproj/project.pbxproj
+++ b/WebKit2/WebKit2.xcodeproj/project.pbxproj
@@ -189,6 +189,8 @@
 		BC111B51112F619200337BAB /* PageClientImpl.mm in Sources */ = {isa = PBXBuildFile; fileRef = BC111B4C112F619200337BAB /* PageClientImpl.mm */; };
 		BC111B5D112F629800337BAB /* WebEventFactory.h in Headers */ = {isa = PBXBuildFile; fileRef = BC111B5B112F629800337BAB /* WebEventFactory.h */; };
 		BC111B5E112F629800337BAB /* WebEventFactory.mm in Sources */ = {isa = PBXBuildFile; fileRef = BC111B5C112F629800337BAB /* WebEventFactory.mm */; };
+		BC111B64112F638300337BAB /* WebPageProxyMessageKinds.h in Headers */ = {isa = PBXBuildFile; fileRef = BC111B61112F638300337BAB /* WebPageProxyMessageKinds.h */; };
+		BC111B65112F638300337BAB /* WebProcessMessageKinds.h in Headers */ = {isa = PBXBuildFile; fileRef = BC111B62112F638300337BAB /* WebProcessMessageKinds.h */; };
 		BC131BC911726C2800B69727 /* CoreIPCMessageKinds.h in Headers */ = {isa = PBXBuildFile; fileRef = BC131BC811726C2800B69727 /* CoreIPCMessageKinds.h */; };
 		BC14DF77120B5B7900826C0C /* InjectedBundleScriptWorld.h in Headers */ = {isa = PBXBuildFile; fileRef = BC14DF75120B5B7900826C0C /* InjectedBundleScriptWorld.h */; };
 		BC14DF78120B5B7900826C0C /* InjectedBundleScriptWorld.cpp in Sources */ = {isa = PBXBuildFile; fileRef = BC14DF76120B5B7900826C0C /* InjectedBundleScriptWorld.cpp */; };
@@ -349,9 +351,6 @@
 		BCB9F8B01124E07700A137E0 /* WebPolicyClient.h in Headers */ = {isa = PBXBuildFile; fileRef = BCB9F8AE1124E07700A137E0 /* WebPolicyClient.h */; };
 		BCBCB0CB1215E32100DE59CA /* ImmutableDictionary.h in Headers */ = {isa = PBXBuildFile; fileRef = BCBCB0CA1215E32100DE59CA /* ImmutableDictionary.h */; };
 		BCBCB0CD1215E33A00DE59CA /* ImmutableDictionary.cpp in Sources */ = {isa = PBXBuildFile; fileRef = BCBCB0CC1215E33A00DE59CA /* ImmutableDictionary.cpp */; };
-		BCBD3914125BB1A800D2C29F /* WebPageProxyMessageReceiver.cpp in Sources */ = {isa = PBXBuildFile; fileRef = BCBD3912125BB1A800D2C29F /* WebPageProxyMessageReceiver.cpp */; };
-		BCBD3915125BB1A800D2C29F /* WebPageProxyMessages.h in Headers */ = {isa = PBXBuildFile; fileRef = BCBD3913125BB1A800D2C29F /* WebPageProxyMessages.h */; };
-		BCBD3C3B125BFA7A00D2C29F /* StringPairVector.h in Headers */ = {isa = PBXBuildFile; fileRef = BCBD3C3A125BFA7A00D2C29F /* StringPairVector.h */; };
 		BCC56F791159957D001CCAF9 /* MachPort.h in Headers */ = {isa = PBXBuildFile; fileRef = BCC56F771159957D001CCAF9 /* MachPort.h */; };
 		BCC5715B115ADAEF001CCAF9 /* WebSystemInterface.h in Headers */ = {isa = PBXBuildFile; fileRef = BCC57159115ADAEF001CCAF9 /* WebSystemInterface.h */; };
 		BCC5715C115ADAEF001CCAF9 /* WebSystemInterface.mm in Sources */ = {isa = PBXBuildFile; fileRef = BCC5715A115ADAEF001CCAF9 /* WebSystemInterface.mm */; };
@@ -642,6 +641,8 @@
 		BC111B4C112F619200337BAB /* PageClientImpl.mm */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.objcpp; path = PageClientImpl.mm; sourceTree = "<group>"; };
 		BC111B5B112F629800337BAB /* WebEventFactory.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = WebEventFactory.h; sourceTree = "<group>"; };
 		BC111B5C112F629800337BAB /* WebEventFactory.mm */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.objcpp; path = WebEventFactory.mm; sourceTree = "<group>"; };
+		BC111B61112F638300337BAB /* WebPageProxyMessageKinds.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = WebPageProxyMessageKinds.h; sourceTree = "<group>"; };
+		BC111B62112F638300337BAB /* WebProcessMessageKinds.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = WebProcessMessageKinds.h; sourceTree = "<group>"; };
 		BC131BC811726C2800B69727 /* CoreIPCMessageKinds.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = CoreIPCMessageKinds.h; sourceTree = "<group>"; };
 		BC14DF75120B5B7900826C0C /* InjectedBundleScriptWorld.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = InjectedBundleScriptWorld.h; sourceTree = "<group>"; };
 		BC14DF76120B5B7900826C0C /* InjectedBundleScriptWorld.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = InjectedBundleScriptWorld.cpp; sourceTree = "<group>"; };
@@ -802,10 +803,6 @@
 		BCB9F8AE1124E07700A137E0 /* WebPolicyClient.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = WebPolicyClient.h; sourceTree = "<group>"; };
 		BCBCB0CA1215E32100DE59CA /* ImmutableDictionary.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = ImmutableDictionary.h; sourceTree = "<group>"; };
 		BCBCB0CC1215E33A00DE59CA /* ImmutableDictionary.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = ImmutableDictionary.cpp; sourceTree = "<group>"; };
-		BCBD38FA125BAB9A00D2C29F /* WebPageProxy.messages.in */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text; path = WebPageProxy.messages.in; sourceTree = "<group>"; };
-		BCBD3912125BB1A800D2C29F /* WebPageProxyMessageReceiver.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = WebPageProxyMessageReceiver.cpp; sourceTree = "<group>"; };
-		BCBD3913125BB1A800D2C29F /* WebPageProxyMessages.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = WebPageProxyMessages.h; sourceTree = "<group>"; };
-		BCBD3C3A125BFA7A00D2C29F /* StringPairVector.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = StringPairVector.h; sourceTree = "<group>"; };
 		BCC56F771159957D001CCAF9 /* MachPort.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = MachPort.h; sourceTree = "<group>"; };
 		BCC57159115ADAEF001CCAF9 /* WebSystemInterface.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = WebSystemInterface.h; sourceTree = "<group>"; };
 		BCC5715A115ADAEF001CCAF9 /* WebSystemInterface.mm */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.objcpp; path = WebSystemInterface.mm; sourceTree = "<group>"; };
@@ -1133,7 +1130,6 @@
 				1A0F29CA120B37160053D1B9 /* VisitedLinkTable.h */,
 				BC1DD7B1114DC396005ADAF3 /* WebCoreArgumentCoders.h */,
 				BCF50726124329AA005955AE /* WebCertificateInfo.h */,
-				BCBD3C3A125BFA7A00D2C29F /* StringPairVector.h */,
 				51578B821209ECEF00A37C4A /* WebData.h */,
 				516A4A5B120A2CCD00C05B7F /* WebError.h */,
 				BC032DAF10F4380F0058C15A /* WebEvent.h */,
@@ -1334,7 +1330,6 @@
 				BCEE98C5113314D7006BCC24 /* WebPageNamespace.h */,
 				BC111B0B112F5E4F00337BAB /* WebPageProxy.cpp */,
 				BC032DCB10F4389F0058C15A /* WebPageProxy.h */,
-				BCBD38FA125BAB9A00D2C29F /* WebPageProxy.messages.in */,
 				BCB9F8AD1124E07700A137E0 /* WebPolicyClient.cpp */,
 				BCB9F8AE1124E07700A137E0 /* WebPolicyClient.h */,
 				BCD597FE112B57BE00EC8C23 /* WebPreferences.cpp */,
@@ -1465,6 +1460,8 @@
 				BC9E969911457EDE00870E71 /* DrawingAreaProxyMessageKinds.h */,
 				BCB28CBF120233D9007D99BC /* InjectedBundleMessageKinds.h */,
 				BCCB75C51203A1CE00222D1B /* WebContextMessageKinds.h */,
+				BC111B61112F638300337BAB /* WebPageProxyMessageKinds.h */,
+				BC111B62112F638300337BAB /* WebProcessMessageKinds.h */,
 				BCB7346D11CEE3FF00EC5002 /* WebProcessProxyMessageKinds.h */,
 			);
 			path = CoreIPCSupport;
@@ -1705,8 +1702,6 @@
 				1A8EFA6F1252B84100F7067F /* PluginProxyMessages.h */,
 				C0CE729E1247E71D00BC0EC4 /* WebPageMessageReceiver.cpp */,
 				C0CE729F1247E71D00BC0EC4 /* WebPageMessages.h */,
-				BCBD3912125BB1A800D2C29F /* WebPageProxyMessageReceiver.cpp */,
-				BCBD3913125BB1A800D2C29F /* WebPageProxyMessages.h */,
 				1A043F6712514D8B00FFBFB5 /* WebProcessConnectionMessageReceiver.cpp */,
 				1A043F6812514D8B00FFBFB5 /* WebProcessConnectionMessages.h */,
 				BC3066BC125A442100E71278 /* WebProcessMessageReceiver.cpp */,
@@ -1812,6 +1807,7 @@
 				BC032D8F10F437A00058C15A /* WebPage.h in Headers */,
 				BCEE98C7113314D7006BCC24 /* WebPageNamespace.h in Headers */,
 				BC032DD110F4389F0058C15A /* WebPageProxy.h in Headers */,
+				BC111B64112F638300337BAB /* WebPageProxyMessageKinds.h in Headers */,
 				1A3E736111CC2659007BD539 /* WebPlatformStrategies.h in Headers */,
 				BCB9F8B01124E07700A137E0 /* WebPolicyClient.h in Headers */,
 				BCD597FF112B57BE00EC8C23 /* WebPreferences.h in Headers */,
@@ -1819,6 +1815,7 @@
 				BC032D9710F437AF0058C15A /* WebProcess.h in Headers */,
 				1A6FA02011E1528700DB1371 /* WebProcessMain.h in Headers */,
 				BC032DD310F4389F0058C15A /* WebProcessManager.h in Headers */,
+				BC111B65112F638300337BAB /* WebProcessMessageKinds.h in Headers */,
 				BC032DD510F4389F0058C15A /* WebProcessProxy.h in Headers */,
 				BCB7346E11CEE3FF00EC5002 /* WebProcessProxyMessageKinds.h in Headers */,
 				BCC5715B115ADAEF001CCAF9 /* WebSystemInterface.h in Headers */,
@@ -1941,8 +1938,6 @@
 				BC3065FA1259344E00E71278 /* CacheModel.h in Headers */,
 				BC3066BF125A442100E71278 /* WebProcessMessages.h in Headers */,
 				BC306824125A6B9400E71278 /* WebProcessCreationParameters.h in Headers */,
-				BCBD3915125BB1A800D2C29F /* WebPageProxyMessages.h in Headers */,
-				BCBD3C3B125BFA7A00D2C29F /* StringPairVector.h in Headers */,
 			);
 			runOnlyForDeploymentPostprocessing = 0;
 		};
@@ -2240,7 +2235,6 @@
 				BC3065C412592F8900E71278 /* WebProcessMac.mm in Sources */,
 				BC3066BE125A442100E71278 /* WebProcessMessageReceiver.cpp in Sources */,
 				BC306825125A6B9400E71278 /* WebProcessCreationParameters.cpp in Sources */,
-				BCBD3914125BB1A800D2C29F /* WebPageProxyMessageReceiver.cpp in Sources */,
 			);
 			runOnlyForDeploymentPostprocessing = 0;
 		};
diff --git a/WebKit2/WebProcess/WebCoreSupport/WebChromeClient.cpp b/WebKit2/WebProcess/WebCoreSupport/WebChromeClient.cpp
index c095ae0..88338c8 100644
--- a/WebKit2/WebProcess/WebCoreSupport/WebChromeClient.cpp
+++ b/WebKit2/WebProcess/WebCoreSupport/WebChromeClient.cpp
@@ -36,7 +36,7 @@
 #include "WebFrameLoaderClient.h"
 #include "WebPage.h"
 #include "WebPageCreationParameters.h"
-#include "WebPageProxyMessages.h"
+#include "WebPageProxyMessageKinds.h"
 #include "WebPopupMenu.h"
 #include "WebPreferencesStore.h"
 #include "WebProcess.h"
@@ -57,7 +57,7 @@ void WebChromeClient::chromeDestroyed()
     delete this;
 }
 
-void WebChromeClient::setWindowRect(const FloatRect& windowRect)
+void WebChromeClient::setWindowRect(const FloatRect&)
 {
     notImplemented();
 }
@@ -98,7 +98,8 @@ bool WebChromeClient::canTakeFocus(FocusDirection)
 
 void WebChromeClient::takeFocus(FocusDirection direction)
 {
-    WebProcess::shared().connection()->send(Messages::WebPageProxy::TakeFocus(direction == FocusDirectionForward ? true : false), m_page->pageID());
+    WebProcess::shared().connection()->send(WebPageProxyMessage::TakeFocus, m_page->pageID(),
+                                            direction == FocusDirectionForward ? true : false);
 }
 
 void WebChromeClient::focusedNodeChanged(Node*)
@@ -110,9 +111,10 @@ Page* WebChromeClient::createWindow(Frame*, const FrameLoadRequest&, const Windo
 {
     uint64_t newPageID = 0;
     WebPageCreationParameters parameters;
-    if (!WebProcess::shared().connection()->sendSync(Messages::WebPageProxy::CreateNewPage(),
-            Messages::WebPageProxy::CreateNewPage::Reply(newPageID, parameters),
-            m_page->pageID(), CoreIPC::Connection::NoTimeout)) {
+    if (!WebProcess::shared().connection()->sendSync(WebPageProxyMessage::CreateNewPage,
+                                                     m_page->pageID(), CoreIPC::In(),
+                                                     CoreIPC::Out(newPageID, parameters),
+                                                     CoreIPC::Connection::NoTimeout)) {
         return 0;
     }
 
@@ -234,8 +236,10 @@ void WebChromeClient::runJavaScriptAlert(Frame* frame, const String& alertText)
     // Notify the bundle client.
     m_page->injectedBundleUIClient().willRunJavaScriptAlert(m_page, alertText, webFrame);
 
-    WebProcess::shared().connection()->sendSync(Messages::WebPageProxy::RunJavaScriptAlert(webFrame->frameID(), alertText),
-        Messages::WebPageProxy::RunJavaScriptAlert::Reply(), m_page->pageID(), CoreIPC::Connection::NoTimeout);
+    WebProcess::shared().connection()->sendSync(WebPageProxyMessage::RunJavaScriptAlert, m_page->pageID(),
+                                                CoreIPC::In(webFrame->frameID(), alertText),
+                                                CoreIPC::Out(),
+                                                CoreIPC::Connection::NoTimeout);
 }
 
 bool WebChromeClient::runJavaScriptConfirm(Frame* frame, const String& message)
@@ -246,9 +250,12 @@ bool WebChromeClient::runJavaScriptConfirm(Frame* frame, const String& message)
     m_page->injectedBundleUIClient().willRunJavaScriptConfirm(m_page, message, webFrame);
 
     bool result = false;
-    if (!WebProcess::shared().connection()->sendSync(Messages::WebPageProxy::RunJavaScriptConfirm(webFrame->frameID(), message),
-             Messages::WebPageProxy::RunJavaScriptConfirm::Reply(result), m_page->pageID(), CoreIPC::Connection::NoTimeout))
+    if (!WebProcess::shared().connection()->sendSync(WebPageProxyMessage::RunJavaScriptConfirm, m_page->pageID(),
+                                                     CoreIPC::In(webFrame->frameID(), message),
+                                                     CoreIPC::Out(result),
+                                                     CoreIPC::Connection::NoTimeout)) {
         return false;
+    }
 
     return result;
 }
@@ -260,9 +267,12 @@ bool WebChromeClient::runJavaScriptPrompt(Frame* frame, const String& message, c
     // Notify the bundle client.
     m_page->injectedBundleUIClient().willRunJavaScriptPrompt(m_page, message, defaultValue, webFrame);
 
-    if (!WebProcess::shared().connection()->sendSync(Messages::WebPageProxy::RunJavaScriptPrompt(webFrame->frameID(), message, defaultValue),
-             Messages::WebPageProxy::RunJavaScriptPrompt::Reply(result), m_page->pageID(), CoreIPC::Connection::NoTimeout))
+    if (!WebProcess::shared().connection()->sendSync(WebPageProxyMessage::RunJavaScriptPrompt, m_page->pageID(),
+                                                     CoreIPC::In(webFrame->frameID(), message, defaultValue),
+                                                     CoreIPC::Out(result),
+                                                     CoreIPC::Connection::NoTimeout)) {
         return false;
+    }
 
     return !result.isNull();
 }
@@ -272,7 +282,7 @@ void WebChromeClient::setStatusbarText(const String& statusbarText)
     // Notify the bundle client.
     m_page->injectedBundleUIClient().willSetStatusbarText(m_page, statusbarText);
 
-    WebProcess::shared().connection()->send(Messages::WebPageProxy::SetStatusText(statusbarText), m_page->pageID());
+    WebProcess::shared().connection()->send(WebPageProxyMessage::SetStatusText, m_page->pageID(), statusbarText);
 }
 
 bool WebChromeClient::shouldInterruptJavaScript()
@@ -333,8 +343,8 @@ PlatformPageClient WebChromeClient::platformPageClient() const
 void WebChromeClient::contentsSizeChanged(Frame* frame, const IntSize& size) const
 {
     WebFrame* webFrame =  static_cast<WebFrameLoaderClient*>(frame->loader()->client())->webFrame();
-
-    WebProcess::shared().connection()->send(Messages::WebPageProxy::ContentsSizeChanged(webFrame->frameID(), size), m_page->pageID());
+    WebProcess::shared().connection()->send(WebPageProxyMessage::ContentsSizeChanged, m_page->pageID(),
+                                            CoreIPC::In(webFrame->frameID(), size));
 }
 
 void WebChromeClient::scrollRectIntoView(const IntRect&, const ScrollView*) const
@@ -355,7 +365,7 @@ void WebChromeClient::mouseDidMoveOverElement(const HitTestResult& hitTestResult
     m_page->injectedBundleUIClient().mouseDidMoveOverElement(m_page, hitTestResult, static_cast<WebEvent::Modifiers>(modifierFlags), userData);
 
     // Notify the UIProcess.
-    WebProcess::shared().connection()->send(Messages::WebPageProxy::MouseDidMoveOverElement(modifierFlags, InjectedBundleUserMessageEncoder(userData.get())), m_page->pageID());
+    WebProcess::shared().connection()->send(WebPageProxyMessage::MouseDidMoveOverElement, m_page->pageID(), CoreIPC::In(modifierFlags, InjectedBundleUserMessageEncoder(userData.get())));
 }
 
 void WebChromeClient::setToolTip(const String& toolTip, TextDirection)
@@ -366,7 +376,7 @@ void WebChromeClient::setToolTip(const String& toolTip, TextDirection)
         return;
     m_cachedToolTip = toolTip;
 
-    WebProcess::shared().connection()->send(Messages::WebPageProxy::SetToolTip(m_cachedToolTip), m_page->pageID());
+    WebProcess::shared().connection()->send(WebPageProxyMessage::SetToolTip, m_page->pageID(), CoreIPC::In(m_cachedToolTip));
 }
 
 void WebChromeClient::print(Frame*)
@@ -466,7 +476,7 @@ void WebChromeClient::chooseIconForFiles(const Vector<String>&, FileChooser*)
 void WebChromeClient::setCursor(const Cursor& cursor)
 {
 #if USE(LAZY_NATIVE_CURSOR)
-    WebProcess::shared().connection()->send(Messages::WebPageProxy::SetCursor(cursor), m_page->pageID());
+    WebProcess::shared().connection()->send(WebPageProxyMessage::SetCursor, m_page->pageID(), CoreIPC::In(cursor));
 #endif
 }
 
diff --git a/WebKit2/WebProcess/WebCoreSupport/WebEditorClient.cpp b/WebKit2/WebProcess/WebCoreSupport/WebEditorClient.cpp
index 5852df1..235f5ce 100644
--- a/WebKit2/WebProcess/WebCoreSupport/WebEditorClient.cpp
+++ b/WebKit2/WebProcess/WebCoreSupport/WebEditorClient.cpp
@@ -30,7 +30,7 @@
 
 #include "WebFrameLoaderClient.h"
 #include "WebPage.h"
-#include "WebPageProxyMessages.h"
+#include "WebPageProxyMessageKinds.h"
 #include "WebProcess.h"
 #include <WebCore/ArchiveResource.h>
 #include <WebCore/DocumentFragment.h>
@@ -211,7 +211,8 @@ void WebEditorClient::registerCommandForUndo(PassRefPtr<EditCommand> command)
     m_page->addWebEditCommand(webCommand->commandID(), webCommand.get());
     uint32_t editAction = static_cast<uint32_t>(webCommand->command()->editingAction());
 
-    WebProcess::shared().connection()->send(Messages::WebPageProxy::RegisterEditCommandForUndo(webCommand->commandID(), editAction), m_page->pageID());
+    WebProcess::shared().connection()->send(WebPageProxyMessage::RegisterEditCommandForUndo, m_page->pageID(),
+                                            CoreIPC::In(webCommand->commandID(), editAction));
 }
 
 void WebEditorClient::registerCommandForRedo(PassRefPtr<EditCommand>)
@@ -220,7 +221,7 @@ void WebEditorClient::registerCommandForRedo(PassRefPtr<EditCommand>)
 
 void WebEditorClient::clearUndoRedoOperations()
 {
-    WebProcess::shared().connection()->send(Messages::WebPageProxy::ClearAllEditCommands(), m_page->pageID());
+    WebProcess::shared().connection()->send(WebPageProxyMessage::ClearAllEditCommands, m_page->pageID(), CoreIPC::In());
 }
 
 bool WebEditorClient::canUndo() const
diff --git a/WebKit2/WebProcess/WebCoreSupport/WebFrameLoaderClient.cpp b/WebKit2/WebProcess/WebCoreSupport/WebFrameLoaderClient.cpp
index deb90e3..7786f7c 100644
--- a/WebKit2/WebProcess/WebCoreSupport/WebFrameLoaderClient.cpp
+++ b/WebKit2/WebProcess/WebCoreSupport/WebFrameLoaderClient.cpp
@@ -31,7 +31,6 @@
 #include "InjectedBundleUserMessageCoders.h"
 #include "PlatformCertificateInfo.h"
 #include "PluginView.h"
-#include "StringPairVector.h"
 #include "WebCoreArgumentCoders.h"
 #include "WebErrors.h"
 #include "WebEvent.h"
@@ -39,7 +38,7 @@
 #include "WebFrameNetworkingContext.h"
 #include "WebNavigationDataStore.h"
 #include "WebPage.h"
-#include "WebPageProxyMessages.h"
+#include "WebPageProxyMessageKinds.h"
 #include "WebProcess.h"
 #include "WebProcessProxyMessageKinds.h"
 #include <JavaScriptCore/APICast.h>
@@ -126,8 +125,7 @@ void WebFrameLoaderClient::detachedFromParent2()
     webPage->injectedBundleLoaderClient().didRemoveFrameFromHierarchy(webPage, m_frame, userData);
 
     // Notify the UIProcess.
-    WebProcess::shared().connection()->send(Messages::WebPageProxy::DidRemoveFrameFromHierarchy(m_frame->frameID(), InjectedBundleUserMessageEncoder(userData.get())), webPage->pageID());
-
+    WebProcess::shared().connection()->send(WebPageProxyMessage::DidRemoveFrameFromHierarchy, webPage->pageID(), CoreIPC::In(m_frame->frameID(), InjectedBundleUserMessageEncoder(userData.get())));
 }
 
 void WebFrameLoaderClient::detachedFromParent3()
@@ -225,7 +223,7 @@ void WebFrameLoaderClient::dispatchDidReceiveServerRedirectForProvisionalLoad()
     webPage->injectedBundleLoaderClient().didReceiveServerRedirectForProvisionalLoadForFrame(webPage, m_frame, userData);
 
     // Notify the UIProcess.
-    WebProcess::shared().connection()->send(Messages::WebPageProxy::DidReceiveServerRedirectForProvisionalLoadForFrame(m_frame->frameID(), url, InjectedBundleUserMessageEncoder(userData.get())), webPage->pageID());
+    WebProcess::shared().connection()->send(WebPageProxyMessage::DidReceiveServerRedirectForProvisionalLoadForFrame, webPage->pageID(), CoreIPC::In(m_frame->frameID(), url, InjectedBundleUserMessageEncoder(userData.get())));
 }
 
 void WebFrameLoaderClient::dispatchDidCancelClientRedirect()
@@ -297,7 +295,7 @@ void WebFrameLoaderClient::dispatchDidStartProvisionalLoad()
     webPage->injectedBundleLoaderClient().didStartProvisionalLoadForFrame(webPage, m_frame, userData);
 
     // Notify the UIProcess.
-    WebProcess::shared().connection()->send(Messages::WebPageProxy::DidStartProvisionalLoadForFrame(m_frame->frameID(), url, InjectedBundleUserMessageEncoder(userData.get())), webPage->pageID());
+    WebProcess::shared().connection()->send(WebPageProxyMessage::DidStartProvisionalLoadForFrame, webPage->pageID(), CoreIPC::In(m_frame->frameID(), url, InjectedBundleUserMessageEncoder(userData.get())));
 }
 
 void WebFrameLoaderClient::dispatchDidReceiveTitle(const String& title)
@@ -312,7 +310,7 @@ void WebFrameLoaderClient::dispatchDidReceiveTitle(const String& title)
     webPage->injectedBundleLoaderClient().didReceiveTitleForFrame(webPage, title, m_frame, userData);
 
     // Notify the UIProcess.
-    WebProcess::shared().connection()->send(Messages::WebPageProxy::DidReceiveTitleForFrame(m_frame->frameID(), title, InjectedBundleUserMessageEncoder(userData.get())), webPage->pageID());
+    WebProcess::shared().connection()->send(WebPageProxyMessage::DidReceiveTitleForFrame, webPage->pageID(), CoreIPC::In(m_frame->frameID(), title, InjectedBundleUserMessageEncoder(userData.get())));
 }
 
 void WebFrameLoaderClient::dispatchDidChangeIcons()
@@ -333,7 +331,7 @@ void WebFrameLoaderClient::dispatchDidCommitLoad()
     webPage->injectedBundleLoaderClient().didCommitLoadForFrame(webPage, m_frame, userData);
 
     // Notify the UIProcess.
-    WebProcess::shared().connection()->send(Messages::WebPageProxy::DidCommitLoadForFrame(m_frame->frameID(), response.mimeType(), PlatformCertificateInfo(response), InjectedBundleUserMessageEncoder(userData.get())), webPage->pageID());
+    WebProcess::shared().connection()->send(WebPageProxyMessage::DidCommitLoadForFrame, webPage->pageID(), CoreIPC::In(m_frame->frameID(), response.mimeType(), PlatformCertificateInfo(response), InjectedBundleUserMessageEncoder(userData.get())));
 }
 
 void WebFrameLoaderClient::dispatchDidFailProvisionalLoad(const ResourceError& error)
@@ -348,7 +346,7 @@ void WebFrameLoaderClient::dispatchDidFailProvisionalLoad(const ResourceError& e
     webPage->injectedBundleLoaderClient().didFailProvisionalLoadWithErrorForFrame(webPage, m_frame, userData);
 
     // Notify the UIProcess.
-    WebProcess::shared().connection()->send(Messages::WebPageProxy::DidFailProvisionalLoadForFrame(m_frame->frameID(), InjectedBundleUserMessageEncoder(userData.get())), webPage->pageID());
+    WebProcess::shared().connection()->send(WebPageProxyMessage::DidFailProvisionalLoadForFrame, webPage->pageID(), CoreIPC::In(m_frame->frameID(), InjectedBundleUserMessageEncoder(userData.get())));
     
     // If we have a load listener, notify it.
     if (WebFrame::LoadListener* loadListener = m_frame->loadListener())
@@ -367,7 +365,7 @@ void WebFrameLoaderClient::dispatchDidFailLoad(const ResourceError& error)
     webPage->injectedBundleLoaderClient().didFailLoadWithErrorForFrame(webPage, m_frame, userData);
 
     // Notify the UIProcess.
-    WebProcess::shared().connection()->send(Messages::WebPageProxy::DidFailLoadForFrame(m_frame->frameID(), InjectedBundleUserMessageEncoder(userData.get())), webPage->pageID());
+    WebProcess::shared().connection()->send(WebPageProxyMessage::DidFailLoadForFrame, webPage->pageID(), CoreIPC::In(m_frame->frameID(), InjectedBundleUserMessageEncoder(userData.get())));
 
     // If we have a load listener, notify it.
     if (WebFrame::LoadListener* loadListener = m_frame->loadListener())
@@ -386,7 +384,7 @@ void WebFrameLoaderClient::dispatchDidFinishDocumentLoad()
     webPage->injectedBundleLoaderClient().didFinishDocumentLoadForFrame(webPage, m_frame, userData);
 
     // Notify the UIProcess.
-    WebProcess::shared().connection()->send(Messages::WebPageProxy::DidFinishDocumentLoadForFrame(m_frame->frameID(), InjectedBundleUserMessageEncoder(userData.get())), webPage->pageID());
+    WebProcess::shared().connection()->send(WebPageProxyMessage::DidFinishDocumentLoadForFrame, webPage->pageID(), CoreIPC::In(m_frame->frameID(), InjectedBundleUserMessageEncoder(userData.get())));
 }
 
 void WebFrameLoaderClient::dispatchDidFinishLoad()
@@ -401,7 +399,7 @@ void WebFrameLoaderClient::dispatchDidFinishLoad()
     webPage->injectedBundleLoaderClient().didFinishLoadForFrame(webPage, m_frame, userData);
 
     // Notify the UIProcess.
-    WebProcess::shared().connection()->send(Messages::WebPageProxy::DidFinishLoadForFrame(m_frame->frameID(), InjectedBundleUserMessageEncoder(userData.get())), webPage->pageID());
+    WebProcess::shared().connection()->send(WebPageProxyMessage::DidFinishLoadForFrame, webPage->pageID(), CoreIPC::In(m_frame->frameID(), InjectedBundleUserMessageEncoder(userData.get())));
 
     // If we have a load listener, notify it.
     if (WebFrame::LoadListener* loadListener = m_frame->loadListener())
@@ -420,7 +418,7 @@ void WebFrameLoaderClient::dispatchDidFirstLayout()
     webPage->injectedBundleLoaderClient().didFirstLayoutForFrame(webPage, m_frame, userData);
 
     // Notify the UIProcess.
-    WebProcess::shared().connection()->send(Messages::WebPageProxy::DidFirstLayoutForFrame(m_frame->frameID(), InjectedBundleUserMessageEncoder(userData.get())), webPage->pageID());
+    WebProcess::shared().connection()->send(WebPageProxyMessage::DidFirstLayoutForFrame, webPage->pageID(), CoreIPC::In(m_frame->frameID(), InjectedBundleUserMessageEncoder(userData.get())));
 }
 
 void WebFrameLoaderClient::dispatchDidFirstVisuallyNonEmptyLayout()
@@ -435,7 +433,7 @@ void WebFrameLoaderClient::dispatchDidFirstVisuallyNonEmptyLayout()
     webPage->injectedBundleLoaderClient().didFirstVisuallyNonEmptyLayoutForFrame(webPage, m_frame, userData);
 
     // Notify the UIProcess.
-    WebProcess::shared().connection()->send(Messages::WebPageProxy::DidFirstVisuallyNonEmptyLayoutForFrame(m_frame->frameID(), InjectedBundleUserMessageEncoder(userData.get())), webPage->pageID());
+    WebProcess::shared().connection()->send(WebPageProxyMessage::DidFirstVisuallyNonEmptyLayoutForFrame, webPage->pageID(), CoreIPC::In(m_frame->frameID(), InjectedBundleUserMessageEncoder(userData.get())));
 }
 
 Frame* WebFrameLoaderClient::dispatchCreatePage()
@@ -516,7 +514,8 @@ void WebFrameLoaderClient::dispatchDecidePolicyForMIMEType(FramePolicyFunction f
     uint64_t listenerID = m_frame->setUpPolicyListener(function);
     const String& url = request.url().string(); // FIXME: Pass entire request.
 
-    WebProcess::shared().connection()->send(Messages::WebPageProxy::DecidePolicyForMIMEType(m_frame->frameID(), MIMEType, url, listenerID), webPage->pageID());
+    WebProcess::shared().connection()->send(WebPageProxyMessage::DecidePolicyForMIMEType, webPage->pageID(),
+                                            CoreIPC::In(m_frame->frameID(), MIMEType, url, listenerID));
 }
 
 void WebFrameLoaderClient::dispatchDecidePolicyForNewWindowAction(FramePolicyFunction function, const NavigationAction& navigationAction, const ResourceRequest& request, PassRefPtr<FormState>, const String& frameName)
@@ -535,7 +534,8 @@ void WebFrameLoaderClient::dispatchDecidePolicyForNewWindowAction(FramePolicyFun
     uint32_t modifiers = modifiersForNavigationAction(navigationAction);
     int32_t mouseButton = mouseButtonForNavigationAction(navigationAction);
 
-    WebProcess::shared().connection()->send(Messages::WebPageProxy::DecidePolicyForNewWindowAction(m_frame->frameID(), navigationType, modifiers, mouseButton, url, listenerID), webPage->pageID());
+    WebProcess::shared().connection()->send(WebPageProxyMessage::DecidePolicyForNewWindowAction, webPage->pageID(),
+                                            CoreIPC::In(m_frame->frameID(), navigationType, modifiers, mouseButton, url, listenerID));
 }
 
 void WebFrameLoaderClient::dispatchDecidePolicyForNavigationAction(FramePolicyFunction function, const NavigationAction& navigationAction, const ResourceRequest& request, PassRefPtr<FormState>)
@@ -560,7 +560,8 @@ void WebFrameLoaderClient::dispatchDecidePolicyForNavigationAction(FramePolicyFu
     uint32_t modifiers = modifiersForNavigationAction(navigationAction);
     int32_t mouseButton = mouseButtonForNavigationAction(navigationAction);
 
-    WebProcess::shared().connection()->send(Messages::WebPageProxy::DecidePolicyForNavigationAction(m_frame->frameID(), navigationType, modifiers, mouseButton, url, listenerID), webPage->pageID());
+    WebProcess::shared().connection()->send(WebPageProxyMessage::DecidePolicyForNavigationAction, webPage->pageID(),
+                                            CoreIPC::In(m_frame->frameID(), navigationType, modifiers, mouseButton, url, listenerID));
 }
 
 void WebFrameLoaderClient::cancelPolicyCheck()
@@ -591,9 +592,9 @@ void WebFrameLoaderClient::dispatchWillSubmitForm(FramePolicyFunction function,
 
 
     uint64_t listenerID = m_frame->setUpPolicyListener(function);
-    StringPairVector valuesVector(values);
 
-    WebProcess::shared().connection()->send(Messages::WebPageProxy::WillSubmitForm(m_frame->frameID(), sourceFrame->frameID(), valuesVector, listenerID, InjectedBundleUserMessageEncoder(userData.get())), webPage->pageID());
+    WebProcess::shared().connection()->send(WebPageProxyMessage::WillSubmitForm, webPage->pageID(),
+                                            CoreIPC::In(m_frame->frameID(), sourceFrame->frameID(), values, listenerID, InjectedBundleUserMessageEncoder(userData.get())));
 }
 
 void WebFrameLoaderClient::dispatchDidLoadMainResource(DocumentLoader*)
@@ -629,22 +630,21 @@ void WebFrameLoaderClient::didChangeEstimatedProgress()
 void WebFrameLoaderClient::postProgressStartedNotification()
 {
     if (WebPage* webPage = m_frame->page())
-        WebProcess::shared().connection()->send(Messages::WebPageProxy::DidStartProgress(), webPage->pageID());
+        WebProcess::shared().connection()->send(WebPageProxyMessage::DidStartProgress, webPage->pageID(), CoreIPC::In());
 }
 
 void WebFrameLoaderClient::postProgressEstimateChangedNotification()
 {
     if (WebPage* webPage = m_frame->page()) {
         double progress = webPage->corePage()->progress()->estimatedProgress();
-        WebProcess::shared().connection()->send(Messages::WebPageProxy::DidChangeProgress(progress), webPage->pageID());
-
+        WebProcess::shared().connection()->send(WebPageProxyMessage::DidChangeProgress, webPage->pageID(), CoreIPC::In(progress));
     }
 }
 
 void WebFrameLoaderClient::postProgressFinishedNotification()
 {
     if (WebPage* webPage = m_frame->page())
-        WebProcess::shared().connection()->send(Messages::WebPageProxy::DidFinishProgress(), webPage->pageID());
+        WebProcess::shared().connection()->send(WebPageProxyMessage::DidFinishProgress, webPage->pageID(), CoreIPC::In());
 }
 
 void WebFrameLoaderClient::setMainFrameDocumentReady(bool)
@@ -948,7 +948,7 @@ PassRefPtr<Frame> WebFrameLoaderClient::createFrame(const KURL& url, const Strin
     RefPtr<WebFrame> subframe = WebFrame::createSubframe(webPage, name, ownerElement);
 
     // Notify the UI process that subframe has been added.
-    WebProcess::shared().connection()->send(Messages::WebPageProxy::DidCreateSubFrame(subframe->frameID()), webPage->pageID());
+    WebProcess::shared().connection()->send(WebPageProxyMessage::DidCreateSubFrame, webPage->pageID(), CoreIPC::In(subframe->frameID()));
 
     Frame* coreSubframe = subframe->coreFrame();
 
diff --git a/WebKit2/WebProcess/WebPage/WebBackForwardListProxy.cpp b/WebKit2/WebProcess/WebPage/WebBackForwardListProxy.cpp
index dc3ca69..40d81b9 100644
--- a/WebKit2/WebProcess/WebPage/WebBackForwardListProxy.cpp
+++ b/WebKit2/WebProcess/WebPage/WebBackForwardListProxy.cpp
@@ -27,7 +27,7 @@
 
 #include "WebCoreArgumentCoders.h"
 #include "WebPage.h"
-#include "WebPageProxyMessages.h"
+#include "WebPageProxyMessageKinds.h"
 #include "WebProcess.h"
 #include "WebProcessProxyMessageKinds.h"
 #include <WebCore/HistoryItem.h>
@@ -119,7 +119,7 @@ void WebBackForwardListProxy::addItem(PassRefPtr<HistoryItem> prpItem)
 
     RefPtr<HistoryItem> item = prpItem;
     uint64_t itemID = historyItemToIDMap().get(item);
-    WebProcess::shared().connection()->send(Messages::WebPageProxy::BackForwardAddItem(itemID), m_page->pageID());
+    WebProcess::shared().connection()->send(WebPageProxyMessage::BackForwardAddItem, m_page->pageID(), CoreIPC::In(itemID));
 }
 
 void WebBackForwardListProxy::goBack()
@@ -135,16 +135,16 @@ void WebBackForwardListProxy::goForward()
 void WebBackForwardListProxy::goToItem(HistoryItem* item)
 {
     uint64_t itemID = historyItemToIDMap().get(item);
-    WebProcess::shared().connection()->send(Messages::WebPageProxy::BackForwardGoToItem(itemID), m_page->pageID());
-
+    WebProcess::shared().connection()->send(WebPageProxyMessage::BackForwardGoToItem, m_page->pageID(), CoreIPC::In(itemID));
 }
 
 HistoryItem* WebBackForwardListProxy::backItem()
 {
     uint64_t backItemID = 0;
-    if (!WebProcess::shared().connection()->sendSync(Messages::WebPageProxy::BackForwardBackItem(),
-             Messages::WebPageProxy::BackForwardBackItem::Reply(backItemID),
-             m_page->pageID(), CoreIPC::Connection::NoTimeout)) {
+    if (!WebProcess::shared().connection()->sendSync(WebPageProxyMessage::BackForwardBackItem,
+                                                     m_page->pageID(), CoreIPC::In(),
+                                                     CoreIPC::Out(backItemID),
+                                                     CoreIPC::Connection::NoTimeout)) {
         return 0;
     }
 
@@ -158,9 +158,10 @@ HistoryItem* WebBackForwardListProxy::backItem()
 HistoryItem* WebBackForwardListProxy::currentItem()
 {
     uint64_t currentItemID = 0;
-    if (!WebProcess::shared().connection()->sendSync(Messages::WebPageProxy::BackForwardCurrentItem(),
-             Messages::WebPageProxy::BackForwardCurrentItem::Reply(currentItemID),
-             m_page->pageID(), CoreIPC::Connection::NoTimeout)) {
+    if (!WebProcess::shared().connection()->sendSync(WebPageProxyMessage::BackForwardCurrentItem,
+                                                     m_page->pageID(), CoreIPC::In(),
+                                                     CoreIPC::Out(currentItemID),
+                                                     CoreIPC::Connection::NoTimeout)) {
         return 0;
     }
 
@@ -174,9 +175,10 @@ HistoryItem* WebBackForwardListProxy::currentItem()
 HistoryItem* WebBackForwardListProxy::forwardItem()
 {
     uint64_t forwardItemID = 0;
-    if (!WebProcess::shared().connection()->sendSync(Messages::WebPageProxy::BackForwardForwardItem(),
-             Messages::WebPageProxy::BackForwardForwardItem::Reply(forwardItemID),
-             m_page->pageID(), CoreIPC::Connection::NoTimeout)) {
+    if (!WebProcess::shared().connection()->sendSync(WebPageProxyMessage::BackForwardForwardItem,
+                                                     m_page->pageID(), CoreIPC::In(),
+                                                     CoreIPC::Out(forwardItemID),
+                                                     CoreIPC::Connection::NoTimeout)) {
         return 0;
     }
 
@@ -190,9 +192,10 @@ HistoryItem* WebBackForwardListProxy::forwardItem()
 HistoryItem* WebBackForwardListProxy::itemAtIndex(int itemIndex)
 {
     uint64_t itemID = 0;
-    if (!WebProcess::shared().connection()->sendSync(Messages::WebPageProxy::BackForwardItemAtIndex(itemIndex),
-             Messages::WebPageProxy::BackForwardItemAtIndex::Reply(itemID),
-             m_page->pageID(), CoreIPC::Connection::NoTimeout)) {
+    if (!WebProcess::shared().connection()->sendSync(WebPageProxyMessage::BackForwardItemAtIndex,
+                                                     m_page->pageID(), CoreIPC::In(itemIndex),
+                                                     CoreIPC::Out(itemID),
+                                                     CoreIPC::Connection::NoTimeout)) {
         return 0;
     }
 
@@ -236,9 +239,10 @@ void WebBackForwardListProxy::setEnabled(bool enabled)
 int WebBackForwardListProxy::backListCount()
 {
     int backListCount = 0;
-    if (!WebProcess::shared().connection()->sendSync(Messages::WebPageProxy::BackForwardBackListCount(),
-             Messages::WebPageProxy::BackForwardBackListCount::Reply(backListCount),
-             m_page->pageID(), CoreIPC::Connection::NoTimeout)) {
+    if (!WebProcess::shared().connection()->sendSync(WebPageProxyMessage::BackForwardBackListCount,
+                                                     m_page->pageID(), CoreIPC::In(),
+                                                     CoreIPC::Out(backListCount),
+                                                     CoreIPC::Connection::NoTimeout)) {
         return 0;
     }
 
@@ -248,9 +252,10 @@ int WebBackForwardListProxy::backListCount()
 int WebBackForwardListProxy::forwardListCount()
 {
     int forwardListCount = 0;
-    if (!WebProcess::shared().connection()->sendSync(Messages::WebPageProxy::BackForwardForwardListCount(),
-             Messages::WebPageProxy::BackForwardForwardListCount::Reply(forwardListCount),
-             m_page->pageID(), CoreIPC::Connection::NoTimeout)) {
+    if (!WebProcess::shared().connection()->sendSync(WebPageProxyMessage::BackForwardForwardListCount,
+                                                     m_page->pageID(), CoreIPC::In(),
+                                                     CoreIPC::Out(forwardListCount),
+                                                     CoreIPC::Connection::NoTimeout)) {
         return 0;
     }
 
diff --git a/WebKit2/WebProcess/WebPage/WebPage.cpp b/WebKit2/WebProcess/WebPage/WebPage.cpp
index 312a2fc..2d0cedd 100644
--- a/WebKit2/WebProcess/WebPage/WebPage.cpp
+++ b/WebKit2/WebProcess/WebPage/WebPage.cpp
@@ -46,7 +46,7 @@
 #include "WebFrame.h"
 #include "WebInspectorClient.h"
 #include "WebPageCreationParameters.h"
-#include "WebPageProxyMessages.h"
+#include "WebPageProxyMessageKinds.h"
 #include "WebProcessProxyMessageKinds.h"
 #include "WebPreferencesStore.h"
 #include "WebProcess.h"
@@ -142,7 +142,7 @@ WebPage::WebPage(uint64_t pageID, const WebPageCreationParameters& parameters)
     Settings::setMinDOMTimerInterval(0.004);
 
     m_mainFrame = WebFrame::createMainFrame(this);
-    WebProcess::shared().connection()->send(Messages::WebPageProxy::DidCreateMainFrame(m_mainFrame->frameID()), m_pageID);
+    WebProcess::shared().connection()->send(WebPageProxyMessage::DidCreateMainFrame, m_pageID, CoreIPC::In(m_mainFrame->frameID()));
 
 #ifndef NDEBUG
     webPageCounter.increment();
@@ -246,10 +246,10 @@ void WebPage::changeAcceleratedCompositingMode(WebCore::GraphicsLayer* layer)
     // Tell the UI process that accelerated compositing changed. It may respond by changing
     // drawing area types.
     DrawingArea::DrawingAreaInfo newDrawingAreaInfo;
-
-    WebProcess::shared().connection()->sendSync(Messages::WebPageProxy::DidChangeAcceleratedCompositing(compositing),
-        Messages::WebPageProxy::DidChangeAcceleratedCompositing::Reply(newDrawingAreaInfo),
-        m_pageID, CoreIPC::Connection::NoTimeout);
+    WebProcess::shared().connection()->sendSync(WebPageProxyMessage::DidChangeAcceleratedCompositing,
+                                                m_pageID, CoreIPC::In(compositing),
+                                                CoreIPC::Out(newDrawingAreaInfo),
+                                                CoreIPC::Connection::NoTimeout);
     
     if (newDrawingAreaInfo.type != drawingArea()->info().type) {
         m_drawingArea = 0;
@@ -263,7 +263,10 @@ void WebPage::changeAcceleratedCompositingMode(WebCore::GraphicsLayer* layer)
 void WebPage::enterAcceleratedCompositingMode(GraphicsLayer* layer)
 {
     changeAcceleratedCompositingMode(layer);
+    
+#if USE(ACCELERATED_COMPOSITING)
     m_drawingArea->setRootCompositingLayer(layer);
+#endif
 }
 
 void WebPage::exitAcceleratedCompositingMode()
@@ -294,7 +297,7 @@ void WebPage::tryClose()
 
 void WebPage::sendClose()
 {
-    WebProcess::shared().connection()->send(Messages::WebPageProxy::ClosePage(), m_pageID);
+    WebProcess::shared().connection()->send(WebPageProxyMessage::ClosePage, m_pageID, CoreIPC::In());
 }
 
 void WebPage::loadURL(const String& url)
@@ -478,7 +481,8 @@ void WebPage::mouseEvent(const WebMouseEvent& mouseEvent)
     CurrentEvent currentEvent(mouseEvent);
 
     bool handled = handleMouseEvent(mouseEvent, m_page.get());
-    WebProcess::shared().connection()->send(Messages::WebPageProxy::DidReceiveEvent(static_cast<uint32_t>(mouseEvent.type()), handled), m_pageID);
+
+    WebProcess::shared().connection()->send(WebPageProxyMessage::DidReceiveEvent, m_pageID, CoreIPC::In(static_cast<uint32_t>(mouseEvent.type()), handled));
 }
 
 static bool handleWheelEvent(const WebWheelEvent& wheelEvent, Page* page)
@@ -496,7 +500,7 @@ void WebPage::wheelEvent(const WebWheelEvent& wheelEvent)
     CurrentEvent currentEvent(wheelEvent);
 
     bool handled = handleWheelEvent(wheelEvent, m_page.get());
-    WebProcess::shared().connection()->send(Messages::WebPageProxy::DidReceiveEvent(static_cast<uint32_t>(wheelEvent.type()), handled), m_pageID);
+    WebProcess::shared().connection()->send(WebPageProxyMessage::DidReceiveEvent, m_pageID, CoreIPC::In(static_cast<uint32_t>(wheelEvent.type()), handled));
 }
 
 static bool handleKeyEvent(const WebKeyboardEvent& keyboardEvent, Page* page)
@@ -515,21 +519,21 @@ void WebPage::keyEvent(const WebKeyboardEvent& keyboardEvent)
     if (!handled)
         handled = performDefaultBehaviorForKeyEvent(keyboardEvent);
 
-    WebProcess::shared().connection()->send(Messages::WebPageProxy::DidReceiveEvent(static_cast<uint32_t>(keyboardEvent.type()), handled), m_pageID);
+    WebProcess::shared().connection()->send(WebPageProxyMessage::DidReceiveEvent, m_pageID, CoreIPC::In(static_cast<uint32_t>(keyboardEvent.type()), handled));
 }
 
 void WebPage::validateMenuItem(const String& commandName)
 {
     bool isEnabled = false;
-    int32_t state = 0;
+    int state = 0;
     Frame* frame = m_page->focusController()->focusedOrMainFrame();
     if (frame) {
         Editor::Command command = frame->editor()->command(commandName);
         state = command.state();
         isEnabled = command.isSupported() && command.isEnabled();
     }
-
-    WebProcess::shared().connection()->send(Messages::WebPageProxy::DidValidateMenuItem(commandName, isEnabled, state), m_pageID);
+    
+    WebProcess::shared().connection()->send(WebPageProxyMessage::DidValidateMenuItem, m_pageID, CoreIPC::In(commandName, isEnabled, state));
 }
 
 void WebPage::executeEditCommand(const String& commandName)
@@ -553,7 +557,7 @@ void WebPage::touchEvent(const WebTouchEvent& touchEvent)
 
     bool handled = handleTouchEvent(touchEvent, m_page.get());
 
-    WebProcess::shared().connection()->send(Messages::WebPageProxy::DidReceiveEvent(static_cast<uint32_t>(touchEvent.type()), handled), m_pageID);
+    WebProcess::shared().connection()->send(WebPageProxyMessage::DidReceiveEvent, m_pageID, CoreIPC::In(static_cast<uint32_t>(touchEvent.type()), handled));
 }
 #endif
 
@@ -608,7 +612,7 @@ void WebPage::didReceivePolicyDecision(uint64_t frameID, uint64_t listenerID, ui
 
 void WebPage::show()
 {
-    WebProcess::shared().connection()->send(Messages::WebPageProxy::ShowPage(), m_pageID);
+    WebProcess::shared().connection()->send(WebPageProxyMessage::ShowPage, m_pageID, CoreIPC::In());
 }
 
 void WebPage::setCustomUserAgent(const String& customUserAgent)
@@ -649,13 +653,13 @@ void WebPage::runJavaScriptInMainFrame(const String& script, uint64_t callbackID
     JSValue resultValue = m_mainFrame->coreFrame()->script()->executeScript(script, true).jsValue();
     String resultString = ustringToString(resultValue.toString(m_mainFrame->coreFrame()->script()->globalObject(mainThreadNormalWorld())->globalExec()));
 
-    WebProcess::shared().connection()->send(Messages::WebPageProxy::DidRunJavaScriptInMainFrame(resultString, callbackID), m_pageID);
+    WebProcess::shared().connection()->send(WebPageProxyMessage::DidRunJavaScriptInMainFrame, m_pageID, CoreIPC::In(resultString, callbackID));
 }
 
 void WebPage::getRenderTreeExternalRepresentation(uint64_t callbackID)
 {
     String resultString = renderTreeExternalRepresentation();
-    WebProcess::shared().connection()->send(Messages::WebPageProxy::DidGetRenderTreeExternalRepresentation(resultString, callbackID), m_pageID);
+    WebProcess::shared().connection()->send(WebPageProxyMessage::DidGetRenderTreeExternalRepresentation, m_pageID, CoreIPC::In(resultString, callbackID));
 }
 
 void WebPage::getSourceForFrame(uint64_t frameID, uint64_t callbackID)
@@ -663,8 +667,7 @@ void WebPage::getSourceForFrame(uint64_t frameID, uint64_t callbackID)
     String resultString;
     if (WebFrame* frame = WebProcess::shared().webFrame(frameID))
        resultString = frame->source();
-
-    WebProcess::shared().connection()->send(Messages::WebPageProxy::DidGetSourceForFrame(resultString, callbackID), m_pageID);
+    WebProcess::shared().connection()->send(WebPageProxyMessage::DidGetSourceForFrame, m_pageID, CoreIPC::In(resultString, callbackID));
 }
 
 void WebPage::preferencesDidChange(const WebPreferencesStore& store)
diff --git a/WebKit2/win/WebKit2.vcproj b/WebKit2/win/WebKit2.vcproj
index 720347f..63fe5e5 100755
--- a/WebKit2/win/WebKit2.vcproj
+++ b/WebKit2/win/WebKit2.vcproj
@@ -449,10 +449,6 @@
 				>
 			</File>
 			<File
-				RelativePath="..\Shared\StringPairVector.h"
-				>
-			</File>
-			<File
 				RelativePath="..\Shared\UserMessageCoders.h"
 				>
 			</File>
@@ -768,6 +764,10 @@
 					>
 				</File>
 				<File
+					RelativePath="..\Shared\CoreIPCSupport\WebPageProxyMessageKinds.h"
+					>
+				</File>
+				<File
 					RelativePath="..\Shared\CoreIPCSupport\WebProcessProxyMessageKinds.h"
 					>
 				</File>
@@ -2029,14 +2029,6 @@
 				>
 			</File>
 			<File
-				RelativePath="$(WebKitOutputDir)\obj\$(ProjectName)\DerivedSources\WebPageProxyMessageReceiver.cpp"
-				>
-			</File>
-			<File
-				RelativePath="$(WebKitOutputDir)\obj\$(ProjectName)\DerivedSources\WebPageProxyMessages.h"
-				>
-			</File>
-			<File
 				RelativePath="$(WebKitOutputDir)\obj\$(ProjectName)\DerivedSources\WebProcessMessageReceiver.cpp"
 				>
 			</File>

-- 
WebKit Debian packaging



More information about the Pkg-webkit-commits mailing list