<!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>[162728] 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/162728">162728</a></dd>
<dt>Author</dt> <dd>andersca@apple.com</dd>
<dt>Date</dt> <dd>2014-01-24 15:14:10 -0800 (Fri, 24 Jan 2014)</dd>
</dl>

<h3>Log Message</h3>
<pre>Get rid of WebLoaderClient
https://bugs.webkit.org/show_bug.cgi?id=127587

Reviewed by Andreas Kling.

Move WebLoaderClient into WKPage.cpp.

* UIProcess/API/C/WKPage.cpp:
(WKPageSetPageLoaderClient):
* UIProcess/API/Cocoa/WKBrowsingContextController.mm:
(-[WKBrowsingContextController setLoadDelegate:]):
* UIProcess/WebLoaderClient.cpp: Removed.
* UIProcess/WebLoaderClient.h: Removed.
* UIProcess/WebPageProxy.h:
* WebKit2.xcodeproj/project.pbxproj:</pre>

<h3>Modified Paths</h3>
<ul>
<li><a href="#trunkSourceWebKit2ChangeLog">trunk/Source/WebKit2/ChangeLog</a></li>
<li><a href="#trunkSourceWebKit2UIProcessAPICWKPagecpp">trunk/Source/WebKit2/UIProcess/API/C/WKPage.cpp</a></li>
<li><a href="#trunkSourceWebKit2UIProcessAPICocoaWKBrowsingContextControllermm">trunk/Source/WebKit2/UIProcess/API/Cocoa/WKBrowsingContextController.mm</a></li>
<li><a href="#trunkSourceWebKit2UIProcessWebPageProxyh">trunk/Source/WebKit2/UIProcess/WebPageProxy.h</a></li>
<li><a href="#trunkSourceWebKit2WebKit2xcodeprojprojectpbxproj">trunk/Source/WebKit2/WebKit2.xcodeproj/project.pbxproj</a></li>
</ul>

<h3>Removed Paths</h3>
<ul>
<li><a href="#trunkSourceWebKit2UIProcessWebLoaderClientcpp">trunk/Source/WebKit2/UIProcess/WebLoaderClient.cpp</a></li>
<li><a href="#trunkSourceWebKit2UIProcessWebLoaderClienth">trunk/Source/WebKit2/UIProcess/WebLoaderClient.h</a></li>
</ul>

