<!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>[183498] trunk/Source</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/183498">183498</a></dd>
<dt>Author</dt> <dd>beidson@apple.com</dd>
<dt>Date</dt> <dd>2015-04-28 12:38:13 -0700 (Tue, 28 Apr 2015)</dd>
</dl>

<h3>Log Message</h3>
<pre>Consolidate most &quot;frame load&quot; arguments into FrameLoadRequest.
https://bugs.webkit.org/show_bug.cgi?id=144276

Reviewed by Alexey Proskuryakov.

Source/WebCore:

No new tests (No change in behavior).

This patch starts the long overdue process of wrangling the insane load methods in FrameLoader.

Humble beginnings of this long process:
- Put most of the various &quot;frame load&quot; arguments that are passed around within FrameLoader on FrameLoadRequest.
- Get rid of the &quot;easy&quot; constructors of FrameLoadRequest, forcing users to actually think about what they're doing.
- Change a private FrameLoader load method (urlSelected) to take a FrameLoadRequest instead of argument gobbledygook.
- Change a public FrameLoader load methods (changeLocation) to take a FrameLoadRequest instead of gobbledygook.

These cover the straightforward changes where it was easy to figure out what the values of the FrameLoadRequest
arguments were from these various call sites.

Further refactoring can be done in much smaller patches, handling fewer cases at a time. Little by little we will be
able to reduce the number of &quot;load&quot; methods on FrameLoader and make sure that they mainly only take a FrameLoadRequest
as an argument.

* inspector/InspectorFrontendClientLocal.cpp:
(WebCore::InspectorFrontendClientLocal::openInNewTab):

* inspector/InspectorPageAgent.cpp:
(WebCore::InspectorPageAgent::navigate):

* loader/FrameLoadRequest.cpp:
(WebCore::FrameLoadRequest::FrameLoadRequest):
* loader/FrameLoadRequest.h:
(WebCore::FrameLoadRequest::FrameLoadRequest):
(WebCore::FrameLoadRequest::lockHistory):
(WebCore::FrameLoadRequest::lockBackForwardList):
(WebCore::FrameLoadRequest::shouldSendReferrer):
(WebCore::FrameLoadRequest::allowNavigationToInvalidURL):
(WebCore::FrameLoadRequest::newFrameOpenerPolicy):
(WebCore::FrameLoadRequest::shouldReplaceDocumentIfJavaScriptURL):

* loader/FrameLoader.cpp:
(WebCore::FrameLoader::changeLocation):
(WebCore::FrameLoader::urlSelected):
(WebCore::FrameLoader::loadFrameRequest):
* loader/FrameLoader.h:

* loader/NavigationScheduler.cpp:
(WebCore::NavigationScheduler::scheduleLocationChange):

* page/ContextMenuController.cpp:
(WebCore::openNewWindow):
(WebCore::ContextMenuController::contextMenuItemSelected):

* page/DOMWindow.cpp:
(WebCore::DOMWindow::createWindow):

Source/WebKit/ios:

* WebView/WebPDFViewPlaceholder.mm:
(-[WebPDFViewPlaceholder simulateClickOnLinkToURL:]):

Source/WebKit/mac:

* WebView/WebPDFView.mm:
(-[WebPDFView PDFViewWillClickOnLink:withURL:]):

Source/WebKit/win:

* Plugins/PluginView.cpp:
(WebCore::PluginView::start):
(WebCore::PluginView::getURLNotify):
(WebCore::PluginView::getURL):
(WebCore::PluginView::handlePost):

Source/WebKit2:

* WebProcess/Plugins/PluginView.cpp:
(WebKit::PluginView::loadURL):

* WebProcess/WebCoreSupport/WebFrameLoaderClient.cpp:
(WebKit::WebFrameLoaderClient::dispatchCreatePage):

* WebProcess/WebPage/WebInspector.cpp:
(WebKit::WebInspector::openInNewTab):</pre>

<h3>Modified Paths</h3>
<ul>
<li><a href="#trunkSourceWebCoreChangeLog">trunk/Source/WebCore/ChangeLog</a></li>
<li><a href="#trunkSourceWebCoreinspectorInspectorFrontendClientLocalcpp">trunk/Source/WebCore/inspector/InspectorFrontendClientLocal.cpp</a></li>
<li><a href="#trunkSourceWebCoreinspectorInspectorPageAgentcpp">trunk/Source/WebCore/inspector/InspectorPageAgent.cpp</a></li>
<li><a href="#trunkSourceWebCoreloaderFrameLoadRequestcpp">trunk/Source/WebCore/loader/FrameLoadRequest.cpp</a></li>
<li><a href="#trunkSourceWebCoreloaderFrameLoadRequesth">trunk/Source/WebCore/loader/FrameLoadRequest.h</a></li>
<li><a href="#trunkSourceWebCoreloaderFrameLoadercpp">trunk/Source/WebCore/loader/FrameLoader.cpp</a></li>
<li><a href="#trunkSourceWebCoreloaderFrameLoaderh">trunk/Source/WebCore/loader/FrameLoader.h</a></li>
<li><a href="#trunkSourceWebCoreloaderNavigationSchedulercpp">trunk/Source/WebCore/loader/NavigationScheduler.cpp</a></li>
<li><a href="#trunkSourceWebCorepageContextMenuControllercpp">trunk/Source/WebCore/page/ContextMenuController.cpp</a></li>
<li><a href="#trunkSourceWebCorepageDOMWindowcpp">trunk/Source/WebCore/page/DOMWindow.cpp</a></li>
<li><a href="#trunkSourceWebKitiosChangeLog">trunk/Source/WebKit/ios/ChangeLog</a></li>
<li><a href="#trunkSourceWebKitiosWebViewWebPDFViewPlaceholdermm">trunk/Source/WebKit/ios/WebView/WebPDFViewPlaceholder.mm</a></li>
<li><a href="#trunkSourceWebKitmacChangeLog">trunk/Source/WebKit/mac/ChangeLog</a></li>
<li><a href="#trunkSourceWebKitmacWebViewWebPDFViewmm">trunk/Source/WebKit/mac/WebView/WebPDFView.mm</a></li>
<li><a href="#trunkSourceWebKitwinChangeLog">trunk/Source/WebKit/win/ChangeLog</a></li>
<li><a href="#trunkSourceWebKitwinPluginsPluginViewcpp">trunk/Source/WebKit/win/Plugins/PluginView.cpp</a></li>
<li><a href="#trunkSourceWebKit2ChangeLog">trunk/Source/WebKit2/ChangeLog</a></li>
<li><a href="#trunkSourceWebKit2WebProcessPluginsPluginViewcpp">trunk/Source/WebKit2/WebProcess/Plugins/PluginView.cpp</a></li>
<li><a href="#trunkSourceWebKit2WebProcessWebCoreSupportWebFrameLoaderClientcpp">trunk/Source/WebKit2/WebProcess/WebCoreSupport/WebFrameLoaderClient.cpp</a></li>
<li><a href="#trunkSourceWebKit2WebProcessWebPageWebInspectorcpp">trunk/Source/WebKit2/WebProcess/WebPage/WebInspector.cpp</a></li>
</ul>

