<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.1//EN"
"http://www.w3.org/TR/xhtml11/DTD/xhtml11.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head><meta http-equiv="content-type" content="text/html; charset=utf-8" />
<title>[177795] trunk/Source/WebKit2</title>
</head>
<body>

<style type="text/css"><!--
#msg dl.meta { border: 1px #006 solid; background: #369; padding: 6px; color: #fff; }
#msg dl.meta dt { float: left; width: 6em; font-weight: bold; }
#msg dt:after { content:':';}
#msg dl, #msg dt, #msg ul, #msg li, #header, #footer, #logmsg { font-family: verdana,arial,helvetica,sans-serif; font-size: 10pt;  }
#msg dl a { font-weight: bold}
#msg dl a:link    { color:#fc3; }
#msg dl a:active  { color:#ff0; }
#msg dl a:visited { color:#cc6; }
h3 { font-family: verdana,arial,helvetica,sans-serif; font-size: 10pt; font-weight: bold; }
#msg pre { overflow: auto; background: #ffc; border: 1px #fa0 solid; padding: 6px; }
#logmsg { background: #ffc; border: 1px #fa0 solid; padding: 1em 1em 0 1em; }
#logmsg p, #logmsg pre, #logmsg blockquote { margin: 0 0 1em 0; }
#logmsg p, #logmsg li, #logmsg dt, #logmsg dd { line-height: 14pt; }
#logmsg h1, #logmsg h2, #logmsg h3, #logmsg h4, #logmsg h5, #logmsg h6 { margin: .5em 0; }
#logmsg h1:first-child, #logmsg h2:first-child, #logmsg h3:first-child, #logmsg h4:first-child, #logmsg h5:first-child, #logmsg h6:first-child { margin-top: 0; }
#logmsg ul, #logmsg ol { padding: 0; list-style-position: inside; margin: 0 0 0 1em; }
#logmsg ul { text-indent: -1em; padding-left: 1em; }#logmsg ol { text-indent: -1.5em; padding-left: 1.5em; }
#logmsg > ul, #logmsg > ol { margin: 0 0 1em 0; }
#logmsg pre { background: #eee; padding: 1em; }
#logmsg blockquote { border: 1px solid #fa0; border-left-width: 10px; padding: 1em 1em 0 1em; background: white;}
#logmsg dl { margin: 0; }
#logmsg dt { font-weight: bold; }
#logmsg dd { margin: 0; padding: 0 0 0.5em 0; }
#logmsg dd:before { content:'\00bb';}
#logmsg table { border-spacing: 0px; border-collapse: collapse; border-top: 4px solid #fa0; border-bottom: 1px solid #fa0; background: #fff; }
#logmsg table th { text-align: left; font-weight: normal; padding: 0.2em 0.5em; border-top: 1px dotted #fa0; }
#logmsg table td { text-align: right; border-top: 1px dotted #fa0; padding: 0.2em 0.5em; }
#logmsg table thead th { text-align: center; border-bottom: 1px solid #fa0; }
#logmsg table th.Corner { text-align: left; }
#logmsg hr { border: none 0; border-top: 2px dashed #fa0; height: 1px; }
#header, #footer { color: #fff; background: #636; border: 1px #300 solid; padding: 6px; }
#patch { width: 100%; }
#patch h4 {font-family: verdana,arial,helvetica,sans-serif;font-size:10pt;padding:8px;background:#369;color:#fff;margin:0;}
#patch .propset h4, #patch .binary h4 {margin:0;}
#patch pre {padding:0;line-height:1.2em;margin:0;}
#patch .diff {width:100%;background:#eee;padding: 0 0 10px 0;overflow:auto;}
#patch .propset .diff, #patch .binary .diff  {padding:10px 0;}
#patch span {display:block;padding:0 10px;}
#patch .modfile, #patch .addfile, #patch .delfile, #patch .propset, #patch .binary, #patch .copfile {border:1px solid #ccc;margin:10px 0;}
#patch ins {background:#dfd;text-decoration:none;display:block;padding:0 10px;}
#patch del {background:#fdd;text-decoration:none;display:block;padding:0 10px;}
#patch .lines, .info {color:#888;background:#fff;}
--></style>
<div id="msg">
<dl class="meta">
<dt>Revision</dt> <dd><a href="http://trac.webkit.org/projects/webkit/changeset/177795">177795</a></dd>
<dt>Author</dt> <dd>andersca@apple.com</dd>
<dt>Date</dt> <dd>2014-12-29 10:38:07 -0800 (Mon, 29 Dec 2014)</dd>
</dl>

<h3>Log Message</h3>
<pre>Convert all variadic WebProcessProxy message over to UserData
https://bugs.webkit.org/show_bug.cgi?id=139990

Reviewed by Sam Weinig.

* UIProcess/WebPageProxy.cpp:
(WebKit::WebPageProxy::willGoToBackForwardListItem):
(WebKit::WebPageProxy::didStartProvisionalLoadForFrame):
(WebKit::WebPageProxy::didReceiveServerRedirectForProvisionalLoadForFrame):
(WebKit::WebPageProxy::didFailProvisionalLoadForFrame):
(WebKit::WebPageProxy::didCommitLoadForFrame):
(WebKit::WebPageProxy::didFinishDocumentLoadForFrame):
(WebKit::WebPageProxy::didFinishLoadForFrame):
(WebKit::WebPageProxy::didFailLoadForFrame):
(WebKit::WebPageProxy::didSameDocumentNavigationForFrame):
(WebKit::WebPageProxy::didReceiveTitleForFrame):
(WebKit::WebPageProxy::didFirstLayoutForFrame):
(WebKit::WebPageProxy::didFirstVisuallyNonEmptyLayoutForFrame):
(WebKit::WebPageProxy::didLayout):
(WebKit::WebPageProxy::didRemoveFrameFromHierarchy):
(WebKit::WebPageProxy::didDisplayInsecureContentForFrame):
(WebKit::WebPageProxy::didRunInsecureContentForFrame):
(WebKit::WebPageProxy::didDetectXSSForFrame):
(WebKit::WebPageProxy::decidePolicyForNavigationAction):
(WebKit::WebPageProxy::decidePolicyForNewWindowAction):
(WebKit::WebPageProxy::decidePolicyForResponse):
(WebKit::WebPageProxy::decidePolicyForResponseSync):
(WebKit::WebPageProxy::unableToImplementPolicy):
(WebKit::WebPageProxy::willSubmitForm):
(WebKit::WebPageProxy::mouseDidMoveOverElement):
(WebKit::WebPageProxy::didBeginTrackingPotentialLongMousePress):
(WebKit::WebPageProxy::didRecognizeLongMousePress):
(WebKit::WebPageProxy::didCancelTrackingPotentialLongMousePress):
(WebKit::WebPageProxy::showContextMenu):
(WebKit::WebPageProxy::internalShowContextMenu):
(WebKit::WebPageProxy::didPerformActionMenuHitTest):
* UIProcess/WebPageProxy.h:
* UIProcess/WebPageProxy.messages.in:
* UIProcess/mac/WebPageProxyMac.mm:
(WebKit::WebPageProxy::showSelectionServiceMenu):
* WebProcess/WebCoreSupport/WebChromeClient.cpp:
(WebKit::WebChromeClient::mouseDidMoveOverElement):
(WebKit::WebChromeClient::didBeginTrackingPotentialLongMousePress):
(WebKit::WebChromeClient::didRecognizeLongMousePress):
(WebKit::WebChromeClient::didCancelTrackingPotentialLongMousePress):
* WebProcess/WebCoreSupport/WebFrameLoaderClient.cpp:
(WebKit::WebFrameLoaderClient::detachedFromParent2):
(WebKit::WebFrameLoaderClient::dispatchDidReceiveServerRedirectForProvisionalLoad):
(WebKit::WebFrameLoaderClient::dispatchDidChangeLocationWithinPage):
(WebKit::WebFrameLoaderClient::dispatchDidPushStateWithinPage):
(WebKit::WebFrameLoaderClient::dispatchDidReplaceStateWithinPage):
(WebKit::WebFrameLoaderClient::dispatchDidPopStateWithinPage):
(WebKit::WebFrameLoaderClient::dispatchDidStartProvisionalLoad):
(WebKit::WebFrameLoaderClient::dispatchDidReceiveTitle):
(WebKit::WebFrameLoaderClient::dispatchDidCommitLoad):
(WebKit::WebFrameLoaderClient::dispatchDidFailProvisionalLoad):
(WebKit::WebFrameLoaderClient::dispatchDidFailLoad):
(WebKit::WebFrameLoaderClient::dispatchDidFinishDocumentLoad):
(WebKit::WebFrameLoaderClient::dispatchDidFinishLoad):
(WebKit::WebFrameLoaderClient::dispatchDidLayout):
(WebKit::WebFrameLoaderClient::dispatchDecidePolicyForResponse):
(WebKit::WebFrameLoaderClient::dispatchDecidePolicyForNewWindowAction):
(WebKit::WebFrameLoaderClient::dispatchDecidePolicyForNavigationAction):
(WebKit::WebFrameLoaderClient::dispatchUnableToImplementPolicy):
(WebKit::WebFrameLoaderClient::dispatchWillSubmitForm):
(WebKit::WebFrameLoaderClient::shouldGoToHistoryItem):
(WebKit::WebFrameLoaderClient::didDisplayInsecureContent):
(WebKit::WebFrameLoaderClient::didRunInsecureContent):
(WebKit::WebFrameLoaderClient::didDetectXSS):
* WebProcess/WebPage/WebContextMenu.cpp:
(WebKit::WebContextMenu::show):
* WebProcess/WebPage/mac/WebPageMac.mm:
(WebKit::WebPage::performActionMenuHitTestAtLocation):</pre>

<h3>Modified Paths</h3>
<ul>
<li><a href="#trunkSourceWebKit2ChangeLog">trunk/Source/WebKit2/ChangeLog</a></li>
<li><a href="#trunkSourceWebKit2UIProcessWebPageProxycpp">trunk/Source/WebKit2/UIProcess/WebPageProxy.cpp</a></li>
<li><a href="#trunkSourceWebKit2UIProcessWebPageProxyh">trunk/Source/WebKit2/UIProcess/WebPageProxy.h</a></li>
<li><a href="#trunkSourceWebKit2UIProcessWebPageProxymessagesin">trunk/Source/WebKit2/UIProcess/WebPageProxy.messages.in</a></li>
<li><a href="#trunkSourceWebKit2UIProcessmacWebPageProxyMacmm">trunk/Source/WebKit2/UIProcess/mac/WebPageProxyMac.mm</a></li>
<li><a href="#trunkSourceWebKit2WebProcessWebCoreSupportWebChromeClientcpp">trunk/Source/WebKit2/WebProcess/WebCoreSupport/WebChromeClient.cpp</a></li>
<li><a href="#trunkSourceWebKit2WebProcessWebCoreSupportWebFrameLoaderClientcpp">trunk/Source/WebKit2/WebProcess/WebCoreSupport/WebFrameLoaderClient.cpp</a></li>
<li><a href="#trunkSourceWebKit2WebProcessWebPageWebContextMenucpp">trunk/Source/WebKit2/WebProcess/WebPage/WebContextMenu.cpp</a></li>
<li><a href="#trunkSourceWebKit2WebProcessWebPagemacWebPageMacmm">trunk/Source/WebKit2/WebProcess/WebPage/mac/WebPageMac.mm</a></li>
</ul>

