<!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>[202263] trunk</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/202263">202263</a></dd>
<dt>Author</dt> <dd>commit-queue@webkit.org</dd>
<dt>Date</dt> <dd>2016-06-20 20:07:58 -0700 (Mon, 20 Jun 2016)</dd>
</dl>
<h3>Log Message</h3>
<pre>Unreviewed, rolling out <a href="http://trac.webkit.org/projects/webkit/changeset/202243">r202243</a>.
https://bugs.webkit.org/show_bug.cgi?id=158972
Broke Windows build and iOS tests (Requested by ap on
#webkit).
Reverted changeset:
"Focus event dispatched in iframe causes parent document to
scroll incorrectly"
https://bugs.webkit.org/show_bug.cgi?id=158629
http://trac.webkit.org/changeset/202243</pre>
<h3>Modified Paths</h3>
<ul>
<li><a href="#trunkLayoutTestsChangeLog">trunk/LayoutTests/ChangeLog</a></li>
<li><a href="#trunkSourceWebCoreChangeLog">trunk/Source/WebCore/ChangeLog</a></li>
<li><a href="#trunkSourceWebCoredomDocumenth">trunk/Source/WebCore/dom/Document.h</a></li>
<li><a href="#trunkSourceWebCoredomElementcpp">trunk/Source/WebCore/dom/Element.cpp</a></li>
<li><a href="#trunkSourceWebCoredomElementh">trunk/Source/WebCore/dom/Element.h</a></li>
<li><a href="#trunkSourceWebCoreeditingEditorcpp">trunk/Source/WebCore/editing/Editor.cpp</a></li>
<li><a href="#trunkSourceWebCoreeditingFrameSelectioncpp">trunk/Source/WebCore/editing/FrameSelection.cpp</a></li>
<li><a href="#trunkSourceWebCoreeditingFrameSelectionh">trunk/Source/WebCore/editing/FrameSelection.h</a></li>
<li><a href="#trunkSourceWebCorehtmlHTMLInputElementcpp">trunk/Source/WebCore/html/HTMLInputElement.cpp</a></li>
<li><a href="#trunkSourceWebCorehtmlHTMLTextAreaElementcpp">trunk/Source/WebCore/html/HTMLTextAreaElement.cpp</a></li>
<li><a href="#trunkSourceWebCorepageContextMenuControllercpp">trunk/Source/WebCore/page/ContextMenuController.cpp</a></li>
<li><a href="#trunkSourceWebCorepageFrameViewcpp">trunk/Source/WebCore/page/FrameView.cpp</a></li>
<li><a href="#trunkSourceWebCorerenderingRenderLayercpp">trunk/Source/WebCore/rendering/RenderLayer.cpp</a></li>
<li><a href="#trunkSourceWebCorerenderingRenderLayerh">trunk/Source/WebCore/rendering/RenderLayer.h</a></li>
<li><a href="#trunkSourceWebCorerenderingRenderObjectcpp">trunk/Source/WebCore/rendering/RenderObject.cpp</a></li>
<li><a href="#trunkSourceWebCorerenderingRenderObjecth">trunk/Source/WebCore/rendering/RenderObject.h</a></li>
<li><a href="#trunkSourceWebKitmacChangeLog">trunk/Source/WebKit/mac/ChangeLog</a></li>
<li><a href="#trunkSourceWebKitmacWebViewWebFramemm">trunk/Source/WebKit/mac/WebView/WebFrame.mm</a></li>
<li><a href="#trunkSourceWebKitmacWebViewWebHTMLViewmm">trunk/Source/WebKit/mac/WebView/WebHTMLView.mm</a></li>
<li><a href="#trunkSourceWebKit2ChangeLog">trunk/Source/WebKit2/ChangeLog</a></li>
<li><a href="#trunkSourceWebKit2WebProcessWebPageWebPagecpp">trunk/Source/WebKit2/WebProcess/WebPage/WebPage.cpp</a></li>
</ul>
<h3>Removed Paths</h3>
<ul>
<li><a href="#trunkLayoutTestsfastformsiosfocusinputiniframeexpectedtxt">trunk/LayoutTests/fast/forms/ios/focus-input-in-iframe-expected.txt</a></li>
<li><a href="#trunkLayoutTestsfastformsiosfocusinputiniframehtml">trunk/LayoutTests/fast/forms/ios/focus-input-in-iframe.html</a></li>
<li><a href="#trunkLayoutTestsfastformsiosprogrammaticfocusinputiniframeexpectedtxt">trunk/LayoutTests/fast/forms/ios/programmatic-focus-input-in-iframe-expected.txt</a></li>
<li><a href="#trunkLayoutTestsfastformsiosprogrammaticfocusinputiniframehtml">trunk/LayoutTests/fast/forms/ios/programmatic-focus-input-in-iframe.html</a></li>
</ul>
</div>
<div id="patch">
<h3>Diff</h3>
<a id="trunkLayoutTestsChangeLog"></a>
<div class="modfile"><h4>Modified: trunk/LayoutTests/ChangeLog (202262 => 202263)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/LayoutTests/ChangeLog        2016-06-21 03:01:02 UTC (rev 202262)
+++ trunk/LayoutTests/ChangeLog        2016-06-21 03:07:58 UTC (rev 202263)
</span><span class="lines">@@ -1,3 +1,18 @@
</span><ins>+2016-06-20 Commit Queue <commit-queue@webkit.org>
+
+ Unreviewed, rolling out r202243.
+ https://bugs.webkit.org/show_bug.cgi?id=158972
+
+ Broke Windows build and iOS tests (Requested by ap on
+ #webkit).
+
+ Reverted changeset:
+
+ "Focus event dispatched in iframe causes parent document to
+ scroll incorrectly"
+ https://bugs.webkit.org/show_bug.cgi?id=158629
+ http://trac.webkit.org/changeset/202243
+
</ins><span class="cx"> 2016-06-20 Zalan Bujtas <zalan@apple.com>
</span><span class="cx">
</span><span class="cx"> Set the end position on the placeholder BidiRun properly.
</span></span></pre></div>
<a id="trunkLayoutTestsfastformsiosfocusinputiniframeexpectedtxt"></a>
<div class="delfile"><h4>Deleted: trunk/LayoutTests/fast/forms/ios/focus-input-in-iframe-expected.txt (202262 => 202263)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/LayoutTests/fast/forms/ios/focus-input-in-iframe-expected.txt        2016-06-21 03:01:02 UTC (rev 202262)
+++ trunk/LayoutTests/fast/forms/ios/focus-input-in-iframe-expected.txt        2016-06-21 03:07:58 UTC (rev 202263)
</span><span class="lines">@@ -1,7 +0,0 @@
</span><del>-Tests zooming into a text input on tap.
-
-Click to focus input
-
-tap location        { x: 20.000, y: 62.000 }
-scale        1.455
-visibleRect        { left: 0.000, top: 1201.976, width: 219.979, height: 329.968 }
</del></span></pre></div>
<a id="trunkLayoutTestsfastformsiosfocusinputiniframehtml"></a>
<div class="delfile"><h4>Deleted: trunk/LayoutTests/fast/forms/ios/focus-input-in-iframe.html (202262 => 202263)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/LayoutTests/fast/forms/ios/focus-input-in-iframe.html        2016-06-21 03:01:02 UTC (rev 202262)
+++ trunk/LayoutTests/fast/forms/ios/focus-input-in-iframe.html        2016-06-21 03:07:58 UTC (rev 202263)
</span><span class="lines">@@ -1,48 +0,0 @@
</span><del>-<!DOCTYPE html> <!-- webkit-test-runner [ useFlexibleViewport=true ] -->
-
-<html>
-<head>
- <meta name="viewport" content="initial-scale=0.5">
- <style>
- button {
- display: block;
- }
- iframe {
- margin-top: 800px;
- }
- </style>
-
- <script src="resources/zooming-test-utils.js"></script>
- <script>
- if (window.testRunner) {
- testRunner.dumpAsText();
- testRunner.waitUntilDone();
- }
-
- if (window.internals)
- internals.settings.setFrameFlatteningEnabled(true);
-
- function buttonClicked()
- {
- document.getElementById('frame').contentDocument.getElementById('input').focus();
- }
-
- function doTest()
- {
- testZoomAfterTap(document.getElementById('target'), 10, 10);
- }
-
- window.addEventListener('load', doTest, false);
- </script>
-</head>
-<body>
-
-<p>Tests zooming into a text input on tap.</p>
-<button id="target" onclick="buttonClicked()">Click to focus input</button>
-
-<iframe id="frame" srcdoc="<style>input { margin: 400px 20px; }</style>
-<input id='input' type='text'>
-"></iframe>
-
-</body>
-</html>
</del></span></pre></div>
<a id="trunkLayoutTestsfastformsiosprogrammaticfocusinputiniframeexpectedtxt"></a>
<div class="delfile"><h4>Deleted: trunk/LayoutTests/fast/forms/ios/programmatic-focus-input-in-iframe-expected.txt (202262 => 202263)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/LayoutTests/fast/forms/ios/programmatic-focus-input-in-iframe-expected.txt        2016-06-21 03:01:02 UTC (rev 202262)
+++ trunk/LayoutTests/fast/forms/ios/programmatic-focus-input-in-iframe-expected.txt        2016-06-21 03:07:58 UTC (rev 202263)
</span><span class="lines">@@ -1,4 +0,0 @@
</span><del>-Tests that a programmatic focus should not scroll into view
-
-PASS: page did not scroll.
-
</del></span></pre></div>
<a id="trunkLayoutTestsfastformsiosprogrammaticfocusinputiniframehtml"></a>
<div class="delfile"><h4>Deleted: trunk/LayoutTests/fast/forms/ios/programmatic-focus-input-in-iframe.html (202262 => 202263)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/LayoutTests/fast/forms/ios/programmatic-focus-input-in-iframe.html        2016-06-21 03:01:02 UTC (rev 202262)
+++ trunk/LayoutTests/fast/forms/ios/programmatic-focus-input-in-iframe.html        2016-06-21 03:07:58 UTC (rev 202263)
</span><span class="lines">@@ -1,57 +0,0 @@
</span><del>-<!DOCTYPE html> <!-- webkit-test-runner [ useFlexibleViewport=true ] -->
-
-<html>
-<head>
- <meta name="viewport" content="initial-scale=0.5">
- <style>
- button {
- display: block;
- }
- iframe {
- margin-top: 800px;
- }
- </style>
-
- <script>
- if (window.testRunner) {
- testRunner.dumpAsText();
- testRunner.waitUntilDone();
- }
-
- if (window.internals)
- internals.settings.setFrameFlatteningEnabled(true);
-
- function pageDidScroll()
- {
- document.getElementById('result').textContent = 'FAIL: page scrolled to ' + document.scrollingElement.scrollTop;
- }
-
- function doTest()
- {
- window.setTimeout(function() {
- document.getElementById('frame').contentDocument.getElementById('input').focus();
- }, 0);
-
- // Wait for any scroll to happen.
- window.setTimeout(function() {
- if (window.testRunner)
- testRunner.notifyDone();
- }, 100);
- }
-
- window.addEventListener('load', doTest, false);
- </script>
-</head>
-<body onscroll="pageDidScroll()">
-
-<p>Tests that a programmatic focus should not scroll into view</p>
-<div id="result">
- PASS: page did not scroll.
-</div>
-
-<iframe id="frame" srcdoc="<style>input { margin: 400px 20px; }</style>
-<input id='input' type='text'>
-"></iframe>
-
-</body>
-</html>
</del></span></pre></div>
<a id="trunkSourceWebCoreChangeLog"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebCore/ChangeLog (202262 => 202263)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebCore/ChangeLog        2016-06-21 03:01:02 UTC (rev 202262)
+++ trunk/Source/WebCore/ChangeLog        2016-06-21 03:07:58 UTC (rev 202263)
</span><span class="lines">@@ -1,3 +1,18 @@
</span><ins>+2016-06-20 Commit Queue <commit-queue@webkit.org>
+
+ Unreviewed, rolling out r202243.
+ https://bugs.webkit.org/show_bug.cgi?id=158972
+
+ Broke Windows build and iOS tests (Requested by ap on
+ #webkit).
+
+ Reverted changeset:
+
+ "Focus event dispatched in iframe causes parent document to
+ scroll incorrectly"
+ https://bugs.webkit.org/show_bug.cgi?id=158629
+ http://trac.webkit.org/changeset/202243
+
</ins><span class="cx"> 2016-06-20 Chris Dumez <cdumez@apple.com>
</span><span class="cx">
</span><span class="cx"> Simplify / Optimize DataDetector's searchForLinkRemovingExistingDDLinks()
</span></span></pre></div>
<a id="trunkSourceWebCoredomDocumenth"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebCore/dom/Document.h (202262 => 202263)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebCore/dom/Document.h        2016-06-21 03:01:02 UTC (rev 202262)
+++ trunk/Source/WebCore/dom/Document.h        2016-06-21 03:07:58 UTC (rev 202263)
</span><span class="lines">@@ -282,6 +282,11 @@
</span><span class="cx"> SetDefault,
</span><span class="cx"> };
</span><span class="cx">
</span><ins>+enum class SelectionRevealMode {
+ Reveal,
+ DoNotReveal
+};
+
</ins><span class="cx"> enum class HttpEquivPolicy {
</span><span class="cx"> Enabled,
</span><span class="cx"> DisabledBySettings,
</span></span></pre></div>
<a id="trunkSourceWebCoredomElementcpp"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebCore/dom/Element.cpp (202262 => 202263)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebCore/dom/Element.cpp        2016-06-21 03:01:02 UTC (rev 202262)
+++ trunk/Source/WebCore/dom/Element.cpp        2016-06-21 03:07:58 UTC (rev 202263)
</span><span class="lines">@@ -639,9 +639,9 @@
</span><span class="cx"> LayoutRect bounds = renderer()->anchorRect();
</span><span class="cx"> // Align to the top / bottom and to the closest edge.
</span><span class="cx"> if (alignToTop)
</span><del>- renderer()->scrollRectToVisible(SelectionRevealMode::Reveal, bounds, ScrollAlignment::alignToEdgeIfNeeded, ScrollAlignment::alignTopAlways);
</del><ins>+ renderer()->scrollRectToVisible(bounds, ScrollAlignment::alignToEdgeIfNeeded, ScrollAlignment::alignTopAlways);
</ins><span class="cx"> else
</span><del>- renderer()->scrollRectToVisible(SelectionRevealMode::Reveal, bounds, ScrollAlignment::alignToEdgeIfNeeded, ScrollAlignment::alignBottomAlways);
</del><ins>+ renderer()->scrollRectToVisible(bounds, ScrollAlignment::alignToEdgeIfNeeded, ScrollAlignment::alignBottomAlways);
</ins><span class="cx"> }
</span><span class="cx">
</span><span class="cx"> void Element::scrollIntoViewIfNeeded(bool centerIfNeeded)
</span><span class="lines">@@ -653,9 +653,9 @@
</span><span class="cx">
</span><span class="cx"> LayoutRect bounds = renderer()->anchorRect();
</span><span class="cx"> if (centerIfNeeded)
</span><del>- renderer()->scrollRectToVisible(SelectionRevealMode::Reveal, bounds, ScrollAlignment::alignCenterIfNeeded, ScrollAlignment::alignCenterIfNeeded);
</del><ins>+ renderer()->scrollRectToVisible(bounds, ScrollAlignment::alignCenterIfNeeded, ScrollAlignment::alignCenterIfNeeded);
</ins><span class="cx"> else
</span><del>- renderer()->scrollRectToVisible(SelectionRevealMode::Reveal, bounds, ScrollAlignment::alignToEdgeIfNeeded, ScrollAlignment::alignToEdgeIfNeeded);
</del><ins>+ renderer()->scrollRectToVisible(bounds, ScrollAlignment::alignToEdgeIfNeeded, ScrollAlignment::alignToEdgeIfNeeded);
</ins><span class="cx"> }
</span><span class="cx">
</span><span class="cx"> void Element::scrollIntoViewIfNotVisible(bool centerIfNotVisible)
</span><span class="lines">@@ -667,9 +667,9 @@
</span><span class="cx">
</span><span class="cx"> LayoutRect bounds = renderer()->anchorRect();
</span><span class="cx"> if (centerIfNotVisible)
</span><del>- renderer()->scrollRectToVisible(SelectionRevealMode::Reveal, bounds, ScrollAlignment::alignCenterIfNotVisible, ScrollAlignment::alignCenterIfNotVisible);
</del><ins>+ renderer()->scrollRectToVisible(bounds, ScrollAlignment::alignCenterIfNotVisible, ScrollAlignment::alignCenterIfNotVisible);
</ins><span class="cx"> else
</span><del>- renderer()->scrollRectToVisible(SelectionRevealMode::Reveal, bounds, ScrollAlignment::alignToEdgeIfNotVisible, ScrollAlignment::alignToEdgeIfNotVisible);
</del><ins>+ renderer()->scrollRectToVisible(bounds, ScrollAlignment::alignToEdgeIfNotVisible, ScrollAlignment::alignToEdgeIfNotVisible);
</ins><span class="cx"> }
</span><span class="cx">
</span><span class="cx"> void Element::scrollByUnits(int units, ScrollGranularity granularity)
</span><span class="lines">@@ -2245,18 +2245,20 @@
</span><span class="cx"> }
</span><span class="cx">
</span><span class="cx"> cancelFocusAppearanceUpdate();
</span><del>-
- SelectionRevealMode revealMode = SelectionRevealMode::Reveal;
</del><span class="cx"> #if PLATFORM(IOS)
</span><span class="cx"> // Focusing a form element triggers animation in UIKit to scroll to the right position.
</span><span class="cx"> // Calling updateFocusAppearance() would generate an unnecessary call to ScrollView::setScrollPosition(),
</span><span class="cx"> // which would jump us around during this animation. See <rdar://problem/6699741>.
</span><del>- bool isFormControl = is<HTMLFormControlElement>(*this);
</del><ins>+ FrameView* view = document().view();
+ bool isFormControl = view && is<HTMLFormControlElement>(*this);
</ins><span class="cx"> if (isFormControl)
</span><del>- revealMode = SelectionRevealMode::RevealUpToMainFrame;
</del><ins>+ view->setProhibitsScrolling(true);
</ins><span class="cx"> #endif
</span><del>-
- updateFocusAppearance(restorePreviousSelection ? SelectionRestorationMode::Restore : SelectionRestorationMode::SetDefault, revealMode);
</del><ins>+ updateFocusAppearance(restorePreviousSelection ? SelectionRestorationMode::Restore : SelectionRestorationMode::SetDefault);
+#if PLATFORM(IOS)
+ if (isFormControl)
+ view->setProhibitsScrolling(false);
+#endif
</ins><span class="cx"> }
</span><span class="cx">
</span><span class="cx"> void Element::updateFocusAppearanceAfterAttachIfNeeded()
</span><span class="lines">@@ -2288,10 +2290,11 @@
</span><span class="cx">
</span><span class="cx"> if (frame->selection().shouldChangeSelection(newSelection)) {
</span><span class="cx"> frame->selection().setSelection(newSelection, FrameSelection::defaultSetSelectionOptions(), Element::defaultFocusTextStateChangeIntent());
</span><del>- frame->selection().revealSelection(revealMode);
</del><ins>+ if (revealMode == SelectionRevealMode::Reveal)
+ frame->selection().revealSelection();
</ins><span class="cx"> }
</span><del>- } else if (renderer() && !renderer()->isWidget())
- renderer()->scrollRectToVisible(revealMode, renderer()->anchorRect());
</del><ins>+ } else if (renderer() && !renderer()->isWidget() && revealMode == SelectionRevealMode::Reveal)
+ renderer()->scrollRectToVisible(renderer()->anchorRect());
</ins><span class="cx"> }
</span><span class="cx">
</span><span class="cx"> void Element::blur()
</span></span></pre></div>
<a id="trunkSourceWebCoredomElementh"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebCore/dom/Element.h (202262 => 202263)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebCore/dom/Element.h        2016-06-21 03:01:02 UTC (rev 202262)
+++ trunk/Source/WebCore/dom/Element.h        2016-06-21 03:07:58 UTC (rev 202263)
</span><span class="lines">@@ -60,12 +60,6 @@
</span><span class="cx"> SpellcheckAttributeDefault
</span><span class="cx"> };
</span><span class="cx">
</span><del>-enum class SelectionRevealMode {
- Reveal,
- RevealUpToMainFrame, // Scroll overflow and iframes, but not the main frame.
- DoNotReveal
-};
-
</del><span class="cx"> class Element : public ContainerNode {
</span><span class="cx"> public:
</span><span class="cx"> static Ref<Element> create(const QualifiedName&, Document&);
</span></span></pre></div>
<a id="trunkSourceWebCoreeditingEditorcpp"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebCore/editing/Editor.cpp (202262 => 202263)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebCore/editing/Editor.cpp        2016-06-21 03:01:02 UTC (rev 202262)
+++ trunk/Source/WebCore/editing/Editor.cpp        2016-06-21 03:07:58 UTC (rev 202263)
</span><span class="lines">@@ -1204,7 +1204,7 @@
</span><span class="cx"> // Reveal the current selection
</span><span class="cx"> if (Frame* editedFrame = document->frame())
</span><span class="cx"> if (Page* page = editedFrame->page())
</span><del>- page->focusController().focusedOrMainFrame().selection().revealSelection(SelectionRevealMode::Reveal, ScrollAlignment::alignCenterIfNeeded);
</del><ins>+ page->focusController().focusedOrMainFrame().selection().revealSelection(ScrollAlignment::alignCenterIfNeeded);
</ins><span class="cx"> }
</span><span class="cx"> }
</span><span class="cx">
</span><span class="lines">@@ -2799,7 +2799,7 @@
</span><span class="cx"> if (m_ignoreCompositionSelectionChange)
</span><span class="cx"> return;
</span><span class="cx">
</span><del>- m_frame.selection().revealSelection(SelectionRevealMode::Reveal, alignment, revealExtentOption);
</del><ins>+ m_frame.selection().revealSelection(alignment, revealExtentOption);
</ins><span class="cx"> }
</span><span class="cx">
</span><span class="cx"> void Editor::setIgnoreCompositionSelectionChange(bool ignore, RevealSelection shouldRevealExistingSelection)
</span><span class="lines">@@ -3147,7 +3147,7 @@
</span><span class="cx"> if (!nextMatch)
</span><span class="cx"> return nullptr;
</span><span class="cx">
</span><del>- nextMatch->firstNode()->renderer()->scrollRectToVisible(SelectionRevealMode::Reveal, nextMatch->absoluteBoundingBox(),
</del><ins>+ nextMatch->firstNode()->renderer()->scrollRectToVisible(nextMatch->absoluteBoundingBox(),
</ins><span class="cx"> ScrollAlignment::alignCenterIfNeeded, ScrollAlignment::alignCenterIfNeeded);
</span><span class="cx">
</span><span class="cx"> return nextMatch;
</span></span></pre></div>
<a id="trunkSourceWebCoreeditingFrameSelectioncpp"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebCore/editing/FrameSelection.cpp (202262 => 202263)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebCore/editing/FrameSelection.cpp        2016-06-21 03:01:02 UTC (rev 202262)
+++ trunk/Source/WebCore/editing/FrameSelection.cpp        2016-06-21 03:07:58 UTC (rev 202263)
</span><span class="lines">@@ -127,6 +127,7 @@
</span><span class="cx"> #if PLATFORM(IOS)
</span><span class="cx"> , m_updateAppearanceEnabled(false)
</span><span class="cx"> , m_caretBlinks(true)
</span><ins>+ , m_scrollingSuppressCount(0)
</ins><span class="cx"> #endif
</span><span class="cx"> {
</span><span class="cx"> if (shouldAlwaysUseDirectionalSelection(m_frame))
</span><span class="lines">@@ -387,7 +388,7 @@
</span><span class="cx"> else
</span><span class="cx"> alignment = m_alwaysAlignCursorOnScrollWhenRevealingSelection ? ScrollAlignment::alignTopAlways : ScrollAlignment::alignToEdgeIfNeeded;
</span><span class="cx">
</span><del>- revealSelection(SelectionRevealMode::Reveal, alignment, RevealExtent);
</del><ins>+ revealSelection(alignment, RevealExtent);
</ins><span class="cx"> }
</span><span class="cx">
</span><span class="cx"> notifyAccessibilityForSelectionChange(intent);
</span><span class="lines">@@ -2289,11 +2290,8 @@
</span><span class="cx"> return scanForForm(start);
</span><span class="cx"> }
</span><span class="cx">
</span><del>-void FrameSelection::revealSelection(SelectionRevealMode revealMode, const ScrollAlignment& alignment, RevealExtentOption revealExtentOption)
</del><ins>+void FrameSelection::revealSelection(const ScrollAlignment& alignment, RevealExtentOption revealExtentOption)
</ins><span class="cx"> {
</span><del>- if (revealMode == SelectionRevealMode::DoNotReveal)
- return;
-
</del><span class="cx"> LayoutRect rect;
</span><span class="cx">
</span><span class="cx"> switch (m_selection.selectionType()) {
</span><span class="lines">@@ -2314,7 +2312,7 @@
</span><span class="cx"> if (RenderLayer* layer = start.deprecatedNode()->renderer()->enclosingLayer()) {
</span><span class="cx"> if (!m_scrollingSuppressCount) {
</span><span class="cx"> layer->setAdjustForIOSCaretWhenScrolling(true);
</span><del>- layer->scrollRectToVisible(revealMode, rect, alignment, alignment);
</del><ins>+ layer->scrollRectToVisible(rect, alignment, alignment);
</ins><span class="cx"> layer->setAdjustForIOSCaretWhenScrolling(false);
</span><span class="cx"> updateAppearance();
</span><span class="cx"> if (m_frame->page())
</span><span class="lines">@@ -2325,7 +2323,7 @@
</span><span class="cx"> // FIXME: This code only handles scrolling the startContainer's layer, but
</span><span class="cx"> // the selection rect could intersect more than just that.
</span><span class="cx"> // See <rdar://problem/4799899>.
</span><del>- if (start.deprecatedNode()->renderer()->scrollRectToVisible(revealMode, rect, alignment, alignment))
</del><ins>+ if (start.deprecatedNode()->renderer()->scrollRectToVisible(rect, alignment, alignment))
</ins><span class="cx"> updateAppearance();
</span><span class="cx"> #endif
</span><span class="cx"> }
</span></span></pre></div>
<a id="trunkSourceWebCoreeditingFrameSelectionh"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebCore/editing/FrameSelection.h (202262 => 202263)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebCore/editing/FrameSelection.h        2016-06-21 03:01:02 UTC (rev 202262)
+++ trunk/Source/WebCore/editing/FrameSelection.h        2016-06-21 03:07:58 UTC (rev 202263)
</span><span class="lines">@@ -28,7 +28,6 @@
</span><span class="cx">
</span><span class="cx"> #include "AXTextStateChangeIntent.h"
</span><span class="cx"> #include "EditingStyle.h"
</span><del>-#include "Element.h"
</del><span class="cx"> #include "IntRect.h"
</span><span class="cx"> #include "LayoutRect.h"
</span><span class="cx"> #include "Range.h"
</span><span class="lines">@@ -267,7 +266,7 @@
</span><span class="cx">
</span><span class="cx"> WEBCORE_EXPORT HTMLFormElement* currentForm() const;
</span><span class="cx">
</span><del>- WEBCORE_EXPORT void revealSelection(SelectionRevealMode = SelectionRevealMode::Reveal, const ScrollAlignment& = ScrollAlignment::alignCenterIfNeeded, RevealExtentOption = DoNotRevealExtent);
</del><ins>+ WEBCORE_EXPORT void revealSelection(const ScrollAlignment& = ScrollAlignment::alignCenterIfNeeded, RevealExtentOption = DoNotRevealExtent);
</ins><span class="cx"> WEBCORE_EXPORT void setSelectionFromNone();
</span><span class="cx">
</span><span class="cx"> bool shouldShowBlockCursor() const { return m_shouldShowBlockCursor; }
</span><span class="lines">@@ -351,7 +350,7 @@
</span><span class="cx"> bool m_updateAppearanceEnabled : 1;
</span><span class="cx"> bool m_caretBlinks : 1;
</span><span class="cx"> Color m_caretColor;
</span><del>- int m_scrollingSuppressCount { 0 };
</del><ins>+ int m_scrollingSuppressCount;
</ins><span class="cx"> #endif
</span><span class="cx"> };
</span><span class="cx">
</span></span></pre></div>
<a id="trunkSourceWebCorehtmlHTMLInputElementcpp"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebCore/html/HTMLInputElement.cpp (202262 => 202263)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebCore/html/HTMLInputElement.cpp        2016-06-21 03:01:02 UTC (rev 202262)
+++ trunk/Source/WebCore/html/HTMLInputElement.cpp        2016-06-21 03:07:58 UTC (rev 202263)
</span><span class="lines">@@ -404,8 +404,8 @@
</span><span class="cx"> select(Element::defaultFocusTextStateChangeIntent());
</span><span class="cx"> else
</span><span class="cx"> restoreCachedSelection();
</span><del>- if (document().frame())
- document().frame()->selection().revealSelection(revealMode);
</del><ins>+ if (document().frame() && revealMode == SelectionRevealMode::Reveal)
+ document().frame()->selection().revealSelection();
</ins><span class="cx"> } else
</span><span class="cx"> HTMLTextFormControlElement::updateFocusAppearance(restorationMode, revealMode);
</span><span class="cx"> }
</span></span></pre></div>
<a id="trunkSourceWebCorehtmlHTMLTextAreaElementcpp"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebCore/html/HTMLTextAreaElement.cpp (202262 => 202263)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebCore/html/HTMLTextAreaElement.cpp        2016-06-21 03:01:02 UTC (rev 202262)
+++ trunk/Source/WebCore/html/HTMLTextAreaElement.cpp        2016-06-21 03:07:58 UTC (rev 202263)
</span><span class="lines">@@ -260,8 +260,8 @@
</span><span class="cx"> } else
</span><span class="cx"> restoreCachedSelection(Element::defaultFocusTextStateChangeIntent());
</span><span class="cx">
</span><del>- if (document().frame())
- document().frame()->selection().revealSelection(revealMode);
</del><ins>+ if (document().frame() && revealMode == SelectionRevealMode::Reveal)
+ document().frame()->selection().revealSelection();
</ins><span class="cx"> }
</span><span class="cx">
</span><span class="cx"> void HTMLTextAreaElement::defaultEventHandler(Event* event)
</span></span></pre></div>
<a id="trunkSourceWebCorepageContextMenuControllercpp"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebCore/page/ContextMenuController.cpp (202262 => 202263)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebCore/page/ContextMenuController.cpp        2016-06-21 03:01:02 UTC (rev 202262)
+++ trunk/Source/WebCore/page/ContextMenuController.cpp        2016-06-21 03:07:58 UTC (rev 202263)
</span><span class="lines">@@ -372,7 +372,7 @@
</span><span class="cx"> ASSERT(document);
</span><span class="cx"> RefPtr<ReplaceSelectionCommand> command = ReplaceSelectionCommand::create(*document, createFragmentFromMarkup(*document, title, ""), replaceOptions);
</span><span class="cx"> applyCommand(command);
</span><del>- frame->selection().revealSelection(SelectionRevealMode::Reveal, ScrollAlignment::alignToEdgeIfNeeded);
</del><ins>+ frame->selection().revealSelection(ScrollAlignment::alignToEdgeIfNeeded);
</ins><span class="cx"> }
</span><span class="cx"> break;
</span><span class="cx"> }
</span></span></pre></div>
<a id="trunkSourceWebCorepageFrameViewcpp"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebCore/page/FrameView.cpp (202262 => 202263)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebCore/page/FrameView.cpp        2016-06-21 03:01:02 UTC (rev 202262)
+++ trunk/Source/WebCore/page/FrameView.cpp        2016-06-21 03:07:58 UTC (rev 202263)
</span><span class="lines">@@ -3050,11 +3050,11 @@
</span><span class="cx"> // Scroll nested layers and frames to reveal the anchor.
</span><span class="cx"> // Align to the top and to the closest side (this matches other browsers).
</span><span class="cx"> if (anchorNode->renderer()->style().isHorizontalWritingMode())
</span><del>- anchorNode->renderer()->scrollRectToVisible(SelectionRevealMode::Reveal, rect, ScrollAlignment::alignToEdgeIfNeeded, ScrollAlignment::alignTopAlways);
</del><ins>+ anchorNode->renderer()->scrollRectToVisible(rect, ScrollAlignment::alignToEdgeIfNeeded, ScrollAlignment::alignTopAlways);
</ins><span class="cx"> else if (anchorNode->renderer()->style().isFlippedBlocksWritingMode())
</span><del>- anchorNode->renderer()->scrollRectToVisible(SelectionRevealMode::Reveal, rect, ScrollAlignment::alignRightAlways, ScrollAlignment::alignToEdgeIfNeeded);
</del><ins>+ anchorNode->renderer()->scrollRectToVisible(rect, ScrollAlignment::alignRightAlways, ScrollAlignment::alignToEdgeIfNeeded);
</ins><span class="cx"> else
</span><del>- anchorNode->renderer()->scrollRectToVisible(SelectionRevealMode::Reveal, rect, ScrollAlignment::alignLeftAlways, ScrollAlignment::alignToEdgeIfNeeded);
</del><ins>+ anchorNode->renderer()->scrollRectToVisible(rect, ScrollAlignment::alignLeftAlways, ScrollAlignment::alignToEdgeIfNeeded);
</ins><span class="cx">
</span><span class="cx"> if (AXObjectCache* cache = frame().document()->existingAXObjectCache())
</span><span class="cx"> cache->handleScrolledToAnchor(anchorNode.get());
</span></span></pre></div>
<a id="trunkSourceWebCorerenderingRenderLayercpp"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebCore/rendering/RenderLayer.cpp (202262 => 202263)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebCore/rendering/RenderLayer.cpp        2016-06-21 03:01:02 UTC (rev 202262)
+++ trunk/Source/WebCore/rendering/RenderLayer.cpp        2016-06-21 03:07:58 UTC (rev 202263)
</span><span class="lines">@@ -80,7 +80,6 @@
</span><span class="cx"> #include "HitTestRequest.h"
</span><span class="cx"> #include "HitTestResult.h"
</span><span class="cx"> #include "Logging.h"
</span><del>-#include "MainFrame.h"
</del><span class="cx"> #include "NoEventDispatchAssertion.h"
</span><span class="cx"> #include "OverflowEvent.h"
</span><span class="cx"> #include "OverlapTestRequestClient.h"
</span><span class="lines">@@ -2491,7 +2490,7 @@
</span><span class="cx"> return box->hasHorizontalOverflow() || box->hasVerticalOverflow();
</span><span class="cx"> }
</span><span class="cx">
</span><del>-void RenderLayer::scrollRectToVisible(SelectionRevealMode revealMode, const LayoutRect& rect, const ScrollAlignment& alignX, const ScrollAlignment& alignY)
</del><ins>+void RenderLayer::scrollRectToVisible(const LayoutRect& rect, const ScrollAlignment& alignX, const ScrollAlignment& alignY)
</ins><span class="cx"> {
</span><span class="cx"> LOG_WITH_STREAM(Scrolling, stream << "Layer " << this << " scrollRectToVisible " << rect);
</span><span class="cx">
</span><span class="lines">@@ -2551,9 +2550,6 @@
</span><span class="cx"> parentLayer = nullptr;
</span><span class="cx"> }
</span><span class="cx"> } else {
</span><del>- if (revealMode == SelectionRevealMode::RevealUpToMainFrame && frameView.frame().isMainFrame())
- return;
-
</del><span class="cx"> #if !PLATFORM(IOS)
</span><span class="cx"> LayoutRect viewRect = frameView.visibleContentRect();
</span><span class="cx"> LayoutRect visibleRectRelativeToDocument = viewRect;
</span><span class="lines">@@ -2578,7 +2574,7 @@
</span><span class="cx"> }
</span><span class="cx">
</span><span class="cx"> if (parentLayer)
</span><del>- parentLayer->scrollRectToVisible(revealMode, newRect, alignX, alignY);
</del><ins>+ parentLayer->scrollRectToVisible(newRect, alignX, alignY);
</ins><span class="cx"> }
</span><span class="cx">
</span><span class="cx"> void RenderLayer::updateCompositingLayersAfterScroll()
</span><span class="lines">@@ -2671,7 +2667,7 @@
</span><span class="cx"> void RenderLayer::autoscroll(const IntPoint& position)
</span><span class="cx"> {
</span><span class="cx"> IntPoint currentDocumentPosition = renderer().view().frameView().windowToContents(position);
</span><del>- scrollRectToVisible(SelectionRevealMode::Reveal, LayoutRect(currentDocumentPosition, LayoutSize(1, 1)), ScrollAlignment::alignToEdgeIfNeeded, ScrollAlignment::alignToEdgeIfNeeded);
</del><ins>+ scrollRectToVisible(LayoutRect(currentDocumentPosition, LayoutSize(1, 1)), ScrollAlignment::alignToEdgeIfNeeded, ScrollAlignment::alignToEdgeIfNeeded);
</ins><span class="cx"> }
</span><span class="cx">
</span><span class="cx"> bool RenderLayer::canResize() const
</span></span></pre></div>
<a id="trunkSourceWebCorerenderingRenderLayerh"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebCore/rendering/RenderLayer.h (202262 => 202263)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebCore/rendering/RenderLayer.h        2016-06-21 03:01:02 UTC (rev 202262)
+++ trunk/Source/WebCore/rendering/RenderLayer.h        2016-06-21 03:07:58 UTC (rev 202263)
</span><span class="lines">@@ -205,7 +205,7 @@
</span><span class="cx">
</span><span class="cx"> void availableContentSizeChanged(AvailableSizeChangeReason) override;
</span><span class="cx">
</span><del>- void scrollRectToVisible(SelectionRevealMode, const LayoutRect&, const ScrollAlignment& alignX, const ScrollAlignment& alignY);
</del><ins>+ void scrollRectToVisible(const LayoutRect&, const ScrollAlignment& alignX, const ScrollAlignment& alignY);
</ins><span class="cx">
</span><span class="cx"> LayoutRect getRectToExpose(const LayoutRect& visibleRect, const LayoutRect& visibleRectRelativeToDocument, const LayoutRect& exposeRect, const ScrollAlignment& alignX, const ScrollAlignment& alignY);
</span><span class="cx">
</span></span></pre></div>
<a id="trunkSourceWebCorerenderingRenderObjectcpp"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebCore/rendering/RenderObject.cpp (202262 => 202263)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebCore/rendering/RenderObject.cpp        2016-06-21 03:01:02 UTC (rev 202262)
+++ trunk/Source/WebCore/rendering/RenderObject.cpp        2016-06-21 03:07:58 UTC (rev 202263)
</span><span class="lines">@@ -358,16 +358,13 @@
</span><span class="cx"> return nullptr;
</span><span class="cx"> }
</span><span class="cx">
</span><del>-bool RenderObject::scrollRectToVisible(SelectionRevealMode revealMode, const LayoutRect& rect, const ScrollAlignment& alignX, const ScrollAlignment& alignY)
</del><ins>+bool RenderObject::scrollRectToVisible(const LayoutRect& rect, const ScrollAlignment& alignX, const ScrollAlignment& alignY)
</ins><span class="cx"> {
</span><del>- if (revealMode == SelectionRevealMode::DoNotReveal)
- return false;
-
</del><span class="cx"> RenderLayer* enclosingLayer = this->enclosingLayer();
</span><span class="cx"> if (!enclosingLayer)
</span><span class="cx"> return false;
</span><span class="cx">
</span><del>- enclosingLayer->scrollRectToVisible(revealMode, rect, alignX, alignY);
</del><ins>+ enclosingLayer->scrollRectToVisible(rect, alignX, alignY);
</ins><span class="cx"> return true;
</span><span class="cx"> }
</span><span class="cx">
</span></span></pre></div>
<a id="trunkSourceWebCorerenderingRenderObjecth"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebCore/rendering/RenderObject.h (202262 => 202263)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebCore/rendering/RenderObject.h        2016-06-21 03:01:02 UTC (rev 202262)
+++ trunk/Source/WebCore/rendering/RenderObject.h        2016-06-21 03:07:58 UTC (rev 202263)
</span><span class="lines">@@ -155,7 +155,7 @@
</span><span class="cx"> WEBCORE_EXPORT RenderLayer* enclosingLayer() const;
</span><span class="cx">
</span><span class="cx"> // Scrolling is a RenderBox concept, however some code just cares about recursively scrolling our enclosing ScrollableArea(s).
</span><del>- WEBCORE_EXPORT bool scrollRectToVisible(SelectionRevealMode, const LayoutRect&, const ScrollAlignment& alignX = ScrollAlignment::alignCenterIfNeeded, const ScrollAlignment& alignY = ScrollAlignment::alignCenterIfNeeded);
</del><ins>+ WEBCORE_EXPORT bool scrollRectToVisible(const LayoutRect&, const ScrollAlignment& alignX = ScrollAlignment::alignCenterIfNeeded, const ScrollAlignment& alignY = ScrollAlignment::alignCenterIfNeeded);
</ins><span class="cx">
</span><span class="cx"> // Convenience function for getting to the nearest enclosing box of a RenderObject.
</span><span class="cx"> RenderBox& enclosingBox() const;
</span></span></pre></div>
<a id="trunkSourceWebKitmacChangeLog"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebKit/mac/ChangeLog (202262 => 202263)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebKit/mac/ChangeLog        2016-06-21 03:01:02 UTC (rev 202262)
+++ trunk/Source/WebKit/mac/ChangeLog        2016-06-21 03:07:58 UTC (rev 202263)
</span><span class="lines">@@ -1,3 +1,18 @@
</span><ins>+2016-06-20 Commit Queue <commit-queue@webkit.org>
+
+ Unreviewed, rolling out r202243.
+ https://bugs.webkit.org/show_bug.cgi?id=158972
+
+ Broke Windows build and iOS tests (Requested by ap on
+ #webkit).
+
+ Reverted changeset:
+
+ "Focus event dispatched in iframe causes parent document to
+ scroll incorrectly"
+ https://bugs.webkit.org/show_bug.cgi?id=158629
+ http://trac.webkit.org/changeset/202243
+
</ins><span class="cx"> 2016-06-20 Simon Fraser <simon.fraser@apple.com>
</span><span class="cx">
</span><span class="cx"> Focus event dispatched in iframe causes parent document to scroll incorrectly
</span></span></pre></div>
<a id="trunkSourceWebKitmacWebViewWebFramemm"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebKit/mac/WebView/WebFrame.mm (202262 => 202263)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebKit/mac/WebView/WebFrame.mm        2016-06-21 03:01:02 UTC (rev 202262)
+++ trunk/Source/WebKit/mac/WebView/WebFrame.mm        2016-06-21 03:07:58 UTC (rev 202263)
</span><span class="lines">@@ -717,12 +717,12 @@
</span><span class="cx">
</span><span class="cx"> if (startNode && startNode->renderer()) {
</span><span class="cx"> #if !PLATFORM(IOS)
</span><del>- startNode->renderer()->scrollRectToVisible(SelectionRevealMode::Reveal, enclosingIntRect(rangeRect), ScrollAlignment::alignToEdgeIfNeeded, ScrollAlignment::alignToEdgeIfNeeded);
</del><ins>+ startNode->renderer()->scrollRectToVisible(enclosingIntRect(rangeRect), ScrollAlignment::alignToEdgeIfNeeded, ScrollAlignment::alignToEdgeIfNeeded);
</ins><span class="cx"> #else
</span><span class="cx"> RenderLayer* layer = startNode->renderer()->enclosingLayer();
</span><span class="cx"> if (layer) {
</span><span class="cx"> layer->setAdjustForIOSCaretWhenScrolling(true);
</span><del>- startNode->renderer()->scrollRectToVisible(SelectionRevealMode::Reveal, enclosingIntRect(rangeRect), ScrollAlignment::alignToEdgeIfNeeded, ScrollAlignment::alignToEdgeIfNeeded);
</del><ins>+ startNode->renderer()->scrollRectToVisible(enclosingIntRect(rangeRect), ScrollAlignment::alignToEdgeIfNeeded, ScrollAlignment::alignToEdgeIfNeeded);
</ins><span class="cx"> layer->setAdjustForIOSCaretWhenScrolling(false);
</span><span class="cx"> _private->coreFrame->selection().setCaretRectNeedsUpdate();
</span><span class="cx"> _private->coreFrame->selection().updateAppearance();
</span><span class="lines">@@ -741,7 +741,7 @@
</span><span class="cx"> RenderLayer* layer = startNode->renderer()->enclosingLayer();
</span><span class="cx"> if (layer) {
</span><span class="cx"> layer->setAdjustForIOSCaretWhenScrolling(true);
</span><del>- startNode->renderer()->scrollRectToVisible(SelectionRevealMode::Reveal, enclosingIntRect(rangeRect), ScrollAlignment::alignToEdgeIfNeeded, ScrollAlignment::alignToEdgeIfNeeded);
</del><ins>+ startNode->renderer()->scrollRectToVisible(enclosingIntRect(rangeRect), ScrollAlignment::alignToEdgeIfNeeded, ScrollAlignment::alignToEdgeIfNeeded);
</ins><span class="cx"> layer->setAdjustForIOSCaretWhenScrolling(false);
</span><span class="cx">
</span><span class="cx"> Frame *coreFrame = core(self);
</span><span class="lines">@@ -1375,7 +1375,7 @@
</span><span class="cx"> {
</span><span class="cx"> WebCore::Frame *frame = core(self);
</span><span class="cx"> RevealExtentOption revealExtentOption = revealExtent ? RevealExtent : DoNotRevealExtent;
</span><del>- frame->selection().revealSelection(SelectionRevealMode::Reveal, ScrollAlignment::alignToEdgeIfNeeded, revealExtentOption);
</del><ins>+ frame->selection().revealSelection(ScrollAlignment::alignToEdgeIfNeeded, revealExtentOption);
</ins><span class="cx"> }
</span><span class="cx">
</span><span class="cx"> - (void)resetSelection
</span></span></pre></div>
<a id="trunkSourceWebKitmacWebViewWebHTMLViewmm"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebKit/mac/WebView/WebHTMLView.mm (202262 => 202263)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebKit/mac/WebView/WebHTMLView.mm        2016-06-21 03:01:02 UTC (rev 202262)
+++ trunk/Source/WebKit/mac/WebView/WebHTMLView.mm        2016-06-21 03:07:58 UTC (rev 202263)
</span><span class="lines">@@ -3146,7 +3146,7 @@
</span><span class="cx"> COMMAND_PROLOGUE
</span><span class="cx">
</span><span class="cx"> if (Frame* coreFrame = core([self _frame]))
</span><del>- coreFrame->selection().revealSelection(SelectionRevealMode::Reveal, ScrollAlignment::alignCenterAlways);
</del><ins>+ coreFrame->selection().revealSelection(ScrollAlignment::alignCenterAlways);
</ins><span class="cx"> }
</span><span class="cx">
</span><span class="cx"> #if !PLATFORM(IOS)
</span><span class="lines">@@ -5345,7 +5345,7 @@
</span><span class="cx"> COMMAND_PROLOGUE
</span><span class="cx">
</span><span class="cx"> if (Frame* coreFrame = core([self _frame]))
</span><del>- coreFrame->selection().revealSelection(SelectionRevealMode::Reveal, ScrollAlignment::alignCenterAlways);
</del><ins>+ coreFrame->selection().revealSelection(ScrollAlignment::alignCenterAlways);
</ins><span class="cx"> }
</span><span class="cx">
</span><span class="cx"> #if !PLATFORM(IOS)
</span></span></pre></div>
<a id="trunkSourceWebKit2ChangeLog"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebKit2/ChangeLog (202262 => 202263)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebKit2/ChangeLog        2016-06-21 03:01:02 UTC (rev 202262)
+++ trunk/Source/WebKit2/ChangeLog        2016-06-21 03:07:58 UTC (rev 202263)
</span><span class="lines">@@ -1,3 +1,18 @@
</span><ins>+2016-06-20 Commit Queue <commit-queue@webkit.org>
+
+ Unreviewed, rolling out r202243.
+ https://bugs.webkit.org/show_bug.cgi?id=158972
+
+ Broke Windows build and iOS tests (Requested by ap on
+ #webkit).
+
+ Reverted changeset:
+
+ "Focus event dispatched in iframe causes parent document to
+ scroll incorrectly"
+ https://bugs.webkit.org/show_bug.cgi?id=158629
+ http://trac.webkit.org/changeset/202243
+
</ins><span class="cx"> 2016-06-20 Brent Fulgham <bfulgham@apple.com>
</span><span class="cx">
</span><span class="cx"> Allow Spotlight suggestions to be read by any process
</span></span></pre></div>
<a id="trunkSourceWebKit2WebProcessWebPageWebPagecpp"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebKit2/WebProcess/WebPage/WebPage.cpp (202262 => 202263)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebKit2/WebProcess/WebPage/WebPage.cpp        2016-06-21 03:01:02 UTC (rev 202262)
+++ trunk/Source/WebKit2/WebProcess/WebPage/WebPage.cpp        2016-06-21 03:07:58 UTC (rev 202263)
</span><span class="lines">@@ -2396,7 +2396,7 @@
</span><span class="cx"> void WebPage::centerSelectionInVisibleArea()
</span><span class="cx"> {
</span><span class="cx"> Frame& frame = m_page->focusController().focusedOrMainFrame();
</span><del>- frame.selection().revealSelection(SelectionRevealMode::Reveal, ScrollAlignment::alignCenterAlways);
</del><ins>+ frame.selection().revealSelection(ScrollAlignment::alignCenterAlways);
</ins><span class="cx"> m_findController.showFindIndicatorInSelection();
</span><span class="cx"> }
</span><span class="cx">
</span></span></pre>
</div>
</div>
</body>
</html>