</div>
<div id="patch">
<h3>Diff</h3>
<a id="trunkSourceWebCoreChangeLog"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebCore/ChangeLog (183497 => 183498)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebCore/ChangeLog        2015-04-28 19:27:23 UTC (rev 183497)
+++ trunk/Source/WebCore/ChangeLog        2015-04-28 19:38:13 UTC (rev 183498)
</span><span class="lines">@@ -1,3 +1,60 @@
</span><ins>+2015-04-28  Brady Eidson  &lt;beidson@apple.com&gt;
+
+        Consolidate most &quot;frame load&quot; arguments into FrameLoadRequest.
+        https://bugs.webkit.org/show_bug.cgi?id=144276
+
+        Reviewed by Alexey Proskuryakov.
+
+        No new tests (No change in behavior).
+        
+        This patch starts the long overdue process of wrangling the insane load methods in FrameLoader.
+        
+        Humble beginnings of this long process:
+        - Put most of the various &quot;frame load&quot; arguments that are passed around within FrameLoader on FrameLoadRequest.
+        - Get rid of the &quot;easy&quot; constructors of FrameLoadRequest, forcing users to actually think about what they're doing.
+        - Change a private FrameLoader load method (urlSelected) to take a FrameLoadRequest instead of argument gobbledygook.
+        - Change a public FrameLoader load methods (changeLocation) to take a FrameLoadRequest instead of gobbledygook.
+        
+        These cover the straightforward changes where it was easy to figure out what the values of the FrameLoadRequest
+        arguments were from these various call sites.
+        
+        Further refactoring can be done in much smaller patches, handling fewer cases at a time. Little by little we will be
+        able to reduce the number of &quot;load&quot; methods on FrameLoader and make sure that they mainly only take a FrameLoadRequest
+        as an argument.
+
+        * inspector/InspectorFrontendClientLocal.cpp:
+        (WebCore::InspectorFrontendClientLocal::openInNewTab):
+        
+        * inspector/InspectorPageAgent.cpp:
+        (WebCore::InspectorPageAgent::navigate):
+        
+        * loader/FrameLoadRequest.cpp:
+        (WebCore::FrameLoadRequest::FrameLoadRequest):
+        * loader/FrameLoadRequest.h:
+        (WebCore::FrameLoadRequest::FrameLoadRequest):
+        (WebCore::FrameLoadRequest::lockHistory):
+        (WebCore::FrameLoadRequest::lockBackForwardList):
+        (WebCore::FrameLoadRequest::shouldSendReferrer):
+        (WebCore::FrameLoadRequest::allowNavigationToInvalidURL):
+        (WebCore::FrameLoadRequest::newFrameOpenerPolicy):
+        (WebCore::FrameLoadRequest::shouldReplaceDocumentIfJavaScriptURL):
+        
+        * loader/FrameLoader.cpp:
+        (WebCore::FrameLoader::changeLocation):
+        (WebCore::FrameLoader::urlSelected):
+        (WebCore::FrameLoader::loadFrameRequest):
+        * loader/FrameLoader.h:
+        
+        * loader/NavigationScheduler.cpp:
+        (WebCore::NavigationScheduler::scheduleLocationChange):
+        
+        * page/ContextMenuController.cpp:
+        (WebCore::openNewWindow):
+        (WebCore::ContextMenuController::contextMenuItemSelected):
+        
+        * page/DOMWindow.cpp:
+        (WebCore::DOMWindow::createWindow):
+
</ins><span class="cx"> 2015-04-27  Myles C. Maxfield  &lt;mmaxfield@apple.com&gt;
</span><span class="cx"> 
</span><span class="cx">         [Mac] [iOS] Implement font-synthesis CSS property
</span></span></pre></div>
<a id="trunkSourceWebCoreinspectorInspectorFrontendClientLocalcpp"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebCore/inspector/InspectorFrontendClientLocal.cpp (183497 => 183498)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebCore/inspector/InspectorFrontendClientLocal.cpp        2015-04-28 19:27:23 UTC (rev 183497)
+++ trunk/Source/WebCore/inspector/InspectorFrontendClientLocal.cpp        2015-04-28 19:38:13 UTC (rev 183498)
</span><span class="lines">@@ -210,7 +210,7 @@
</span><span class="cx"> {
</span><span class="cx">     UserGestureIndicator indicator(DefinitelyProcessingUserGesture);
</span><span class="cx">     Frame&amp; mainFrame = m_inspectorController-&gt;inspectedPage().mainFrame();
</span><del>-    FrameLoadRequest request(mainFrame.document()-&gt;securityOrigin(), ResourceRequest(), &quot;_blank&quot;);
</del><ins>+    FrameLoadRequest request(mainFrame.document()-&gt;securityOrigin(), ResourceRequest(), &quot;_blank&quot;, LockHistory::No, LockBackForwardList::No, MaybeSendReferrer, AllowNavigationToInvalidURL::Yes, NewFrameOpenerPolicy::Allow, ReplaceDocumentIfJavaScriptURL);
</ins><span class="cx"> 
</span><span class="cx">     bool created;
</span><span class="cx">     WindowFeatures windowFeatures;
</span><span class="lines">@@ -222,7 +222,9 @@
</span><span class="cx">     frame-&gt;page()-&gt;setOpenedByDOM();
</span><span class="cx"> 
</span><span class="cx">     // FIXME: Why does one use mainFrame and the other frame?
</span><del>-    frame-&gt;loader().changeLocation(mainFrame.document()-&gt;securityOrigin(), frame-&gt;document()-&gt;completeURL(url), &quot;&quot;, LockHistory::No, LockBackForwardList::No);
</del><ins>+    ResourceRequest resourceRequest(frame-&gt;document()-&gt;completeURL(url));
+    FrameLoadRequest frameRequest(mainFrame.document()-&gt;securityOrigin(), resourceRequest, emptyString(), LockHistory::No, LockBackForwardList::No, MaybeSendReferrer, AllowNavigationToInvalidURL::Yes, NewFrameOpenerPolicy::Allow, ReplaceDocumentIfJavaScriptURL);
+    frame-&gt;loader().changeLocation(frameRequest);
</ins><span class="cx"> }
</span><span class="cx"> 
</span><span class="cx"> void InspectorFrontendClientLocal::moveWindowBy(float x, float y)
</span></span></pre></div>
<a id="trunkSourceWebCoreinspectorInspectorPageAgentcpp"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebCore/inspector/InspectorPageAgent.cpp (183497 => 183498)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebCore/inspector/InspectorPageAgent.cpp        2015-04-28 19:27:23 UTC (rev 183497)
+++ trunk/Source/WebCore/inspector/InspectorPageAgent.cpp        2015-04-28 19:38:13 UTC (rev 183498)
</span><span class="lines">@@ -45,6 +45,7 @@
</span><span class="cx"> #include &quot;Document.h&quot;
</span><span class="cx"> #include &quot;DocumentLoader.h&quot;
</span><span class="cx"> #include &quot;Frame.h&quot;
</span><ins>+#include &quot;FrameLoadRequest.h&quot;
</ins><span class="cx"> #include &quot;FrameLoader.h&quot;
</span><span class="cx"> #include &quot;FrameSnapshotting.h&quot;
</span><span class="cx"> #include &quot;FrameView.h&quot;
</span><span class="lines">@@ -416,7 +417,10 @@
</span><span class="cx"> {
</span><span class="cx">     UserGestureIndicator indicator(DefinitelyProcessingUserGesture);
</span><span class="cx">     Frame&amp; frame = m_page-&gt;mainFrame();
</span><del>-    frame.loader().changeLocation(frame.document()-&gt;securityOrigin(), frame.document()-&gt;completeURL(url), &quot;&quot;, LockHistory::No, LockBackForwardList::No);
</del><ins>+
+    ResourceRequest resourceRequest(frame.document()-&gt;completeURL(url));
+    FrameLoadRequest frameRequest(frame.document()-&gt;securityOrigin(), resourceRequest, emptyString(), LockHistory::No, LockBackForwardList::No, MaybeSendReferrer, AllowNavigationToInvalidURL::No, NewFrameOpenerPolicy::Allow, ShouldReplaceDocumentIfJavaScriptURL::ReplaceDocumentIfJavaScriptURL);
+    frame.loader().changeLocation(frameRequest);
</ins><span class="cx"> }
</span><span class="cx"> 
</span><span class="cx"> static Ref&lt;Inspector::Protocol::Page::Cookie&gt; buildObjectForCookie(const Cookie&amp; cookie)
</span></span></pre></div>
<a id="trunkSourceWebCoreloaderFrameLoadRequestcpp"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebCore/loader/FrameLoadRequest.cpp (183497 => 183498)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebCore/loader/FrameLoadRequest.cpp        2015-04-28 19:27:23 UTC (rev 183497)
+++ trunk/Source/WebCore/loader/FrameLoadRequest.cpp        2015-04-28 19:38:13 UTC (rev 183498)
</span><span class="lines">@@ -41,6 +41,12 @@
</span><span class="cx">     , m_resourceRequest(resourceRequest)
</span><span class="cx">     , m_shouldCheckNewWindowPolicy(false)
</span><span class="cx">     , m_substituteData(substituteData)
</span><ins>+    , m_lockHistory(LockHistory::No)
+    , m_lockBackForwardList(LockBackForwardList::No)
+    , m_shouldSendReferrer(MaybeSendReferrer)
+    , m_allowNavigationToInvalidURL(AllowNavigationToInvalidURL::Yes)
+    , m_newFrameOpenerPolicy(NewFrameOpenerPolicy::Allow)
+    , m_shouldReplaceDocumentIfJavaScriptURL(ReplaceDocumentIfJavaScriptURL)
</ins><span class="cx"> {
</span><span class="cx"> }
</span><span class="cx"> 
</span></span></pre></div>
<a id="trunkSourceWebCoreloaderFrameLoadRequesth"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebCore/loader/FrameLoadRequest.h (183497 => 183498)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebCore/loader/FrameLoadRequest.h        2015-04-28 19:27:23 UTC (rev 183497)
+++ trunk/Source/WebCore/loader/FrameLoadRequest.h        2015-04-28 19:38:13 UTC (rev 183498)
</span><span class="lines">@@ -26,6 +26,7 @@
</span><span class="cx"> #ifndef FrameLoadRequest_h
</span><span class="cx"> #define FrameLoadRequest_h
</span><span class="cx"> 
</span><ins>+#include &quot;FrameLoaderTypes.h&quot;
</ins><span class="cx"> #include &quot;ResourceRequest.h&quot;
</span><span class="cx"> #include &quot;SecurityOrigin.h&quot;
</span><span class="cx"> #include &quot;SubstituteData.h&quot;
</span><span class="lines">@@ -35,24 +36,42 @@
</span><span class="cx"> 
</span><span class="cx"> struct FrameLoadRequest {
</span><span class="cx"> public:
</span><del>-    explicit FrameLoadRequest(SecurityOrigin* requester)
</del><ins>+    FrameLoadRequest(SecurityOrigin* requester, LockHistory lockHistory, LockBackForwardList lockBackForwardList, ShouldSendReferrer shouldSendReferrer, AllowNavigationToInvalidURL allowNavigationToInvalidURL, NewFrameOpenerPolicy newFrameOpenerPolicy)
</ins><span class="cx">         : m_requester(requester)
</span><span class="cx">         , m_shouldCheckNewWindowPolicy(false)
</span><ins>+        , m_lockHistory(lockHistory)
+        , m_lockBackForwardList(lockBackForwardList)
+        , m_shouldSendReferrer(shouldSendReferrer)
+        , m_allowNavigationToInvalidURL(allowNavigationToInvalidURL)
+        , m_newFrameOpenerPolicy(newFrameOpenerPolicy)
+        , m_shouldReplaceDocumentIfJavaScriptURL(ReplaceDocumentIfJavaScriptURL)
</ins><span class="cx">     {
</span><span class="cx">     }
</span><span class="cx"> 
</span><del>-    FrameLoadRequest(SecurityOrigin* requester, const ResourceRequest&amp; resourceRequest)
</del><ins>+    FrameLoadRequest(SecurityOrigin* requester, const ResourceRequest&amp; resourceRequest, LockHistory lockHistory, LockBackForwardList lockBackForwardList, ShouldSendReferrer shouldSendReferrer, AllowNavigationToInvalidURL allowNavigationToInvalidURL, NewFrameOpenerPolicy newFrameOpenerPolicy)
</ins><span class="cx">         : m_requester(requester)
</span><span class="cx">         , m_resourceRequest(resourceRequest)
</span><span class="cx">         , m_shouldCheckNewWindowPolicy(false)
</span><ins>+        , m_lockHistory(lockHistory)
+        , m_lockBackForwardList(lockBackForwardList)
+        , m_shouldSendReferrer(shouldSendReferrer)
+        , m_allowNavigationToInvalidURL(allowNavigationToInvalidURL)
+        , m_newFrameOpenerPolicy(newFrameOpenerPolicy)
+        , m_shouldReplaceDocumentIfJavaScriptURL(ReplaceDocumentIfJavaScriptURL)
</ins><span class="cx">     {
</span><span class="cx">     }
</span><span class="cx"> 
</span><del>-    FrameLoadRequest(SecurityOrigin* requester, const ResourceRequest&amp; resourceRequest, const String&amp; frameName)
</del><ins>+    FrameLoadRequest(SecurityOrigin* requester, const ResourceRequest&amp; resourceRequest, const String&amp; frameName, LockHistory lockHistory, LockBackForwardList lockBackForwardList, ShouldSendReferrer shouldSendReferrer, AllowNavigationToInvalidURL allowNavigationToInvalidURL, NewFrameOpenerPolicy newFrameOpenerPolicy, ShouldReplaceDocumentIfJavaScriptURL shouldReplaceDocumentIfJavaScriptURL)
</ins><span class="cx">         : m_requester(requester)
</span><span class="cx">         , m_resourceRequest(resourceRequest)
</span><span class="cx">         , m_frameName(frameName)
</span><span class="cx">         , m_shouldCheckNewWindowPolicy(false)
</span><ins>+        , m_lockHistory(lockHistory)
+        , m_lockBackForwardList(lockBackForwardList)
+        , m_shouldSendReferrer(shouldSendReferrer)
+        , m_allowNavigationToInvalidURL(allowNavigationToInvalidURL)
+        , m_newFrameOpenerPolicy(newFrameOpenerPolicy)
+        , m_shouldReplaceDocumentIfJavaScriptURL(shouldReplaceDocumentIfJavaScriptURL)
</ins><span class="cx">     {
</span><span class="cx">     }
</span><span class="cx"> 
</span><span class="lines">@@ -75,12 +94,29 @@
</span><span class="cx">     void setSubstituteData(const SubstituteData&amp; data) { m_substituteData = data; }
</span><span class="cx">     bool hasSubstituteData() { return m_substituteData.isValid(); }
</span><span class="cx"> 
</span><ins>+    LockHistory lockHistory() const { return m_lockHistory; }
+    LockBackForwardList lockBackForwardList() const { return m_lockBackForwardList; }
+    ShouldSendReferrer shouldSendReferrer() const { return m_shouldSendReferrer; }
+    AllowNavigationToInvalidURL allowNavigationToInvalidURL() const { return m_allowNavigationToInvalidURL; }
+    NewFrameOpenerPolicy newFrameOpenerPolicy() const { return m_newFrameOpenerPolicy; }
+
+    // The shouldReplaceDocumentIfJavaScriptURL parameter will go away when the FIXME to eliminate the
+    // corresponding parameter from ScriptController::executeIfJavaScriptURL() is addressed.
+    ShouldReplaceDocumentIfJavaScriptURL shouldReplaceDocumentIfJavaScriptURL() const { return m_shouldReplaceDocumentIfJavaScriptURL; }
+
</ins><span class="cx"> private:
</span><span class="cx">     RefPtr&lt;SecurityOrigin&gt; m_requester;
</span><span class="cx">     ResourceRequest m_resourceRequest;
</span><span class="cx">     String m_frameName;
</span><span class="cx">     bool m_shouldCheckNewWindowPolicy;
</span><span class="cx">     SubstituteData m_substituteData;
</span><ins>+
+    LockHistory m_lockHistory;
+    LockBackForwardList m_lockBackForwardList;
+    ShouldSendReferrer m_shouldSendReferrer;
+    AllowNavigationToInvalidURL m_allowNavigationToInvalidURL;
+    NewFrameOpenerPolicy m_newFrameOpenerPolicy;
+    ShouldReplaceDocumentIfJavaScriptURL m_shouldReplaceDocumentIfJavaScriptURL;
</ins><span class="cx"> };
</span><span class="cx"> 
</span><span class="cx"> }
</span></span></pre></div>
<a id="trunkSourceWebCoreloaderFrameLoadercpp"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebCore/loader/FrameLoader.cpp (183497 => 183498)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebCore/loader/FrameLoader.cpp        2015-04-28 19:27:23 UTC (rev 183497)
+++ trunk/Source/WebCore/loader/FrameLoader.cpp        2015-04-28 19:38:13 UTC (rev 183498)
</span><span class="lines">@@ -313,26 +313,24 @@
</span><span class="cx">     }
</span><span class="cx"> }
</span><span class="cx"> 
</span><del>-void FrameLoader::changeLocation(SecurityOrigin* securityOrigin, const URL&amp; url, const String&amp; referrer, LockHistory lockHistory, LockBackForwardList lockBackForwardList, bool refresh, AllowNavigationToInvalidURL allowNavigationToInvalidURL)
</del><ins>+void FrameLoader::changeLocation(const FrameLoadRequest&amp; request)
</ins><span class="cx"> {
</span><del>-    urlSelected(FrameLoadRequest(securityOrigin, ResourceRequest(url, referrer, refresh ? ReloadIgnoringCacheData : UseProtocolCachePolicy), &quot;_self&quot;),
-        0, lockHistory, lockBackForwardList, MaybeSendReferrer, ReplaceDocumentIfJavaScriptURL, allowNavigationToInvalidURL);
</del><ins>+    urlSelected(request, nullptr);
</ins><span class="cx"> }
</span><span class="cx"> 
</span><span class="cx"> void FrameLoader::urlSelected(const URL&amp; url, const String&amp; passedTarget, PassRefPtr&lt;Event&gt; triggeringEvent, LockHistory lockHistory, LockBackForwardList lockBackForwardList, ShouldSendReferrer shouldSendReferrer)
</span><span class="cx"> {
</span><del>-    urlSelected(FrameLoadRequest(m_frame.document()-&gt;securityOrigin(), ResourceRequest(url), passedTarget),
-        triggeringEvent, lockHistory, lockBackForwardList, shouldSendReferrer, DoNotReplaceDocumentIfJavaScriptURL, AllowNavigationToInvalidURL::Yes);
</del><ins>+    NewFrameOpenerPolicy newFrameOpenerPolicy = shouldSendReferrer == NeverSendReferrer ? NewFrameOpenerPolicy::Suppress : NewFrameOpenerPolicy::Allow;
+
+    urlSelected(FrameLoadRequest(m_frame.document()-&gt;securityOrigin(), ResourceRequest(url), passedTarget, lockHistory, lockBackForwardList, shouldSendReferrer, AllowNavigationToInvalidURL::Yes, newFrameOpenerPolicy, DoNotReplaceDocumentIfJavaScriptURL), triggeringEvent);
</ins><span class="cx"> }
</span><span class="cx"> 
</span><del>-// The shouldReplaceDocumentIfJavaScriptURL parameter will go away when the FIXME to eliminate the
-// corresponding parameter from ScriptController::executeIfJavaScriptURL() is addressed.
-void FrameLoader::urlSelected(const FrameLoadRequest&amp; passedRequest, PassRefPtr&lt;Event&gt; triggeringEvent, LockHistory lockHistory, LockBackForwardList lockBackForwardList, ShouldSendReferrer shouldSendReferrer, ShouldReplaceDocumentIfJavaScriptURL shouldReplaceDocumentIfJavaScriptURL, AllowNavigationToInvalidURL allowNavigationToInvalidURL)
</del><ins>+void FrameLoader::urlSelected(const FrameLoadRequest&amp; passedRequest, PassRefPtr&lt;Event&gt; triggeringEvent)
</ins><span class="cx"> {
</span><span class="cx">     Ref&lt;Frame&gt; protect(m_frame);
</span><span class="cx">     FrameLoadRequest frameRequest(passedRequest);
</span><span class="cx"> 
</span><del>-    if (m_frame.script().executeIfJavaScriptURL(frameRequest.resourceRequest().url(), shouldReplaceDocumentIfJavaScriptURL))
</del><ins>+    if (m_frame.script().executeIfJavaScriptURL(frameRequest.resourceRequest().url(), frameRequest.shouldReplaceDocumentIfJavaScriptURL()))
</ins><span class="cx">         return;
</span><span class="cx"> 
</span><span class="cx">     if (frameRequest.frameName().isEmpty())
</span><span class="lines">@@ -340,9 +338,7 @@
</span><span class="cx"> 
</span><span class="cx">     addHTTPOriginIfNeeded(frameRequest.resourceRequest(), outgoingOrigin());
</span><span class="cx"> 
</span><del>-    NewFrameOpenerPolicy openerPolicy = (shouldSendReferrer == NeverSendReferrer) ? NewFrameOpenerPolicy::Suppress : NewFrameOpenerPolicy::Allow;
-
-    loadFrameRequest(frameRequest, lockHistory, lockBackForwardList, triggeringEvent, 0, shouldSendReferrer, allowNavigationToInvalidURL, openerPolicy);
</del><ins>+    loadFrameRequest(frameRequest, triggeringEvent, nullptr);
</ins><span class="cx"> }
</span><span class="cx"> 
</span><span class="cx"> void FrameLoader::submitForm(PassRefPtr&lt;FormSubmission&gt; submission)
</span><span class="lines">@@ -1144,8 +1140,7 @@
</span><span class="cx">     detachChildren();
</span><span class="cx"> }
</span><span class="cx"> 
</span><del>-void FrameLoader::loadFrameRequest(const FrameLoadRequest&amp; request, LockHistory lockHistory, LockBackForwardList lockBackForwardList,
-    PassRefPtr&lt;Event&gt; event, PassRefPtr&lt;FormState&gt; formState, ShouldSendReferrer shouldSendReferrer, AllowNavigationToInvalidURL allowNavigationToInvalidURL, NewFrameOpenerPolicy openerPolicy)
</del><ins>+void FrameLoader::loadFrameRequest(const FrameLoadRequest&amp; request, PassRefPtr&lt;Event&gt; event, PassRefPtr&lt;FormState&gt; formState)
</ins><span class="cx"> {    
</span><span class="cx">     // Protect frame from getting blown away inside dispatchBeforeLoadEvent in loadWithDocumentLoader.
</span><span class="cx">     Ref&lt;Frame&gt; protect(m_frame);
</span><span class="lines">@@ -1163,21 +1158,21 @@
</span><span class="cx">         argsReferrer = outgoingReferrer();
</span><span class="cx"> 
</span><span class="cx">     String referrer = SecurityPolicy::generateReferrerHeader(m_frame.document()-&gt;referrerPolicy(), url, argsReferrer);
</span><del>-    if (shouldSendReferrer == NeverSendReferrer)
</del><ins>+    if (request.shouldSendReferrer() == NeverSendReferrer)
</ins><span class="cx">         referrer = String();
</span><del>-    
</del><ins>+
</ins><span class="cx">     FrameLoadType loadType;
</span><span class="cx">     if (request.resourceRequest().cachePolicy() == ReloadIgnoringCacheData)
</span><span class="cx">         loadType = FrameLoadType::Reload;
</span><del>-    else if (lockBackForwardList == LockBackForwardList::Yes)
</del><ins>+    else if (request.lockBackForwardList() == LockBackForwardList::Yes)
</ins><span class="cx">         loadType = FrameLoadType::RedirectWithLockedBackForwardList;
</span><span class="cx">     else
</span><span class="cx">         loadType = FrameLoadType::Standard;
</span><span class="cx"> 
</span><span class="cx">     if (request.resourceRequest().httpMethod() == &quot;POST&quot;)
</span><del>-        loadPostRequest(request.resourceRequest(), referrer, request.frameName(), lockHistory, loadType, event, formState.get(), allowNavigationToInvalidURL, openerPolicy);
</del><ins>+        loadPostRequest(request.resourceRequest(), referrer, request.frameName(), request.lockHistory(), loadType, event, formState.get(), request.allowNavigationToInvalidURL(), request.newFrameOpenerPolicy());
</ins><span class="cx">     else
</span><del>-        loadURL(request.resourceRequest().url(), referrer, request.frameName(), lockHistory, loadType, event, formState.get(), allowNavigationToInvalidURL, openerPolicy);
</del><ins>+        loadURL(request.resourceRequest().url(), referrer, request.frameName(), request.lockHistory(), loadType, event, formState.get(), request.allowNavigationToInvalidURL(), request.newFrameOpenerPolicy());
</ins><span class="cx"> 
</span><span class="cx">     // FIXME: It's possible this targetFrame will not be the same frame that was targeted by the actual
</span><span class="cx">     // load if frame names have changed.
</span></span></pre></div>
<a id="trunkSourceWebCoreloaderFrameLoaderh"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebCore/loader/FrameLoader.h (183497 => 183498)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebCore/loader/FrameLoader.h        2015-04-28 19:27:23 UTC (rev 183497)
+++ trunk/Source/WebCore/loader/FrameLoader.h        2015-04-28 19:38:13 UTC (rev 183498)
</span><span class="lines">@@ -108,8 +108,7 @@
</span><span class="cx"> 
</span><span class="cx">     // FIXME: These are all functions which start loads. We have too many.
</span><span class="cx">     WEBCORE_EXPORT void loadURLIntoChildFrame(const URL&amp;, const String&amp; referer, Frame*);
</span><del>-    WEBCORE_EXPORT void loadFrameRequest(const FrameLoadRequest&amp;, LockHistory, LockBackForwardList, // Called by submitForm, calls loadPostRequest and loadURL.
-        PassRefPtr&lt;Event&gt;, PassRefPtr&lt;FormState&gt;, ShouldSendReferrer, AllowNavigationToInvalidURL, NewFrameOpenerPolicy);
</del><ins>+    WEBCORE_EXPORT void loadFrameRequest(const FrameLoadRequest&amp;, PassRefPtr&lt;Event&gt;, PassRefPtr&lt;FormState&gt;); // Called by submitForm, calls loadPostRequest and loadURL.
</ins><span class="cx"> 
</span><span class="cx">     WEBCORE_EXPORT void load(const FrameLoadRequest&amp;);
</span><span class="cx"> 
</span><span class="lines">@@ -118,8 +117,7 @@
</span><span class="cx"> #endif
</span><span class="cx">     unsigned long loadResourceSynchronously(const ResourceRequest&amp;, StoredCredentials, ClientCredentialPolicy, ResourceError&amp;, ResourceResponse&amp;, Vector&lt;char&gt;&amp; data);
</span><span class="cx"> 
</span><del>-    void changeLocation(SecurityOrigin*, const URL&amp;, const String&amp; referrer, LockHistory = LockHistory::Yes,
-        LockBackForwardList = LockBackForwardList::Yes, bool refresh = false, AllowNavigationToInvalidURL = AllowNavigationToInvalidURL::Yes);
</del><ins>+    void changeLocation(const FrameLoadRequest&amp;);
</ins><span class="cx">     WEBCORE_EXPORT void urlSelected(const URL&amp;, const String&amp; target, PassRefPtr&lt;Event&gt;, LockHistory, LockBackForwardList, ShouldSendReferrer);
</span><span class="cx">     void submitForm(PassRefPtr&lt;FormSubmission&gt;);
</span><span class="cx"> 
</span><span class="lines">@@ -342,7 +340,7 @@
</span><span class="cx"> 
</span><span class="cx">     void dispatchDidCommitLoad();
</span><span class="cx"> 
</span><del>-    WEBCORE_EXPORT void urlSelected(const FrameLoadRequest&amp;, PassRefPtr&lt;Event&gt;, LockHistory, LockBackForwardList, ShouldSendReferrer, ShouldReplaceDocumentIfJavaScriptURL, AllowNavigationToInvalidURL);
</del><ins>+    void urlSelected(const FrameLoadRequest&amp;, PassRefPtr&lt;Event&gt;);
</ins><span class="cx"> 
</span><span class="cx">     void loadWithDocumentLoader(DocumentLoader*, FrameLoadType, PassRefPtr&lt;FormState&gt;, AllowNavigationToInvalidURL); // Calls continueLoadAfterNavigationPolicy
</span><span class="cx">     void load(DocumentLoader*);                                                         // Calls loadWithDocumentLoader   
</span></span></pre></div>
<a id="trunkSourceWebCoreloaderNavigationSchedulercpp"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebCore/loader/NavigationScheduler.cpp (183497 => 183498)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebCore/loader/NavigationScheduler.cpp        2015-04-28 19:27:23 UTC (rev 183497)
+++ trunk/Source/WebCore/loader/NavigationScheduler.cpp        2015-04-28 19:38:13 UTC (rev 183498)
</span><span class="lines">@@ -110,7 +110,11 @@
</span><span class="cx">     virtual void fire(Frame&amp; frame) override
</span><span class="cx">     {
</span><span class="cx">         UserGestureIndicator gestureIndicator(wasUserGesture() ? DefinitelyProcessingUserGesture : DefinitelyNotProcessingUserGesture);
</span><del>-        frame.loader().changeLocation(m_securityOrigin.get(), m_url, m_referrer, lockHistory(), lockBackForwardList(), false);
</del><ins>+
+        ResourceRequest resourceRequest(m_url, m_referrer, UseProtocolCachePolicy);
+        FrameLoadRequest frameRequest(m_securityOrigin.get(), resourceRequest, lockHistory(), lockBackForwardList(), MaybeSendReferrer, AllowNavigationToInvalidURL::Yes, NewFrameOpenerPolicy::Allow);
+
+        frame.loader().changeLocation(frameRequest);
</ins><span class="cx">     }
</span><span class="cx"> 
</span><span class="cx">     virtual void didStartTimer(Frame&amp; frame, Timer&amp; timer) override
</span><span class="lines">@@ -165,7 +169,10 @@
</span><span class="cx">     {
</span><span class="cx">         UserGestureIndicator gestureIndicator(wasUserGesture() ? DefinitelyProcessingUserGesture : DefinitelyNotProcessingUserGesture);
</span><span class="cx">         bool refresh = equalIgnoringFragmentIdentifier(frame.document()-&gt;url(), url());
</span><del>-        frame.loader().changeLocation(securityOrigin(), url(), referrer(), lockHistory(), lockBackForwardList(), refresh, AllowNavigationToInvalidURL::No);
</del><ins>+        ResourceRequest resourceRequest(url(), referrer(), refresh ? ReloadIgnoringCacheData : UseProtocolCachePolicy);
+        FrameLoadRequest frameRequest(securityOrigin(), resourceRequest, lockHistory(), lockBackForwardList(), MaybeSendReferrer, AllowNavigationToInvalidURL::No, NewFrameOpenerPolicy::Allow);
+
+        frame.loader().changeLocation(frameRequest);
</ins><span class="cx">     }
</span><span class="cx"> };
</span><span class="cx"> 
</span><span class="lines">@@ -177,7 +184,10 @@
</span><span class="cx">     virtual void fire(Frame&amp; frame) override
</span><span class="cx">     {
</span><span class="cx">         UserGestureIndicator gestureIndicator(wasUserGesture() ? DefinitelyProcessingUserGesture : DefinitelyNotProcessingUserGesture);
</span><del>-        frame.loader().changeLocation(securityOrigin(), url(), referrer(), lockHistory(), lockBackForwardList(), false, AllowNavigationToInvalidURL::No);
</del><ins>+
+        ResourceRequest resourceRequest(url(), referrer(), UseProtocolCachePolicy);
+        FrameLoadRequest frameRequest(securityOrigin(), resourceRequest, lockHistory(), lockBackForwardList(), MaybeSendReferrer, AllowNavigationToInvalidURL::No, NewFrameOpenerPolicy::Allow);
+        frame.loader().changeLocation(frameRequest);
</ins><span class="cx">     }
</span><span class="cx"> };
</span><span class="cx"> 
</span><span class="lines">@@ -191,7 +201,10 @@
</span><span class="cx">     virtual void fire(Frame&amp; frame) override
</span><span class="cx">     {
</span><span class="cx">         UserGestureIndicator gestureIndicator(wasUserGesture() ? DefinitelyProcessingUserGesture : DefinitelyNotProcessingUserGesture);
</span><del>-        frame.loader().changeLocation(securityOrigin(), url(), referrer(), lockHistory(), lockBackForwardList(), true);
</del><ins>+
+        ResourceRequest resourceRequest(url(), referrer(), ReloadIgnoringCacheData);
+        FrameLoadRequest frameRequest(securityOrigin(), resourceRequest, lockHistory(), lockBackForwardList(), MaybeSendReferrer, AllowNavigationToInvalidURL::Yes, NewFrameOpenerPolicy::Allow);
+        frame.loader().changeLocation(frameRequest);
</ins><span class="cx">     }
</span><span class="cx"> };
</span><span class="cx"> 
</span><span class="lines">@@ -244,9 +257,9 @@
</span><span class="cx">         Document* requestingDocument = m_submission-&gt;state()-&gt;sourceDocument();
</span><span class="cx">         if (!requestingDocument-&gt;canNavigate(&amp;frame))
</span><span class="cx">             return;
</span><del>-        FrameLoadRequest frameRequest(requestingDocument-&gt;securityOrigin());
</del><ins>+        FrameLoadRequest frameRequest(requestingDocument-&gt;securityOrigin(), lockHistory(), lockBackForwardList(), MaybeSendReferrer, AllowNavigationToInvalidURL::Yes, NewFrameOpenerPolicy::Allow);
</ins><span class="cx">         m_submission-&gt;populateFrameLoadRequest(frameRequest);
</span><del>-        frame.loader().loadFrameRequest(frameRequest, lockHistory(), lockBackForwardList(), m_submission-&gt;event(), m_submission-&gt;state(), MaybeSendReferrer, AllowNavigationToInvalidURL::Yes, NewFrameOpenerPolicy::Allow);
</del><ins>+        frame.loader().loadFrameRequest(frameRequest, m_submission-&gt;event(), m_submission-&gt;state());
</ins><span class="cx">     }
</span><span class="cx">     
</span><span class="cx">     virtual void didStartTimer(Frame&amp; frame, Timer&amp; timer) override
</span><span class="lines">@@ -387,7 +400,9 @@
</span><span class="cx">     // If the URL we're going to navigate to is the same as the current one, except for the
</span><span class="cx">     // fragment part, we don't need to schedule the location change.
</span><span class="cx">     if (url.hasFragmentIdentifier() &amp;&amp; equalIgnoringFragmentIdentifier(m_frame.document()-&gt;url(), url)) {
</span><del>-        loader.changeLocation(securityOrigin, m_frame.document()-&gt;completeURL(url), referrer, lockHistory, lockBackForwardList, false, AllowNavigationToInvalidURL::No);
</del><ins>+        ResourceRequest resourceRequest(m_frame.document()-&gt;completeURL(url), referrer, UseProtocolCachePolicy);
+        FrameLoadRequest frameRequest(securityOrigin, resourceRequest, emptyString(), lockHistory, lockBackForwardList, MaybeSendReferrer, AllowNavigationToInvalidURL::No, NewFrameOpenerPolicy::Allow, ReplaceDocumentIfJavaScriptURL);
+        loader.changeLocation(frameRequest);
</ins><span class="cx">         return;
</span><span class="cx">     }
</span><span class="cx"> 
</span></span></pre></div>
<a id="trunkSourceWebCorepageContextMenuControllercpp"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebCore/page/ContextMenuController.cpp (183497 => 183498)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebCore/page/ContextMenuController.cpp        2015-04-28 19:27:23 UTC (rev 183497)
+++ trunk/Source/WebCore/page/ContextMenuController.cpp        2015-04-28 19:38:13 UTC (rev 183498)
</span><span class="lines">@@ -196,13 +196,13 @@
</span><span class="cx">     if (!oldPage)
</span><span class="cx">         return;
</span><span class="cx">     
</span><del>-    FrameLoadRequest request(frame-&gt;document()-&gt;securityOrigin(), ResourceRequest(urlToLoad, frame-&gt;loader().outgoingReferrer()));
</del><ins>+    FrameLoadRequest request(frame-&gt;document()-&gt;securityOrigin(), ResourceRequest(urlToLoad, frame-&gt;loader().outgoingReferrer()), LockHistory::No, LockBackForwardList::No, MaybeSendReferrer, AllowNavigationToInvalidURL::Yes, NewFrameOpenerPolicy::Suppress);
</ins><span class="cx"> 
</span><span class="cx">     Page* newPage = oldPage-&gt;chrome().createWindow(frame, request, WindowFeatures(), NavigationAction(request.resourceRequest()));
</span><span class="cx">     if (!newPage)
</span><span class="cx">         return;
</span><span class="cx">     newPage-&gt;chrome().show();
</span><del>-    newPage-&gt;mainFrame().loader().loadFrameRequest(request, LockHistory::No, LockBackForwardList::No, 0, 0, MaybeSendReferrer, AllowNavigationToInvalidURL::Yes, NewFrameOpenerPolicy::Suppress);
</del><ins>+    newPage-&gt;mainFrame().loader().loadFrameRequest(request, nullptr, nullptr);
</ins><span class="cx"> }
</span><span class="cx"> 
</span><span class="cx"> #if PLATFORM(GTK)
</span><span class="lines">@@ -401,12 +401,12 @@
</span><span class="cx">         break;
</span><span class="cx">     case ContextMenuItemTagOpenLink:
</span><span class="cx">         if (Frame* targetFrame = m_context.hitTestResult().targetFrame())
</span><del>-            targetFrame-&gt;loader().loadFrameRequest(FrameLoadRequest(frame-&gt;document()-&gt;securityOrigin(), ResourceRequest(m_context.hitTestResult().absoluteLinkURL(), frame-&gt;loader().outgoingReferrer())), LockHistory::No, LockBackForwardList::No, 0, 0, MaybeSendReferrer, AllowNavigationToInvalidURL::Yes, NewFrameOpenerPolicy::Suppress);
</del><ins>+            targetFrame-&gt;loader().loadFrameRequest(FrameLoadRequest(frame-&gt;document()-&gt;securityOrigin(), ResourceRequest(m_context.hitTestResult().absoluteLinkURL(), frame-&gt;loader().outgoingReferrer()), LockHistory::No, LockBackForwardList::No, MaybeSendReferrer, AllowNavigationToInvalidURL::Yes, NewFrameOpenerPolicy::Suppress), nullptr, nullptr);
</ins><span class="cx">         else
</span><span class="cx">             openNewWindow(m_context.hitTestResult().absoluteLinkURL(), frame);
</span><span class="cx">         break;
</span><span class="cx">     case ContextMenuItemTagOpenLinkInThisWindow:
</span><del>-        frame-&gt;loader().loadFrameRequest(FrameLoadRequest(frame-&gt;document()-&gt;securityOrigin(), ResourceRequest(m_context.hitTestResult().absoluteLinkURL(), frame-&gt;loader().outgoingReferrer())), LockHistory::No, LockBackForwardList::No, 0, 0, MaybeSendReferrer, AllowNavigationToInvalidURL::Yes, NewFrameOpenerPolicy::Suppress);
</del><ins>+        frame-&gt;loader().loadFrameRequest(FrameLoadRequest(frame-&gt;document()-&gt;securityOrigin(), ResourceRequest(m_context.hitTestResult().absoluteLinkURL(), frame-&gt;loader().outgoingReferrer()), LockHistory::No, LockBackForwardList::No, MaybeSendReferrer, AllowNavigationToInvalidURL::Yes, NewFrameOpenerPolicy::Suppress), nullptr, nullptr);
</ins><span class="cx">         break;
</span><span class="cx">     case ContextMenuItemTagBold:
</span><span class="cx">         frame-&gt;editor().command(&quot;ToggleBold&quot;).execute();
</span></span></pre></div>
<a id="trunkSourceWebCorepageDOMWindowcpp"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebCore/page/DOMWindow.cpp (183497 => 183498)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebCore/page/DOMWindow.cpp        2015-04-28 19:27:23 UTC (rev 183497)
+++ trunk/Source/WebCore/page/DOMWindow.cpp        2015-04-28 19:38:13 UTC (rev 183498)
</span><span class="lines">@@ -2088,7 +2088,7 @@
</span><span class="cx"> 
</span><span class="cx">     ResourceRequest request(completedURL, referrer);
</span><span class="cx">     FrameLoader::addHTTPOriginIfNeeded(request, firstFrame-&gt;loader().outgoingOrigin());
</span><del>-    FrameLoadRequest frameRequest(activeWindow.document()-&gt;securityOrigin(), request, frameName);
</del><ins>+    FrameLoadRequest frameRequest(activeWindow.document()-&gt;securityOrigin(), request, frameName, LockHistory::No, LockBackForwardList::No, MaybeSendReferrer, AllowNavigationToInvalidURL::Yes, NewFrameOpenerPolicy::Allow, ReplaceDocumentIfJavaScriptURL);
</ins><span class="cx"> 
</span><span class="cx">     // We pass the opener frame for the lookupFrame in case the active frame is different from
</span><span class="cx">     // the opener frame, and the name references a frame relative to the opener frame.
</span><span class="lines">@@ -2106,9 +2106,11 @@
</span><span class="cx">     if (prepareDialogFunction)
</span><span class="cx">         prepareDialogFunction(*newFrame-&gt;document()-&gt;domWindow());
</span><span class="cx"> 
</span><del>-    if (created)
-        newFrame-&gt;loader().changeLocation(activeWindow.document()-&gt;securityOrigin(), completedURL, referrer, LockHistory::No, LockBackForwardList::No);
-    else if (!urlString.isEmpty()) {
</del><ins>+    if (created) {
+        ResourceRequest resourceRequest(completedURL, referrer, UseProtocolCachePolicy);
+        FrameLoadRequest frameRequest(activeWindow.document()-&gt;securityOrigin(), resourceRequest, LockHistory::No, LockBackForwardList::No, MaybeSendReferrer, AllowNavigationToInvalidURL::Yes, NewFrameOpenerPolicy::Allow);
+        newFrame-&gt;loader().changeLocation(frameRequest);
+    } else if (!urlString.isEmpty()) {
</ins><span class="cx">         LockHistory lockHistory = ScriptController::processingUserGesture() ? LockHistory::No : LockHistory::Yes;
</span><span class="cx">         newFrame-&gt;navigationScheduler().scheduleLocationChange(activeWindow.document()-&gt;securityOrigin(), completedURL, referrer, lockHistory, LockBackForwardList::No);
</span><span class="cx">     }
</span></span></pre></div>
<a id="trunkSourceWebKitiosChangeLog"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebKit/ios/ChangeLog (183497 => 183498)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebKit/ios/ChangeLog        2015-04-28 19:27:23 UTC (rev 183497)
+++ trunk/Source/WebKit/ios/ChangeLog        2015-04-28 19:38:13 UTC (rev 183498)
</span><span class="lines">@@ -1,3 +1,13 @@
</span><ins>+2015-04-28  Brady Eidson  &lt;beidson@apple.com&gt;
+
+        Consolidate most &quot;frame load&quot; arguments into FrameLoadRequest.
+        https://bugs.webkit.org/show_bug.cgi?id=144276
+
+        Reviewed by Alexey Proskuryakov.
+
+        * WebView/WebPDFViewPlaceholder.mm:
+        (-[WebPDFViewPlaceholder simulateClickOnLinkToURL:]):
+
</ins><span class="cx"> 2015-04-13  Beth Dakin  &lt;bdakin@apple.com&gt;
</span><span class="cx"> 
</span><span class="cx">         Add force property to MouseEvents
</span></span></pre></div>
<a id="trunkSourceWebKitiosWebViewWebPDFViewPlaceholdermm"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebKit/ios/WebView/WebPDFViewPlaceholder.mm (183497 => 183498)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebKit/ios/WebView/WebPDFViewPlaceholder.mm        2015-04-28 19:27:23 UTC (rev 183497)
+++ trunk/Source/WebKit/ios/WebView/WebPDFViewPlaceholder.mm        2015-04-28 19:38:13 UTC (rev 183498)
</span><span class="lines">@@ -475,7 +475,7 @@
</span><span class="cx"> 
</span><span class="cx">     // Call to the frame loader because this is where our security checks are made.
</span><span class="cx">     Frame* frame = core([_dataSource webFrame]);
</span><del>-    frame-&gt;loader().loadFrameRequest(FrameLoadRequest(frame-&gt;document()-&gt;securityOrigin(), ResourceRequest(URL)), LockHistory::No, LockBackForwardList::No, event.get(), 0, MaybeSendReferrer, AllowNavigationToInvalidURL::Yes, NewFrameOpenerPolicy::Allow);
</del><ins>+    frame-&gt;loader().loadFrameRequest(FrameLoadRequest(frame-&gt;document()-&gt;securityOrigin(), ResourceRequest(URL), LockHistory::No, LockBackForwardList::No, MaybeSendReferrer, AllowNavigationToInvalidURL::Yes, NewFrameOpenerPolicy::Allow), event.get(), nullptr);
</ins><span class="cx"> }
</span><span class="cx"> 
</span><span class="cx"> @end
</span></span></pre></div>
<a id="trunkSourceWebKitmacChangeLog"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebKit/mac/ChangeLog (183497 => 183498)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebKit/mac/ChangeLog        2015-04-28 19:27:23 UTC (rev 183497)
+++ trunk/Source/WebKit/mac/ChangeLog        2015-04-28 19:38:13 UTC (rev 183498)
</span><span class="lines">@@ -1,3 +1,13 @@
</span><ins>+2015-04-28  Brady Eidson  &lt;beidson@apple.com&gt;
+
+        Consolidate most &quot;frame load&quot; arguments into FrameLoadRequest.
+        https://bugs.webkit.org/show_bug.cgi?id=144276
+
+        Reviewed by Alexey Proskuryakov.
+
+        * WebView/WebPDFView.mm:
+        (-[WebPDFView PDFViewWillClickOnLink:withURL:]):
+
</ins><span class="cx"> 2015-04-27  Dan Bernstein  &lt;mitz@apple.com&gt;
</span><span class="cx"> 
</span><span class="cx">         &lt;rdar://problem/20721931&gt; REGRESSION (r178753): All legacy framework headers are missing availability annotations
</span></span></pre></div>
<a id="trunkSourceWebKitmacWebViewWebPDFViewmm"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebKit/mac/WebView/WebPDFView.mm (183497 => 183498)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebKit/mac/WebView/WebPDFView.mm        2015-04-28 19:27:23 UTC (rev 183497)
+++ trunk/Source/WebKit/mac/WebView/WebPDFView.mm        2015-04-28 19:38:13 UTC (rev 183498)
</span><span class="lines">@@ -1037,7 +1037,7 @@
</span><span class="cx"> 
</span><span class="cx">     // Call to the frame loader because this is where our security checks are made.
</span><span class="cx">     Frame* frame = core([dataSource webFrame]);
</span><del>-    frame-&gt;loader().loadFrameRequest(FrameLoadRequest(frame-&gt;document()-&gt;securityOrigin(), ResourceRequest(URL)), LockHistory::No, LockBackForwardList::No, event.get(), 0, MaybeSendReferrer, AllowNavigationToInvalidURL::Yes, NewFrameOpenerPolicy::Allow);
</del><ins>+    frame-&gt;loader().loadFrameRequest(FrameLoadRequest(frame-&gt;document()-&gt;securityOrigin(), ResourceRequest(URL), LockHistory::No, LockBackForwardList::No, MaybeSendReferrer, AllowNavigationToInvalidURL::Yes, NewFrameOpenerPolicy::Allow), event.get(), nullptr);
</ins><span class="cx"> }
</span><span class="cx"> 
</span><span class="cx"> - (void)PDFViewOpenPDFInNativeApplication:(PDFView *)sender
</span></span></pre></div>
<a id="trunkSourceWebKitwinChangeLog"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebKit/win/ChangeLog (183497 => 183498)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebKit/win/ChangeLog        2015-04-28 19:27:23 UTC (rev 183497)
+++ trunk/Source/WebKit/win/ChangeLog        2015-04-28 19:38:13 UTC (rev 183498)
</span><span class="lines">@@ -1,3 +1,16 @@
</span><ins>+2015-04-28  Brady Eidson  &lt;beidson@apple.com&gt;
+
+        Consolidate most &quot;frame load&quot; arguments into FrameLoadRequest.
+        https://bugs.webkit.org/show_bug.cgi?id=144276
+
+        Reviewed by Alexey Proskuryakov.
+
+        * Plugins/PluginView.cpp:
+        (WebCore::PluginView::start):
+        (WebCore::PluginView::getURLNotify):
+        (WebCore::PluginView::getURL):
+        (WebCore::PluginView::handlePost):
+
</ins><span class="cx"> 2015-04-27  Brady Eidson  &lt;beidson@apple.com&gt;
</span><span class="cx"> 
</span><span class="cx">         Unreviewed build fix after r183405
</span></span></pre></div>
<a id="trunkSourceWebKitwinPluginsPluginViewcpp"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebKit/win/Plugins/PluginView.cpp (183497 => 183498)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebKit/win/Plugins/PluginView.cpp        2015-04-28 19:27:23 UTC (rev 183497)
+++ trunk/Source/WebKit/win/Plugins/PluginView.cpp        2015-04-28 19:38:13 UTC (rev 183498)
</span><span class="lines">@@ -249,7 +249,7 @@
</span><span class="cx">     m_isStarted = true;
</span><span class="cx"> 
</span><span class="cx">     if (!m_url.isEmpty() &amp;&amp; !m_loadManually) {
</span><del>-        FrameLoadRequest frameLoadRequest(m_parentFrame-&gt;document()-&gt;securityOrigin());
</del><ins>+        FrameLoadRequest frameLoadRequest(m_parentFrame-&gt;document()-&gt;securityOrigin(), LockHistory::No, LockBackForwardList::No, ShouldSendReferrer::MaybeSendReferrer, AllowNavigationToInvalidURL::Yes, NewFrameOpenerPolicy::Allow);
</ins><span class="cx">         frameLoadRequest.resourceRequest().setHTTPMethod(&quot;GET&quot;);
</span><span class="cx">         frameLoadRequest.resourceRequest().setURL(m_url);
</span><span class="cx">         load(frameLoadRequest, false, 0);
</span><span class="lines">@@ -523,7 +523,7 @@
</span><span class="cx"> 
</span><span class="cx"> NPError PluginView::getURLNotify(const char* url, const char* target, void* notifyData)
</span><span class="cx"> {
</span><del>-    FrameLoadRequest frameLoadRequest(m_parentFrame-&gt;document()-&gt;securityOrigin());
</del><ins>+    FrameLoadRequest frameLoadRequest(m_parentFrame-&gt;document()-&gt;securityOrigin(), LockHistory::No, LockBackForwardList::No, ShouldSendReferrer::MaybeSendReferrer, AllowNavigationToInvalidURL::Yes, NewFrameOpenerPolicy::Allow);
</ins><span class="cx"> 
</span><span class="cx">     frameLoadRequest.setFrameName(target);
</span><span class="cx">     frameLoadRequest.resourceRequest().setHTTPMethod(&quot;GET&quot;);
</span><span class="lines">@@ -534,7 +534,7 @@
</span><span class="cx"> 
</span><span class="cx"> NPError PluginView::getURL(const char* url, const char* target)
</span><span class="cx"> {
</span><del>-    FrameLoadRequest frameLoadRequest(m_parentFrame-&gt;document()-&gt;securityOrigin());
</del><ins>+    FrameLoadRequest frameLoadRequest(m_parentFrame-&gt;document()-&gt;securityOrigin(), LockHistory::No, LockBackForwardList::No, ShouldSendReferrer::MaybeSendReferrer, AllowNavigationToInvalidURL::Yes, NewFrameOpenerPolicy::Allow);
</ins><span class="cx"> 
</span><span class="cx">     frameLoadRequest.setFrameName(target);
</span><span class="cx">     frameLoadRequest.resourceRequest().setHTTPMethod(&quot;GET&quot;);
</span><span class="lines">@@ -1036,7 +1036,7 @@
</span><span class="cx">     if (!url || !len || !buf)
</span><span class="cx">         return NPERR_INVALID_PARAM;
</span><span class="cx"> 
</span><del>-    FrameLoadRequest frameLoadRequest(m_parentFrame-&gt;document()-&gt;securityOrigin());
</del><ins>+    FrameLoadRequest frameLoadRequest(m_parentFrame-&gt;document()-&gt;securityOrigin(), LockHistory::No, LockBackForwardList::No, ShouldSendReferrer::MaybeSendReferrer, AllowNavigationToInvalidURL::Yes, NewFrameOpenerPolicy::Allow);
</ins><span class="cx"> 
</span><span class="cx">     HTTPHeaderMap headerFields;
</span><span class="cx">     Vector&lt;char&gt; buffer;
</span></span></pre></div>
<a id="trunkSourceWebKit2ChangeLog"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebKit2/ChangeLog (183497 => 183498)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebKit2/ChangeLog        2015-04-28 19:27:23 UTC (rev 183497)
+++ trunk/Source/WebKit2/ChangeLog        2015-04-28 19:38:13 UTC (rev 183498)
</span><span class="lines">@@ -1,3 +1,19 @@
</span><ins>+2015-04-28  Brady Eidson  &lt;beidson@apple.com&gt;
+
+        Consolidate most &quot;frame load&quot; arguments into FrameLoadRequest.
+        https://bugs.webkit.org/show_bug.cgi?id=144276
+
+        Reviewed by Alexey Proskuryakov.
+
+        * WebProcess/Plugins/PluginView.cpp:
+        (WebKit::PluginView::loadURL):
+        
+        * WebProcess/WebCoreSupport/WebFrameLoaderClient.cpp:
+        (WebKit::WebFrameLoaderClient::dispatchCreatePage):
+        
+        * WebProcess/WebPage/WebInspector.cpp:
+        (WebKit::WebInspector::openInNewTab):
+
</ins><span class="cx"> 2015-04-28  Chris Dumez  &lt;cdumez@apple.com&gt;
</span><span class="cx"> 
</span><span class="cx">         [WK2][Mac] Update WebContent process' sandbox profile for AWD
</span></span></pre></div>
<a id="trunkSourceWebKit2WebProcessPluginsPluginViewcpp"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebKit2/WebProcess/Plugins/PluginView.cpp (183497 => 183498)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebKit2/WebProcess/Plugins/PluginView.cpp        2015-04-28 19:27:23 UTC (rev 183497)
+++ trunk/Source/WebKit2/WebProcess/Plugins/PluginView.cpp        2015-04-28 19:38:13 UTC (rev 183498)
</span><span class="lines">@@ -1367,7 +1367,7 @@
</span><span class="cx"> 
</span><span class="cx"> void PluginView::loadURL(uint64_t requestID, const String&amp; method, const String&amp; urlString, const String&amp; target, const HTTPHeaderMap&amp; headerFields, const Vector&lt;uint8_t&gt;&amp; httpBody, bool allowPopups)
</span><span class="cx"> {
</span><del>-    FrameLoadRequest frameLoadRequest(m_pluginElement-&gt;document().securityOrigin());
</del><ins>+    FrameLoadRequest frameLoadRequest(m_pluginElement-&gt;document().securityOrigin(), LockHistory::No, LockBackForwardList::No, MaybeSendReferrer, AllowNavigationToInvalidURL::Yes, NewFrameOpenerPolicy::Allow);
</ins><span class="cx">     frameLoadRequest.resourceRequest().setHTTPMethod(method);
</span><span class="cx">     frameLoadRequest.resourceRequest().setURL(m_pluginElement-&gt;document().completeURL(urlString));
</span><span class="cx">     frameLoadRequest.resourceRequest().setHTTPHeaderFields(headerFields);
</span></span></pre></div>
<a id="trunkSourceWebKit2WebProcessWebCoreSupportWebFrameLoaderClientcpp"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebKit2/WebProcess/WebCoreSupport/WebFrameLoaderClient.cpp (183497 => 183498)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebKit2/WebProcess/WebCoreSupport/WebFrameLoaderClient.cpp        2015-04-28 19:27:23 UTC (rev 183497)
+++ trunk/Source/WebKit2/WebProcess/WebCoreSupport/WebFrameLoaderClient.cpp        2015-04-28 19:38:13 UTC (rev 183498)
</span><span class="lines">@@ -640,7 +640,8 @@
</span><span class="cx">         return 0;
</span><span class="cx"> 
</span><span class="cx">     // Just call through to the chrome client.
</span><del>-    Page* newPage = webPage-&gt;corePage()-&gt;chrome().createWindow(m_frame-&gt;coreFrame(), FrameLoadRequest(m_frame-&gt;coreFrame()-&gt;document()-&gt;securityOrigin(), navigationAction.resourceRequest()), WindowFeatures(), navigationAction);
</del><ins>+    FrameLoadRequest request(m_frame-&gt;coreFrame()-&gt;document()-&gt;securityOrigin(), navigationAction.resourceRequest(), LockHistory::No, LockBackForwardList::No, MaybeSendReferrer, AllowNavigationToInvalidURL::Yes, NewFrameOpenerPolicy::Allow);
+    Page* newPage = webPage-&gt;corePage()-&gt;chrome().createWindow(m_frame-&gt;coreFrame(), request, WindowFeatures(), navigationAction);
</ins><span class="cx">     if (!newPage)
</span><span class="cx">         return 0;
</span><span class="cx">     
</span></span></pre></div>
<a id="trunkSourceWebKit2WebProcessWebPageWebInspectorcpp"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebKit2/WebProcess/WebPage/WebInspector.cpp (183497 => 183498)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebKit2/WebProcess/WebPage/WebInspector.cpp        2015-04-28 19:27:23 UTC (rev 183497)
+++ trunk/Source/WebKit2/WebProcess/WebPage/WebInspector.cpp        2015-04-28 19:38:13 UTC (rev 183498)
</span><span class="lines">@@ -135,7 +135,7 @@
</span><span class="cx">         return;
</span><span class="cx"> 
</span><span class="cx">     Frame&amp; inspectedMainFrame = inspectedPage-&gt;mainFrame();
</span><del>-    FrameLoadRequest request(inspectedMainFrame.document()-&gt;securityOrigin(), ResourceRequest(urlString), &quot;_blank&quot;);
</del><ins>+    FrameLoadRequest request(inspectedMainFrame.document()-&gt;securityOrigin(), ResourceRequest(urlString), &quot;_blank&quot;, LockHistory::No, LockBackForwardList::No, MaybeSendReferrer, AllowNavigationToInvalidURL::Yes, NewFrameOpenerPolicy::Allow, ReplaceDocumentIfJavaScriptURL);
</ins><span class="cx"> 
</span><span class="cx">     Page* newPage = inspectedPage-&gt;chrome().createWindow(&amp;inspectedMainFrame, request, WindowFeatures(), NavigationAction(request.resourceRequest(), NavigationType::LinkClicked));
</span><span class="cx">     if (!newPage)
</span></span></pre>
</div>
</div>

</body>
</html>