</div>
<div id="patch">
<h3>Diff</h3>
<a id="trunkSourceWebKit2ChangeLog"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebKit2/ChangeLog (177794 => 177795)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebKit2/ChangeLog        2014-12-29 18:23:44 UTC (rev 177794)
+++ trunk/Source/WebKit2/ChangeLog        2014-12-29 18:38:07 UTC (rev 177795)
</span><span class="lines">@@ -1,3 +1,79 @@
</span><ins>+2014-12-29  Anders Carlsson  &lt;andersca@apple.com&gt;
+
+        Convert all variadic WebProcessProxy message over to UserData
+        https://bugs.webkit.org/show_bug.cgi?id=139990
+
+        Reviewed by Sam Weinig.
+
+        * UIProcess/WebPageProxy.cpp:
+        (WebKit::WebPageProxy::willGoToBackForwardListItem):
+        (WebKit::WebPageProxy::didStartProvisionalLoadForFrame):
+        (WebKit::WebPageProxy::didReceiveServerRedirectForProvisionalLoadForFrame):
+        (WebKit::WebPageProxy::didFailProvisionalLoadForFrame):
+        (WebKit::WebPageProxy::didCommitLoadForFrame):
+        (WebKit::WebPageProxy::didFinishDocumentLoadForFrame):
+        (WebKit::WebPageProxy::didFinishLoadForFrame):
+        (WebKit::WebPageProxy::didFailLoadForFrame):
+        (WebKit::WebPageProxy::didSameDocumentNavigationForFrame):
+        (WebKit::WebPageProxy::didReceiveTitleForFrame):
+        (WebKit::WebPageProxy::didFirstLayoutForFrame):
+        (WebKit::WebPageProxy::didFirstVisuallyNonEmptyLayoutForFrame):
+        (WebKit::WebPageProxy::didLayout):
+        (WebKit::WebPageProxy::didRemoveFrameFromHierarchy):
+        (WebKit::WebPageProxy::didDisplayInsecureContentForFrame):
+        (WebKit::WebPageProxy::didRunInsecureContentForFrame):
+        (WebKit::WebPageProxy::didDetectXSSForFrame):
+        (WebKit::WebPageProxy::decidePolicyForNavigationAction):
+        (WebKit::WebPageProxy::decidePolicyForNewWindowAction):
+        (WebKit::WebPageProxy::decidePolicyForResponse):
+        (WebKit::WebPageProxy::decidePolicyForResponseSync):
+        (WebKit::WebPageProxy::unableToImplementPolicy):
+        (WebKit::WebPageProxy::willSubmitForm):
+        (WebKit::WebPageProxy::mouseDidMoveOverElement):
+        (WebKit::WebPageProxy::didBeginTrackingPotentialLongMousePress):
+        (WebKit::WebPageProxy::didRecognizeLongMousePress):
+        (WebKit::WebPageProxy::didCancelTrackingPotentialLongMousePress):
+        (WebKit::WebPageProxy::showContextMenu):
+        (WebKit::WebPageProxy::internalShowContextMenu):
+        (WebKit::WebPageProxy::didPerformActionMenuHitTest):
+        * UIProcess/WebPageProxy.h:
+        * UIProcess/WebPageProxy.messages.in:
+        * UIProcess/mac/WebPageProxyMac.mm:
+        (WebKit::WebPageProxy::showSelectionServiceMenu):
+        * WebProcess/WebCoreSupport/WebChromeClient.cpp:
+        (WebKit::WebChromeClient::mouseDidMoveOverElement):
+        (WebKit::WebChromeClient::didBeginTrackingPotentialLongMousePress):
+        (WebKit::WebChromeClient::didRecognizeLongMousePress):
+        (WebKit::WebChromeClient::didCancelTrackingPotentialLongMousePress):
+        * WebProcess/WebCoreSupport/WebFrameLoaderClient.cpp:
+        (WebKit::WebFrameLoaderClient::detachedFromParent2):
+        (WebKit::WebFrameLoaderClient::dispatchDidReceiveServerRedirectForProvisionalLoad):
+        (WebKit::WebFrameLoaderClient::dispatchDidChangeLocationWithinPage):
+        (WebKit::WebFrameLoaderClient::dispatchDidPushStateWithinPage):
+        (WebKit::WebFrameLoaderClient::dispatchDidReplaceStateWithinPage):
+        (WebKit::WebFrameLoaderClient::dispatchDidPopStateWithinPage):
+        (WebKit::WebFrameLoaderClient::dispatchDidStartProvisionalLoad):
+        (WebKit::WebFrameLoaderClient::dispatchDidReceiveTitle):
+        (WebKit::WebFrameLoaderClient::dispatchDidCommitLoad):
+        (WebKit::WebFrameLoaderClient::dispatchDidFailProvisionalLoad):
+        (WebKit::WebFrameLoaderClient::dispatchDidFailLoad):
+        (WebKit::WebFrameLoaderClient::dispatchDidFinishDocumentLoad):
+        (WebKit::WebFrameLoaderClient::dispatchDidFinishLoad):
+        (WebKit::WebFrameLoaderClient::dispatchDidLayout):
+        (WebKit::WebFrameLoaderClient::dispatchDecidePolicyForResponse):
+        (WebKit::WebFrameLoaderClient::dispatchDecidePolicyForNewWindowAction):
+        (WebKit::WebFrameLoaderClient::dispatchDecidePolicyForNavigationAction):
+        (WebKit::WebFrameLoaderClient::dispatchUnableToImplementPolicy):
+        (WebKit::WebFrameLoaderClient::dispatchWillSubmitForm):
+        (WebKit::WebFrameLoaderClient::shouldGoToHistoryItem):
+        (WebKit::WebFrameLoaderClient::didDisplayInsecureContent):
+        (WebKit::WebFrameLoaderClient::didRunInsecureContent):
+        (WebKit::WebFrameLoaderClient::didDetectXSS):
+        * WebProcess/WebPage/WebContextMenu.cpp:
+        (WebKit::WebContextMenu::show):
+        * WebProcess/WebPage/mac/WebPageMac.mm:
+        (WebKit::WebPage::performActionMenuHitTestAtLocation):
+
</ins><span class="cx"> 2014-12-29  Sam Weinig  &lt;sam@webkit.org&gt;
</span><span class="cx"> 
</span><span class="cx">         Move Pasteboard code out of WebProcessPool and into its own singleton class
</span></span></pre></div>
<a id="trunkSourceWebKit2UIProcessWebPageProxycpp"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebKit2/UIProcess/WebPageProxy.cpp (177794 => 177795)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebKit2/UIProcess/WebPageProxy.cpp        2014-12-29 18:23:44 UTC (rev 177794)
+++ trunk/Source/WebKit2/UIProcess/WebPageProxy.cpp        2014-12-29 18:38:07 UTC (rev 177795)
</span><span class="lines">@@ -1016,15 +1016,10 @@
</span><span class="cx">     m_pageLoadState.setCanGoForward(transaction, m_backForwardList-&gt;forwardItem());
</span><span class="cx"> }
</span><span class="cx"> 
</span><del>-void WebPageProxy::willGoToBackForwardListItem(uint64_t itemID, IPC::MessageDecoder&amp; decoder)
</del><ins>+void WebPageProxy::willGoToBackForwardListItem(uint64_t itemID, const UserData&amp; userData)
</ins><span class="cx"> {
</span><del>-    RefPtr&lt;API::Object&gt; userData;
-    WebContextUserMessageDecoder messageDecoder(userData, process());
-    if (!decoder.decode(messageDecoder))
-        return;
-
</del><span class="cx">     if (WebBackForwardListItem* item = m_process-&gt;webBackForwardItem(itemID))
</span><del>-        m_loaderClient-&gt;willGoToBackForwardListItem(this, item, userData.get());
</del><ins>+        m_loaderClient-&gt;willGoToBackForwardListItem(this, item, m_process-&gt;transformHandlesToObjects(userData.object()).get());
</ins><span class="cx"> }
</span><span class="cx"> 
</span><span class="cx"> bool WebPageProxy::shouldKeepCurrentBackForwardListItemInList(WebBackForwardListItem* item)
</span><span class="lines">@@ -2574,17 +2569,12 @@
</span><span class="cx">     m_loaderClient-&gt;didDestroyNavigation(this, navigationID);
</span><span class="cx"> }
</span><span class="cx"> 
</span><del>-void WebPageProxy::didStartProvisionalLoadForFrame(uint64_t frameID, uint64_t navigationID, const String&amp; url, const String&amp; unreachableURL, IPC::MessageDecoder&amp; decoder)
</del><ins>+void WebPageProxy::didStartProvisionalLoadForFrame(uint64_t frameID, uint64_t navigationID, const String&amp; url, const String&amp; unreachableURL, const UserData&amp; userData)
</ins><span class="cx"> {
</span><span class="cx">     auto transaction = m_pageLoadState.transaction();
</span><span class="cx"> 
</span><span class="cx">     m_pageLoadState.clearPendingAPIRequestURL(transaction);
</span><span class="cx"> 
</span><del>-    RefPtr&lt;API::Object&gt; userData;
-    WebContextUserMessageDecoder messageDecoder(userData, process());
-    if (!decoder.decode(messageDecoder))
-        return;
-
</del><span class="cx">     WebFrameProxy* frame = m_process-&gt;webFrame(frameID);
</span><span class="cx">     MESSAGE_CHECK(frame);
</span><span class="cx">     MESSAGE_CHECK_URL(url);
</span><span class="lines">@@ -2596,16 +2586,11 @@
</span><span class="cx">     frame-&gt;didStartProvisionalLoad(url);
</span><span class="cx"> 
</span><span class="cx">     m_pageLoadState.commitChanges();
</span><del>-    m_loaderClient-&gt;didStartProvisionalLoadForFrame(this, frame, navigationID, userData.get());
</del><ins>+    m_loaderClient-&gt;didStartProvisionalLoadForFrame(this, frame, navigationID, m_process-&gt;transformHandlesToObjects(userData.object()).get());
</ins><span class="cx"> }
</span><span class="cx"> 
</span><del>-void WebPageProxy::didReceiveServerRedirectForProvisionalLoadForFrame(uint64_t frameID, uint64_t navigationID, const String&amp; url, IPC::MessageDecoder&amp; decoder)
</del><ins>+void WebPageProxy::didReceiveServerRedirectForProvisionalLoadForFrame(uint64_t frameID, uint64_t navigationID, const String&amp; url, const UserData&amp; userData)
</ins><span class="cx"> {
</span><del>-    RefPtr&lt;API::Object&gt; userData;
-    WebContextUserMessageDecoder messageDecoder(userData, process());
-    if (!decoder.decode(messageDecoder))
-        return;
-
</del><span class="cx">     WebFrameProxy* frame = m_process-&gt;webFrame(frameID);
</span><span class="cx">     MESSAGE_CHECK(frame);
</span><span class="cx">     MESSAGE_CHECK_URL(url);
</span><span class="lines">@@ -2618,16 +2603,11 @@
</span><span class="cx">     frame-&gt;didReceiveServerRedirectForProvisionalLoad(url);
</span><span class="cx"> 
</span><span class="cx">     m_pageLoadState.commitChanges();
</span><del>-    m_loaderClient-&gt;didReceiveServerRedirectForProvisionalLoadForFrame(this, frame, navigationID, userData.get());
</del><ins>+    m_loaderClient-&gt;didReceiveServerRedirectForProvisionalLoadForFrame(this, frame, navigationID, m_process-&gt;transformHandlesToObjects(userData.object()).get());
</ins><span class="cx"> }
</span><span class="cx"> 
</span><del>-void WebPageProxy::didFailProvisionalLoadForFrame(uint64_t frameID, uint64_t navigationID, const ResourceError&amp; error, IPC::MessageDecoder&amp; decoder)
</del><ins>+void WebPageProxy::didFailProvisionalLoadForFrame(uint64_t frameID, uint64_t navigationID, const ResourceError&amp; error, const UserData&amp; userData)
</ins><span class="cx"> {
</span><del>-    RefPtr&lt;API::Object&gt; userData;
-    WebContextUserMessageDecoder messageDecoder(userData, process());
-    if (!decoder.decode(messageDecoder))
-        return;
-
</del><span class="cx">     WebFrameProxy* frame = m_process-&gt;webFrame(frameID);
</span><span class="cx">     MESSAGE_CHECK(frame);
</span><span class="cx"> 
</span><span class="lines">@@ -2639,7 +2619,7 @@
</span><span class="cx">     frame-&gt;didFailProvisionalLoad();
</span><span class="cx"> 
</span><span class="cx">     m_pageLoadState.commitChanges();
</span><del>-    m_loaderClient-&gt;didFailProvisionalLoadWithErrorForFrame(this, frame, navigationID, error, userData.get());
</del><ins>+    m_loaderClient-&gt;didFailProvisionalLoadWithErrorForFrame(this, frame, navigationID, error, m_process-&gt;transformHandlesToObjects(userData.object()).get());
</ins><span class="cx"> }
</span><span class="cx"> 
</span><span class="cx"> void WebPageProxy::clearLoadDependentCallbacks()
</span><span class="lines">@@ -2655,13 +2635,8 @@
</span><span class="cx">     }
</span><span class="cx"> }
</span><span class="cx"> 
</span><del>-void WebPageProxy::didCommitLoadForFrame(uint64_t frameID, uint64_t navigationID, const String&amp; mimeType, bool frameHasCustomContentProvider, uint32_t opaqueFrameLoadType, const WebCore::CertificateInfo&amp; certificateInfo, IPC::MessageDecoder&amp; decoder)
</del><ins>+void WebPageProxy::didCommitLoadForFrame(uint64_t frameID, uint64_t navigationID, const String&amp; mimeType, bool frameHasCustomContentProvider, uint32_t opaqueFrameLoadType, const WebCore::CertificateInfo&amp; certificateInfo, const UserData&amp; userData)
</ins><span class="cx"> {
</span><del>-    RefPtr&lt;API::Object&gt; userData;
-    WebContextUserMessageDecoder messageDecoder(userData, process());
-    if (!decoder.decode(messageDecoder))
-        return;
-
</del><span class="cx">     WebFrameProxy* frame = m_process-&gt;webFrame(frameID);
</span><span class="cx">     MESSAGE_CHECK(frame);
</span><span class="cx"> 
</span><span class="lines">@@ -2712,29 +2687,19 @@
</span><span class="cx">         m_pageScaleFactor = 1;
</span><span class="cx"> 
</span><span class="cx">     m_pageLoadState.commitChanges();
</span><del>-    m_loaderClient-&gt;didCommitLoadForFrame(this, frame, navigationID, userData.get());
</del><ins>+    m_loaderClient-&gt;didCommitLoadForFrame(this, frame, navigationID, m_process-&gt;transformHandlesToObjects(userData.object()).get());
</ins><span class="cx"> }
</span><span class="cx"> 
</span><del>-void WebPageProxy::didFinishDocumentLoadForFrame(uint64_t frameID, uint64_t navigationID, IPC::MessageDecoder&amp; decoder)
</del><ins>+void WebPageProxy::didFinishDocumentLoadForFrame(uint64_t frameID, uint64_t navigationID, const UserData&amp; userData)
</ins><span class="cx"> {
</span><del>-    RefPtr&lt;API::Object&gt; userData;
-    WebContextUserMessageDecoder messageDecoder(userData, process());
-    if (!decoder.decode(messageDecoder))
-        return;
-
</del><span class="cx">     WebFrameProxy* frame = m_process-&gt;webFrame(frameID);
</span><span class="cx">     MESSAGE_CHECK(frame);
</span><span class="cx"> 
</span><del>-    m_loaderClient-&gt;didFinishDocumentLoadForFrame(this, frame, navigationID, userData.get());
</del><ins>+    m_loaderClient-&gt;didFinishDocumentLoadForFrame(this, frame, navigationID, m_process-&gt;transformHandlesToObjects(userData.object()).get());
</ins><span class="cx"> }
</span><span class="cx"> 
</span><del>-void WebPageProxy::didFinishLoadForFrame(uint64_t frameID, uint64_t navigationID, IPC::MessageDecoder&amp; decoder)
</del><ins>+void WebPageProxy::didFinishLoadForFrame(uint64_t frameID, uint64_t navigationID, const UserData&amp; userData)
</ins><span class="cx"> {
</span><del>-    RefPtr&lt;API::Object&gt; userData;
-    WebContextUserMessageDecoder messageDecoder(userData, process());
-    if (!decoder.decode(messageDecoder))
-        return;
-
</del><span class="cx">     WebFrameProxy* frame = m_process-&gt;webFrame(frameID);
</span><span class="cx">     MESSAGE_CHECK(frame);
</span><span class="cx"> 
</span><span class="lines">@@ -2747,19 +2712,14 @@
</span><span class="cx">     frame-&gt;didFinishLoad();
</span><span class="cx"> 
</span><span class="cx">     m_pageLoadState.commitChanges();
</span><del>-    m_loaderClient-&gt;didFinishLoadForFrame(this, frame, navigationID, userData.get());
</del><ins>+    m_loaderClient-&gt;didFinishLoadForFrame(this, frame, navigationID, m_process-&gt;transformHandlesToObjects(userData.object()).get());
</ins><span class="cx"> 
</span><span class="cx">     if (isMainFrame)
</span><span class="cx">         m_pageClient.didFinishLoadForMainFrame();
</span><span class="cx"> }
</span><span class="cx"> 
</span><del>-void WebPageProxy::didFailLoadForFrame(uint64_t frameID, uint64_t navigationID, const ResourceError&amp; error, IPC::MessageDecoder&amp; decoder)
</del><ins>+void WebPageProxy::didFailLoadForFrame(uint64_t frameID, uint64_t navigationID, const ResourceError&amp; error, const UserData&amp; userData)
</ins><span class="cx"> {
</span><del>-    RefPtr&lt;API::Object&gt; userData;
-    WebContextUserMessageDecoder messageDecoder(userData, process());
-    if (!decoder.decode(messageDecoder))
-        return;
-
</del><span class="cx">     WebFrameProxy* frame = m_process-&gt;webFrame(frameID);
</span><span class="cx">     MESSAGE_CHECK(frame);
</span><span class="cx"> 
</span><span class="lines">@@ -2773,16 +2733,11 @@
</span><span class="cx">     frame-&gt;didFailLoad();
</span><span class="cx"> 
</span><span class="cx">     m_pageLoadState.commitChanges();
</span><del>-    m_loaderClient-&gt;didFailLoadWithErrorForFrame(this, frame, navigationID, error, userData.get());
</del><ins>+    m_loaderClient-&gt;didFailLoadWithErrorForFrame(this, frame, navigationID, error, m_process-&gt;transformHandlesToObjects(userData.object()).get());
</ins><span class="cx"> }
</span><span class="cx"> 
</span><del>-void WebPageProxy::didSameDocumentNavigationForFrame(uint64_t frameID, uint64_t navigationID, uint32_t opaqueSameDocumentNavigationType, const String&amp; url, IPC::MessageDecoder&amp; decoder)
</del><ins>+void WebPageProxy::didSameDocumentNavigationForFrame(uint64_t frameID, uint64_t navigationID, uint32_t opaqueSameDocumentNavigationType, const String&amp; url, const UserData&amp; userData)
</ins><span class="cx"> {
</span><del>-    RefPtr&lt;API::Object&gt; userData;
-    WebContextUserMessageDecoder messageDecoder(userData, process());
-    if (!decoder.decode(messageDecoder))
-        return;
-
</del><span class="cx">     WebFrameProxy* frame = m_process-&gt;webFrame(frameID);
</span><span class="cx">     MESSAGE_CHECK(frame);
</span><span class="cx">     MESSAGE_CHECK_URL(url);
</span><span class="lines">@@ -2799,19 +2754,14 @@
</span><span class="cx">     m_pageLoadState.commitChanges();
</span><span class="cx"> 
</span><span class="cx">     SameDocumentNavigationType navigationType = static_cast&lt;SameDocumentNavigationType&gt;(opaqueSameDocumentNavigationType);
</span><del>-    m_loaderClient-&gt;didSameDocumentNavigationForFrame(this, frame, navigationID, navigationType, userData.get());
</del><ins>+    m_loaderClient-&gt;didSameDocumentNavigationForFrame(this, frame, navigationID, navigationType, m_process-&gt;transformHandlesToObjects(userData.object()).get());
</ins><span class="cx"> 
</span><span class="cx">     if (isMainFrame)
</span><span class="cx">         m_pageClient.didSameDocumentNavigationForMainFrame(navigationType);
</span><span class="cx"> }
</span><span class="cx"> 
</span><del>-void WebPageProxy::didReceiveTitleForFrame(uint64_t frameID, const String&amp; title, IPC::MessageDecoder&amp; decoder)
</del><ins>+void WebPageProxy::didReceiveTitleForFrame(uint64_t frameID, const String&amp; title, const UserData&amp; userData)
</ins><span class="cx"> {
</span><del>-    RefPtr&lt;API::Object&gt; userData;
-    WebContextUserMessageDecoder messageDecoder(userData, process());
-    if (!decoder.decode(messageDecoder))
-        return;
-
</del><span class="cx">     WebFrameProxy* frame = m_process-&gt;webFrame(frameID);
</span><span class="cx">     MESSAGE_CHECK(frame);
</span><span class="cx"> 
</span><span class="lines">@@ -2823,68 +2773,43 @@
</span><span class="cx">     frame-&gt;didChangeTitle(title);
</span><span class="cx">     
</span><span class="cx">     m_pageLoadState.commitChanges();
</span><del>-    m_loaderClient-&gt;didReceiveTitleForFrame(this, title, frame, userData.get());
</del><ins>+    m_loaderClient-&gt;didReceiveTitleForFrame(this, title, frame, m_process-&gt;transformHandlesToObjects(userData.object()).get());
</ins><span class="cx"> }
</span><span class="cx"> 
</span><del>-void WebPageProxy::didFirstLayoutForFrame(uint64_t frameID, IPC::MessageDecoder&amp; decoder)
</del><ins>+void WebPageProxy::didFirstLayoutForFrame(uint64_t frameID, const UserData&amp; userData)
</ins><span class="cx"> {
</span><del>-    RefPtr&lt;API::Object&gt; userData;
-    WebContextUserMessageDecoder messageDecoder(userData, process());
-    if (!decoder.decode(messageDecoder))
-        return;
-
</del><span class="cx">     WebFrameProxy* frame = m_process-&gt;webFrame(frameID);
</span><span class="cx">     MESSAGE_CHECK(frame);
</span><span class="cx"> 
</span><del>-    m_loaderClient-&gt;didFirstLayoutForFrame(this, frame, userData.get());
</del><ins>+    m_loaderClient-&gt;didFirstLayoutForFrame(this, frame, m_process-&gt;transformHandlesToObjects(userData.object()).get());
</ins><span class="cx"> }
</span><span class="cx"> 
</span><del>-void WebPageProxy::didFirstVisuallyNonEmptyLayoutForFrame(uint64_t frameID, IPC::MessageDecoder&amp; decoder)
</del><ins>+void WebPageProxy::didFirstVisuallyNonEmptyLayoutForFrame(uint64_t frameID, const UserData&amp; userData)
</ins><span class="cx"> {
</span><del>-    RefPtr&lt;API::Object&gt; userData;
-    WebContextUserMessageDecoder messageDecoder(userData, process());
-    if (!decoder.decode(messageDecoder))
-        return;
-
</del><span class="cx">     WebFrameProxy* frame = m_process-&gt;webFrame(frameID);
</span><span class="cx">     MESSAGE_CHECK(frame);
</span><span class="cx"> 
</span><del>-    m_loaderClient-&gt;didFirstVisuallyNonEmptyLayoutForFrame(this, frame, userData.get());
</del><ins>+    m_loaderClient-&gt;didFirstVisuallyNonEmptyLayoutForFrame(this, frame, m_process-&gt;transformHandlesToObjects(userData.object()).get());
</ins><span class="cx"> 
</span><span class="cx">     if (frame-&gt;isMainFrame())
</span><span class="cx">         m_pageClient.didFirstVisuallyNonEmptyLayoutForMainFrame();
</span><span class="cx"> }
</span><span class="cx"> 
</span><del>-void WebPageProxy::didLayout(uint32_t layoutMilestones, IPC::MessageDecoder&amp; decoder)
</del><ins>+void WebPageProxy::didLayout(uint32_t layoutMilestones, const UserData&amp; userData)
</ins><span class="cx"> {
</span><del>-    RefPtr&lt;API::Object&gt; userData;
-    WebContextUserMessageDecoder messageDecoder(userData, process());
-    if (!decoder.decode(messageDecoder))
-        return;
-
-    m_loaderClient-&gt;didLayout(this, static_cast&lt;LayoutMilestones&gt;(layoutMilestones), userData.get());
</del><ins>+    m_loaderClient-&gt;didLayout(this, static_cast&lt;LayoutMilestones&gt;(layoutMilestones), m_process-&gt;transformHandlesToObjects(userData.object()).get());
</ins><span class="cx"> }
</span><span class="cx"> 
</span><del>-void WebPageProxy::didRemoveFrameFromHierarchy(uint64_t frameID, IPC::MessageDecoder&amp; decoder)
</del><ins>+void WebPageProxy::didRemoveFrameFromHierarchy(uint64_t frameID, const UserData&amp; userData)
</ins><span class="cx"> {
</span><del>-    RefPtr&lt;API::Object&gt; userData;
-    WebContextUserMessageDecoder messageDecoder(userData, process());
-    if (!decoder.decode(messageDecoder))
-        return;
-
</del><span class="cx">     WebFrameProxy* frame = m_process-&gt;webFrame(frameID);
</span><span class="cx">     MESSAGE_CHECK(frame);
</span><span class="cx"> 
</span><del>-    m_loaderClient-&gt;didRemoveFrameFromHierarchy(this, frame, userData.get());
</del><ins>+    m_loaderClient-&gt;didRemoveFrameFromHierarchy(this, frame, m_process-&gt;transformHandlesToObjects(userData.object()).get());
</ins><span class="cx"> }
</span><span class="cx"> 
</span><del>-void WebPageProxy::didDisplayInsecureContentForFrame(uint64_t frameID, IPC::MessageDecoder&amp; decoder)
</del><ins>+void WebPageProxy::didDisplayInsecureContentForFrame(uint64_t frameID, const UserData&amp; userData)
</ins><span class="cx"> {
</span><del>-    RefPtr&lt;API::Object&gt; userData;
-    WebContextUserMessageDecoder messageDecoder(userData, process());
-    if (!decoder.decode(messageDecoder))
-        return;
-
</del><span class="cx">     WebFrameProxy* frame = m_process-&gt;webFrame(frameID);
</span><span class="cx">     MESSAGE_CHECK(frame);
</span><span class="cx"> 
</span><span class="lines">@@ -2892,16 +2817,11 @@
</span><span class="cx">     m_pageLoadState.didDisplayOrRunInsecureContent(transaction);
</span><span class="cx"> 
</span><span class="cx">     m_pageLoadState.commitChanges();
</span><del>-    m_loaderClient-&gt;didDisplayInsecureContentForFrame(this, frame, userData.get());
</del><ins>+    m_loaderClient-&gt;didDisplayInsecureContentForFrame(this, frame, m_process-&gt;transformHandlesToObjects(userData.object()).get());
</ins><span class="cx"> }
</span><span class="cx"> 
</span><del>-void WebPageProxy::didRunInsecureContentForFrame(uint64_t frameID, IPC::MessageDecoder&amp; decoder)
</del><ins>+void WebPageProxy::didRunInsecureContentForFrame(uint64_t frameID, const UserData&amp; userData)
</ins><span class="cx"> {
</span><del>-    RefPtr&lt;API::Object&gt; userData;
-    WebContextUserMessageDecoder messageDecoder(userData, process());
-    if (!decoder.decode(messageDecoder))
-        return;
-
</del><span class="cx">     WebFrameProxy* frame = m_process-&gt;webFrame(frameID);
</span><span class="cx">     MESSAGE_CHECK(frame);
</span><span class="cx"> 
</span><span class="lines">@@ -2909,20 +2829,15 @@
</span><span class="cx">     m_pageLoadState.didDisplayOrRunInsecureContent(transaction);
</span><span class="cx"> 
</span><span class="cx">     m_pageLoadState.commitChanges();
</span><del>-    m_loaderClient-&gt;didRunInsecureContentForFrame(this, frame, userData.get());
</del><ins>+    m_loaderClient-&gt;didRunInsecureContentForFrame(this, frame, m_process-&gt;transformHandlesToObjects(userData.object()).get());
</ins><span class="cx"> }
</span><span class="cx"> 
</span><del>-void WebPageProxy::didDetectXSSForFrame(uint64_t frameID, IPC::MessageDecoder&amp; decoder)
</del><ins>+void WebPageProxy::didDetectXSSForFrame(uint64_t frameID, const UserData&amp; userData)
</ins><span class="cx"> {
</span><del>-    RefPtr&lt;API::Object&gt; userData;
-    WebContextUserMessageDecoder messageDecoder(userData, process());
-    if (!decoder.decode(messageDecoder))
-        return;
-
</del><span class="cx">     WebFrameProxy* frame = m_process-&gt;webFrame(frameID);
</span><span class="cx">     MESSAGE_CHECK(frame);
</span><span class="cx"> 
</span><del>-    m_loaderClient-&gt;didDetectXSSForFrame(this, frame, userData.get());
</del><ins>+    m_loaderClient-&gt;didDetectXSSForFrame(this, frame, m_process-&gt;transformHandlesToObjects(userData.object()).get());
</ins><span class="cx"> }
</span><span class="cx"> 
</span><span class="cx"> void WebPageProxy::frameDidBecomeFrameSet(uint64_t frameID, bool value)
</span><span class="lines">@@ -2935,13 +2850,8 @@
</span><span class="cx">         m_frameSetLargestFrame = value ? m_mainFrame : 0;
</span><span class="cx"> }
</span><span class="cx"> 
</span><del>-void WebPageProxy::decidePolicyForNavigationAction(uint64_t frameID, uint64_t navigationID, const NavigationActionData&amp; navigationActionData, uint64_t originatingFrameID, const WebCore::ResourceRequest&amp; originalRequest, const ResourceRequest&amp; request, uint64_t listenerID, IPC::MessageDecoder&amp; decoder, bool&amp; receivedPolicyAction, uint64_t&amp; newNavigationID, uint64_t&amp; policyAction, uint64_t&amp; downloadID)
</del><ins>+void WebPageProxy::decidePolicyForNavigationAction(uint64_t frameID, uint64_t navigationID, const NavigationActionData&amp; navigationActionData, uint64_t originatingFrameID, const WebCore::ResourceRequest&amp; originalRequest, const ResourceRequest&amp; request, uint64_t listenerID, const UserData&amp; userData, bool&amp; receivedPolicyAction, uint64_t&amp; newNavigationID, uint64_t&amp; policyAction, uint64_t&amp; downloadID)
</ins><span class="cx"> {
</span><del>-    RefPtr&lt;API::Object&gt; userData;
-    WebContextUserMessageDecoder messageDecoder(userData, process());
-    if (!decoder.decode(messageDecoder))
-        return;
-
</del><span class="cx">     auto transaction = m_pageLoadState.transaction();
</span><span class="cx"> 
</span><span class="cx">     if (request.url() != m_pageLoadState.pendingAPIRequestURL())
</span><span class="lines">@@ -2973,7 +2883,7 @@
</span><span class="cx">     m_inDecidePolicyForNavigationAction = true;
</span><span class="cx">     m_syncNavigationActionPolicyActionIsValid = false;
</span><span class="cx"> 
</span><del>-    m_policyClient-&gt;decidePolicyForNavigationAction(this, frame, navigationActionData, originatingFrame, originalRequest, request, WTF::move(listener), userData.get());
</del><ins>+    m_policyClient-&gt;decidePolicyForNavigationAction(this, frame, navigationActionData, originatingFrame, originalRequest, request, WTF::move(listener), m_process-&gt;transformHandlesToObjects(userData.object()).get());
</ins><span class="cx"> 
</span><span class="cx">     m_inDecidePolicyForNavigationAction = false;
</span><span class="cx"> 
</span><span class="lines">@@ -2985,29 +2895,19 @@
</span><span class="cx">     }
</span><span class="cx"> }
</span><span class="cx"> 
</span><del>-void WebPageProxy::decidePolicyForNewWindowAction(uint64_t frameID, const NavigationActionData&amp; navigationActionData, const ResourceRequest&amp; request, const String&amp; frameName, uint64_t listenerID, IPC::MessageDecoder&amp; decoder)
</del><ins>+void WebPageProxy::decidePolicyForNewWindowAction(uint64_t frameID, const NavigationActionData&amp; navigationActionData, const ResourceRequest&amp; request, const String&amp; frameName, uint64_t listenerID, const UserData&amp; userData)
</ins><span class="cx"> {
</span><del>-    RefPtr&lt;API::Object&gt; userData;
-    WebContextUserMessageDecoder messageDecoder(userData, process());
-    if (!decoder.decode(messageDecoder))
-        return;
-
</del><span class="cx">     WebFrameProxy* frame = m_process-&gt;webFrame(frameID);
</span><span class="cx">     MESSAGE_CHECK(frame);
</span><span class="cx">     MESSAGE_CHECK_URL(request.url());
</span><span class="cx"> 
</span><span class="cx">     RefPtr&lt;WebFramePolicyListenerProxy&gt; listener = frame-&gt;setUpPolicyListenerProxy(listenerID);
</span><span class="cx"> 
</span><del>-    m_policyClient-&gt;decidePolicyForNewWindowAction(this, frame, navigationActionData, request, frameName, WTF::move(listener), userData.get());
</del><ins>+    m_policyClient-&gt;decidePolicyForNewWindowAction(this, frame, navigationActionData, request, frameName, WTF::move(listener), m_process-&gt;transformHandlesToObjects(userData.object()).get());
</ins><span class="cx"> }
</span><span class="cx"> 
</span><del>-void WebPageProxy::decidePolicyForResponse(uint64_t frameID, const ResourceResponse&amp; response, const ResourceRequest&amp; request, bool canShowMIMEType, uint64_t listenerID, IPC::MessageDecoder&amp; decoder)
</del><ins>+void WebPageProxy::decidePolicyForResponse(uint64_t frameID, const ResourceResponse&amp; response, const ResourceRequest&amp; request, bool canShowMIMEType, uint64_t listenerID, const UserData&amp; userData)
</ins><span class="cx"> {
</span><del>-    RefPtr&lt;API::Object&gt; userData;
-    WebContextUserMessageDecoder messageDecoder(userData, process());
-    if (!decoder.decode(messageDecoder))
-        return;
-
</del><span class="cx">     WebFrameProxy* frame = m_process-&gt;webFrame(frameID);
</span><span class="cx">     MESSAGE_CHECK(frame);
</span><span class="cx">     MESSAGE_CHECK_URL(request.url());
</span><span class="lines">@@ -3015,10 +2915,10 @@
</span><span class="cx"> 
</span><span class="cx">     RefPtr&lt;WebFramePolicyListenerProxy&gt; listener = frame-&gt;setUpPolicyListenerProxy(listenerID);
</span><span class="cx"> 
</span><del>-    m_policyClient-&gt;decidePolicyForResponse(this, frame, response, request, canShowMIMEType, WTF::move(listener), userData.get());
</del><ins>+    m_policyClient-&gt;decidePolicyForResponse(this, frame, response, request, canShowMIMEType, WTF::move(listener), m_process-&gt;transformHandlesToObjects(userData.object()).get());
</ins><span class="cx"> }
</span><span class="cx"> 
</span><del>-void WebPageProxy::decidePolicyForResponseSync(uint64_t frameID, const ResourceResponse&amp; response, const ResourceRequest&amp; request, bool canShowMIMEType, uint64_t listenerID, IPC::MessageDecoder&amp; decoder, bool&amp; receivedPolicyAction, uint64_t&amp; policyAction, uint64_t&amp; downloadID)
</del><ins>+void WebPageProxy::decidePolicyForResponseSync(uint64_t frameID, const ResourceResponse&amp; response, const ResourceRequest&amp; request, bool canShowMIMEType, uint64_t listenerID, const UserData&amp; userData, bool&amp; receivedPolicyAction, uint64_t&amp; policyAction, uint64_t&amp; downloadID)
</ins><span class="cx"> {
</span><span class="cx">     ASSERT(!m_inDecidePolicyForResponseSync);
</span><span class="cx"> 
</span><span class="lines">@@ -3026,7 +2926,7 @@
</span><span class="cx">     m_decidePolicyForResponseRequest = &amp;request;
</span><span class="cx">     m_syncMimeTypePolicyActionIsValid = false;
</span><span class="cx"> 
</span><del>-    decidePolicyForResponse(frameID, response, request, canShowMIMEType, listenerID, decoder);
</del><ins>+    decidePolicyForResponse(frameID, response, request, canShowMIMEType, listenerID, userData);
</ins><span class="cx"> 
</span><span class="cx">     m_inDecidePolicyForResponseSync = false;
</span><span class="cx">     m_decidePolicyForResponseRequest = 0;
</span><span class="lines">@@ -3039,28 +2939,18 @@
</span><span class="cx">     }
</span><span class="cx"> }
</span><span class="cx"> 
</span><del>-void WebPageProxy::unableToImplementPolicy(uint64_t frameID, const ResourceError&amp; error, IPC::MessageDecoder&amp; decoder)
</del><ins>+void WebPageProxy::unableToImplementPolicy(uint64_t frameID, const ResourceError&amp; error, const UserData&amp; userData)
</ins><span class="cx"> {
</span><del>-    RefPtr&lt;API::Object&gt; userData;
-    WebContextUserMessageDecoder messageDecoder(userData, process());
-    if (!decoder.decode(messageDecoder))
-        return;
-    
</del><span class="cx">     WebFrameProxy* frame = m_process-&gt;webFrame(frameID);
</span><span class="cx">     MESSAGE_CHECK(frame);
</span><span class="cx"> 
</span><del>-    m_policyClient-&gt;unableToImplementPolicy(this, frame, error, userData.get());
</del><ins>+    m_policyClient-&gt;unableToImplementPolicy(this, frame, error, m_process-&gt;transformHandlesToObjects(userData.object()).get());
</ins><span class="cx"> }
</span><span class="cx"> 
</span><span class="cx"> // FormClient
</span><span class="cx"> 
</span><del>-void WebPageProxy::willSubmitForm(uint64_t frameID, uint64_t sourceFrameID, const Vector&lt;std::pair&lt;String, String&gt;&gt;&amp; textFieldValues, uint64_t listenerID, IPC::MessageDecoder&amp; decoder)
</del><ins>+void WebPageProxy::willSubmitForm(uint64_t frameID, uint64_t sourceFrameID, const Vector&lt;std::pair&lt;String, String&gt;&gt;&amp; textFieldValues, uint64_t listenerID, const UserData&amp; userData)
</ins><span class="cx"> {
</span><del>-    RefPtr&lt;API::Object&gt; userData;
-    WebContextUserMessageDecoder messageDecoder(userData, process());
-    if (!decoder.decode(messageDecoder))
-        return;
-
</del><span class="cx">     WebFrameProxy* frame = m_process-&gt;webFrame(frameID);
</span><span class="cx">     MESSAGE_CHECK(frame);
</span><span class="cx"> 
</span><span class="lines">@@ -3068,7 +2958,7 @@
</span><span class="cx">     MESSAGE_CHECK(sourceFrame);
</span><span class="cx"> 
</span><span class="cx">     RefPtr&lt;WebFormSubmissionListenerProxy&gt; listener = frame-&gt;setUpFormSubmissionListenerProxy(listenerID);
</span><del>-    if (!m_formClient-&gt;willSubmitForm(this, frame, sourceFrame, textFieldValues, userData.get(), listener.get()))
</del><ins>+    if (!m_formClient-&gt;willSubmitForm(this, frame, sourceFrame, textFieldValues, m_process-&gt;transformHandlesToObjects(userData.object()).get(), listener.get()))
</ins><span class="cx">         listener-&gt;continueSubmission();
</span><span class="cx"> }
</span><span class="cx"> 
</span><span class="lines">@@ -3219,48 +3109,28 @@
</span><span class="cx">     m_uiClient-&gt;setStatusText(this, text);
</span><span class="cx"> }
</span><span class="cx"> 
</span><del>-void WebPageProxy::mouseDidMoveOverElement(const WebHitTestResult::Data&amp; hitTestResultData, uint32_t opaqueModifiers, IPC::MessageDecoder&amp; decoder)
</del><ins>+void WebPageProxy::mouseDidMoveOverElement(const WebHitTestResult::Data&amp; hitTestResultData, uint32_t opaqueModifiers, const UserData&amp; userData)
</ins><span class="cx"> {
</span><del>-    RefPtr&lt;API::Object&gt; userData;
-    WebContextUserMessageDecoder messageDecoder(userData, process());
-    if (!decoder.decode(messageDecoder))
-        return;
-
</del><span class="cx">     m_lastMouseMoveHitTestResult = WebHitTestResult::create(hitTestResultData);
</span><span class="cx"> 
</span><span class="cx">     WebEvent::Modifiers modifiers = static_cast&lt;WebEvent::Modifiers&gt;(opaqueModifiers);
</span><span class="cx"> 
</span><del>-    m_uiClient-&gt;mouseDidMoveOverElement(this, hitTestResultData, modifiers, userData.get());
</del><ins>+    m_uiClient-&gt;mouseDidMoveOverElement(this, hitTestResultData, modifiers, m_process-&gt;transformHandlesToObjects(userData.object()).get());
</ins><span class="cx"> }
</span><span class="cx"> 
</span><del>-void WebPageProxy::didBeginTrackingPotentialLongMousePress(const IntPoint&amp; mouseDownPosition, const WebHitTestResult::Data&amp; hitTestResultData, IPC::MessageDecoder&amp; decoder)
</del><ins>+void WebPageProxy::didBeginTrackingPotentialLongMousePress(const IntPoint&amp; mouseDownPosition, const WebHitTestResult::Data&amp; hitTestResultData, const UserData&amp; userData)
</ins><span class="cx"> {
</span><del>-    RefPtr&lt;API::Object&gt; userData;
-    WebContextUserMessageDecoder messageDecoder(userData, process());
-    if (!decoder.decode(messageDecoder))
-        return;
-
-    m_uiClient-&gt;didBeginTrackingPotentialLongMousePress(this, mouseDownPosition, hitTestResultData, userData.get());
</del><ins>+    m_uiClient-&gt;didBeginTrackingPotentialLongMousePress(this, mouseDownPosition, hitTestResultData, m_process-&gt;transformHandlesToObjects(userData.object()).get());
</ins><span class="cx"> }
</span><span class="cx"> 
</span><del>-void WebPageProxy::didRecognizeLongMousePress(IPC::MessageDecoder&amp; decoder)
</del><ins>+void WebPageProxy::didRecognizeLongMousePress(const UserData&amp; userData)
</ins><span class="cx"> {
</span><del>-    RefPtr&lt;API::Object&gt; userData;
-    WebContextUserMessageDecoder messageDecoder(userData, process());
-    if (!decoder.decode(messageDecoder))
-        return;
-
-    m_uiClient-&gt;didRecognizeLongMousePress(this, userData.get());
</del><ins>+    m_uiClient-&gt;didRecognizeLongMousePress(this, m_process-&gt;transformHandlesToObjects(userData.object()).get());
</ins><span class="cx"> }
</span><span class="cx"> 
</span><del>-void WebPageProxy::didCancelTrackingPotentialLongMousePress(IPC::MessageDecoder&amp; decoder)
</del><ins>+void WebPageProxy::didCancelTrackingPotentialLongMousePress(const UserData&amp; userData)
</ins><span class="cx"> {
</span><del>-    RefPtr&lt;API::Object&gt; userData;
-    WebContextUserMessageDecoder messageDecoder(userData, process());
-    if (!decoder.decode(messageDecoder))
-        return;
-
-    m_uiClient-&gt;didCancelTrackingPotentialLongMousePress(this, userData.get());
</del><ins>+    m_uiClient-&gt;didCancelTrackingPotentialLongMousePress(this, m_process-&gt;transformHandlesToObjects(userData.object()).get());
</ins><span class="cx"> }
</span><span class="cx"> 
</span><span class="cx"> void WebPageProxy::connectionWillOpen(IPC::Connection* connection)
</span><span class="lines">@@ -3879,21 +3749,16 @@
</span><span class="cx"> }
</span><span class="cx"> 
</span><span class="cx"> #if ENABLE(CONTEXT_MENUS)
</span><del>-void WebPageProxy::showContextMenu(const IntPoint&amp; menuLocation, const ContextMenuContextData&amp; contextMenuContextData, const Vector&lt;WebContextMenuItemData&gt;&amp; proposedItems, IPC::MessageDecoder&amp; decoder)
</del><ins>+void WebPageProxy::showContextMenu(const IntPoint&amp; menuLocation, const ContextMenuContextData&amp; contextMenuContextData, const Vector&lt;WebContextMenuItemData&gt;&amp; proposedItems, const UserData&amp; userData)
</ins><span class="cx"> {
</span><del>-    internalShowContextMenu(menuLocation, contextMenuContextData, proposedItems, ContextMenuClientEligibility::EligibleForClient, &amp;decoder);
</del><ins>+    internalShowContextMenu(menuLocation, contextMenuContextData, proposedItems, ContextMenuClientEligibility::EligibleForClient, userData);
</ins><span class="cx">     
</span><span class="cx">     // No matter the result of internalShowContextMenu, always notify the WebProcess that the menu is hidden so it starts handling mouse events again.
</span><span class="cx">     m_process-&gt;send(Messages::WebPage::ContextMenuHidden(), m_pageID);
</span><span class="cx"> }
</span><span class="cx"> 
</span><del>-void WebPageProxy::internalShowContextMenu(const IntPoint&amp; menuLocation, const ContextMenuContextData&amp; contextMenuContextData, const Vector&lt;WebContextMenuItemData&gt;&amp; proposedItems, ContextMenuClientEligibility clientEligibility, IPC::MessageDecoder* decoder)
</del><ins>+void WebPageProxy::internalShowContextMenu(const IntPoint&amp; menuLocation, const ContextMenuContextData&amp; contextMenuContextData, const Vector&lt;WebContextMenuItemData&gt;&amp; proposedItems, ContextMenuClientEligibility clientEligibility, const UserData&amp; userData)
</ins><span class="cx"> {
</span><del>-    RefPtr&lt;API::Object&gt; userData;
-    WebContextUserMessageDecoder messageDecoder(userData, process());
-    if (decoder &amp;&amp; !decoder-&gt;decode(messageDecoder))
-        return;
-
</del><span class="cx">     m_activeContextMenuContextData = contextMenuContextData;
</span><span class="cx"> 
</span><span class="cx">     if (!m_contextMenuClient.hideContextMenu(this) &amp;&amp; m_activeContextMenu) {
</span><span class="lines">@@ -3917,7 +3782,7 @@
</span><span class="cx">         askClientToChangeMenu = false;
</span><span class="cx"> #endif
</span><span class="cx"> 
</span><del>-    if (askClientToChangeMenu &amp;&amp; m_contextMenuClient.getContextMenuFromProposedMenu(this, proposedItems, items, contextMenuContextData.webHitTestResultData(), userData.get()))
</del><ins>+    if (askClientToChangeMenu &amp;&amp; m_contextMenuClient.getContextMenuFromProposedMenu(this, proposedItems, items, contextMenuContextData.webHitTestResultData(), m_process-&gt;transformHandlesToObjects(userData.object()).get()))
</ins><span class="cx">         useProposedItems = false;
</span><span class="cx"> 
</span><span class="cx">     const Vector&lt;WebContextMenuItemData&gt;&amp; itemsToShow = useProposedItems ? proposedItems : items;
</span><span class="lines">@@ -5426,14 +5291,9 @@
</span><span class="cx">     m_process-&gt;send(Messages::WebPage::FocusAndSelectLastActionMenuHitTestResult(), m_pageID);
</span><span class="cx"> }
</span><span class="cx"> 
</span><del>-void WebPageProxy::didPerformActionMenuHitTest(const ActionMenuHitTestResult&amp; result, bool forImmediateAction, IPC::MessageDecoder&amp; decoder)
</del><ins>+void WebPageProxy::didPerformActionMenuHitTest(const ActionMenuHitTestResult&amp; result, bool forImmediateAction, const UserData&amp; userData)
</ins><span class="cx"> {
</span><del>-    RefPtr&lt;API::Object&gt; userData;
-    WebContextUserMessageDecoder messageDecoder(userData, process());
-    if (!decoder.decode(messageDecoder))
-        return;
-
-    m_pageClient.didPerformActionMenuHitTest(result, forImmediateAction, userData.get());
</del><ins>+    m_pageClient.didPerformActionMenuHitTest(result, forImmediateAction, m_process-&gt;transformHandlesToObjects(userData.object()).get());
</ins><span class="cx"> }
</span><span class="cx"> 
</span><span class="cx"> void WebPageProxy::installViewStateChangeCompletionHandler(void (^completionHandler)())
</span></span></pre></div>
<a id="trunkSourceWebKit2UIProcessWebPageProxyh"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebKit2/UIProcess/WebPageProxy.h (177794 => 177795)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebKit2/UIProcess/WebPageProxy.h        2014-12-29 18:23:44 UTC (rev 177794)
+++ trunk/Source/WebKit2/UIProcess/WebPageProxy.h        2014-12-29 18:38:07 UTC (rev 177795)
</span><span class="lines">@@ -157,6 +157,7 @@
</span><span class="cx"> class RemoteLayerTreeTransaction;
</span><span class="cx"> class RemoteScrollingCoordinatorProxy;
</span><span class="cx"> class StringPairVector;
</span><ins>+class UserData;
</ins><span class="cx"> class ViewSnapshot;
</span><span class="cx"> class VisitedLinkProvider;
</span><span class="cx"> class WebBackForwardList;
</span><span class="lines">@@ -333,7 +334,7 @@
</span><span class="cx">     uint64_t goToBackForwardItem(WebBackForwardListItem*);
</span><span class="cx">     void tryRestoreScrollPosition();
</span><span class="cx">     void didChangeBackForwardList(WebBackForwardListItem* addedItem, Vector&lt;RefPtr&lt;WebBackForwardListItem&gt;&gt; removed);
</span><del>-    void willGoToBackForwardListItem(uint64_t itemID, IPC::MessageDecoder&amp;);
</del><ins>+    void willGoToBackForwardListItem(uint64_t itemID, const UserData&amp;);
</ins><span class="cx"> 
</span><span class="cx">     bool shouldKeepCurrentBackForwardListItemInList(WebBackForwardListItem*);
</span><span class="cx"> 
</span><span class="lines">@@ -996,22 +997,22 @@
</span><span class="cx">     void didCreateMainFrame(uint64_t frameID);
</span><span class="cx">     void didCreateSubframe(uint64_t frameID);
</span><span class="cx"> 
</span><del>-    void didStartProvisionalLoadForFrame(uint64_t frameID, uint64_t navigationID, const String&amp; url, const String&amp; unreachableURL, IPC::MessageDecoder&amp;);
-    void didReceiveServerRedirectForProvisionalLoadForFrame(uint64_t frameID, uint64_t navigationID, const String&amp;, IPC::MessageDecoder&amp;);
-    void didFailProvisionalLoadForFrame(uint64_t frameID, uint64_t navigationID, const WebCore::ResourceError&amp;, IPC::MessageDecoder&amp;);
-    void didCommitLoadForFrame(uint64_t frameID, uint64_t navigationID, const String&amp; mimeType, bool frameHasCustomContentProvider, uint32_t frameLoadType, const WebCore::CertificateInfo&amp;, IPC::MessageDecoder&amp;);
-    void didFinishDocumentLoadForFrame(uint64_t frameID, uint64_t navigationID, IPC::MessageDecoder&amp;);
-    void didFinishLoadForFrame(uint64_t frameID, uint64_t navigationID, IPC::MessageDecoder&amp;);
-    void didFailLoadForFrame(uint64_t frameID, uint64_t navigationID, const WebCore::ResourceError&amp;, IPC::MessageDecoder&amp;);
-    void didSameDocumentNavigationForFrame(uint64_t frameID, uint64_t navigationID, uint32_t sameDocumentNavigationType, const String&amp;, IPC::MessageDecoder&amp;);
-    void didReceiveTitleForFrame(uint64_t frameID, const String&amp;, IPC::MessageDecoder&amp;);
-    void didFirstLayoutForFrame(uint64_t frameID, IPC::MessageDecoder&amp;);
-    void didFirstVisuallyNonEmptyLayoutForFrame(uint64_t frameID, IPC::MessageDecoder&amp;);
-    void didLayout(uint32_t layoutMilestones, IPC::MessageDecoder&amp;);
-    void didRemoveFrameFromHierarchy(uint64_t frameID, IPC::MessageDecoder&amp;);
-    void didDisplayInsecureContentForFrame(uint64_t frameID, IPC::MessageDecoder&amp;);
-    void didRunInsecureContentForFrame(uint64_t frameID, IPC::MessageDecoder&amp;);
-    void didDetectXSSForFrame(uint64_t frameID, IPC::MessageDecoder&amp;);
</del><ins>+    void didStartProvisionalLoadForFrame(uint64_t frameID, uint64_t navigationID, const String&amp; url, const String&amp; unreachableURL, const UserData&amp;);
+    void didReceiveServerRedirectForProvisionalLoadForFrame(uint64_t frameID, uint64_t navigationID, const String&amp;, const UserData&amp;);
+    void didFailProvisionalLoadForFrame(uint64_t frameID, uint64_t navigationID, const WebCore::ResourceError&amp;, const UserData&amp;);
+    void didCommitLoadForFrame(uint64_t frameID, uint64_t navigationID, const String&amp; mimeType, bool frameHasCustomContentProvider, uint32_t frameLoadType, const WebCore::CertificateInfo&amp;, const UserData&amp;);
+    void didFinishDocumentLoadForFrame(uint64_t frameID, uint64_t navigationID, const UserData&amp;);
+    void didFinishLoadForFrame(uint64_t frameID, uint64_t navigationID, const UserData&amp;);
+    void didFailLoadForFrame(uint64_t frameID, uint64_t navigationID, const WebCore::ResourceError&amp;, const UserData&amp;);
+    void didSameDocumentNavigationForFrame(uint64_t frameID, uint64_t navigationID, uint32_t sameDocumentNavigationType, const String&amp;, const UserData&amp;);
+    void didReceiveTitleForFrame(uint64_t frameID, const String&amp;, const UserData&amp;);
+    void didFirstLayoutForFrame(uint64_t frameID, const UserData&amp;);
+    void didFirstVisuallyNonEmptyLayoutForFrame(uint64_t frameID, const UserData&amp;);
+    void didLayout(uint32_t layoutMilestones, const UserData&amp;);
+    void didRemoveFrameFromHierarchy(uint64_t frameID, const UserData&amp;);
+    void didDisplayInsecureContentForFrame(uint64_t frameID, const UserData&amp;);
+    void didRunInsecureContentForFrame(uint64_t frameID, const UserData&amp;);
+    void didDetectXSSForFrame(uint64_t frameID, const UserData&amp;);
</ins><span class="cx">     void frameDidBecomeFrameSet(uint64_t frameID, bool);
</span><span class="cx">     void didStartProgress();
</span><span class="cx">     void didChangeProgress(double);
</span><span class="lines">@@ -1020,13 +1021,13 @@
</span><span class="cx"> 
</span><span class="cx">     void didDestroyNavigation(uint64_t navigationID);
</span><span class="cx"> 
</span><del>-    void decidePolicyForNavigationAction(uint64_t frameID, uint64_t navigationID, const NavigationActionData&amp;, uint64_t originatingFrameID, const WebCore::ResourceRequest&amp; originalRequest, const WebCore::ResourceRequest&amp;, uint64_t listenerID, IPC::MessageDecoder&amp;, bool&amp; receivedPolicyAction, uint64_t&amp; newNavigationID, uint64_t&amp; policyAction, uint64_t&amp; downloadID);
-    void decidePolicyForNewWindowAction(uint64_t frameID, const NavigationActionData&amp;, const WebCore::ResourceRequest&amp;, const String&amp; frameName, uint64_t listenerID, IPC::MessageDecoder&amp;);
-    void decidePolicyForResponse(uint64_t frameID, const WebCore::ResourceResponse&amp;, const WebCore::ResourceRequest&amp;, bool canShowMIMEType, uint64_t listenerID, IPC::MessageDecoder&amp;);
-    void decidePolicyForResponseSync(uint64_t frameID, const WebCore::ResourceResponse&amp;, const WebCore::ResourceRequest&amp;, bool canShowMIMEType, uint64_t listenerID, IPC::MessageDecoder&amp;, bool&amp; receivedPolicyAction, uint64_t&amp; policyAction, uint64_t&amp; downloadID);
-    void unableToImplementPolicy(uint64_t frameID, const WebCore::ResourceError&amp;, IPC::MessageDecoder&amp;);
</del><ins>+    void decidePolicyForNavigationAction(uint64_t frameID, uint64_t navigationID, const NavigationActionData&amp;, uint64_t originatingFrameID, const WebCore::ResourceRequest&amp; originalRequest, const WebCore::ResourceRequest&amp;, uint64_t listenerID, const UserData&amp;, bool&amp; receivedPolicyAction, uint64_t&amp; newNavigationID, uint64_t&amp; policyAction, uint64_t&amp; downloadID);
+    void decidePolicyForNewWindowAction(uint64_t frameID, const NavigationActionData&amp;, const WebCore::ResourceRequest&amp;, const String&amp; frameName, uint64_t listenerID, const UserData&amp;);
+    void decidePolicyForResponse(uint64_t frameID, const WebCore::ResourceResponse&amp;, const WebCore::ResourceRequest&amp;, bool canShowMIMEType, uint64_t listenerID, const UserData&amp;);
+    void decidePolicyForResponseSync(uint64_t frameID, const WebCore::ResourceResponse&amp;, const WebCore::ResourceRequest&amp;, bool canShowMIMEType, uint64_t listenerID, const UserData&amp;, bool&amp; receivedPolicyAction, uint64_t&amp; policyAction, uint64_t&amp; downloadID);
+    void unableToImplementPolicy(uint64_t frameID, const WebCore::ResourceError&amp;, const UserData&amp;);
</ins><span class="cx"> 
</span><del>-    void willSubmitForm(uint64_t frameID, uint64_t sourceFrameID, const Vector&lt;std::pair&lt;String, String&gt;&gt;&amp; textFieldValues, uint64_t listenerID, IPC::MessageDecoder&amp;);
</del><ins>+    void willSubmitForm(uint64_t frameID, uint64_t sourceFrameID, const Vector&lt;std::pair&lt;String, String&gt;&gt;&amp; textFieldValues, uint64_t listenerID, const UserData&amp;);
</ins><span class="cx"> 
</span><span class="cx">     // History client
</span><span class="cx">     void didNavigateWithNavigationData(const WebNavigationDataStore&amp;, uint64_t frameID);
</span><span class="lines">@@ -1043,11 +1044,11 @@
</span><span class="cx">     void runJavaScriptPrompt(uint64_t frameID, const String&amp;, const String&amp;, RefPtr&lt;Messages::WebPageProxy::RunJavaScriptPrompt::DelayedReply&gt;);
</span><span class="cx">     void shouldInterruptJavaScript(bool&amp; result);
</span><span class="cx">     void setStatusText(const String&amp;);
</span><del>-    void mouseDidMoveOverElement(const WebHitTestResult::Data&amp; hitTestResultData, uint32_t modifiers, IPC::MessageDecoder&amp;);
</del><ins>+    void mouseDidMoveOverElement(const WebHitTestResult::Data&amp; hitTestResultData, uint32_t modifiers, const UserData&amp;);
</ins><span class="cx"> 
</span><del>-    void didBeginTrackingPotentialLongMousePress(const WebCore::IntPoint&amp; mouseDownPosition, const WebHitTestResult::Data&amp; hitTestResultData, IPC::MessageDecoder&amp;);
-    void didRecognizeLongMousePress(IPC::MessageDecoder&amp;);
-    void didCancelTrackingPotentialLongMousePress(IPC::MessageDecoder&amp;);
</del><ins>+    void didBeginTrackingPotentialLongMousePress(const WebCore::IntPoint&amp; mouseDownPosition, const WebHitTestResult::Data&amp; hitTestResultData, const UserData&amp;);
+    void didRecognizeLongMousePress(const UserData&amp;);
+    void didCancelTrackingPotentialLongMousePress(const UserData&amp;);
</ins><span class="cx"> 
</span><span class="cx"> #if ENABLE(NETSCAPE_PLUGIN_API)
</span><span class="cx">     void unavailablePluginButtonClicked(uint32_t opaquePluginUnavailabilityReason, const String&amp; mimeType, const String&amp; pluginURLString, const String&amp; pluginsPageURLString, const String&amp; frameURLString, const String&amp; pageURLString);
</span><span class="lines">@@ -1162,8 +1163,8 @@
</span><span class="cx">         EligibleForClient,
</span><span class="cx">         NotEligibleForClient
</span><span class="cx">     };
</span><del>-    void showContextMenu(const WebCore::IntPoint&amp; menuLocation, const ContextMenuContextData&amp;, const Vector&lt;WebContextMenuItemData&gt;&amp;, IPC::MessageDecoder&amp;);
-    void internalShowContextMenu(const WebCore::IntPoint&amp; menuLocation, const ContextMenuContextData&amp;, const Vector&lt;WebContextMenuItemData&gt;&amp;, ContextMenuClientEligibility, IPC::MessageDecoder*);
</del><ins>+    void showContextMenu(const WebCore::IntPoint&amp; menuLocation, const ContextMenuContextData&amp;, const Vector&lt;WebContextMenuItemData&gt;&amp;, const UserData&amp;);
+    void internalShowContextMenu(const WebCore::IntPoint&amp; menuLocation, const ContextMenuContextData&amp;, const Vector&lt;WebContextMenuItemData&gt;&amp;, ContextMenuClientEligibility, const UserData&amp;);
</ins><span class="cx"> #endif
</span><span class="cx"> 
</span><span class="cx"> #if ENABLE(TELEPHONE_NUMBER_DETECTION)
</span><span class="lines">@@ -1280,7 +1281,7 @@
</span><span class="cx"> 
</span><span class="cx">     void didGetTapHighlightGeometries(uint64_t requestID, const WebCore::Color&amp; color, const Vector&lt;WebCore::FloatQuad&gt;&amp; geometries, const WebCore::IntSize&amp; topLeftRadius, const WebCore::IntSize&amp; topRightRadius, const WebCore::IntSize&amp; bottomLeftRadius, const WebCore::IntSize&amp; bottomRightRadius);
</span><span class="cx"> 
</span><del>-    void startAssistingNode(const AssistedNodeInformation&amp;, bool userIsInteracting, bool blurPreviousNode, IPC::MessageDecoder&amp;);
</del><ins>+    void startAssistingNode(const AssistedNodeInformation&amp;, bool userIsInteracting, bool blurPreviousNode, const UserData&amp;);
</ins><span class="cx">     void stopAssistingNode();
</span><span class="cx"> 
</span><span class="cx"> #if ENABLE(INSPECTOR)
</span><span class="lines">@@ -1339,7 +1340,7 @@
</span><span class="cx">     void viewDidEnterWindow();
</span><span class="cx"> 
</span><span class="cx"> #if PLATFORM(MAC)
</span><del>-    void didPerformActionMenuHitTest(const ActionMenuHitTestResult&amp;, bool forImmediateAction, IPC::MessageDecoder&amp;);
</del><ins>+    void didPerformActionMenuHitTest(const ActionMenuHitTestResult&amp;, bool forImmediateAction, const UserData&amp;);
</ins><span class="cx"> #endif
</span><span class="cx"> 
</span><span class="cx">     PageClient&amp; m_pageClient;
</span></span></pre></div>
<a id="trunkSourceWebKit2UIProcessWebPageProxymessagesin"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebKit2/UIProcess/WebPageProxy.messages.in (177794 => 177795)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebKit2/UIProcess/WebPageProxy.messages.in        2014-12-29 18:23:44 UTC (rev 177794)
+++ trunk/Source/WebKit2/UIProcess/WebPageProxy.messages.in        2014-12-29 18:38:07 UTC (rev 177795)
</span><span class="lines">@@ -29,11 +29,11 @@
</span><span class="cx">     RunJavaScriptConfirm(uint64_t frameID, String message) -&gt; (bool result) Delayed
</span><span class="cx">     RunJavaScriptPrompt(uint64_t frameID, String message, String defaultValue) -&gt; (String result) Delayed
</span><span class="cx">     ShouldInterruptJavaScript() -&gt; (bool shouldInterupt)
</span><del>-    MouseDidMoveOverElement(WebKit::WebHitTestResult::Data hitTestResultData, uint32_t modifiers, WebKit::InjectedBundleUserMessageEncoder userData) Variadic
</del><ins>+    MouseDidMoveOverElement(WebKit::WebHitTestResult::Data hitTestResultData, uint32_t modifiers, WebKit::UserData userData)
</ins><span class="cx"> 
</span><del>-    DidBeginTrackingPotentialLongMousePress(WebCore::IntPoint mouseDownPosition, WebKit::WebHitTestResult::Data hitTestResultData, WebKit::InjectedBundleUserMessageEncoder userData) Variadic
-    DidRecognizeLongMousePress(WebKit::InjectedBundleUserMessageEncoder userData) Variadic
-    DidCancelTrackingPotentialLongMousePress(WebKit::InjectedBundleUserMessageEncoder userData) Variadic
</del><ins>+    DidBeginTrackingPotentialLongMousePress(WebCore::IntPoint mouseDownPosition, WebKit::WebHitTestResult::Data hitTestResultData, WebKit::UserData userData)
+    DidRecognizeLongMousePress(WebKit::UserData userData)
+    DidCancelTrackingPotentialLongMousePress(WebKit::UserData userData)
</ins><span class="cx"> 
</span><span class="cx"> #if ENABLE(NETSCAPE_PLUGIN_API)
</span><span class="cx">     UnavailablePluginButtonClicked(uint32_t pluginUnavailabilityReason, String mimeType, String pluginURLString, String pluginspageAttributeURLString, String frameURLString, String pageURLString)
</span><span class="lines">@@ -114,10 +114,10 @@
</span><span class="cx"> #endif
</span><span class="cx"> 
</span><span class="cx">     # Policy messages
</span><del>-    DecidePolicyForResponseSync(uint64_t frameID, WebCore::ResourceResponse response, WebCore::ResourceRequest request, bool canShowMIMEType, uint64_t listenerID, WebKit::InjectedBundleUserMessageEncoder userData) -&gt; (bool receivedPolicyAction, uint64_t policyAction, uint64_t downloadID) Variadic
-    DecidePolicyForNavigationAction(uint64_t frameID, uint64_t navigationID, struct WebKit::NavigationActionData navigationActionData, uint64_t originatingFrameID, WebCore::ResourceRequest originalRequest, WebCore::ResourceRequest request, uint64_t listenerID, WebKit::InjectedBundleUserMessageEncoder userData) -&gt; (bool receivedPolicyAction, uint64_t newNavigationID, uint64_t policyAction, uint64_t downloadID) Variadic
-    DecidePolicyForNewWindowAction(uint64_t frameID, struct WebKit::NavigationActionData navigationActionData, WebCore::ResourceRequest request, String frameName, uint64_t listenerID, WebKit::InjectedBundleUserMessageEncoder userData) Variadic
-    UnableToImplementPolicy(uint64_t frameID, WebCore::ResourceError error, WebKit::InjectedBundleUserMessageEncoder userData)  Variadic
</del><ins>+    DecidePolicyForResponseSync(uint64_t frameID, WebCore::ResourceResponse response, WebCore::ResourceRequest request, bool canShowMIMEType, uint64_t listenerID, WebKit::UserData userData) -&gt; (bool receivedPolicyAction, uint64_t policyAction, uint64_t downloadID)
+    DecidePolicyForNavigationAction(uint64_t frameID, uint64_t navigationID, struct WebKit::NavigationActionData navigationActionData, uint64_t originatingFrameID, WebCore::ResourceRequest originalRequest, WebCore::ResourceRequest request, uint64_t listenerID, WebKit::UserData userData) -&gt; (bool receivedPolicyAction, uint64_t newNavigationID, uint64_t policyAction, uint64_t downloadID)
+    DecidePolicyForNewWindowAction(uint64_t frameID, struct WebKit::NavigationActionData navigationActionData, WebCore::ResourceRequest request, String frameName, uint64_t listenerID, WebKit::UserData userData)
+    UnableToImplementPolicy(uint64_t frameID, WebCore::ResourceError error, WebKit::UserData userData)
</ins><span class="cx"> 
</span><span class="cx">     # Progress messages
</span><span class="cx">     DidChangeProgress(double value)
</span><span class="lines">@@ -131,22 +131,22 @@
</span><span class="cx">     DidCreateSubframe(uint64_t frameID)
</span><span class="cx"> 
</span><span class="cx">     # Frame load messages
</span><del>-    DidStartProvisionalLoadForFrame(uint64_t frameID, uint64_t navigationID, String url, String unreachableURL, WebKit::InjectedBundleUserMessageEncoder userData) Variadic
-    DidReceiveServerRedirectForProvisionalLoadForFrame(uint64_t frameID, uint64_t navigationID, String url, WebKit::InjectedBundleUserMessageEncoder userData) Variadic
-    DidFailProvisionalLoadForFrame(uint64_t frameID, uint64_t navigationID, WebCore::ResourceError error, WebKit::InjectedBundleUserMessageEncoder userData) Variadic
-    DidCommitLoadForFrame(uint64_t frameID, uint64_t navigationID, String mimeType, bool hasCustomContentProvider, uint32_t loadType, WebCore::CertificateInfo certificateInfo, WebKit::InjectedBundleUserMessageEncoder userData) Variadic
-    DidFailLoadForFrame(uint64_t frameID, uint64_t navigationID, WebCore::ResourceError error, WebKit::InjectedBundleUserMessageEncoder userData) Variadic
-    DidFinishDocumentLoadForFrame(uint64_t frameID, uint64_t navigationID, WebKit::InjectedBundleUserMessageEncoder userData) Variadic
-    DidFinishLoadForFrame(uint64_t frameID, uint64_t navigationID, WebKit::InjectedBundleUserMessageEncoder userData) Variadic
-    DidFirstLayoutForFrame(uint64_t frameID, WebKit::InjectedBundleUserMessageEncoder userData) Variadic
-    DidFirstVisuallyNonEmptyLayoutForFrame(uint64_t frameID, WebKit::InjectedBundleUserMessageEncoder userData) Variadic
-    DidLayout(uint32_t type, WebKit::InjectedBundleUserMessageEncoder userData) Variadic
-    DidRemoveFrameFromHierarchy(uint64_t frameID, WebKit::InjectedBundleUserMessageEncoder userData) Variadic
-    DidReceiveTitleForFrame(uint64_t frameID, String title, WebKit::InjectedBundleUserMessageEncoder userData) Variadic
-    DidDisplayInsecureContentForFrame(uint64_t frameID, WebKit::InjectedBundleUserMessageEncoder userData) Variadic
-    DidRunInsecureContentForFrame(uint64_t frameID, WebKit::InjectedBundleUserMessageEncoder userData) Variadic
-    DidDetectXSSForFrame(uint64_t frameID, WebKit::InjectedBundleUserMessageEncoder userData) Variadic
-    DidSameDocumentNavigationForFrame(uint64_t frameID, uint64_t navigationID, uint32_t type, String url, WebKit::InjectedBundleUserMessageEncoder userData) Variadic
</del><ins>+    DidStartProvisionalLoadForFrame(uint64_t frameID, uint64_t navigationID, String url, String unreachableURL, WebKit::UserData userData)
+    DidReceiveServerRedirectForProvisionalLoadForFrame(uint64_t frameID, uint64_t navigationID, String url, WebKit::UserData userData)
+    DidFailProvisionalLoadForFrame(uint64_t frameID, uint64_t navigationID, WebCore::ResourceError error, WebKit::UserData userData)
+    DidCommitLoadForFrame(uint64_t frameID, uint64_t navigationID, String mimeType, bool hasCustomContentProvider, uint32_t loadType, WebCore::CertificateInfo certificateInfo, WebKit::UserData userData)
+    DidFailLoadForFrame(uint64_t frameID, uint64_t navigationID, WebCore::ResourceError error, WebKit::UserData userData)
+    DidFinishDocumentLoadForFrame(uint64_t frameID, uint64_t navigationID, WebKit::UserData userData)
+    DidFinishLoadForFrame(uint64_t frameID, uint64_t navigationID, WebKit::UserData userData)
+    DidFirstLayoutForFrame(uint64_t frameID, WebKit::UserData userData)
+    DidFirstVisuallyNonEmptyLayoutForFrame(uint64_t frameID, WebKit::UserData userData)
+    DidLayout(uint32_t type, WebKit::UserData userData)
+    DidRemoveFrameFromHierarchy(uint64_t frameID, WebKit::UserData userData)
+    DidReceiveTitleForFrame(uint64_t frameID, String title, WebKit::UserData userData)
+    DidDisplayInsecureContentForFrame(uint64_t frameID, WebKit::UserData userData)
+    DidRunInsecureContentForFrame(uint64_t frameID, WebKit::UserData userData)
+    DidDetectXSSForFrame(uint64_t frameID, WebKit::UserData userData)
+    DidSameDocumentNavigationForFrame(uint64_t frameID, uint64_t navigationID, uint32_t type, String url, WebKit::UserData userData)
</ins><span class="cx">     DidDestroyNavigation(uint64_t navigationID)
</span><span class="cx"> 
</span><span class="cx">     FrameDidBecomeFrameSet(uint64_t frameID, bool value)
</span><span class="lines">@@ -161,7 +161,7 @@
</span><span class="cx">     DidFinishLoadingDataForCustomContentProvider(String suggestedFilename, IPC::DataReference data)
</span><span class="cx"> 
</span><span class="cx">     # Forms messages
</span><del>-    WillSubmitForm(uint64_t frameID, uint64_t sourceFrameID, Vector&lt;std::pair&lt;String, String&gt;&gt; textFieldValues, uint64_t listenerID, WebKit::InjectedBundleUserMessageEncoder userData) Variadic
</del><ins>+    WillSubmitForm(uint64_t frameID, uint64_t sourceFrameID, Vector&lt;std::pair&lt;String, String&gt;&gt; textFieldValues, uint64_t listenerID, WebKit::UserData userData)
</ins><span class="cx"> 
</span><span class="cx">     # Callback messages
</span><span class="cx">     VoidCallback(uint64_t callbackID)
</span><span class="lines">@@ -218,7 +218,7 @@
</span><span class="cx">     BackForwardBackListCount() -&gt; (int32_t count)
</span><span class="cx">     BackForwardForwardListCount() -&gt; (int32_t count)
</span><span class="cx">     BackForwardClear()
</span><del>-    WillGoToBackForwardListItem(uint64_t itemID, WebKit::InjectedBundleUserMessageEncoder userData) Variadic
</del><ins>+    WillGoToBackForwardListItem(uint64_t itemID, WebKit::UserData userData)
</ins><span class="cx"> 
</span><span class="cx">     # Undo/Redo messages
</span><span class="cx">     RegisterEditCommandForUndo(uint64_t commandID, uint32_t editAction)
</span><span class="lines">@@ -246,7 +246,7 @@
</span><span class="cx"> 
</span><span class="cx"> #if ENABLE(CONTEXT_MENUS)
</span><span class="cx">     # ContextMenu messages
</span><del>-    ShowContextMenu(WebCore::IntPoint menuLocation, WebKit::ContextMenuContextData contextMenuContextData, Vector&lt;WebKit::WebContextMenuItemData&gt; items, WebKit::InjectedBundleUserMessageEncoder userData) Variadic
</del><ins>+    ShowContextMenu(WebCore::IntPoint menuLocation, WebKit::ContextMenuContextData contextMenuContextData, Vector&lt;WebKit::WebContextMenuItemData&gt; items, WebKit::UserData userData)
</ins><span class="cx"> #endif
</span><span class="cx"> 
</span><span class="cx">     # Authentication messages
</span><span class="lines">@@ -357,7 +357,7 @@
</span><span class="cx">     RestorePageCenterAndScale(WebCore::FloatPoint unobscuredCenter, double scale)
</span><span class="cx">     DidGetTapHighlightGeometries(uint64_t requestID, WebCore::Color color, Vector&lt;WebCore::FloatQuad&gt; geometries, WebCore::IntSize topLeftRadius, WebCore::IntSize topRightRadius, WebCore::IntSize bottomLeftRadius, WebCore::IntSize bottomRightRadius)
</span><span class="cx"> 
</span><del>-    StartAssistingNode(struct WebKit::AssistedNodeInformation information, bool userIsInteracting, bool blurPreviousNode, WebKit::InjectedBundleUserMessageEncoder userData) Variadic
</del><ins>+    StartAssistingNode(struct WebKit::AssistedNodeInformation information, bool userIsInteracting, bool blurPreviousNode, WebKit::UserData userData)
</ins><span class="cx">     StopAssistingNode()
</span><span class="cx">     NotifyRevealedSelection()
</span><span class="cx"> 
</span><span class="lines">@@ -420,6 +420,6 @@
</span><span class="cx">     IsPlayingAudioDidChange(bool newIsPlayingAudio)
</span><span class="cx"> 
</span><span class="cx"> #if PLATFORM(MAC)
</span><del>-    DidPerformActionMenuHitTest(struct WebKit::ActionMenuHitTestResult result, bool forImmediateAction, WebKit::InjectedBundleUserMessageEncoder userData) Variadic
</del><ins>+    DidPerformActionMenuHitTest(struct WebKit::ActionMenuHitTestResult result, bool forImmediateAction, WebKit::UserData userData)
</ins><span class="cx"> #endif
</span><span class="cx"> }
</span></span></pre></div>
<a id="trunkSourceWebKit2UIProcessmacWebPageProxyMacmm"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebKit2/UIProcess/mac/WebPageProxyMac.mm (177794 => 177795)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebKit2/UIProcess/mac/WebPageProxyMac.mm        2014-12-29 18:23:44 UTC (rev 177794)
+++ trunk/Source/WebKit2/UIProcess/mac/WebPageProxyMac.mm        2014-12-29 18:38:07 UTC (rev 177795)
</span><span class="lines">@@ -652,7 +652,7 @@
</span><span class="cx">     Vector&lt;WebContextMenuItemData&gt; items;
</span><span class="cx">     ContextMenuContextData contextData(selectionAsRTFD.vector(), telephoneNumbers, isEditable);
</span><span class="cx"> 
</span><del>-    internalShowContextMenu(point, contextData, items, ContextMenuClientEligibility::NotEligibleForClient, nullptr);
</del><ins>+    internalShowContextMenu(point, contextData, items, ContextMenuClientEligibility::NotEligibleForClient, UserData());
</ins><span class="cx"> }
</span><span class="cx"> #endif
</span><span class="cx"> 
</span></span></pre></div>
<a id="trunkSourceWebKit2WebProcessWebCoreSupportWebChromeClientcpp"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebKit2/WebProcess/WebCoreSupport/WebChromeClient.cpp (177794 => 177795)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebKit2/WebProcess/WebCoreSupport/WebChromeClient.cpp        2014-12-29 18:23:44 UTC (rev 177794)
+++ trunk/Source/WebKit2/WebProcess/WebCoreSupport/WebChromeClient.cpp        2014-12-29 18:38:07 UTC (rev 177795)
</span><span class="lines">@@ -34,6 +34,7 @@
</span><span class="cx"> #include &quot;LayerTreeHost.h&quot;
</span><span class="cx"> #include &quot;NavigationActionData.h&quot;
</span><span class="cx"> #include &quot;PageBanner.h&quot;
</span><ins>+#include &quot;UserData.h&quot;
</ins><span class="cx"> #include &quot;WebColorChooser.h&quot;
</span><span class="cx"> #include &quot;WebCoreArgumentCoders.h&quot;
</span><span class="cx"> #include &quot;WebFrame.h&quot;
</span><span class="lines">@@ -599,7 +600,7 @@
</span><span class="cx"> 
</span><span class="cx">     // Notify the UIProcess.
</span><span class="cx">     WebHitTestResult::Data webHitTestResultData(hitTestResult);
</span><del>-    m_page-&gt;send(Messages::WebPageProxy::MouseDidMoveOverElement(webHitTestResultData, modifierFlags, InjectedBundleUserMessageEncoder(userData.get())));
</del><ins>+    m_page-&gt;send(Messages::WebPageProxy::MouseDidMoveOverElement(webHitTestResultData, modifierFlags, UserData(WebProcess::shared().transformObjectsToHandles(userData.get()).get())));
</ins><span class="cx"> }
</span><span class="cx"> 
</span><span class="cx"> void WebChromeClient::didBeginTrackingPotentialLongMousePress(const IntPoint&amp; mouseDownPosition, const HitTestResult&amp; hitTestResult)
</span><span class="lines">@@ -611,7 +612,7 @@
</span><span class="cx">     
</span><span class="cx">     // Notify the UIProcess.
</span><span class="cx">     WebHitTestResult::Data webHitTestResultData(hitTestResult);
</span><del>-    m_page-&gt;send(Messages::WebPageProxy::DidBeginTrackingPotentialLongMousePress(mouseDownPosition, webHitTestResultData, InjectedBundleUserMessageEncoder(userData.get())));
</del><ins>+    m_page-&gt;send(Messages::WebPageProxy::DidBeginTrackingPotentialLongMousePress(mouseDownPosition, webHitTestResultData, UserData(WebProcess::shared().transformObjectsToHandles(userData.get()).get())));
</ins><span class="cx"> }
</span><span class="cx"> 
</span><span class="cx"> void WebChromeClient::didRecognizeLongMousePress()
</span><span class="lines">@@ -622,7 +623,7 @@
</span><span class="cx">     m_page-&gt;injectedBundleUIClient().didRecognizeLongMousePress(m_page, userData);
</span><span class="cx"> 
</span><span class="cx">     // Notify the UIProcess.
</span><del>-    m_page-&gt;send(Messages::WebPageProxy::DidRecognizeLongMousePress(InjectedBundleUserMessageEncoder(userData.get())));
</del><ins>+    m_page-&gt;send(Messages::WebPageProxy::DidRecognizeLongMousePress(UserData(WebProcess::shared().transformObjectsToHandles(userData.get()).get())));
</ins><span class="cx"> }
</span><span class="cx"> 
</span><span class="cx"> void WebChromeClient::didCancelTrackingPotentialLongMousePress()
</span><span class="lines">@@ -633,7 +634,7 @@
</span><span class="cx">     m_page-&gt;injectedBundleUIClient().didCancelTrackingPotentialLongMousePress(m_page, userData);
</span><span class="cx"> 
</span><span class="cx">     // Notify the UIProcess.
</span><del>-    m_page-&gt;send(Messages::WebPageProxy::DidCancelTrackingPotentialLongMousePress(InjectedBundleUserMessageEncoder(userData.get())));
</del><ins>+    m_page-&gt;send(Messages::WebPageProxy::DidCancelTrackingPotentialLongMousePress(UserData(WebProcess::shared().transformObjectsToHandles(userData.get()).get())));
</ins><span class="cx"> }
</span><span class="cx"> 
</span><span class="cx"> void WebChromeClient::setToolTip(const String&amp; toolTip, TextDirection)
</span></span></pre></div>
<a id="trunkSourceWebKit2WebProcessWebCoreSupportWebFrameLoaderClientcpp"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebKit2/WebProcess/WebCoreSupport/WebFrameLoaderClient.cpp (177794 => 177795)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebKit2/WebProcess/WebCoreSupport/WebFrameLoaderClient.cpp        2014-12-29 18:23:44 UTC (rev 177794)
+++ trunk/Source/WebKit2/WebProcess/WebCoreSupport/WebFrameLoaderClient.cpp        2014-12-29 18:38:07 UTC (rev 177795)
</span><span class="lines">@@ -36,6 +36,7 @@
</span><span class="cx"> #include &quot;InjectedBundleUserMessageCoders.h&quot;
</span><span class="cx"> #include &quot;NavigationActionData.h&quot;
</span><span class="cx"> #include &quot;PluginView.h&quot;
</span><ins>+#include &quot;UserData.h&quot;
</ins><span class="cx"> #include &quot;WKBundleAPICast.h&quot;
</span><span class="cx"> #include &quot;WebBackForwardListProxy.h&quot;
</span><span class="cx"> #include &quot;WebCoreArgumentCoders.h&quot;
</span><span class="lines">@@ -147,8 +148,7 @@
</span><span class="cx">     webPage-&gt;injectedBundleLoaderClient().didRemoveFrameFromHierarchy(webPage, m_frame, userData);
</span><span class="cx"> 
</span><span class="cx">     // Notify the UIProcess.
</span><del>-    webPage-&gt;send(Messages::WebPageProxy::DidRemoveFrameFromHierarchy(m_frame-&gt;frameID(), InjectedBundleUserMessageEncoder(userData.get())));
-
</del><ins>+    webPage-&gt;send(Messages::WebPageProxy::DidRemoveFrameFromHierarchy(m_frame-&gt;frameID(), UserData(WebProcess::shared().transformObjectsToHandles(userData.get()).get())));
</ins><span class="cx"> }
</span><span class="cx"> 
</span><span class="cx"> void WebFrameLoaderClient::detachedFromParent3()
</span><span class="lines">@@ -291,7 +291,7 @@
</span><span class="cx">     webPage-&gt;injectedBundleLoaderClient().didReceiveServerRedirectForProvisionalLoadForFrame(webPage, m_frame, userData);
</span><span class="cx"> 
</span><span class="cx">     // Notify the UIProcess.
</span><del>-    webPage-&gt;send(Messages::WebPageProxy::DidReceiveServerRedirectForProvisionalLoadForFrame(m_frame-&gt;frameID(), documentLoader.navigationID(), url, InjectedBundleUserMessageEncoder(userData.get())));
</del><ins>+    webPage-&gt;send(Messages::WebPageProxy::DidReceiveServerRedirectForProvisionalLoadForFrame(m_frame-&gt;frameID(), documentLoader.navigationID(), url, UserData(WebProcess::shared().transformObjectsToHandles(userData.get()).get())));
</ins><span class="cx"> }
</span><span class="cx"> 
</span><span class="cx"> void WebFrameLoaderClient::dispatchDidCancelClientRedirect()
</span><span class="lines">@@ -327,7 +327,7 @@
</span><span class="cx"> 
</span><span class="cx">     // Notify the UIProcess.
</span><span class="cx">     WebDocumentLoader&amp; documentLoader = static_cast&lt;WebDocumentLoader&amp;&gt;(*m_frame-&gt;coreFrame()-&gt;loader().documentLoader());
</span><del>-    webPage-&gt;send(Messages::WebPageProxy::DidSameDocumentNavigationForFrame(m_frame-&gt;frameID(), documentLoader.navigationID(), SameDocumentNavigationAnchorNavigation, m_frame-&gt;coreFrame()-&gt;document()-&gt;url().string(), InjectedBundleUserMessageEncoder(userData.get())));
</del><ins>+    webPage-&gt;send(Messages::WebPageProxy::DidSameDocumentNavigationForFrame(m_frame-&gt;frameID(), documentLoader.navigationID(), SameDocumentNavigationAnchorNavigation, m_frame-&gt;coreFrame()-&gt;document()-&gt;url().string(), UserData(WebProcess::shared().transformObjectsToHandles(userData.get()).get())));
</ins><span class="cx"> }
</span><span class="cx"> 
</span><span class="cx"> void WebFrameLoaderClient::dispatchDidPushStateWithinPage()
</span><span class="lines">@@ -343,7 +343,7 @@
</span><span class="cx"> 
</span><span class="cx">     // Notify the UIProcess.
</span><span class="cx">     WebDocumentLoader&amp; documentLoader = static_cast&lt;WebDocumentLoader&amp;&gt;(*m_frame-&gt;coreFrame()-&gt;loader().documentLoader());
</span><del>-    webPage-&gt;send(Messages::WebPageProxy::DidSameDocumentNavigationForFrame(m_frame-&gt;frameID(), documentLoader.navigationID(), SameDocumentNavigationSessionStatePush, m_frame-&gt;coreFrame()-&gt;document()-&gt;url().string(), InjectedBundleUserMessageEncoder(userData.get())));
</del><ins>+    webPage-&gt;send(Messages::WebPageProxy::DidSameDocumentNavigationForFrame(m_frame-&gt;frameID(), documentLoader.navigationID(), SameDocumentNavigationSessionStatePush, m_frame-&gt;coreFrame()-&gt;document()-&gt;url().string(), UserData(WebProcess::shared().transformObjectsToHandles(userData.get()).get())));
</ins><span class="cx"> }
</span><span class="cx"> 
</span><span class="cx"> void WebFrameLoaderClient::dispatchDidReplaceStateWithinPage()
</span><span class="lines">@@ -359,7 +359,7 @@
</span><span class="cx"> 
</span><span class="cx">     // Notify the UIProcess.
</span><span class="cx">     WebDocumentLoader&amp; documentLoader = static_cast&lt;WebDocumentLoader&amp;&gt;(*m_frame-&gt;coreFrame()-&gt;loader().documentLoader());
</span><del>-    webPage-&gt;send(Messages::WebPageProxy::DidSameDocumentNavigationForFrame(m_frame-&gt;frameID(), documentLoader.navigationID(), SameDocumentNavigationSessionStateReplace, m_frame-&gt;coreFrame()-&gt;document()-&gt;url().string(), InjectedBundleUserMessageEncoder(userData.get())));
</del><ins>+    webPage-&gt;send(Messages::WebPageProxy::DidSameDocumentNavigationForFrame(m_frame-&gt;frameID(), documentLoader.navigationID(), SameDocumentNavigationSessionStateReplace, m_frame-&gt;coreFrame()-&gt;document()-&gt;url().string(), UserData(WebProcess::shared().transformObjectsToHandles(userData.get()).get())));
</ins><span class="cx"> }
</span><span class="cx"> 
</span><span class="cx"> void WebFrameLoaderClient::dispatchDidPopStateWithinPage()
</span><span class="lines">@@ -375,7 +375,7 @@
</span><span class="cx"> 
</span><span class="cx">     // Notify the UIProcess.
</span><span class="cx">     WebDocumentLoader&amp; documentLoader = static_cast&lt;WebDocumentLoader&amp;&gt;(*m_frame-&gt;coreFrame()-&gt;loader().documentLoader());
</span><del>-    webPage-&gt;send(Messages::WebPageProxy::DidSameDocumentNavigationForFrame(m_frame-&gt;frameID(), documentLoader.navigationID(), SameDocumentNavigationSessionStatePop, m_frame-&gt;coreFrame()-&gt;document()-&gt;url().string(), InjectedBundleUserMessageEncoder(userData.get())));
</del><ins>+    webPage-&gt;send(Messages::WebPageProxy::DidSameDocumentNavigationForFrame(m_frame-&gt;frameID(), documentLoader.navigationID(), SameDocumentNavigationSessionStatePop, m_frame-&gt;coreFrame()-&gt;document()-&gt;url().string(), UserData(WebProcess::shared().transformObjectsToHandles(userData.get()).get())));
</ins><span class="cx"> }
</span><span class="cx"> 
</span><span class="cx"> void WebFrameLoaderClient::dispatchWillClose()
</span><span class="lines">@@ -413,7 +413,7 @@
</span><span class="cx">     String unreachableURL = provisionalLoader.unreachableURL().string();
</span><span class="cx"> 
</span><span class="cx">     // Notify the UIProcess.
</span><del>-    webPage-&gt;send(Messages::WebPageProxy::DidStartProvisionalLoadForFrame(m_frame-&gt;frameID(), provisionalLoader.navigationID(), url, unreachableURL, InjectedBundleUserMessageEncoder(userData.get())));
</del><ins>+    webPage-&gt;send(Messages::WebPageProxy::DidStartProvisionalLoadForFrame(m_frame-&gt;frameID(), provisionalLoader.navigationID(), url, unreachableURL, UserData(WebProcess::shared().transformObjectsToHandles(userData.get()).get())));
</ins><span class="cx"> }
</span><span class="cx"> 
</span><span class="cx"> void WebFrameLoaderClient::dispatchDidReceiveTitle(const StringWithDirection&amp; title)
</span><span class="lines">@@ -429,7 +429,7 @@
</span><span class="cx">     webPage-&gt;injectedBundleLoaderClient().didReceiveTitleForFrame(webPage, title.string(), m_frame, userData);
</span><span class="cx"> 
</span><span class="cx">     // Notify the UIProcess.
</span><del>-    webPage-&gt;send(Messages::WebPageProxy::DidReceiveTitleForFrame(m_frame-&gt;frameID(), title.string(), InjectedBundleUserMessageEncoder(userData.get())));
</del><ins>+    webPage-&gt;send(Messages::WebPageProxy::DidReceiveTitleForFrame(m_frame-&gt;frameID(), title.string(), UserData(WebProcess::shared().transformObjectsToHandles(userData.get()).get())));
</ins><span class="cx"> }
</span><span class="cx"> 
</span><span class="cx"> void WebFrameLoaderClient::dispatchDidChangeIcons(WebCore::IconType)
</span><span class="lines">@@ -453,7 +453,7 @@
</span><span class="cx"> 
</span><span class="cx">     // Notify the UIProcess.
</span><span class="cx"> 
</span><del>-    webPage-&gt;send(Messages::WebPageProxy::DidCommitLoadForFrame(m_frame-&gt;frameID(), documentLoader.navigationID(), documentLoader.response().mimeType(), m_frameHasCustomContentProvider, static_cast&lt;uint32_t&gt;(m_frame-&gt;coreFrame()-&gt;loader().loadType()), documentLoader.response().certificateInfo(), InjectedBundleUserMessageEncoder(userData.get())));
</del><ins>+    webPage-&gt;send(Messages::WebPageProxy::DidCommitLoadForFrame(m_frame-&gt;frameID(), documentLoader.navigationID(), documentLoader.response().mimeType(), m_frameHasCustomContentProvider, static_cast&lt;uint32_t&gt;(m_frame-&gt;coreFrame()-&gt;loader().loadType()), documentLoader.response().certificateInfo(), UserData(WebProcess::shared().transformObjectsToHandles(userData.get()).get())));
</ins><span class="cx">     webPage-&gt;didCommitLoad(m_frame);
</span><span class="cx"> }
</span><span class="cx"> 
</span><span class="lines">@@ -473,7 +473,7 @@
</span><span class="cx">     webPage-&gt;sandboxExtensionTracker().didFailProvisionalLoad(m_frame);
</span><span class="cx"> 
</span><span class="cx">     // Notify the UIProcess.
</span><del>-    webPage-&gt;send(Messages::WebPageProxy::DidFailProvisionalLoadForFrame(m_frame-&gt;frameID(), navigationID, error, InjectedBundleUserMessageEncoder(userData.get())));
</del><ins>+    webPage-&gt;send(Messages::WebPageProxy::DidFailProvisionalLoadForFrame(m_frame-&gt;frameID(), navigationID, error, UserData(WebProcess::shared().transformObjectsToHandles(userData.get()).get())));
</ins><span class="cx"> 
</span><span class="cx">     // If we have a load listener, notify it.
</span><span class="cx">     if (WebFrame::LoadListener* loadListener = m_frame-&gt;loadListener())
</span><span class="lines">@@ -493,7 +493,7 @@
</span><span class="cx"> 
</span><span class="cx">     // Notify the UIProcess.
</span><span class="cx">     WebDocumentLoader&amp; documentLoader = static_cast&lt;WebDocumentLoader&amp;&gt;(*m_frame-&gt;coreFrame()-&gt;loader().documentLoader());
</span><del>-    webPage-&gt;send(Messages::WebPageProxy::DidFailLoadForFrame(m_frame-&gt;frameID(), documentLoader.navigationID(), error, InjectedBundleUserMessageEncoder(userData.get())));
</del><ins>+    webPage-&gt;send(Messages::WebPageProxy::DidFailLoadForFrame(m_frame-&gt;frameID(), documentLoader.navigationID(), error, UserData(WebProcess::shared().transformObjectsToHandles(userData.get()).get())));
</ins><span class="cx"> 
</span><span class="cx">     // If we have a load listener, notify it.
</span><span class="cx">     if (WebFrame::LoadListener* loadListener = m_frame-&gt;loadListener())
</span><span class="lines">@@ -514,7 +514,7 @@
</span><span class="cx">     WebDocumentLoader&amp; documentLoader = static_cast&lt;WebDocumentLoader&amp;&gt;(*m_frame-&gt;coreFrame()-&gt;loader().documentLoader());
</span><span class="cx"> 
</span><span class="cx">     // Notify the UIProcess.
</span><del>-    webPage-&gt;send(Messages::WebPageProxy::DidFinishDocumentLoadForFrame(m_frame-&gt;frameID(), documentLoader.navigationID(), InjectedBundleUserMessageEncoder(userData.get())));
</del><ins>+    webPage-&gt;send(Messages::WebPageProxy::DidFinishDocumentLoadForFrame(m_frame-&gt;frameID(), documentLoader.navigationID(), UserData(WebProcess::shared().transformObjectsToHandles(userData.get()).get())));
</ins><span class="cx"> }
</span><span class="cx"> 
</span><span class="cx"> void WebFrameLoaderClient::dispatchDidFinishLoad()
</span><span class="lines">@@ -531,7 +531,7 @@
</span><span class="cx">     WebDocumentLoader&amp; documentLoader = static_cast&lt;WebDocumentLoader&amp;&gt;(*m_frame-&gt;coreFrame()-&gt;loader().documentLoader());
</span><span class="cx"> 
</span><span class="cx">     // Notify the UIProcess.
</span><del>-    webPage-&gt;send(Messages::WebPageProxy::DidFinishLoadForFrame(m_frame-&gt;frameID(), documentLoader.navigationID(), InjectedBundleUserMessageEncoder(userData.get())));
</del><ins>+    webPage-&gt;send(Messages::WebPageProxy::DidFinishLoadForFrame(m_frame-&gt;frameID(), documentLoader.navigationID(), UserData(WebProcess::shared().transformObjectsToHandles(userData.get()).get())));
</ins><span class="cx"> 
</span><span class="cx">     // If we have a load listener, notify it.
</span><span class="cx">     if (WebFrame::LoadListener* loadListener = m_frame-&gt;loadListener())
</span><span class="lines">@@ -565,7 +565,7 @@
</span><span class="cx">         // FIXME: We should consider removing the old didFirstLayout API since this is doing double duty with the
</span><span class="cx">         // new didLayout API.
</span><span class="cx">         webPage-&gt;injectedBundleLoaderClient().didFirstLayoutForFrame(webPage, m_frame, userData);
</span><del>-        webPage-&gt;send(Messages::WebPageProxy::DidFirstLayoutForFrame(m_frame-&gt;frameID(), InjectedBundleUserMessageEncoder(userData.get())));
</del><ins>+        webPage-&gt;send(Messages::WebPageProxy::DidFirstLayoutForFrame(m_frame-&gt;frameID(), UserData(WebProcess::shared().transformObjectsToHandles(userData.get()).get())));
</ins><span class="cx"> 
</span><span class="cx"> #if PLATFORM(MAC)
</span><span class="cx">         // FIXME: Do this on DidFirstVisuallyNonEmptyLayout when Mac Safari is able to handle it (&lt;rdar://problem/17580021&gt;)
</span><span class="lines">@@ -583,7 +583,7 @@
</span><span class="cx"> 
</span><span class="cx">     // Send this after DidFirstLayout-specific calls since some clients expect to get those messages first.
</span><span class="cx">     webPage-&gt;injectedBundleLoaderClient().didLayout(webPage, milestones, userData);
</span><del>-    webPage-&gt;send(Messages::WebPageProxy::DidLayout(milestones, InjectedBundleUserMessageEncoder(userData.get())));
</del><ins>+    webPage-&gt;send(Messages::WebPageProxy::DidLayout(milestones, UserData(WebProcess::shared().transformObjectsToHandles(userData.get()).get())));
</ins><span class="cx"> 
</span><span class="cx">     if (milestones &amp; DidFirstVisuallyNonEmptyLayout) {
</span><span class="cx">         if (m_frame-&gt;isMainFrame() &amp;&amp; !m_didCompletePageTransition &amp;&amp; !webPage-&gt;corePage()-&gt;settings().suppressesIncrementalRendering()) {
</span><span class="lines">@@ -594,7 +594,7 @@
</span><span class="cx">         // FIXME: We should consider removing the old didFirstVisuallyNonEmptyLayoutForFrame API since this is doing
</span><span class="cx">         // double duty with the new didLayout API.
</span><span class="cx">         webPage-&gt;injectedBundleLoaderClient().didFirstVisuallyNonEmptyLayoutForFrame(webPage, m_frame, userData);
</span><del>-        webPage-&gt;send(Messages::WebPageProxy::DidFirstVisuallyNonEmptyLayoutForFrame(m_frame-&gt;frameID(), InjectedBundleUserMessageEncoder(userData.get())));
</del><ins>+        webPage-&gt;send(Messages::WebPageProxy::DidFirstVisuallyNonEmptyLayoutForFrame(m_frame-&gt;frameID(), UserData(WebProcess::shared().transformObjectsToHandles(userData.get()).get())));
</ins><span class="cx">     }
</span><span class="cx"> }
</span><span class="cx"> 
</span><span class="lines">@@ -676,7 +676,7 @@
</span><span class="cx">     unsigned syncSendFlags = IPC::InformPlatformProcessWillSuspend;
</span><span class="cx">     if (WebPage::synchronousMessagesShouldSpinRunLoop())
</span><span class="cx">         syncSendFlags |= IPC::SpinRunLoopWhileWaitingForReply;
</span><del>-    if (!webPage-&gt;sendSync(Messages::WebPageProxy::DecidePolicyForResponseSync(m_frame-&gt;frameID(), response, request, canShowMIMEType, listenerID, InjectedBundleUserMessageEncoder(userData.get())), Messages::WebPageProxy::DecidePolicyForResponseSync::Reply(receivedPolicyAction, policyAction, downloadID), std::chrono::milliseconds::max(), syncSendFlags))
</del><ins>+    if (!webPage-&gt;sendSync(Messages::WebPageProxy::DecidePolicyForResponseSync(m_frame-&gt;frameID(), response, request, canShowMIMEType, listenerID, UserData(WebProcess::shared().transformObjectsToHandles(userData.get()).get())), Messages::WebPageProxy::DecidePolicyForResponseSync::Reply(receivedPolicyAction, policyAction, downloadID), std::chrono::milliseconds::max(), syncSendFlags))
</ins><span class="cx">         return;
</span><span class="cx"> 
</span><span class="cx">     // We call this synchronously because CFNetwork can only convert a loading connection to a download from its didReceiveResponse callback.
</span><span class="lines">@@ -711,7 +711,7 @@
</span><span class="cx">     navigationActionData.isProcessingUserGesture = navigationAction.processingUserGesture();
</span><span class="cx">     navigationActionData.canHandleRequest = webPage-&gt;canHandleRequest(request);
</span><span class="cx"> 
</span><del>-    webPage-&gt;send(Messages::WebPageProxy::DecidePolicyForNewWindowAction(m_frame-&gt;frameID(), navigationActionData, request, frameName, listenerID, InjectedBundleUserMessageEncoder(userData.get())));
</del><ins>+    webPage-&gt;send(Messages::WebPageProxy::DecidePolicyForNewWindowAction(m_frame-&gt;frameID(), navigationActionData, request, frameName, listenerID, UserData(WebProcess::shared().transformObjectsToHandles(userData.get()).get())));
</ins><span class="cx"> }
</span><span class="cx"> 
</span><span class="cx"> void WebFrameLoaderClient::dispatchDecidePolicyForNavigationAction(const NavigationAction&amp; navigationAction, const ResourceRequest&amp; request, PassRefPtr&lt;FormState&gt; prpFormState, FramePolicyFunction function)
</span><span class="lines">@@ -778,7 +778,7 @@
</span><span class="cx">         documentLoader = static_cast&lt;WebDocumentLoader*&gt;(coreFrame-&gt;loader().documentLoader());
</span><span class="cx"> 
</span><span class="cx">     // Notify the UIProcess.
</span><del>-    if (!webPage-&gt;sendSync(Messages::WebPageProxy::DecidePolicyForNavigationAction(m_frame-&gt;frameID(), documentLoader-&gt;navigationID(), navigationActionData, originatingFrame ? originatingFrame-&gt;frameID() : 0, navigationAction.resourceRequest(), request, listenerID, InjectedBundleUserMessageEncoder(userData.get())), Messages::WebPageProxy::DecidePolicyForNavigationAction::Reply(receivedPolicyAction, newNavigationID, policyAction, downloadID)))
</del><ins>+    if (!webPage-&gt;sendSync(Messages::WebPageProxy::DecidePolicyForNavigationAction(m_frame-&gt;frameID(), documentLoader-&gt;navigationID(), navigationActionData, originatingFrame ? originatingFrame-&gt;frameID() : 0, navigationAction.resourceRequest(), request, listenerID, UserData(WebProcess::shared().transformObjectsToHandles(userData.get()).get())), Messages::WebPageProxy::DecidePolicyForNavigationAction::Reply(receivedPolicyAction, newNavigationID, policyAction, downloadID)))
</ins><span class="cx">         return;
</span><span class="cx"> 
</span><span class="cx">     // We call this synchronously because WebCore cannot gracefully handle a frame load without a synchronous navigation policy reply.
</span><span class="lines">@@ -803,7 +803,7 @@
</span><span class="cx">     webPage-&gt;injectedBundlePolicyClient().unableToImplementPolicy(webPage, m_frame, error, userData);
</span><span class="cx"> 
</span><span class="cx">     // Notify the UIProcess.
</span><del>-    webPage-&gt;send(Messages::WebPageProxy::UnableToImplementPolicy(m_frame-&gt;frameID(), error, InjectedBundleUserMessageEncoder(userData.get())));
</del><ins>+    webPage-&gt;send(Messages::WebPageProxy::UnableToImplementPolicy(m_frame-&gt;frameID(), error, UserData(WebProcess::shared().transformObjectsToHandles(userData.get()).get())));
</ins><span class="cx"> }
</span><span class="cx"> 
</span><span class="cx"> void WebFrameLoaderClient::dispatchWillSendSubmitEvent(PassRefPtr&lt;FormState&gt; prpFormState)
</span><span class="lines">@@ -843,7 +843,7 @@
</span><span class="cx"> 
</span><span class="cx">     uint64_t listenerID = m_frame-&gt;setUpPolicyListener(WTF::move(function));
</span><span class="cx"> 
</span><del>-    webPage-&gt;send(Messages::WebPageProxy::WillSubmitForm(m_frame-&gt;frameID(), sourceFrame-&gt;frameID(), values, listenerID, InjectedBundleUserMessageEncoder(userData.get())));
</del><ins>+    webPage-&gt;send(Messages::WebPageProxy::WillSubmitForm(m_frame-&gt;frameID(), sourceFrame-&gt;frameID(), values, listenerID, UserData(WebProcess::shared().transformObjectsToHandles(userData.get()).get())));
</ins><span class="cx"> }
</span><span class="cx"> 
</span><span class="cx"> void WebFrameLoaderClient::revertToProvisionalState(DocumentLoader*)
</span><span class="lines">@@ -999,7 +999,7 @@
</span><span class="cx">     if (!shouldGoToBackForwardListItem)
</span><span class="cx">         return false;
</span><span class="cx"> 
</span><del>-    webPage-&gt;send(Messages::WebPageProxy::WillGoToBackForwardListItem(itemID, InjectedBundleUserMessageEncoder(userData.get())));
</del><ins>+    webPage-&gt;send(Messages::WebPageProxy::WillGoToBackForwardListItem(itemID, UserData(WebProcess::shared().transformObjectsToHandles(userData.get()).get())));
</ins><span class="cx">     return true;
</span><span class="cx"> }
</span><span class="cx"> 
</span><span class="lines">@@ -1013,7 +1013,7 @@
</span><span class="cx"> 
</span><span class="cx">     webPage-&gt;injectedBundleLoaderClient().didDisplayInsecureContentForFrame(webPage, m_frame, userData);
</span><span class="cx"> 
</span><del>-    webPage-&gt;send(Messages::WebPageProxy::DidDisplayInsecureContentForFrame(m_frame-&gt;frameID(), InjectedBundleUserMessageEncoder(userData.get())));
</del><ins>+    webPage-&gt;send(Messages::WebPageProxy::DidDisplayInsecureContentForFrame(m_frame-&gt;frameID(), UserData(WebProcess::shared().transformObjectsToHandles(userData.get()).get())));
</ins><span class="cx"> }
</span><span class="cx"> 
</span><span class="cx"> void WebFrameLoaderClient::didRunInsecureContent(SecurityOrigin*, const URL&amp;)
</span><span class="lines">@@ -1026,7 +1026,7 @@
</span><span class="cx"> 
</span><span class="cx">     webPage-&gt;injectedBundleLoaderClient().didRunInsecureContentForFrame(webPage, m_frame, userData);
</span><span class="cx"> 
</span><del>-    webPage-&gt;send(Messages::WebPageProxy::DidRunInsecureContentForFrame(m_frame-&gt;frameID(), InjectedBundleUserMessageEncoder(userData.get())));
</del><ins>+    webPage-&gt;send(Messages::WebPageProxy::DidRunInsecureContentForFrame(m_frame-&gt;frameID(), UserData(WebProcess::shared().transformObjectsToHandles(userData.get()).get())));
</ins><span class="cx"> }
</span><span class="cx"> 
</span><span class="cx"> void WebFrameLoaderClient::didDetectXSS(const URL&amp;, bool)
</span><span class="lines">@@ -1039,7 +1039,7 @@
</span><span class="cx"> 
</span><span class="cx">     webPage-&gt;injectedBundleLoaderClient().didDetectXSSForFrame(webPage, m_frame, userData);
</span><span class="cx"> 
</span><del>-    webPage-&gt;send(Messages::WebPageProxy::DidDetectXSSForFrame(m_frame-&gt;frameID(), InjectedBundleUserMessageEncoder(userData.get())));
</del><ins>+    webPage-&gt;send(Messages::WebPageProxy::DidDetectXSSForFrame(m_frame-&gt;frameID(), UserData(WebProcess::shared().transformObjectsToHandles(userData.get()).get())));
</ins><span class="cx"> }
</span><span class="cx"> 
</span><span class="cx"> ResourceError WebFrameLoaderClient::cancelledError(const ResourceRequest&amp; request)
</span></span></pre></div>
<a id="trunkSourceWebKit2WebProcessWebPageWebContextMenucpp"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebKit2/WebProcess/WebPage/WebContextMenu.cpp (177794 => 177795)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebKit2/WebProcess/WebPage/WebContextMenu.cpp        2014-12-29 18:23:44 UTC (rev 177794)
+++ trunk/Source/WebKit2/WebProcess/WebPage/WebContextMenu.cpp        2014-12-29 18:38:07 UTC (rev 177795)
</span><span class="lines">@@ -28,6 +28,7 @@
</span><span class="cx"> #include &quot;ContextMenuContextData.h&quot;
</span><span class="cx"> #include &quot;InjectedBundleHitTestResult.h&quot;
</span><span class="cx"> #include &quot;InjectedBundleUserMessageCoders.h&quot;
</span><ins>+#include &quot;UserData.h&quot;
</ins><span class="cx"> #include &quot;WebCoreArgumentCoders.h&quot;
</span><span class="cx"> #include &quot;WebHitTestResult.h&quot;
</span><span class="cx"> #include &quot;WebPage.h&quot;
</span><span class="lines">@@ -68,7 +69,7 @@
</span><span class="cx"> 
</span><span class="cx">     // Mark the WebPage has having a shown context menu then notify the UIProcess.
</span><span class="cx">     m_page-&gt;contextMenuShowing();
</span><del>-    m_page-&gt;send(Messages::WebPageProxy::ShowContextMenu(view-&gt;contentsToWindow(controller.hitTestResult().roundedPointInInnerNodeFrame()), contextMenuContextData, menuItems, InjectedBundleUserMessageEncoder(userData.get())));
</del><ins>+    m_page-&gt;send(Messages::WebPageProxy::ShowContextMenu(view-&gt;contentsToWindow(controller.hitTestResult().roundedPointInInnerNodeFrame()), contextMenuContextData, menuItems, UserData(WebProcess::shared().transformObjectsToHandles(userData.get()).get())));
</ins><span class="cx"> }
</span><span class="cx"> 
</span><span class="cx"> void WebContextMenu::itemSelected(const WebContextMenuItemData&amp; item)
</span></span></pre></div>
<a id="trunkSourceWebKit2WebProcessWebPagemacWebPageMacmm"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebKit2/WebProcess/WebPage/mac/WebPageMac.mm (177794 => 177795)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebKit2/WebProcess/WebPage/mac/WebPageMac.mm        2014-12-29 18:23:44 UTC (rev 177794)
+++ trunk/Source/WebKit2/WebProcess/WebPage/mac/WebPageMac.mm        2014-12-29 18:38:07 UTC (rev 177795)
</span><span class="lines">@@ -40,6 +40,7 @@
</span><span class="cx"> #import &quot;PageBanner.h&quot;
</span><span class="cx"> #import &quot;PluginView.h&quot;
</span><span class="cx"> #import &quot;PrintInfo.h&quot;
</span><ins>+#import &quot;UserData.h&quot;
</ins><span class="cx"> #import &quot;WKAccessibilityWebPageObjectMac.h&quot;
</span><span class="cx"> #import &quot;WebCoreArgumentCoders.h&quot;
</span><span class="cx"> #import &quot;WebEvent.h&quot;
</span><span class="lines">@@ -991,7 +992,7 @@
</span><span class="cx"> 
</span><span class="cx">     MainFrame&amp; mainFrame = corePage()-&gt;mainFrame();
</span><span class="cx">     if (!mainFrame.view() || !mainFrame.view()-&gt;renderView()) {
</span><del>-        send(Messages::WebPageProxy::DidPerformActionMenuHitTest(ActionMenuHitTestResult(), forImmediateAction, InjectedBundleUserMessageEncoder(nullptr)));
</del><ins>+        send(Messages::WebPageProxy::DidPerformActionMenuHitTest(ActionMenuHitTestResult(), forImmediateAction, UserData()));
</ins><span class="cx">         return;
</span><span class="cx">     }
</span><span class="cx"> 
</span><span class="lines">@@ -1082,7 +1083,7 @@
</span><span class="cx">     RefPtr&lt;InjectedBundleHitTestResult&gt; injectedBundleHitTestResult = InjectedBundleHitTestResult::create(hitTestResult);
</span><span class="cx">     injectedBundleContextMenuClient().prepareForActionMenu(this, injectedBundleHitTestResult.get(), userData);
</span><span class="cx"> 
</span><del>-    send(Messages::WebPageProxy::DidPerformActionMenuHitTest(actionMenuResult, forImmediateAction, InjectedBundleUserMessageEncoder(userData.get())));
</del><ins>+    send(Messages::WebPageProxy::DidPerformActionMenuHitTest(actionMenuResult, forImmediateAction, UserData(WebProcess::shared().transformObjectsToHandles(userData.get()).get())));
</ins><span class="cx"> }
</span><span class="cx"> 
</span><span class="cx"> PassRefPtr&lt;WebCore::Range&gt; WebPage::lookupTextAtLocation(FloatPoint locationInViewCooordinates, NSDictionary **options)
</span></span></pre>
</div>
</div>

</body>
</html>