</div>
<div id="patch">
<h3>Diff</h3>
<a id="trunkSourceWebKit2ChangeLog"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebKit2/ChangeLog (162727 => 162728)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebKit2/ChangeLog        2014-01-24 23:05:51 UTC (rev 162727)
+++ trunk/Source/WebKit2/ChangeLog        2014-01-24 23:14:10 UTC (rev 162728)
</span><span class="lines">@@ -1,3 +1,21 @@
</span><ins>+2014-01-24  Anders Carlsson  &lt;andersca@apple.com&gt;
+
+        Get rid of WebLoaderClient
+        https://bugs.webkit.org/show_bug.cgi?id=127587
+
+        Reviewed by Andreas Kling.
+
+        Move WebLoaderClient into WKPage.cpp.
+
+        * UIProcess/API/C/WKPage.cpp:
+        (WKPageSetPageLoaderClient):
+        * UIProcess/API/Cocoa/WKBrowsingContextController.mm:
+        (-[WKBrowsingContextController setLoadDelegate:]):
+        * UIProcess/WebLoaderClient.cpp: Removed.
+        * UIProcess/WebLoaderClient.h: Removed.
+        * UIProcess/WebPageProxy.h:
+        * WebKit2.xcodeproj/project.pbxproj:
+
</ins><span class="cx"> 2014-01-24  Brady Eidson  &lt;beidson@apple.com&gt;
</span><span class="cx"> 
</span><span class="cx">         IDB: Support createIndex/deleteIndex
</span></span></pre></div>
<a id="trunkSourceWebKit2UIProcessAPICWKPagecpp"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebKit2/UIProcess/API/C/WKPage.cpp (162727 => 162728)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebKit2/UIProcess/API/C/WKPage.cpp        2014-01-24 23:05:51 UTC (rev 162727)
+++ trunk/Source/WebKit2/UIProcess/API/C/WKPage.cpp        2014-01-24 23:14:10 UTC (rev 162728)
</span><span class="lines">@@ -29,13 +29,15 @@
</span><span class="cx"> 
</span><span class="cx"> #include &quot;APIArray.h&quot;
</span><span class="cx"> #include &quot;APIData.h&quot;
</span><ins>+#include &quot;APILoaderClient.h&quot;
</ins><span class="cx"> #include &quot;APIPolicyClient.h&quot;
</span><ins>+#include &quot;ImmutableDictionary.h&quot;
+#include &quot;PluginInformation.h&quot;
</ins><span class="cx"> #include &quot;PrintInfo.h&quot;
</span><span class="cx"> #include &quot;WKAPICast.h&quot;
</span><span class="cx"> #include &quot;WKPagePolicyClientInternal.h&quot;
</span><span class="cx"> #include &quot;WKPluginInformation.h&quot;
</span><span class="cx"> #include &quot;WebBackForwardList.h&quot;
</span><del>-#include &quot;WebLoaderClient.h&quot;
</del><span class="cx"> #include &quot;WebPageMessages.h&quot;
</span><span class="cx"> #include &quot;WebPageProxy.h&quot;
</span><span class="cx"> #include &quot;WebProcessProxy.h&quot;
</span><span class="lines">@@ -53,6 +55,10 @@
</span><span class="cx"> using namespace WebKit;
</span><span class="cx"> 
</span><span class="cx"> namespace API {
</span><ins>+template&lt;&gt; struct ClientTraits&lt;WKPageLoaderClientBase&gt; {
+    typedef std::tuple&lt;WKPageLoaderClientV0, WKPageLoaderClientV1, WKPageLoaderClientV2, WKPageLoaderClientV3, WKPageLoaderClientV4&gt; Versions;
+};
+
</ins><span class="cx"> template&lt;&gt; struct ClientTraits&lt;WKPagePolicyClientBase&gt; {
</span><span class="cx">     typedef std::tuple&lt;WKPagePolicyClientV0, WKPagePolicyClientV1, WKPagePolicyClientInternal&gt; Versions;
</span><span class="cx"> };
</span><span class="lines">@@ -677,9 +683,297 @@
</span><span class="cx"> 
</span><span class="cx"> void WKPageSetPageLoaderClient(WKPageRef pageRef, const WKPageLoaderClientBase* wkClient)
</span><span class="cx"> {
</span><ins>+    class LoaderClient : public API::Client&lt;WKPageLoaderClientBase&gt;, public API::LoaderClient {
+    public:
+        explicit LoaderClient(const WKPageLoaderClientBase* client)
+        {
+            initialize(client);
+        }
+
+    private:
+        virtual void didStartProvisionalLoadForFrame(WebPageProxy* page, WebFrameProxy* frame, API::Object* userData) override
+        {
+            if (!m_client.didStartProvisionalLoadForFrame)
+                return;
+
+            m_client.didStartProvisionalLoadForFrame(toAPI(page), toAPI(frame), toAPI(userData), m_client.base.clientInfo);
+        }
+
+        virtual void didReceiveServerRedirectForProvisionalLoadForFrame(WebPageProxy* page, WebFrameProxy* frame, API::Object* userData) override
+        {
+            if (!m_client.didReceiveServerRedirectForProvisionalLoadForFrame)
+                return;
+
+            m_client.didReceiveServerRedirectForProvisionalLoadForFrame(toAPI(page), toAPI(frame), toAPI(userData), m_client.base.clientInfo);
+        }
+
+        virtual void didFailProvisionalLoadWithErrorForFrame(WebPageProxy* page, WebFrameProxy* frame, const ResourceError&amp; error, API::Object* userData) override
+        {
+            if (!m_client.didFailProvisionalLoadWithErrorForFrame)
+                return;
+
+            m_client.didFailProvisionalLoadWithErrorForFrame(toAPI(page), toAPI(frame), toAPI(error), toAPI(userData), m_client.base.clientInfo);
+        }
+
+        virtual void didCommitLoadForFrame(WebPageProxy* page, WebFrameProxy* frame, API::Object* userData) override
+        {
+            if (!m_client.didCommitLoadForFrame)
+                return;
+
+            m_client.didCommitLoadForFrame(toAPI(page), toAPI(frame), toAPI(userData), m_client.base.clientInfo);
+        }
+
+        virtual void didFinishDocumentLoadForFrame(WebPageProxy* page, WebFrameProxy* frame, API::Object* userData) override
+        {
+            if (!m_client.didFinishDocumentLoadForFrame)
+                return;
+
+            m_client.didFinishDocumentLoadForFrame(toAPI(page), toAPI(frame), toAPI(userData), m_client.base.clientInfo);
+        }
+
+        virtual void didFinishLoadForFrame(WebPageProxy* page, WebFrameProxy* frame, API::Object* userData) override
+        {
+            if (!m_client.didFinishLoadForFrame)
+                return;
+
+            m_client.didFinishLoadForFrame(toAPI(page), toAPI(frame), toAPI(userData), m_client.base.clientInfo);
+        }
+
+        virtual void didFailLoadWithErrorForFrame(WebPageProxy* page, WebFrameProxy* frame, const ResourceError&amp; error, API::Object* userData) override
+        {
+            if (!m_client.didFailLoadWithErrorForFrame)
+                return;
+
+            m_client.didFailLoadWithErrorForFrame(toAPI(page), toAPI(frame), toAPI(error), toAPI(userData), m_client.base.clientInfo);
+        }
+
+        virtual void didSameDocumentNavigationForFrame(WebPageProxy* page, WebFrameProxy* frame, SameDocumentNavigationType type, API::Object* userData) override
+        {
+            if (!m_client.didSameDocumentNavigationForFrame)
+                return;
+
+            m_client.didSameDocumentNavigationForFrame(toAPI(page), toAPI(frame), toAPI(type), toAPI(userData), m_client.base.clientInfo);
+        }
+
+        virtual void didReceiveTitleForFrame(WebPageProxy* page, const String&amp; title, WebFrameProxy* frame, API::Object* userData) override
+        {
+            if (!m_client.didReceiveTitleForFrame)
+                return;
+
+            m_client.didReceiveTitleForFrame(toAPI(page), toAPI(title.impl()), toAPI(frame), toAPI(userData), m_client.base.clientInfo);
+        }
+
+        virtual void didFirstLayoutForFrame(WebPageProxy* page, WebFrameProxy* frame, API::Object* userData) override
+        {
+            if (!m_client.didFirstLayoutForFrame)
+                return;
+
+            m_client.didFirstLayoutForFrame(toAPI(page), toAPI(frame), toAPI(userData), m_client.base.clientInfo);
+        }
+
+        virtual void didFirstVisuallyNonEmptyLayoutForFrame(WebPageProxy* page, WebFrameProxy* frame, API::Object* userData) override
+        {
+            if (!m_client.didFirstVisuallyNonEmptyLayoutForFrame)
+                return;
+
+            m_client.didFirstVisuallyNonEmptyLayoutForFrame(toAPI(page), toAPI(frame), toAPI(userData), m_client.base.clientInfo);
+        }
+
+        virtual void didLayout(WebPageProxy* page, LayoutMilestones milestones, API::Object* userData) override
+        {
+            if (!m_client.didLayout)
+                return;
+
+            m_client.didLayout(toAPI(page), toWKLayoutMilestones(milestones), toAPI(userData), m_client.base.clientInfo);
+        }
+
+        virtual void didRemoveFrameFromHierarchy(WebPageProxy* page, WebFrameProxy* frame, API::Object* userData) override
+        {
+            if (!m_client.didRemoveFrameFromHierarchy)
+                return;
+
+            m_client.didRemoveFrameFromHierarchy(toAPI(page), toAPI(frame), toAPI(userData), m_client.base.clientInfo);
+        }
+
+        virtual void didDisplayInsecureContentForFrame(WebPageProxy* page, WebFrameProxy* frame, API::Object* userData) override
+        {
+            if (!m_client.didDisplayInsecureContentForFrame)
+                return;
+
+            m_client.didDisplayInsecureContentForFrame(toAPI(page), toAPI(frame), toAPI(userData), m_client.base.clientInfo);
+        }
+
+        virtual void didRunInsecureContentForFrame(WebPageProxy* page, WebFrameProxy* frame, API::Object* userData) override
+        {
+            if (!m_client.didRunInsecureContentForFrame)
+                return;
+
+            m_client.didRunInsecureContentForFrame(toAPI(page), toAPI(frame), toAPI(userData), m_client.base.clientInfo);
+        }
+
+        virtual void didDetectXSSForFrame(WebPageProxy* page, WebFrameProxy* frame, API::Object* userData) override
+        {
+            if (!m_client.didDetectXSSForFrame)
+                return;
+
+            m_client.didDetectXSSForFrame(toAPI(page), toAPI(frame), toAPI(userData), m_client.base.clientInfo);
+        }
+
+        virtual bool canAuthenticateAgainstProtectionSpaceInFrame(WebPageProxy* page, WebFrameProxy* frame, WebProtectionSpace* protectionSpace) override
+        {
+            if (!m_client.canAuthenticateAgainstProtectionSpaceInFrame)
+                return false;
+
+            return m_client.canAuthenticateAgainstProtectionSpaceInFrame(toAPI(page), toAPI(frame), toAPI(protectionSpace), m_client.base.clientInfo);
+        }
+
+        virtual void didReceiveAuthenticationChallengeInFrame(WebPageProxy* page, WebFrameProxy* frame, AuthenticationChallengeProxy* authenticationChallenge) override
+        {
+            if (!m_client.didReceiveAuthenticationChallengeInFrame)
+                return;
+
+            m_client.didReceiveAuthenticationChallengeInFrame(toAPI(page), toAPI(frame), toAPI(authenticationChallenge), m_client.base.clientInfo);
+        }
+
+        virtual void didStartProgress(WebPageProxy* page) override
+        {
+            if (!m_client.didStartProgress)
+                return;
+
+            m_client.didStartProgress(toAPI(page), m_client.base.clientInfo);
+        }
+
+        virtual void didChangeProgress(WebPageProxy* page) override
+        {
+            if (!m_client.didChangeProgress)
+                return;
+
+            m_client.didChangeProgress(toAPI(page), m_client.base.clientInfo);
+        }
+
+        virtual void didFinishProgress(WebPageProxy* page) override
+        {
+            if (!m_client.didFinishProgress)
+                return;
+
+            m_client.didFinishProgress(toAPI(page), m_client.base.clientInfo);
+        }
+
+        virtual void processDidBecomeUnresponsive(WebPageProxy* page) override
+        {
+            if (!m_client.processDidBecomeUnresponsive)
+                return;
+
+            m_client.processDidBecomeUnresponsive(toAPI(page), m_client.base.clientInfo);
+        }
+
+        virtual void interactionOccurredWhileProcessUnresponsive(WebPageProxy* page) override
+        {
+            if (!m_client.interactionOccurredWhileProcessUnresponsive)
+                return;
+
+            m_client.interactionOccurredWhileProcessUnresponsive(toAPI(page), m_client.base.clientInfo);
+        }
+
+        virtual void processDidBecomeResponsive(WebPageProxy* page) override
+        {
+            if (!m_client.processDidBecomeResponsive)
+                return;
+
+            m_client.processDidBecomeResponsive(toAPI(page), m_client.base.clientInfo);
+        }
+
+        virtual void processDidCrash(WebPageProxy* page) override
+        {
+            if (!m_client.processDidCrash)
+                return;
+
+            m_client.processDidCrash(toAPI(page), m_client.base.clientInfo);
+        }
+
+        virtual void didChangeBackForwardList(WebPageProxy* page, WebBackForwardListItem* addedItem, Vector&lt;RefPtr&lt;API::Object&gt;&gt;* removedItems) override
+        {
+            if (!m_client.didChangeBackForwardList)
+                return;
+
+            RefPtr&lt;API::Array&gt; removedItemsArray;
+            if (removedItems &amp;&amp; !removedItems-&gt;isEmpty())
+                removedItemsArray = API::Array::create(std::move(*removedItems));
+
+            m_client.didChangeBackForwardList(toAPI(page), toAPI(addedItem), toAPI(removedItemsArray.get()), m_client.base.clientInfo);
+        }
+
+        virtual void willGoToBackForwardListItem(WebPageProxy* page, WebBackForwardListItem* item, API::Object* userData) override
+        {
+            if (m_client.willGoToBackForwardListItem)
+                m_client.willGoToBackForwardListItem(toAPI(page), toAPI(item), toAPI(userData), m_client.base.clientInfo);
+        }
+
+#if ENABLE(NETSCAPE_PLUGIN_API)
+        virtual void didFailToInitializePlugin(WebPageProxy* page, ImmutableDictionary* pluginInformation) override
+        {
+            if (m_client.didFailToInitializePlugin_deprecatedForUseWithV0)
+                m_client.didFailToInitializePlugin_deprecatedForUseWithV0(toAPI(page), toAPI(pluginInformation-&gt;get&lt;API::String&gt;(pluginInformationMIMETypeKey())), m_client.base.clientInfo);
+
+            if (m_client.pluginDidFail_deprecatedForUseWithV1)
+                m_client.pluginDidFail_deprecatedForUseWithV1(toAPI(page), kWKErrorCodeCannotLoadPlugIn, toAPI(pluginInformation-&gt;get&lt;API::String&gt;(pluginInformationMIMETypeKey())), 0, 0, m_client.base.clientInfo);
+
+            if (m_client.pluginDidFail)
+                m_client.pluginDidFail(toAPI(page), kWKErrorCodeCannotLoadPlugIn, toAPI(pluginInformation), m_client.base.clientInfo);
+        }
+
+        virtual void didBlockInsecurePluginVersion(WebPageProxy* page, ImmutableDictionary* pluginInformation) override
+        {
+            if (m_client.pluginDidFail_deprecatedForUseWithV1)
+                m_client.pluginDidFail_deprecatedForUseWithV1(toAPI(page), kWKErrorCodeInsecurePlugInVersion, toAPI(pluginInformation-&gt;get&lt;API::String&gt;(pluginInformationMIMETypeKey())), toAPI(pluginInformation-&gt;get&lt;API::String&gt;(pluginInformationBundleIdentifierKey())), toAPI(pluginInformation-&gt;get&lt;API::String&gt;(pluginInformationBundleVersionKey())), m_client.base.clientInfo);
+
+            if (m_client.pluginDidFail)
+                m_client.pluginDidFail(toAPI(page), kWKErrorCodeInsecurePlugInVersion, toAPI(pluginInformation), m_client.base.clientInfo);
+        }
+
+        virtual PluginModuleLoadPolicy pluginLoadPolicy(WebPageProxy* page, PluginModuleLoadPolicy currentPluginLoadPolicy, ImmutableDictionary* pluginInformation, String&amp; unavailabilityDescription, String&amp; useBlockedPluginTitle) override
+        {
+            WKStringRef unavailabilityDescriptionOut = 0;
+            WKStringRef useBlockedPluginTitleOut = 0;
+            PluginModuleLoadPolicy loadPolicy = currentPluginLoadPolicy;
+
+            if (m_client.pluginLoadPolicy_deprecatedForUseWithV2)
+                loadPolicy = toPluginModuleLoadPolicy(m_client.pluginLoadPolicy_deprecatedForUseWithV2(toAPI(page), toWKPluginLoadPolicy(currentPluginLoadPolicy), toAPI(pluginInformation), m_client.base.clientInfo));
+            else if (m_client.pluginLoadPolicy_deprecatedForUseWithV3)
+                loadPolicy = toPluginModuleLoadPolicy(m_client.pluginLoadPolicy_deprecatedForUseWithV3(toAPI(page), toWKPluginLoadPolicy(currentPluginLoadPolicy), toAPI(pluginInformation), &amp;unavailabilityDescriptionOut, m_client.base.clientInfo));
+            else if (m_client.pluginLoadPolicy)
+                loadPolicy = toPluginModuleLoadPolicy(m_client.pluginLoadPolicy(toAPI(page), toWKPluginLoadPolicy(currentPluginLoadPolicy), toAPI(pluginInformation), &amp;unavailabilityDescriptionOut, &amp;useBlockedPluginTitleOut, m_client.base.clientInfo));
+
+            if (unavailabilityDescriptionOut) {
+                RefPtr&lt;API::String&gt; webUnavailabilityDescription = adoptRef(toImpl(unavailabilityDescriptionOut));
+                unavailabilityDescription = webUnavailabilityDescription-&gt;string();
+            }
+
+            if (useBlockedPluginTitleOut) {
+                RefPtr&lt;API::String&gt; webUseBlockedPluginTitle = adoptRef(toImpl(useBlockedPluginTitleOut));
+                useBlockedPluginTitle = webUseBlockedPluginTitle-&gt;string();
+            }
+            
+            return loadPolicy;
+        }
+#endif // ENABLE(NETSCAPE_PLUGIN_API)
+
+#if ENABLE(WEBGL)
+        virtual WebCore::WebGLLoadPolicy webGLLoadPolicy(WebPageProxy* page, const String&amp; url) const override
+        {
+            WebCore::WebGLLoadPolicy loadPolicy = WebGLAllow;
+
+            if (m_client.webGLLoadPolicy)
+                loadPolicy = toWebGLLoadPolicy(m_client.webGLLoadPolicy(toAPI(page), toAPI(url.impl()), m_client.base.clientInfo));
+
+            return loadPolicy;
+        }
+#endif // ENABLE(WEBGL)
+    };
+
</ins><span class="cx">     WebPageProxy* webPageProxy = toImpl(pageRef);
</span><span class="cx"> 
</span><del>-    auto loaderClient = std::make_unique&lt;WebLoaderClient&gt;(wkClient);
</del><ins>+    auto loaderClient = std::make_unique&lt;LoaderClient&gt;(wkClient);
</ins><span class="cx"> 
</span><span class="cx">     // It would be nice to get rid of this code and transition all clients to using didLayout instead of
</span><span class="cx">     // didFirstLayoutInFrame and didFirstVisuallyNonEmptyLayoutInFrame. In the meantime, this is required
</span></span></pre></div>
<a id="trunkSourceWebKit2UIProcessAPICocoaWKBrowsingContextControllermm"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebKit2/UIProcess/API/Cocoa/WKBrowsingContextController.mm (162727 => 162728)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebKit2/UIProcess/API/Cocoa/WKBrowsingContextController.mm        2014-01-24 23:05:51 UTC (rev 162727)
+++ trunk/Source/WebKit2/UIProcess/API/Cocoa/WKBrowsingContextController.mm        2014-01-24 23:14:10 UTC (rev 162728)
</span><span class="lines">@@ -737,7 +737,7 @@
</span><span class="cx">     if (loadDelegate)
</span><span class="cx">         setUpPageLoaderClient(self, *_page);
</span><span class="cx">     else
</span><del>-        _page-&gt;setLoaderClient(nullptr);
</del><ins>+        WKPageSetPageLoaderClient(toAPI(_page.get()), nullptr);
</ins><span class="cx"> }
</span><span class="cx"> 
</span><span class="cx"> - (id &lt;WKBrowsingContextPolicyDelegate&gt;)policyDelegate
</span></span></pre></div>
<a id="trunkSourceWebKit2UIProcessWebLoaderClientcpp"></a>
<div class="delfile"><h4>Deleted: trunk/Source/WebKit2/UIProcess/WebLoaderClient.cpp (162727 => 162728)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebKit2/UIProcess/WebLoaderClient.cpp        2014-01-24 23:05:51 UTC (rev 162727)
+++ trunk/Source/WebKit2/UIProcess/WebLoaderClient.cpp        2014-01-24 23:14:10 UTC (rev 162728)
</span><span class="lines">@@ -1,350 +0,0 @@
</span><del>-/*
- * Copyright (C) 2010 Apple Inc. All rights reserved.
- *
- * Redistribution and use in source and binary forms, with or without
- * modification, are permitted provided that the following conditions
- * are met:
- * 1. Redistributions of source code must retain the above copyright
- *    notice, this list of conditions and the following disclaimer.
- * 2. Redistributions in binary form must reproduce the above copyright
- *    notice, this list of conditions and the following disclaimer in the
- *    documentation and/or other materials provided with the distribution.
- *
- * THIS SOFTWARE IS PROVIDED BY APPLE INC. AND ITS CONTRIBUTORS ``AS IS''
- * AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO,
- * THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR
- * PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL APPLE INC. OR ITS CONTRIBUTORS
- * BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
- * CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
- * SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
- * INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
- * CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
- * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF
- * THE POSSIBILITY OF SUCH DAMAGE.
- */
-
-#include &quot;config.h&quot;
-#include &quot;WebLoaderClient.h&quot;
-
-#include &quot;APIArray.h&quot;
-#include &quot;ImmutableDictionary.h&quot;
-#include &quot;PluginInformation.h&quot;
-#include &quot;WKAPICast.h&quot;
-#include &quot;WebBackForwardListItem.h&quot;
-#include &quot;WebPageProxy.h&quot;
-#include &lt;string.h&gt;
-
-using namespace WebCore;
-
-namespace WebKit {
-
-WebLoaderClient::WebLoaderClient(const WKPageLoaderClientBase* client)
-{
-    initialize(client);
-}
-
-void WebLoaderClient::didStartProvisionalLoadForFrame(WebPageProxy* page, WebFrameProxy* frame, API::Object* userData)
-{
-    if (!m_client.didStartProvisionalLoadForFrame)
-        return;
-
-    m_client.didStartProvisionalLoadForFrame(toAPI(page), toAPI(frame), toAPI(userData), m_client.base.clientInfo);
-}
-
-void WebLoaderClient::didReceiveServerRedirectForProvisionalLoadForFrame(WebPageProxy* page, WebFrameProxy* frame, API::Object* userData)
-{
-    if (!m_client.didReceiveServerRedirectForProvisionalLoadForFrame)
-        return;
-
-    m_client.didReceiveServerRedirectForProvisionalLoadForFrame(toAPI(page), toAPI(frame), toAPI(userData), m_client.base.clientInfo);
-}
-
-void WebLoaderClient::didFailProvisionalLoadWithErrorForFrame(WebPageProxy* page, WebFrameProxy* frame, const ResourceError&amp; error, API::Object* userData)
-{
-    if (!m_client.didFailProvisionalLoadWithErrorForFrame)
-        return;
-
-    m_client.didFailProvisionalLoadWithErrorForFrame(toAPI(page), toAPI(frame), toAPI(error), toAPI(userData), m_client.base.clientInfo);
-}
-
-void WebLoaderClient::didCommitLoadForFrame(WebPageProxy* page, WebFrameProxy* frame, API::Object* userData)
-{
-    if (!m_client.didCommitLoadForFrame)
-        return;
-
-    m_client.didCommitLoadForFrame(toAPI(page), toAPI(frame), toAPI(userData), m_client.base.clientInfo);
-}
-
-void WebLoaderClient::didFinishDocumentLoadForFrame(WebPageProxy* page, WebFrameProxy* frame, API::Object* userData)
-{
-    if (!m_client.didFinishDocumentLoadForFrame)
-        return;
-
-    m_client.didFinishDocumentLoadForFrame(toAPI(page), toAPI(frame), toAPI(userData), m_client.base.clientInfo);
-}
-
-void WebLoaderClient::didFinishLoadForFrame(WebPageProxy* page, WebFrameProxy* frame, API::Object* userData)
-{
-    if (!m_client.didFinishLoadForFrame)
-        return;
-
-    m_client.didFinishLoadForFrame(toAPI(page), toAPI(frame), toAPI(userData), m_client.base.clientInfo);
-}
-
-void WebLoaderClient::didFailLoadWithErrorForFrame(WebPageProxy* page, WebFrameProxy* frame, const ResourceError&amp; error, API::Object* userData)
-{
-    if (!m_client.didFailLoadWithErrorForFrame)
-        return;
-
-    m_client.didFailLoadWithErrorForFrame(toAPI(page), toAPI(frame), toAPI(error), toAPI(userData), m_client.base.clientInfo);
-}
-
-void WebLoaderClient::didSameDocumentNavigationForFrame(WebPageProxy* page, WebFrameProxy* frame, SameDocumentNavigationType type, API::Object* userData)
-{
-    if (!m_client.didSameDocumentNavigationForFrame)
-        return;
-
-    m_client.didSameDocumentNavigationForFrame(toAPI(page), toAPI(frame), toAPI(type), toAPI(userData), m_client.base.clientInfo);
-}
-
-void WebLoaderClient::didReceiveTitleForFrame(WebPageProxy* page, const String&amp; title, WebFrameProxy* frame, API::Object* userData)
-{
-    if (!m_client.didReceiveTitleForFrame)
-        return;
-
-    m_client.didReceiveTitleForFrame(toAPI(page), toAPI(title.impl()), toAPI(frame), toAPI(userData), m_client.base.clientInfo);
-}
-
-void WebLoaderClient::didFirstLayoutForFrame(WebPageProxy* page, WebFrameProxy* frame, API::Object* userData)
-{
-    if (!m_client.didFirstLayoutForFrame)
-        return;
-
-    m_client.didFirstLayoutForFrame(toAPI(page), toAPI(frame), toAPI(userData), m_client.base.clientInfo);
-}
-
-void WebLoaderClient::didFirstVisuallyNonEmptyLayoutForFrame(WebPageProxy* page, WebFrameProxy* frame, API::Object* userData)
-{
-    if (!m_client.didFirstVisuallyNonEmptyLayoutForFrame)
-        return;
-
-    m_client.didFirstVisuallyNonEmptyLayoutForFrame(toAPI(page), toAPI(frame), toAPI(userData), m_client.base.clientInfo);
-}
-
-void WebLoaderClient::didLayout(WebPageProxy* page, LayoutMilestones milestones, API::Object* userData)
-{
-    if (!m_client.didLayout)
-        return;
-
-    m_client.didLayout(toAPI(page), toWKLayoutMilestones(milestones), toAPI(userData), m_client.base.clientInfo);
-}
-
-void WebLoaderClient::didRemoveFrameFromHierarchy(WebPageProxy* page, WebFrameProxy* frame, API::Object* userData)
-{
-    if (!m_client.didRemoveFrameFromHierarchy)
-        return;
-
-    m_client.didRemoveFrameFromHierarchy(toAPI(page), toAPI(frame), toAPI(userData), m_client.base.clientInfo);
-}
-
-void WebLoaderClient::didDisplayInsecureContentForFrame(WebPageProxy* page, WebFrameProxy* frame, API::Object* userData)
-{
-    if (!m_client.didDisplayInsecureContentForFrame)
-        return;
-
-    m_client.didDisplayInsecureContentForFrame(toAPI(page), toAPI(frame), toAPI(userData), m_client.base.clientInfo);
-}
-
-void WebLoaderClient::didRunInsecureContentForFrame(WebPageProxy* page, WebFrameProxy* frame, API::Object* userData)
-{
-    if (!m_client.didRunInsecureContentForFrame)
-        return;
-
-    m_client.didRunInsecureContentForFrame(toAPI(page), toAPI(frame), toAPI(userData), m_client.base.clientInfo);
-}
-
-void WebLoaderClient::didDetectXSSForFrame(WebPageProxy* page, WebFrameProxy* frame, API::Object* userData)
-{
-    if (!m_client.didDetectXSSForFrame)
-        return;
-
-    m_client.didDetectXSSForFrame(toAPI(page), toAPI(frame), toAPI(userData), m_client.base.clientInfo);
-}
-
-bool WebLoaderClient::canAuthenticateAgainstProtectionSpaceInFrame(WebPageProxy* page, WebFrameProxy* frame, WebProtectionSpace* protectionSpace)
-{
-    if (!m_client.canAuthenticateAgainstProtectionSpaceInFrame)
-        return false;
-
-    return m_client.canAuthenticateAgainstProtectionSpaceInFrame(toAPI(page), toAPI(frame), toAPI(protectionSpace), m_client.base.clientInfo);
-}
-
-void WebLoaderClient::didReceiveAuthenticationChallengeInFrame(WebPageProxy* page, WebFrameProxy* frame, AuthenticationChallengeProxy* authenticationChallenge)
-{
-    if (!m_client.didReceiveAuthenticationChallengeInFrame)
-        return;
-
-    m_client.didReceiveAuthenticationChallengeInFrame(toAPI(page), toAPI(frame), toAPI(authenticationChallenge), m_client.base.clientInfo);
-}
-
-void WebLoaderClient::didStartProgress(WebPageProxy* page)
-{
-    if (!m_client.didStartProgress)
-        return;
-
-    m_client.didStartProgress(toAPI(page), m_client.base.clientInfo);
-}
-
-void WebLoaderClient::didChangeProgress(WebPageProxy* page)
-{
-    if (!m_client.didChangeProgress)
-        return;
-
-    m_client.didChangeProgress(toAPI(page), m_client.base.clientInfo);
-}
-
-void WebLoaderClient::didFinishProgress(WebPageProxy* page)
-{
-    if (!m_client.didFinishProgress)
-        return;
-
-    m_client.didFinishProgress(toAPI(page), m_client.base.clientInfo);
-}
-
-void WebLoaderClient::processDidBecomeUnresponsive(WebPageProxy* page)
-{
-    if (!m_client.processDidBecomeUnresponsive)
-        return;
-
-    m_client.processDidBecomeUnresponsive(toAPI(page), m_client.base.clientInfo);
-}
-
-void WebLoaderClient::interactionOccurredWhileProcessUnresponsive(WebPageProxy* page)
-{
-    if (!m_client.interactionOccurredWhileProcessUnresponsive)
-        return;
-
-    m_client.interactionOccurredWhileProcessUnresponsive(toAPI(page), m_client.base.clientInfo);
-}
-
-void WebLoaderClient::processDidBecomeResponsive(WebPageProxy* page)
-{
-    if (!m_client.processDidBecomeResponsive)
-        return;
-
-    m_client.processDidBecomeResponsive(toAPI(page), m_client.base.clientInfo);
-}
-
-void WebLoaderClient::processDidCrash(WebPageProxy* page)
-{
-    if (!m_client.processDidCrash)
-        return;
-
-    m_client.processDidCrash(toAPI(page), m_client.base.clientInfo);
-}
-
-void WebLoaderClient::didChangeBackForwardList(WebPageProxy* page, WebBackForwardListItem* addedItem, Vector&lt;RefPtr&lt;API::Object&gt;&gt;* removedItems)
-{
-    if (!m_client.didChangeBackForwardList)
-        return;
-
-    RefPtr&lt;API::Array&gt; removedItemsArray;
-    if (removedItems &amp;&amp; !removedItems-&gt;isEmpty())
-        removedItemsArray = API::Array::create(std::move(*removedItems));
-
-    m_client.didChangeBackForwardList(toAPI(page), toAPI(addedItem), toAPI(removedItemsArray.get()), m_client.base.clientInfo);
-}
-
-void WebLoaderClient::willGoToBackForwardListItem(WebPageProxy* page, WebBackForwardListItem* item, API::Object* userData)
-{
-    if (m_client.willGoToBackForwardListItem)
-        m_client.willGoToBackForwardListItem(toAPI(page), toAPI(item), toAPI(userData), m_client.base.clientInfo);
-}
-
-#if ENABLE(NETSCAPE_PLUGIN_API)
-
-void WebLoaderClient::didFailToInitializePlugin(WebPageProxy* page, ImmutableDictionary* pluginInformation)
-{
-    if (m_client.didFailToInitializePlugin_deprecatedForUseWithV0)
-        m_client.didFailToInitializePlugin_deprecatedForUseWithV0(
-            toAPI(page),
-            toAPI(pluginInformation-&gt;get&lt;API::String&gt;(pluginInformationMIMETypeKey())),
-            m_client.base.clientInfo);
-
-    if (m_client.pluginDidFail_deprecatedForUseWithV1)
-        m_client.pluginDidFail_deprecatedForUseWithV1(
-            toAPI(page),
-            kWKErrorCodeCannotLoadPlugIn,
-            toAPI(pluginInformation-&gt;get&lt;API::String&gt;(pluginInformationMIMETypeKey())),
-            0,
-            0,
-            m_client.base.clientInfo);
-
-    if (m_client.pluginDidFail)
-        m_client.pluginDidFail(
-            toAPI(page),
-            kWKErrorCodeCannotLoadPlugIn,
-            toAPI(pluginInformation),
-            m_client.base.clientInfo);
-}
-
-void WebLoaderClient::didBlockInsecurePluginVersion(WebPageProxy* page, ImmutableDictionary* pluginInformation)
-{
-    if (m_client.pluginDidFail_deprecatedForUseWithV1)
-        m_client.pluginDidFail_deprecatedForUseWithV1(
-            toAPI(page),
-            kWKErrorCodeInsecurePlugInVersion,
-            toAPI(pluginInformation-&gt;get&lt;API::String&gt;(pluginInformationMIMETypeKey())),
-            toAPI(pluginInformation-&gt;get&lt;API::String&gt;(pluginInformationBundleIdentifierKey())),
-            toAPI(pluginInformation-&gt;get&lt;API::String&gt;(pluginInformationBundleVersionKey())),
-            m_client.base.clientInfo);
-
-    if (m_client.pluginDidFail)
-        m_client.pluginDidFail(
-            toAPI(page),
-            kWKErrorCodeInsecurePlugInVersion,
-            toAPI(pluginInformation),
-            m_client.base.clientInfo);
-}
-
-PluginModuleLoadPolicy WebLoaderClient::pluginLoadPolicy(WebPageProxy* page, PluginModuleLoadPolicy currentPluginLoadPolicy, ImmutableDictionary* pluginInformation, String&amp; unavailabilityDescription, String&amp; useBlockedPluginTitle)
-{
-    WKStringRef unavailabilityDescriptionOut = 0;
-    WKStringRef useBlockedPluginTitleOut = 0;
-    PluginModuleLoadPolicy loadPolicy = currentPluginLoadPolicy;
-
-    if (m_client.pluginLoadPolicy_deprecatedForUseWithV2)
-        loadPolicy = toPluginModuleLoadPolicy(m_client.pluginLoadPolicy_deprecatedForUseWithV2(toAPI(page), toWKPluginLoadPolicy(currentPluginLoadPolicy), toAPI(pluginInformation), m_client.base.clientInfo));
-    else if (m_client.pluginLoadPolicy_deprecatedForUseWithV3)
-        loadPolicy = toPluginModuleLoadPolicy(m_client.pluginLoadPolicy_deprecatedForUseWithV3(toAPI(page), toWKPluginLoadPolicy(currentPluginLoadPolicy), toAPI(pluginInformation), &amp;unavailabilityDescriptionOut, m_client.base.clientInfo));
-    else if (m_client.pluginLoadPolicy)
-        loadPolicy = toPluginModuleLoadPolicy(m_client.pluginLoadPolicy(toAPI(page), toWKPluginLoadPolicy(currentPluginLoadPolicy), toAPI(pluginInformation), &amp;unavailabilityDescriptionOut, &amp;useBlockedPluginTitleOut, m_client.base.clientInfo));
-
-    if (unavailabilityDescriptionOut) {
-        RefPtr&lt;API::String&gt; webUnavailabilityDescription = adoptRef(toImpl(unavailabilityDescriptionOut));
-        unavailabilityDescription = webUnavailabilityDescription-&gt;string();
-    }
-
-    if (useBlockedPluginTitleOut) {
-        RefPtr&lt;API::String&gt; webUseBlockedPluginTitle = adoptRef(toImpl(useBlockedPluginTitleOut));
-        useBlockedPluginTitle = webUseBlockedPluginTitle-&gt;string();
-    }
-    
-    return loadPolicy;
-}
-
-#endif // ENABLE(NETSCAPE_PLUGIN_API)
-
-#if ENABLE(WEBGL)
-WebCore::WebGLLoadPolicy WebLoaderClient::webGLLoadPolicy(WebPageProxy* page, const String&amp; url) const
-{
-    WebCore::WebGLLoadPolicy loadPolicy = WebGLAllow;
-
-    if (m_client.webGLLoadPolicy)
-        loadPolicy = toWebGLLoadPolicy(m_client.webGLLoadPolicy(toAPI(page), toAPI(url.impl()), m_client.base.clientInfo));
-
-    return loadPolicy;
-}
-#endif // ENABLE(WEBGL)
-
-} // namespace WebKit
</del></span></pre></div>
<a id="trunkSourceWebKit2UIProcessWebLoaderClienth"></a>
<div class="delfile"><h4>Deleted: trunk/Source/WebKit2/UIProcess/WebLoaderClient.h (162727 => 162728)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebKit2/UIProcess/WebLoaderClient.h        2014-01-24 23:05:51 UTC (rev 162727)
+++ trunk/Source/WebKit2/UIProcess/WebLoaderClient.h        2014-01-24 23:14:10 UTC (rev 162728)
</span><span class="lines">@@ -1,110 +0,0 @@
</span><del>-/*
- * Copyright (C) 2010 Apple Inc. All rights reserved.
- *
- * Redistribution and use in source and binary forms, with or without
- * modification, are permitted provided that the following conditions
- * are met:
- * 1. Redistributions of source code must retain the above copyright
- *    notice, this list of conditions and the following disclaimer.
- * 2. Redistributions in binary form must reproduce the above copyright
- *    notice, this list of conditions and the following disclaimer in the
- *    documentation and/or other materials provided with the distribution.
- *
- * THIS SOFTWARE IS PROVIDED BY APPLE INC. AND ITS CONTRIBUTORS ``AS IS''
- * AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO,
- * THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR
- * PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL APPLE INC. OR ITS CONTRIBUTORS
- * BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
- * CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
- * SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
- * INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
- * CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
- * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF
- * THE POSSIBILITY OF SUCH DAMAGE.
- */
-
-#ifndef WebLoaderClient_h
-#define WebLoaderClient_h
-
-#include &quot;APIClient.h&quot;
-#include &quot;APILoaderClient.h&quot;
-#include &quot;WKPageLoaderClient.h&quot;
-
-namespace API {
-class Object;
-
-template&lt;&gt; struct ClientTraits&lt;WKPageLoaderClientBase&gt; {
-    typedef std::tuple&lt;WKPageLoaderClientV0, WKPageLoaderClientV1, WKPageLoaderClientV2, WKPageLoaderClientV3, WKPageLoaderClientV4&gt; Versions;
-};
-}
-
-namespace WebCore {
-class ResourceError;
-}
-
-namespace WebKit {
-
-class AuthenticationChallengeProxy;
-class AuthenticationDecisionListener;
-class ImmutableDictionary;
-class WebBackForwardListItem;
-class WebFrameProxy;
-class WebPageProxy;
-class WebProtectionSpace;
-
-class WebLoaderClient : public API::Client&lt;WKPageLoaderClientBase&gt;, public API::LoaderClient {
-public:
-    explicit WebLoaderClient(const WKPageLoaderClientBase*);
-
-private:
-    virtual void didStartProvisionalLoadForFrame(WebPageProxy*, WebFrameProxy*, API::Object*) override;
-    virtual void didReceiveServerRedirectForProvisionalLoadForFrame(WebPageProxy*, WebFrameProxy*, API::Object*);
-    virtual void didFailProvisionalLoadWithErrorForFrame(WebPageProxy*, WebFrameProxy*, const WebCore::ResourceError&amp;, API::Object*) override;
-    virtual void didCommitLoadForFrame(WebPageProxy*, WebFrameProxy*, API::Object*) override;
-    virtual void didFinishDocumentLoadForFrame(WebPageProxy*, WebFrameProxy*, API::Object*) override;
-    virtual void didFinishLoadForFrame(WebPageProxy*, WebFrameProxy*, API::Object*) override;
-    virtual void didFailLoadWithErrorForFrame(WebPageProxy*, WebFrameProxy*, const WebCore::ResourceError&amp;, API::Object*) override;
-    virtual void didSameDocumentNavigationForFrame(WebPageProxy*, WebFrameProxy*, SameDocumentNavigationType, API::Object*) override;
-    virtual void didReceiveTitleForFrame(WebPageProxy*, const WTF::String&amp;, WebFrameProxy*, API::Object*) override;
-    virtual void didFirstLayoutForFrame(WebPageProxy*, WebFrameProxy*, API::Object*) override;
-
-    // FIXME: We should consider removing didFirstVisuallyNonEmptyLayoutForFrame since it is replaced by didLayout.
-    virtual void didFirstVisuallyNonEmptyLayoutForFrame(WebPageProxy*, WebFrameProxy*, API::Object*) override;
-
-    virtual void didRemoveFrameFromHierarchy(WebPageProxy*, WebFrameProxy*, API::Object*) override;
-    virtual void didDisplayInsecureContentForFrame(WebPageProxy*, WebFrameProxy*, API::Object*) override;
-    virtual void didRunInsecureContentForFrame(WebPageProxy*, WebFrameProxy*, API::Object*) override;
-    virtual void didDetectXSSForFrame(WebPageProxy*, WebFrameProxy*, API::Object*) override;
-
-    virtual void didLayout(WebPageProxy*, WebCore::LayoutMilestones, API::Object*) override;
-    
-    bool canAuthenticateAgainstProtectionSpaceInFrame(WebPageProxy*, WebFrameProxy*, WebProtectionSpace*) override;
-    virtual void didReceiveAuthenticationChallengeInFrame(WebPageProxy*, WebFrameProxy*, AuthenticationChallengeProxy*) override;
-
-    virtual void didStartProgress(WebPageProxy*) override;
-    virtual void didChangeProgress(WebPageProxy*) override;
-    virtual void didFinishProgress(WebPageProxy*) override;
-
-    // FIXME: These three functions should not be part of this client.
-    virtual void processDidBecomeUnresponsive(WebPageProxy*) override;
-    virtual void interactionOccurredWhileProcessUnresponsive(WebPageProxy*) override;
-    virtual void processDidBecomeResponsive(WebPageProxy*) override;
-    virtual void processDidCrash(WebPageProxy*) override;
-
-    virtual void didChangeBackForwardList(WebPageProxy*, WebBackForwardListItem* addedItem, Vector&lt;RefPtr&lt;API::Object&gt;&gt;* removedItems) override;
-    virtual void willGoToBackForwardListItem(WebPageProxy*, WebBackForwardListItem*, API::Object*) override;
-
-#if ENABLE(NETSCAPE_PLUGIN_API)
-    PluginModuleLoadPolicy pluginLoadPolicy(WebPageProxy*, PluginModuleLoadPolicy currentPluginLoadPolicy, ImmutableDictionary*, WTF::String&amp; unavailabilityDescription, WTF::String&amp; useBlockedPluginTitle) override;
-    virtual void didFailToInitializePlugin(WebPageProxy*, ImmutableDictionary*) override;
-    virtual void didBlockInsecurePluginVersion(WebPageProxy*, ImmutableDictionary*) override;
-#endif // ENABLE(NETSCAPE_PLUGIN_API)
-
-#if ENABLE(WEBGL)
-    WebCore::WebGLLoadPolicy webGLLoadPolicy(WebPageProxy*, const WTF::String&amp;) const;
-#endif // ENABLE(WEBGL)
-};
-
-} // namespace WebKit
-
-#endif // WebLoaderClient_h
</del></span></pre></div>
<a id="trunkSourceWebKit2UIProcessWebPageProxyh"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebKit2/UIProcess/WebPageProxy.h (162727 => 162728)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebKit2/UIProcess/WebPageProxy.h        2014-01-24 23:05:51 UTC (rev 162727)
+++ trunk/Source/WebKit2/UIProcess/WebPageProxy.h        2014-01-24 23:14:10 UTC (rev 162728)
</span><span class="lines">@@ -52,7 +52,6 @@
</span><span class="cx"> #include &quot;WebFrameProxy.h&quot;
</span><span class="cx"> #include &quot;WebHistoryClient.h&quot;
</span><span class="cx"> #include &quot;WebHitTestResult.h&quot;
</span><del>-#include &quot;WebLoaderClient.h&quot;
</del><span class="cx"> #include &quot;WebPageContextMenuClient.h&quot;
</span><span class="cx"> #include &quot;WebPageCreationParameters.h&quot;
</span><span class="cx"> #include &lt;WebCore/AlternativeTextClient.h&gt; // FIXME: Needed by WebPageProxyMessages.h for DICTATION_ALTERNATIVES.
</span></span></pre></div>
<a id="trunkSourceWebKit2WebKit2xcodeprojprojectpbxproj"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebKit2/WebKit2.xcodeproj/project.pbxproj (162727 => 162728)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebKit2/WebKit2.xcodeproj/project.pbxproj        2014-01-24 23:05:51 UTC (rev 162727)
+++ trunk/Source/WebKit2/WebKit2.xcodeproj/project.pbxproj        2014-01-24 23:14:10 UTC (rev 162728)
</span><span class="lines">@@ -1069,7 +1069,6 @@
</span><span class="cx">                 BC5750971268F3C6006F0F12 /* WebPopupMenuProxyMac.h in Headers */ = {isa = PBXBuildFile; fileRef = BC5750951268F3C6006F0F12 /* WebPopupMenuProxyMac.h */; };
</span><span class="cx">                 BC5750981268F3C6006F0F12 /* WebPopupMenuProxyMac.mm in Sources */ = {isa = PBXBuildFile; fileRef = BC5750961268F3C6006F0F12 /* WebPopupMenuProxyMac.mm */; };
</span><span class="cx">                 BC575613126E0138006F0F12 /* APIError.cpp in Sources */ = {isa = PBXBuildFile; fileRef = BC575612126E0138006F0F12 /* APIError.cpp */; };
</span><del>-                BC59534210FC04520098F82D /* WebLoaderClient.h in Headers */ = {isa = PBXBuildFile; fileRef = BC59534010FC04520098F82D /* WebLoaderClient.h */; };
</del><span class="cx">                 BC59548915C7868500FD1E3E /* WebKit2.h in Headers */ = {isa = PBXBuildFile; fileRef = BC59548815C7868500FD1E3E /* WebKit2.h */; settings = {ATTRIBUTES = (Private, ); }; };
</span><span class="cx">                 BC597075116591D000551FCA /* ProcessModel.h in Headers */ = {isa = PBXBuildFile; fileRef = BC597074116591D000551FCA /* ProcessModel.h */; };
</span><span class="cx">                 BC5C75C814954DA600BC4775 /* WKConnectionInternal.h in Headers */ = {isa = PBXBuildFile; fileRef = BC5C75C614954DA600BC4775 /* WKConnectionInternal.h */; };
</span><span class="lines">@@ -1191,7 +1190,6 @@
</span><span class="cx">                 BCB9E2441120DACA00A137E0 /* WebContext.cpp in Sources */ = {isa = PBXBuildFile; fileRef = BCB9E2421120DACA00A137E0 /* WebContext.cpp */; };
</span><span class="cx">                 BCB9E24B1120E15C00A137E0 /* WKContext.h in Headers */ = {isa = PBXBuildFile; fileRef = BCB9E2491120E15C00A137E0 /* WKContext.h */; settings = {ATTRIBUTES = (Private, ); }; };
</span><span class="cx">                 BCB9E24C1120E15C00A137E0 /* WKContext.cpp in Sources */ = {isa = PBXBuildFile; fileRef = BCB9E24A1120E15C00A137E0 /* WKContext.cpp */; };
</span><del>-                BCB9E76211232B9E00A137E0 /* WebLoaderClient.cpp in Sources */ = {isa = PBXBuildFile; fileRef = BCB9E76111232B9E00A137E0 /* WebLoaderClient.cpp */; };
</del><span class="cx">                 BCB9F6A01123A84B00A137E0 /* WebFramePolicyListenerProxy.h in Headers */ = {isa = PBXBuildFile; fileRef = BCB9F69E1123A84B00A137E0 /* WebFramePolicyListenerProxy.h */; };
</span><span class="cx">                 BCB9F6A11123A84B00A137E0 /* WebFramePolicyListenerProxy.cpp in Sources */ = {isa = PBXBuildFile; fileRef = BCB9F69F1123A84B00A137E0 /* WebFramePolicyListenerProxy.cpp */; };
</span><span class="cx">                 BCB9F6A51123DD0D00A137E0 /* WKFramePolicyListener.h in Headers */ = {isa = PBXBuildFile; fileRef = BCB9F6A31123DD0D00A137E0 /* WKFramePolicyListener.h */; settings = {ATTRIBUTES = (Private, ); }; };
</span><span class="lines">@@ -2793,7 +2791,6 @@
</span><span class="cx">                 BC5750951268F3C6006F0F12 /* WebPopupMenuProxyMac.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = WebPopupMenuProxyMac.h; sourceTree = &quot;&lt;group&gt;&quot;; };
</span><span class="cx">                 BC5750961268F3C6006F0F12 /* WebPopupMenuProxyMac.mm */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.objcpp; path = WebPopupMenuProxyMac.mm; sourceTree = &quot;&lt;group&gt;&quot;; };
</span><span class="cx">                 BC575612126E0138006F0F12 /* APIError.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = APIError.cpp; sourceTree = &quot;&lt;group&gt;&quot;; };
</span><del>-                BC59534010FC04520098F82D /* WebLoaderClient.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = WebLoaderClient.h; sourceTree = &quot;&lt;group&gt;&quot;; };
</del><span class="cx">                 BC59548815C7868500FD1E3E /* WebKit2.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = WebKit2.h; sourceTree = &quot;&lt;group&gt;&quot;; };
</span><span class="cx">                 BC597074116591D000551FCA /* ProcessModel.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = ProcessModel.h; sourceTree = &quot;&lt;group&gt;&quot;; };
</span><span class="cx">                 BC5C75C614954DA600BC4775 /* WKConnectionInternal.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = WKConnectionInternal.h; sourceTree = &quot;&lt;group&gt;&quot;; };
</span><span class="lines">@@ -2918,7 +2915,6 @@
</span><span class="cx">                 BCB9E2421120DACA00A137E0 /* WebContext.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = WebContext.cpp; sourceTree = &quot;&lt;group&gt;&quot;; };
</span><span class="cx">                 BCB9E2491120E15C00A137E0 /* WKContext.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = WKContext.h; sourceTree = &quot;&lt;group&gt;&quot;; };
</span><span class="cx">                 BCB9E24A1120E15C00A137E0 /* WKContext.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = WKContext.cpp; sourceTree = &quot;&lt;group&gt;&quot;; };
</span><del>-                BCB9E76111232B9E00A137E0 /* WebLoaderClient.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = WebLoaderClient.cpp; sourceTree = &quot;&lt;group&gt;&quot;; };
</del><span class="cx">                 BCB9F69E1123A84B00A137E0 /* WebFramePolicyListenerProxy.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = WebFramePolicyListenerProxy.h; sourceTree = &quot;&lt;group&gt;&quot;; };
</span><span class="cx">                 BCB9F69F1123A84B00A137E0 /* WebFramePolicyListenerProxy.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = WebFramePolicyListenerProxy.cpp; sourceTree = &quot;&lt;group&gt;&quot;; };
</span><span class="cx">                 BCB9F6A31123DD0D00A137E0 /* WKFramePolicyListener.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = WKFramePolicyListener.h; sourceTree = &quot;&lt;group&gt;&quot;; };
</span><span class="lines">@@ -4969,8 +4965,6 @@
</span><span class="cx">                                 1C77C1951288A872006A742F /* WebInspectorProxy.messages.in */,
</span><span class="cx">                                 51A9E1021315CCFC009E7031 /* WebKeyValueStorageManager.cpp */,
</span><span class="cx">                                 51A9E1031315CCFC009E7031 /* WebKeyValueStorageManager.h */,
</span><del>-                                BCB9E76111232B9E00A137E0 /* WebLoaderClient.cpp */,
-                                BC59534010FC04520098F82D /* WebLoaderClient.h */,
</del><span class="cx">                                 33D3A3B71339606200709BE4 /* WebMediaCacheManagerProxy.cpp */,
</span><span class="cx">                                 33D3A3B81339606200709BE4 /* WebMediaCacheManagerProxy.h */,
</span><span class="cx">                                 33D3A3B91339606200709BE4 /* WebMediaCacheManagerProxy.messages.in */,
</span><span class="lines">@@ -6473,7 +6467,6 @@
</span><span class="cx">                                 1AE00D611831792100087DD7 /* FrameLoadState.h in Headers */,
</span><span class="cx">                                 BCB63478116BF10600603215 /* WebKit2_C.h in Headers */,
</span><span class="cx">                                 BC9BA5051697C45300E44616 /* WebKit2Initialize.h in Headers */,
</span><del>-                                BC59534210FC04520098F82D /* WebLoaderClient.h in Headers */,
</del><span class="cx">                                 33D3A3C2133960B000709BE4 /* WebMediaCacheManager.h in Headers */,
</span><span class="cx">                                 2D125C5E1857EA05003BA3CB /* ViewGestureController.h in Headers */,
</span><span class="cx">                                 33D3A3C91339617900709BE4 /* WebMediaCacheManagerMessages.h in Headers */,
</span><span class="lines">@@ -7863,7 +7856,6 @@
</span><span class="cx">                                 C0337DD3127A2A0E008FF4F4 /* WebKeyboardEvent.cpp in Sources */,
</span><span class="cx">                                 51A9E1051315CCFC009E7031 /* WebKeyValueStorageManager.cpp in Sources */,
</span><span class="cx">                                 BC9BA5041697C45300E44616 /* WebKit2Initialize.cpp in Sources */,
</span><del>-                                BCB9E76211232B9E00A137E0 /* WebLoaderClient.cpp in Sources */,
</del><span class="cx">                                 33D3A3C1133960B000709BE4 /* WebMediaCacheManager.cpp in Sources */,
</span><span class="cx">                                 33D3A3C81339617900709BE4 /* WebMediaCacheManagerMessageReceiver.cpp in Sources */,
</span><span class="cx">                                 2DA944B31884E9EC00ED86DB /* WebProcessIOS.mm in Sources */,
</span></span></pre>
</div>
</div>

</body>
</html>