<!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>[186353] releases/WebKitGTK/webkit-2.8</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/186353">186353</a></dd>
<dt>Author</dt> <dd>carlosgc@webkit.org</dd>
<dt>Date</dt> <dd>2015-07-06 07:03:06 -0700 (Mon, 06 Jul 2015)</dd>
</dl>
<h3>Log Message</h3>
<pre>Merge <a href="http://trac.webkit.org/projects/webkit/changeset/185269">r185269</a> - Regression(<a href="http://trac.webkit.org/projects/webkit/changeset/176212">r176212</a>): Broke app switching on iCloud.com
https://bugs.webkit.org/show_bug.cgi?id=145708
<rdar://problem/21235277>
Reviewed by Simon Fraser.
Source/WebCore:
Roll out <a href="http://trac.webkit.org/projects/webkit/changeset/176212">r176212</a> and follow-up fixes for now, to fix iCloud.com.
We can reconsider later how to do this in a safer way.
* bindings/js/JSCSSStyleDeclarationCustom.cpp:
(WebCore::JSCSSStyleDeclaration::putDelegate): Deleted.
(WebCore::JSCSSStyleDeclaration::getOwnPropertyNames): Deleted.
* dom/Element.cpp:
* dom/Element.h:
* dom/ElementRareData.cpp:
* dom/ElementRareData.h:
(WebCore::ElementRareData::ElementRareData):
(WebCore::ElementRareData::~ElementRareData): Deleted.
* dom/Node.cpp:
(WebCore::Node::materializeRareData):
* html/HTMLCanvasElement.cpp:
(WebCore::HTMLCanvasElement::notifyObserversCanvasChanged): Deleted.
* page/DOMTimer.cpp:
(WebCore::DOMTimerFireState::scriptMadeNonUserObservableChanges): Deleted.
(WebCore::DOMTimerFireState::scriptMadeUserObservableChanges): Deleted.
(WebCore::NestedTimersMap::instanceForContext): Deleted.
(WebCore::DOMTimer::install): Deleted.
(WebCore::DOMTimer::fired): Deleted.
(WebCore::DOMTimer::alignedFireTime): Deleted.
(WebCore::DOMTimer::activeDOMObjectName): Deleted.
* page/DOMTimer.h:
* page/FrameView.cpp:
(WebCore::FrameView::reset): Deleted.
(WebCore::FrameView::viewportContentsChanged): Deleted.
(WebCore::FrameView::autoSizeIfEnabled): Deleted.
* page/FrameView.h:
LayoutTests:
Remove layout tests covering DOM Timer throttling.
* fast/canvas/canvas-outside-viewport-timer-throttling-expected.txt: Removed.
* fast/canvas/canvas-outside-viewport-timer-throttling.html: Removed.
* fast/dom/nested-timer-display-none-element-throttling-expected.txt: Removed.
* fast/dom/nested-timer-display-none-element-throttling.html: Removed.
* fast/dom/repeating-timer-display-none-element-throttling-expected.txt: Removed.
* fast/dom/repeating-timer-display-none-element-throttling.html: Removed.
* fast/dom/repeating-timer-element-overflow-hidden-throttling-expected.txt: Removed.
* fast/dom/repeating-timer-element-overflow-hidden-throttling.html: Removed.
* fast/dom/resources/timer-throttling-iframe.html: Removed.
* fast/dom/timer-throttle-on-scrolling-iframe-away-expected.txt: Removed.
* fast/dom/timer-throttle-on-scrolling-iframe-away.html: Removed.
* fast/dom/timer-unthrottle-on-layout-expected.txt: Removed.
* fast/dom/timer-unthrottle-on-layout.html: Removed.
* fast/dom/timer-unthrottle-on-scroll-expected.txt: Removed.
* fast/dom/timer-unthrottle-on-scroll.html: Removed.</pre>
<h3>Modified Paths</h3>
<ul>
<li><a href="#releasesWebKitGTKwebkit28LayoutTestsChangeLog">releases/WebKitGTK/webkit-2.8/LayoutTests/ChangeLog</a></li>
<li><a href="#releasesWebKitGTKwebkit28SourceWebCoreChangeLog">releases/WebKitGTK/webkit-2.8/Source/WebCore/ChangeLog</a></li>
<li><a href="#releasesWebKitGTKwebkit28SourceWebCorebindingsjsJSCSSStyleDeclarationCustomcpp">releases/WebKitGTK/webkit-2.8/Source/WebCore/bindings/js/JSCSSStyleDeclarationCustom.cpp</a></li>
<li><a href="#releasesWebKitGTKwebkit28SourceWebCoredomElementcpp">releases/WebKitGTK/webkit-2.8/Source/WebCore/dom/Element.cpp</a></li>
<li><a href="#releasesWebKitGTKwebkit28SourceWebCoredomElementh">releases/WebKitGTK/webkit-2.8/Source/WebCore/dom/Element.h</a></li>
<li><a href="#releasesWebKitGTKwebkit28SourceWebCoredomElementRareDatacpp">releases/WebKitGTK/webkit-2.8/Source/WebCore/dom/ElementRareData.cpp</a></li>
<li><a href="#releasesWebKitGTKwebkit28SourceWebCoredomElementRareDatah">releases/WebKitGTK/webkit-2.8/Source/WebCore/dom/ElementRareData.h</a></li>
<li><a href="#releasesWebKitGTKwebkit28SourceWebCoredomNodecpp">releases/WebKitGTK/webkit-2.8/Source/WebCore/dom/Node.cpp</a></li>
<li><a href="#releasesWebKitGTKwebkit28SourceWebCorehtmlHTMLCanvasElementcpp">releases/WebKitGTK/webkit-2.8/Source/WebCore/html/HTMLCanvasElement.cpp</a></li>
<li><a href="#releasesWebKitGTKwebkit28SourceWebCorepageDOMTimercpp">releases/WebKitGTK/webkit-2.8/Source/WebCore/page/DOMTimer.cpp</a></li>
<li><a href="#releasesWebKitGTKwebkit28SourceWebCorepageDOMTimerh">releases/WebKitGTK/webkit-2.8/Source/WebCore/page/DOMTimer.h</a></li>
<li><a href="#releasesWebKitGTKwebkit28SourceWebCorepageFrameViewcpp">releases/WebKitGTK/webkit-2.8/Source/WebCore/page/FrameView.cpp</a></li>
<li><a href="#releasesWebKitGTKwebkit28SourceWebCorepageFrameViewh">releases/WebKitGTK/webkit-2.8/Source/WebCore/page/FrameView.h</a></li>
</ul>
<h3>Removed Paths</h3>
<ul>
<li><a href="#releasesWebKitGTKwebkit28LayoutTestsfastcanvascanvasoutsideviewporttimerthrottlingexpectedtxt">releases/WebKitGTK/webkit-2.8/LayoutTests/fast/canvas/canvas-outside-viewport-timer-throttling-expected.txt</a></li>
<li><a href="#releasesWebKitGTKwebkit28LayoutTestsfastcanvascanvasoutsideviewporttimerthrottlinghtml">releases/WebKitGTK/webkit-2.8/LayoutTests/fast/canvas/canvas-outside-viewport-timer-throttling.html</a></li>
<li><a href="#releasesWebKitGTKwebkit28LayoutTestsfastdomnestedtimerdisplaynoneelementthrottlingexpectedtxt">releases/WebKitGTK/webkit-2.8/LayoutTests/fast/dom/nested-timer-display-none-element-throttling-expected.txt</a></li>
<li><a href="#releasesWebKitGTKwebkit28LayoutTestsfastdomnestedtimerdisplaynoneelementthrottlinghtml">releases/WebKitGTK/webkit-2.8/LayoutTests/fast/dom/nested-timer-display-none-element-throttling.html</a></li>
<li><a href="#releasesWebKitGTKwebkit28LayoutTestsfastdomrepeatingtimerdisplaynoneelementthrottlingexpectedtxt">releases/WebKitGTK/webkit-2.8/LayoutTests/fast/dom/repeating-timer-display-none-element-throttling-expected.txt</a></li>
<li><a href="#releasesWebKitGTKwebkit28LayoutTestsfastdomrepeatingtimerdisplaynoneelementthrottlinghtml">releases/WebKitGTK/webkit-2.8/LayoutTests/fast/dom/repeating-timer-display-none-element-throttling.html</a></li>
<li><a href="#releasesWebKitGTKwebkit28LayoutTestsfastdomrepeatingtimerelementoverflowhiddenthrottlingexpectedtxt">releases/WebKitGTK/webkit-2.8/LayoutTests/fast/dom/repeating-timer-element-overflow-hidden-throttling-expected.txt</a></li>
<li><a href="#releasesWebKitGTKwebkit28LayoutTestsfastdomrepeatingtimerelementoverflowhiddenthrottlinghtml">releases/WebKitGTK/webkit-2.8/LayoutTests/fast/dom/repeating-timer-element-overflow-hidden-throttling.html</a></li>
<li><a href="#releasesWebKitGTKwebkit28LayoutTestsfastdomresourcestimerthrottlingiframehtml">releases/WebKitGTK/webkit-2.8/LayoutTests/fast/dom/resources/timer-throttling-iframe.html</a></li>
<li><a href="#releasesWebKitGTKwebkit28LayoutTestsfastdomtimerthrottleonscrollingiframeawayexpectedtxt">releases/WebKitGTK/webkit-2.8/LayoutTests/fast/dom/timer-throttle-on-scrolling-iframe-away-expected.txt</a></li>
<li><a href="#releasesWebKitGTKwebkit28LayoutTestsfastdomtimerthrottleonscrollingiframeawayhtml">releases/WebKitGTK/webkit-2.8/LayoutTests/fast/dom/timer-throttle-on-scrolling-iframe-away.html</a></li>
<li><a href="#releasesWebKitGTKwebkit28LayoutTestsfastdomtimerunthrottleonlayoutexpectedtxt">releases/WebKitGTK/webkit-2.8/LayoutTests/fast/dom/timer-unthrottle-on-layout-expected.txt</a></li>
<li><a href="#releasesWebKitGTKwebkit28LayoutTestsfastdomtimerunthrottleonlayouthtml">releases/WebKitGTK/webkit-2.8/LayoutTests/fast/dom/timer-unthrottle-on-layout.html</a></li>
<li><a href="#releasesWebKitGTKwebkit28LayoutTestsfastdomtimerunthrottleonscrollexpectedtxt">releases/WebKitGTK/webkit-2.8/LayoutTests/fast/dom/timer-unthrottle-on-scroll-expected.txt</a></li>
<li><a href="#releasesWebKitGTKwebkit28LayoutTestsfastdomtimerunthrottleonscrollhtml">releases/WebKitGTK/webkit-2.8/LayoutTests/fast/dom/timer-unthrottle-on-scroll.html</a></li>
</ul>
</div>
<div id="patch">
<h3>Diff</h3>
<a id="releasesWebKitGTKwebkit28LayoutTestsChangeLog"></a>
<div class="modfile"><h4>Modified: releases/WebKitGTK/webkit-2.8/LayoutTests/ChangeLog (186352 => 186353)</h4>
<pre class="diff"><span>
<span class="info">--- releases/WebKitGTK/webkit-2.8/LayoutTests/ChangeLog        2015-07-06 13:40:54 UTC (rev 186352)
+++ releases/WebKitGTK/webkit-2.8/LayoutTests/ChangeLog        2015-07-06 14:03:06 UTC (rev 186353)
</span><span class="lines">@@ -1,3 +1,29 @@
</span><ins>+2015-06-05 Chris Dumez <cdumez@apple.com>
+
+ Regression(r176212): Broke app switching on iCloud.com
+ https://bugs.webkit.org/show_bug.cgi?id=145708
+ <rdar://problem/21235277>
+
+ Reviewed by Simon Fraser.
+
+ Remove layout tests covering DOM Timer throttling.
+
+ * fast/canvas/canvas-outside-viewport-timer-throttling-expected.txt: Removed.
+ * fast/canvas/canvas-outside-viewport-timer-throttling.html: Removed.
+ * fast/dom/nested-timer-display-none-element-throttling-expected.txt: Removed.
+ * fast/dom/nested-timer-display-none-element-throttling.html: Removed.
+ * fast/dom/repeating-timer-display-none-element-throttling-expected.txt: Removed.
+ * fast/dom/repeating-timer-display-none-element-throttling.html: Removed.
+ * fast/dom/repeating-timer-element-overflow-hidden-throttling-expected.txt: Removed.
+ * fast/dom/repeating-timer-element-overflow-hidden-throttling.html: Removed.
+ * fast/dom/resources/timer-throttling-iframe.html: Removed.
+ * fast/dom/timer-throttle-on-scrolling-iframe-away-expected.txt: Removed.
+ * fast/dom/timer-throttle-on-scrolling-iframe-away.html: Removed.
+ * fast/dom/timer-unthrottle-on-layout-expected.txt: Removed.
+ * fast/dom/timer-unthrottle-on-layout.html: Removed.
+ * fast/dom/timer-unthrottle-on-scroll-expected.txt: Removed.
+ * fast/dom/timer-unthrottle-on-scroll.html: Removed.
+
</ins><span class="cx"> 2015-06-05 David Hyatt <hyatt@apple.com>
</span><span class="cx">
</span><span class="cx"> Underlines too close in vertical Chinese text.
</span></span></pre></div>
<a id="releasesWebKitGTKwebkit28LayoutTestsfastcanvascanvasoutsideviewporttimerthrottlingexpectedtxt"></a>
<div class="delfile"><h4>Deleted: releases/WebKitGTK/webkit-2.8/LayoutTests/fast/canvas/canvas-outside-viewport-timer-throttling-expected.txt (186352 => 186353)</h4>
<pre class="diff"><span>
<span class="info">--- releases/WebKitGTK/webkit-2.8/LayoutTests/fast/canvas/canvas-outside-viewport-timer-throttling-expected.txt        2015-07-06 13:40:54 UTC (rev 186352)
+++ releases/WebKitGTK/webkit-2.8/LayoutTests/fast/canvas/canvas-outside-viewport-timer-throttling-expected.txt        2015-07-06 14:03:06 UTC (rev 186353)
</span><span class="lines">@@ -1,13 +0,0 @@
</span><del>-Test that a DOM timer drawing on a canvas outside viewport gets throttled.
-
-On success, you will see a series of "PASS" messages, followed by "TEST COMPLETE".
-
-
-The timer should initially not be throttled.
-PASS internals.isTimerThrottled(timeoutId) is false
-The timer should now be throttled as it is drawing on a canvas outside viewport.
-PASS internals.isTimerThrottled(timeoutId) is true
-PASS successfullyParsed is true
-
-TEST COMPLETE
-
</del></span></pre></div>
<a id="releasesWebKitGTKwebkit28LayoutTestsfastcanvascanvasoutsideviewporttimerthrottlinghtml"></a>
<div class="delfile"><h4>Deleted: releases/WebKitGTK/webkit-2.8/LayoutTests/fast/canvas/canvas-outside-viewport-timer-throttling.html (186352 => 186353)</h4>
<pre class="diff"><span>
<span class="info">--- releases/WebKitGTK/webkit-2.8/LayoutTests/fast/canvas/canvas-outside-viewport-timer-throttling.html        2015-07-06 13:40:54 UTC (rev 186352)
+++ releases/WebKitGTK/webkit-2.8/LayoutTests/fast/canvas/canvas-outside-viewport-timer-throttling.html        2015-07-06 14:03:06 UTC (rev 186353)
</span><span class="lines">@@ -1,45 +0,0 @@
</span><del>-<!DOCTYPE html>
-<html>
-<head>
-<script src="../../resources/js-test-pre.js"></script>
-<script>
-var i = 0;
-var context;
-var timeoutId;
-var wasThrottled;
-
-function loop()
-{
- i = (i + 1) % 255;
- context.fillStyle = "rgb(" + i + ", 0, 0)";
- context.fillRect(0, 0, 150, 150);
-
- // 5 iterations should suffice to throttle the timer.
- if (i == 5) {
- debug("The timer should now be throttled as it is drawing on a canvas outside viewport.");
- shouldBeTrue("internals.isTimerThrottled(timeoutId)");
- clearInterval(timeoutId);
- finishJSTest();
- }
-}
-
-function runTest() {
- context = document.getElementById("canvas").getContext('2d');
-
- timeoutId = setInterval(loop, 5);
- debug("The timer should initially not be throttled.");
- shouldBeFalse("internals.isTimerThrottled(timeoutId)");
-}
-</script>
-</head>
-<body onload="runTest();">
-<script>
-description("Test that a DOM timer drawing on a canvas outside viewport gets throttled.");
-jsTestIsAsync = true;
-</script>
-<div style="position: relative; width: 1600px; height: 2400px;">
- <canvas id="canvas" width=150 height=150 style="position:absolute; left: 600px; top: 800px;"></canvas>
-</div>
-<script src="../../resources/js-test-post.js"></script>
-</body>
-</html>
</del></span></pre></div>
<a id="releasesWebKitGTKwebkit28LayoutTestsfastdomnestedtimerdisplaynoneelementthrottlingexpectedtxt"></a>
<div class="delfile"><h4>Deleted: releases/WebKitGTK/webkit-2.8/LayoutTests/fast/dom/nested-timer-display-none-element-throttling-expected.txt (186352 => 186353)</h4>
<pre class="diff"><span>
<span class="info">--- releases/WebKitGTK/webkit-2.8/LayoutTests/fast/dom/nested-timer-display-none-element-throttling-expected.txt        2015-07-06 13:40:54 UTC (rev 186352)
+++ releases/WebKitGTK/webkit-2.8/LayoutTests/fast/dom/nested-timer-display-none-element-throttling-expected.txt        2015-07-06 14:03:06 UTC (rev 186353)
</span><span class="lines">@@ -1,18 +0,0 @@
</span><del>-Tests that a nested timer changing the style of a display:none element gets throttled.
-
-On success, you will see a series of "PASS" messages, followed by "TEST COMPLETE".
-
-
-The timer should initially not be throttled.
-PASS internals.isTimerThrottled(timeoutId) is false
-5th iteration, timer should have been throttled.
-PASS wasThrottled is true
-6th iteration, timer should still be throttled.
-PASS internals.isTimerThrottled(timeoutId) is true
-Timer mutated the DOM tree.
-7th iteration, timer should no longer be throttled.
-PASS internals.isTimerThrottled(timeoutId) is false
-PASS successfullyParsed is true
-
-TEST COMPLETE
-
</del></span></pre></div>
<a id="releasesWebKitGTKwebkit28LayoutTestsfastdomnestedtimerdisplaynoneelementthrottlinghtml"></a>
<div class="delfile"><h4>Deleted: releases/WebKitGTK/webkit-2.8/LayoutTests/fast/dom/nested-timer-display-none-element-throttling.html (186352 => 186353)</h4>
<pre class="diff"><span>
<span class="info">--- releases/WebKitGTK/webkit-2.8/LayoutTests/fast/dom/nested-timer-display-none-element-throttling.html        2015-07-06 13:40:54 UTC (rev 186352)
+++ releases/WebKitGTK/webkit-2.8/LayoutTests/fast/dom/nested-timer-display-none-element-throttling.html        2015-07-06 14:03:06 UTC (rev 186353)
</span><span class="lines">@@ -1,58 +0,0 @@
</span><del>-<!DOCTYPE html>
-<body>
-<script src="../../resources/js-test-pre.js"></script>
-<div id="testElement" style="display: none">Test</div>
-<script>
-description("Tests that a nested timer changing the style of a display:none element gets throttled.");
-jsTestIsAsync = true;
-
-var iterationCount = 0;
-var timeoutId;
-var testElement = document.getElementById("testElement");
-var wasThrottled = false;
-
-function checkTimerThrottleState()
-{
- if (iterationCount == 5) {
- // Do not use shouldBeTrue() here because it would cause a DOM tree mutation and
- // unthrottle the DOM Timer.
- wasThrottled = internals.isTimerThrottled(timeoutId);
- } else if (iterationCount == 6) {
- debug("5th iteration, timer should have been throttled.");
- shouldBeTrue("wasThrottled");
- debug("6th iteration, timer should still be throttled.");
- shouldBeTrue("internals.isTimerThrottled(timeoutId)");
- } else if (iterationCount >= 6) {
- // Timer should be unthrottled due to the DOM tree mutation caused by shouldBeTrue() in
- // the previous iteration.
- debug("" + iterationCount + "th iteration, timer should no longer be throttled.");
- shouldBeFalse("internals.isTimerThrottled(timeoutId)");
- clearTimeout(timeoutId);
- finishJSTest();
- }
-}
-
-function timerCallback()
-{
- ++iterationCount;
- // Interact with the style of the element.
- testElement.style["left"] = "" + iterationCount + "px";
-
- // 5 iterations should be sufficient to throttle the timer.
- if (iterationCount >= 5) {
- setTimeout(checkTimerThrottleState, 0);
- if (iterationCount == 7) {
- // The call to debug() mutates the DOM tree.
- debug("Timer mutated the DOM tree.");
- }
- }
-
- timeoutId = setTimeout(timerCallback, 0);
-}
-
-timeoutId = setTimeout(timerCallback, 0);
-debug("The timer should initially not be throttled.");
-shouldBeFalse("internals.isTimerThrottled(timeoutId)");
-</script>
-<script src="../../resources/js-test-post.js"></script>
-</body>
</del></span></pre></div>
<a id="releasesWebKitGTKwebkit28LayoutTestsfastdomrepeatingtimerdisplaynoneelementthrottlingexpectedtxt"></a>
<div class="delfile"><h4>Deleted: releases/WebKitGTK/webkit-2.8/LayoutTests/fast/dom/repeating-timer-display-none-element-throttling-expected.txt (186352 => 186353)</h4>
<pre class="diff"><span>
<span class="info">--- releases/WebKitGTK/webkit-2.8/LayoutTests/fast/dom/repeating-timer-display-none-element-throttling-expected.txt        2015-07-06 13:40:54 UTC (rev 186352)
+++ releases/WebKitGTK/webkit-2.8/LayoutTests/fast/dom/repeating-timer-display-none-element-throttling-expected.txt        2015-07-06 14:03:06 UTC (rev 186353)
</span><span class="lines">@@ -1,18 +0,0 @@
</span><del>-Tests that a repeating timer changing the style of a display:none element gets throttled.
-
-On success, you will see a series of "PASS" messages, followed by "TEST COMPLETE".
-
-
-The timer should initially not be throttled.
-PASS internals.isTimerThrottled(timeoutId) is false
-5th iteration, timer should have been throttled.
-PASS wasThrottled is true
-6th iteration, timer should still be throttled.
-PASS internals.isTimerThrottled(timeoutId) is true
-Timer mutated the DOM tree.
-7th iteration, timer should no longer be throttled.
-PASS internals.isTimerThrottled(timeoutId) is false
-PASS successfullyParsed is true
-
-TEST COMPLETE
-
</del></span></pre></div>
<a id="releasesWebKitGTKwebkit28LayoutTestsfastdomrepeatingtimerdisplaynoneelementthrottlinghtml"></a>
<div class="delfile"><h4>Deleted: releases/WebKitGTK/webkit-2.8/LayoutTests/fast/dom/repeating-timer-display-none-element-throttling.html (186352 => 186353)</h4>
<pre class="diff"><span>
<span class="info">--- releases/WebKitGTK/webkit-2.8/LayoutTests/fast/dom/repeating-timer-display-none-element-throttling.html        2015-07-06 13:40:54 UTC (rev 186352)
+++ releases/WebKitGTK/webkit-2.8/LayoutTests/fast/dom/repeating-timer-display-none-element-throttling.html        2015-07-06 14:03:06 UTC (rev 186353)
</span><span class="lines">@@ -1,46 +0,0 @@
</span><del>-<!DOCTYPE html>
-<body>
-<script src="../../resources/js-test-pre.js"></script>
-<div id="testElement" style="display: none">Test</div>
-<script>
-description("Tests that a repeating timer changing the style of a display:none element gets throttled.");
-jsTestIsAsync = true;
-
-var iterationCount = 0;
-var timeoutId;
-var testElement = document.getElementById("testElement");
-var wasThrottled = false;
-
-function timerCallback()
-{
- ++iterationCount;
- // Interact with the style of the element.
- testElement.style["left"] = "" + iterationCount + "px";
-
- // 5 iterations should suffice to throttle the timer.
- if (iterationCount == 5) {
- // Do not use shouldBeTrue() here because it would cause a DOM tree mutation and
- // unthrottle the DOM Timer.
- wasThrottled = internals.isTimerThrottled(timeoutId);
- } else if (iterationCount == 6) {
- debug("5th iteration, timer should have been throttled.");
- shouldBeTrue("wasThrottled");
- debug("6th iteration, timer should still be throttled.");
- shouldBeTrue("internals.isTimerThrottled(timeoutId)");
- debug("Timer mutated the DOM tree.");
- } else if (iterationCount >= 6) {
- // Timer should be unthrottled due to the DOM tree mutation caused by shouldBeTrue() in
- // the previous iteration.
- debug("" + iterationCount + "th iteration, timer should no longer be throttled.");
- shouldBeFalse("internals.isTimerThrottled(timeoutId)");
- clearInterval(timeoutId);
- finishJSTest();
- }
-}
-
-timeoutId = setInterval(timerCallback, 0);
-debug("The timer should initially not be throttled.");
-shouldBeFalse("internals.isTimerThrottled(timeoutId)");
-</script>
-<script src="../../resources/js-test-post.js"></script>
-</body>
</del></span></pre></div>
<a id="releasesWebKitGTKwebkit28LayoutTestsfastdomrepeatingtimerelementoverflowhiddenthrottlingexpectedtxt"></a>
<div class="delfile"><h4>Deleted: releases/WebKitGTK/webkit-2.8/LayoutTests/fast/dom/repeating-timer-element-overflow-hidden-throttling-expected.txt (186352 => 186353)</h4>
<pre class="diff"><span>
<span class="info">--- releases/WebKitGTK/webkit-2.8/LayoutTests/fast/dom/repeating-timer-element-overflow-hidden-throttling-expected.txt        2015-07-06 13:40:54 UTC (rev 186352)
+++ releases/WebKitGTK/webkit-2.8/LayoutTests/fast/dom/repeating-timer-element-overflow-hidden-throttling-expected.txt        2015-07-06 14:03:06 UTC (rev 186353)
</span><span class="lines">@@ -1,16 +0,0 @@
</span><del>-Tests that a repeating timer changing the style of an element with 0 height and hidden overflow content that have their own layer gets throttled.
-
-On success, you will see a series of "PASS" messages, followed by "TEST COMPLETE".
-
-
-PASS testElement.offsetHeight is 0
-The timer should initially not be throttled.
-PASS internals.isTimerThrottled(timeoutId) is false
-5th iteration, timer should have been throttled.
-PASS wasThrottled is true
-6th iteration, timer should still be unthrottled.
-PASS internals.isTimerThrottled(timeoutId) is true
-PASS successfullyParsed is true
-
-TEST COMPLETE
-
</del></span></pre></div>
<a id="releasesWebKitGTKwebkit28LayoutTestsfastdomrepeatingtimerelementoverflowhiddenthrottlinghtml"></a>
<div class="delfile"><h4>Deleted: releases/WebKitGTK/webkit-2.8/LayoutTests/fast/dom/repeating-timer-element-overflow-hidden-throttling.html (186352 => 186353)</h4>
<pre class="diff"><span>
<span class="info">--- releases/WebKitGTK/webkit-2.8/LayoutTests/fast/dom/repeating-timer-element-overflow-hidden-throttling.html        2015-07-06 13:40:54 UTC (rev 186352)
+++ releases/WebKitGTK/webkit-2.8/LayoutTests/fast/dom/repeating-timer-element-overflow-hidden-throttling.html        2015-07-06 14:03:06 UTC (rev 186353)
</span><span class="lines">@@ -1,45 +0,0 @@
</span><del>-<!DOCTYPE html>
-<body>
-<script src="../../resources/js-test-pre.js"></script>
-<div id="testElement" style="height: 0; overflow: hidden;">
-<div style="-webkit-transform: translateX(0);">test1</div>
-<div style="-webkit-transform: translateX(0);">test2</div>
-</div>
-<script>
-description("Tests that a repeating timer changing the style of an element with 0 height and hidden overflow content that have their own layer gets throttled.");
-jsTestIsAsync = true;
-
-var iterationCount = 0;
-var timeoutId;
-var testElement = document.getElementById("testElement");
-var wasThrottled = false;
-
-function timerCallback()
-{
- ++iterationCount;
- // Interact with the style of the element.
- testElement.style["left"] = "" + iterationCount + "px";
-
- // 5 iterations should suffice to throttle the timer.
- if (iterationCount == 5) {
- // Do not use shouldBeTrue() here because it would cause a DOM tree mutation and
- // unthrottle the DOM Timer.
- wasThrottled = internals.isTimerThrottled(timeoutId);
- } else if (iterationCount == 6) {
- debug("5th iteration, timer should have been throttled.");
- shouldBeTrue("wasThrottled");
- debug("6th iteration, timer should still be unthrottled.");
- shouldBeTrue("internals.isTimerThrottled(timeoutId)");
- clearInterval(timeoutId);
- finishJSTest();
- }
-}
-
-shouldBe("testElement.offsetHeight", "0");
-
-timeoutId = setInterval(timerCallback, 0);
-debug("The timer should initially not be throttled.");
-shouldBeFalse("internals.isTimerThrottled(timeoutId)");
-</script>
-<script src="../../resources/js-test-post.js"></script>
-</body>
</del></span></pre></div>
<a id="releasesWebKitGTKwebkit28LayoutTestsfastdomresourcestimerthrottlingiframehtml"></a>
<div class="delfile"><h4>Deleted: releases/WebKitGTK/webkit-2.8/LayoutTests/fast/dom/resources/timer-throttling-iframe.html (186352 => 186353)</h4>
<pre class="diff"><span>
<span class="info">--- releases/WebKitGTK/webkit-2.8/LayoutTests/fast/dom/resources/timer-throttling-iframe.html        2015-07-06 13:40:54 UTC (rev 186352)
+++ releases/WebKitGTK/webkit-2.8/LayoutTests/fast/dom/resources/timer-throttling-iframe.html        2015-07-06 14:03:06 UTC (rev 186353)
</span><span class="lines">@@ -1,23 +0,0 @@
</span><del>-<!DOCTYPE html>
-<body>
-<div id="testElement">TEST</div>
-<script>
-var testElement = document.getElementById("testElement");
-var iterationCount = 0;
-var timeoutId;
-
-function timerCallback() {
- ++iterationCount;
-
- // Change style of Element.
- testElement.style["opacity"] = "" + (iterationCount / 10.);
-
- parent.timerFired(iterationCount, internals.isTimerThrottled(timeoutId));
-
- if (iterationCount == 7)
- clearInterval(timeoutId);
-}
-
-timeoutId = setInterval(timerCallback, 0);
-</script>
-</body>
</del></span></pre></div>
<a id="releasesWebKitGTKwebkit28LayoutTestsfastdomtimerthrottleonscrollingiframeawayexpectedtxt"></a>
<div class="delfile"><h4>Deleted: releases/WebKitGTK/webkit-2.8/LayoutTests/fast/dom/timer-throttle-on-scrolling-iframe-away-expected.txt (186352 => 186353)</h4>
<pre class="diff"><span>
<span class="info">--- releases/WebKitGTK/webkit-2.8/LayoutTests/fast/dom/timer-throttle-on-scrolling-iframe-away-expected.txt        2015-07-06 13:40:54 UTC (rev 186352)
+++ releases/WebKitGTK/webkit-2.8/LayoutTests/fast/dom/timer-throttle-on-scrolling-iframe-away-expected.txt        2015-07-06 14:03:06 UTC (rev 186353)
</span><span class="lines">@@ -1,14 +0,0 @@
</span><del>-Tests that a repeating timer in an iframe changing the style of an element gets throttled when scrolling the frame out of view.
-
-On success, you will see a series of "PASS" messages, followed by "TEST COMPLETE".
-
-
-Frame is inside viewport, timer should not be throttled
-PASS isTimerThrottledBeforeScroll is false
-Scrolling frame out of view.
-Frame is outside viewport, timer should now be throttled
-PASS isTimerThrottledAfterScroll is true
-PASS successfullyParsed is true
-
-TEST COMPLETE
-
</del></span></pre></div>
<a id="releasesWebKitGTKwebkit28LayoutTestsfastdomtimerthrottleonscrollingiframeawayhtml"></a>
<div class="delfile"><h4>Deleted: releases/WebKitGTK/webkit-2.8/LayoutTests/fast/dom/timer-throttle-on-scrolling-iframe-away.html (186352 => 186353)</h4>
<pre class="diff"><span>
<span class="info">--- releases/WebKitGTK/webkit-2.8/LayoutTests/fast/dom/timer-throttle-on-scrolling-iframe-away.html        2015-07-06 13:40:54 UTC (rev 186352)
+++ releases/WebKitGTK/webkit-2.8/LayoutTests/fast/dom/timer-throttle-on-scrolling-iframe-away.html        2015-07-06 14:03:06 UTC (rev 186353)
</span><span class="lines">@@ -1,34 +0,0 @@
</span><del>-<!DOCTYPE html>
-<body>
-<script src="../../resources/js-test-pre.js"></script>
-<script>
-description("Tests that a repeating timer in an iframe changing the style of an element gets throttled when scrolling the frame out of view.");
-jsTestIsAsync = true;
-
-function scrollFrameOutOfView()
-{
- debug("Scrolling frame out of view.");
- window.scrollBy(0,800);
-}
-
-function timerFired(iterationCount, isThrottled) {
- // 5 iterations should suffice to throttle the timer.
- if (iterationCount == 5) {
- debug("Frame is inside viewport, timer should not be throttled");
- isTimerThrottledBeforeScroll = isThrottled;
- shouldBeFalse("isTimerThrottledBeforeScroll");
- scrollFrameOutOfView();
- } else if (iterationCount == 7) {
- debug("Frame is outside viewport, timer should now be throttled");
- isTimerThrottledAfterScroll = isThrottled;
- shouldBeTrue("isTimerThrottledAfterScroll");
- finishJSTest();
- }
-}
-
-</script>
-<div style="position: relative; width: 1600px; height: 2400px; background-color: green;">
- <iframe id="testFrame" src="resources/timer-throttling-iframe.html" style="width: 100px; height: 100px;"></iframe>
-</div>
-<script src="../../resources/js-test-post.js"></script>
-</body>
</del></span></pre></div>
<a id="releasesWebKitGTKwebkit28LayoutTestsfastdomtimerunthrottleonlayoutexpectedtxt"></a>
<div class="delfile"><h4>Deleted: releases/WebKitGTK/webkit-2.8/LayoutTests/fast/dom/timer-unthrottle-on-layout-expected.txt (186352 => 186353)</h4>
<pre class="diff"><span>
<span class="info">--- releases/WebKitGTK/webkit-2.8/LayoutTests/fast/dom/timer-unthrottle-on-layout-expected.txt        2015-07-06 13:40:54 UTC (rev 186352)
+++ releases/WebKitGTK/webkit-2.8/LayoutTests/fast/dom/timer-unthrottle-on-layout-expected.txt        2015-07-06 14:03:06 UTC (rev 186353)
</span><span class="lines">@@ -1,19 +0,0 @@
</span><del>-Tests that a repeating timer changing the style of an element outside viewport gets unthrottled if the elements is inside the viewport after layout.
-
-On success, you will see a series of "PASS" messages, followed by "TEST COMPLETE".
-
-
-PASS internals.isTimerThrottled(timeoutId) is false
-5th iteration, timer should be throttled as the element is outside the viewport.
-PASS wasThrottled is true
-Timer should still be throttled before layout.
-PASS internals.isTimerThrottled(timeoutId) is true
-Forcing layout
-Timer should no longer be throttled
-PASS internals.isTimerThrottled(timeoutId) is false
-6th iteration, timer should still be unthrottled.
-PASS internals.isTimerThrottled(timeoutId) is false
-PASS successfullyParsed is true
-
-TEST COMPLETE
-TEST
</del></span></pre></div>
<a id="releasesWebKitGTKwebkit28LayoutTestsfastdomtimerunthrottleonlayouthtml"></a>
<div class="delfile"><h4>Deleted: releases/WebKitGTK/webkit-2.8/LayoutTests/fast/dom/timer-unthrottle-on-layout.html (186352 => 186353)</h4>
<pre class="diff"><span>
<span class="info">--- releases/WebKitGTK/webkit-2.8/LayoutTests/fast/dom/timer-unthrottle-on-layout.html        2015-07-06 13:40:54 UTC (rev 186352)
+++ releases/WebKitGTK/webkit-2.8/LayoutTests/fast/dom/timer-unthrottle-on-layout.html        2015-07-06 14:03:06 UTC (rev 186353)
</span><span class="lines">@@ -1,62 +0,0 @@
</span><del>-<!DOCTYPE html>
-<body>
-<script src="../../resources/js-test-pre.js"></script>
-<div style="position: relative; width: 1600px; height: 2400px; background-color: green;">
- <div id="parentDiv" style="position:absolute; left: 600px; top: 800px;">
- <div id="testElement">TEST</div>
- </div>
-</div>
-<script>
-description("Tests that a repeating timer changing the style of an element outside viewport gets unthrottled if the elements is inside the viewport after layout.");
-jsTestIsAsync = true;
-
-var testElement = document.getElementById('testElement');
-var iterationCount = 0;
-var wasThrottled = false;
-var wasThrottledBeforeScroll = false;
-var timeoutId;
-
-function moveElementInsideViewport()
-{
- debug("5th iteration, timer should be throttled as the element is outside the viewport.");
- shouldBeTrue("wasThrottled");
-
- var parentDiv = document.getElementById("parentDiv");
- parentDiv.style["top"] = "100px";
-
- debug("Timer should still be throttled before layout.");
- shouldBeTrue("internals.isTimerThrottled(timeoutId)");
-
- debug("Forcing layout");
- parentDiv.offsetTop;
-
- debug("Timer should no longer be throttled");
- shouldBeFalse("internals.isTimerThrottled(timeoutId)");
-}
-
-function timerCallback()
-{
- ++iterationCount;
- // Change the style of the element while it is outside viewport.
- testElement.style["opacity"] = "" + (iterationCount / 10.);
-
- // 5 iterations should be sufficient to throttle the timer.
- if (iterationCount == 5) {
- // Do not use shouldBeTrue() because it would cause a DOM tree mutation
- // and unthrottle the timer.
- wasThrottled = internals.isTimerThrottled(timeoutId);
- setTimeout(moveElementInsideViewport, 0);
- } else if (iterationCount == 6) {
- debug("6th iteration, timer should still be unthrottled.");
- shouldBeFalse("internals.isTimerThrottled(timeoutId)");
-
- clearInterval(timeoutId);
- finishJSTest();
- }
-}
-
-timeoutId = setInterval(timerCallback, 0);
-shouldBeFalse("internals.isTimerThrottled(timeoutId)");
-</script>
-<script src="../../resources/js-test-post.js"></script>
-</body>
</del></span></pre></div>
<a id="releasesWebKitGTKwebkit28LayoutTestsfastdomtimerunthrottleonscrollexpectedtxt"></a>
<div class="delfile"><h4>Deleted: releases/WebKitGTK/webkit-2.8/LayoutTests/fast/dom/timer-unthrottle-on-scroll-expected.txt (186352 => 186353)</h4>
<pre class="diff"><span>
<span class="info">--- releases/WebKitGTK/webkit-2.8/LayoutTests/fast/dom/timer-unthrottle-on-scroll-expected.txt        2015-07-06 13:40:54 UTC (rev 186352)
+++ releases/WebKitGTK/webkit-2.8/LayoutTests/fast/dom/timer-unthrottle-on-scroll-expected.txt        2015-07-06 14:03:06 UTC (rev 186353)
</span><span class="lines">@@ -1,19 +0,0 @@
</span><del>-Tests that a repeating timer changing the style of an element outside viewport gets unthrottled when scrolling the element into view.
-
-On success, you will see a series of "PASS" messages, followed by "TEST COMPLETE".
-
-
-PASS internals.isTimerThrottled(timeoutId) is false
-5th iteration, timer should be throttled as the element is outside the viewport.
-PASS wasThrottled is true
-Timer should still be throttled before scrolling.
-PASS internals.isTimerThrottled(timeoutId) is true
-Scrolling element into view.
-Timer should no longer be throttled
-PASS internals.isTimerThrottled(timeoutId) is false
-6th iteration, timer should still be unthrottled.
-PASS internals.isTimerThrottled(timeoutId) is false
-PASS successfullyParsed is true
-
-TEST COMPLETE
-TEST
</del></span></pre></div>
<a id="releasesWebKitGTKwebkit28LayoutTestsfastdomtimerunthrottleonscrollhtml"></a>
<div class="delfile"><h4>Deleted: releases/WebKitGTK/webkit-2.8/LayoutTests/fast/dom/timer-unthrottle-on-scroll.html (186352 => 186353)</h4>
<pre class="diff"><span>
<span class="info">--- releases/WebKitGTK/webkit-2.8/LayoutTests/fast/dom/timer-unthrottle-on-scroll.html        2015-07-06 13:40:54 UTC (rev 186352)
+++ releases/WebKitGTK/webkit-2.8/LayoutTests/fast/dom/timer-unthrottle-on-scroll.html        2015-07-06 14:03:06 UTC (rev 186353)
</span><span class="lines">@@ -1,59 +0,0 @@
</span><del>-<!DOCTYPE html>
-<body>
-<script src="../../resources/js-test-pre.js"></script>
-<div style="position: relative; width: 1600px; height: 2400px; background-color: green;">
- <div style="position:absolute; left: 600px; top: 800px;">
- <div id="testElement">TEST</div>
- </div>
-</div>
-<script>
-description("Tests that a repeating timer changing the style of an element outside viewport gets unthrottled when scrolling the element into view.");
-jsTestIsAsync = true;
-
-var testElement = document.getElementById('testElement');
-var iterationCount = 0;
-var wasThrottled = false;
-var wasThrottledBeforeScroll = false;
-var timeoutId;
-
-function scrollElementIntoView()
-{
- debug("5th iteration, timer should be throttled as the element is outside the viewport.");
- shouldBeTrue("wasThrottled");
-
- debug("Timer should still be throttled before scrolling.");
- shouldBeTrue("internals.isTimerThrottled(timeoutId)");
-
- debug("Scrolling element into view.");
- window.internals.scrollElementToRect(testElement, 0, 0, 300, 300);
-
- debug("Timer should no longer be throttled");
- shouldBeFalse("internals.isTimerThrottled(timeoutId)");
-}
-
-function timerCallback()
-{
- ++iterationCount;
- // Change the style of the element while it is outside viewport.
- testElement.style["opacity"] = "" + (iterationCount / 10.);
-
- // 5 iterations should be sufficient to throttle the timer.
- if (iterationCount == 5) {
- // Do not use shouldBeTrue() because it would cause a DOM tree mutation
- // and unthrottle the timer.
- wasThrottled = internals.isTimerThrottled(timeoutId);
- setTimeout(scrollElementIntoView, 0);
- } else if (iterationCount == 6) {
- debug("6th iteration, timer should still be unthrottled.");
- shouldBeFalse("internals.isTimerThrottled(timeoutId)");
-
- clearInterval(timeoutId);
- finishJSTest();
- }
-}
-
-timeoutId = setInterval(timerCallback, 0);
-shouldBeFalse("internals.isTimerThrottled(timeoutId)");
-</script>
-<script src="../../resources/js-test-post.js"></script>
-</body>
</del></span></pre></div>
<a id="releasesWebKitGTKwebkit28SourceWebCoreChangeLog"></a>
<div class="modfile"><h4>Modified: releases/WebKitGTK/webkit-2.8/Source/WebCore/ChangeLog (186352 => 186353)</h4>
<pre class="diff"><span>
<span class="info">--- releases/WebKitGTK/webkit-2.8/Source/WebCore/ChangeLog        2015-07-06 13:40:54 UTC (rev 186352)
+++ releases/WebKitGTK/webkit-2.8/Source/WebCore/ChangeLog        2015-07-06 14:03:06 UTC (rev 186353)
</span><span class="lines">@@ -1,3 +1,42 @@
</span><ins>+2015-06-05 Chris Dumez <cdumez@apple.com>
+
+ Regression(r176212): Broke app switching on iCloud.com
+ https://bugs.webkit.org/show_bug.cgi?id=145708
+ <rdar://problem/21235277>
+
+ Reviewed by Simon Fraser.
+
+ Roll out r176212 and follow-up fixes for now, to fix iCloud.com.
+ We can reconsider later how to do this in a safer way.
+
+ * bindings/js/JSCSSStyleDeclarationCustom.cpp:
+ (WebCore::JSCSSStyleDeclaration::putDelegate): Deleted.
+ (WebCore::JSCSSStyleDeclaration::getOwnPropertyNames): Deleted.
+ * dom/Element.cpp:
+ * dom/Element.h:
+ * dom/ElementRareData.cpp:
+ * dom/ElementRareData.h:
+ (WebCore::ElementRareData::ElementRareData):
+ (WebCore::ElementRareData::~ElementRareData): Deleted.
+ * dom/Node.cpp:
+ (WebCore::Node::materializeRareData):
+ * html/HTMLCanvasElement.cpp:
+ (WebCore::HTMLCanvasElement::notifyObserversCanvasChanged): Deleted.
+ * page/DOMTimer.cpp:
+ (WebCore::DOMTimerFireState::scriptMadeNonUserObservableChanges): Deleted.
+ (WebCore::DOMTimerFireState::scriptMadeUserObservableChanges): Deleted.
+ (WebCore::NestedTimersMap::instanceForContext): Deleted.
+ (WebCore::DOMTimer::install): Deleted.
+ (WebCore::DOMTimer::fired): Deleted.
+ (WebCore::DOMTimer::alignedFireTime): Deleted.
+ (WebCore::DOMTimer::activeDOMObjectName): Deleted.
+ * page/DOMTimer.h:
+ * page/FrameView.cpp:
+ (WebCore::FrameView::reset): Deleted.
+ (WebCore::FrameView::viewportContentsChanged): Deleted.
+ (WebCore::FrameView::autoSizeIfEnabled): Deleted.
+ * page/FrameView.h:
+
</ins><span class="cx"> 2015-06-04 David Hyatt <hyatt@apple.com>
</span><span class="cx">
</span><span class="cx"> Underlines too close in vertical Chinese text.
</span></span></pre></div>
<a id="releasesWebKitGTKwebkit28SourceWebCorebindingsjsJSCSSStyleDeclarationCustomcpp"></a>
<div class="modfile"><h4>Modified: releases/WebKitGTK/webkit-2.8/Source/WebCore/bindings/js/JSCSSStyleDeclarationCustom.cpp (186352 => 186353)</h4>
<pre class="diff"><span>
<span class="info">--- releases/WebKitGTK/webkit-2.8/Source/WebCore/bindings/js/JSCSSStyleDeclarationCustom.cpp        2015-07-06 13:40:54 UTC (rev 186352)
+++ releases/WebKitGTK/webkit-2.8/Source/WebCore/bindings/js/JSCSSStyleDeclarationCustom.cpp        2015-07-06 14:03:06 UTC (rev 186353)
</span><span class="lines">@@ -320,23 +320,6 @@
</span><span class="cx"> return true;
</span><span class="cx"> }
</span><span class="cx">
</span><del>-// We only throttle DOM timers if they animate CSS properties that will only
-// cause the current element (or its descendants) to be repainted.
-static inline bool propertyChangeMayRepaintNonDescendants(CSSPropertyID propertyID)
-{
- switch (propertyID) {
- case CSSPropertyBottom:
- case CSSPropertyLeft:
- case CSSPropertyOpacity:
- case CSSPropertyRight:
- case CSSPropertyTop:
- case CSSPropertyWebkitTransform:
- return false;
- default:
- return true;
- }
-}
-
</del><span class="cx"> bool JSCSSStyleDeclaration::putDelegate(ExecState* exec, PropertyName propertyName, JSValue value, PutPropertySlot&)
</span><span class="cx"> {
</span><span class="cx"> CSSPropertyInfo propertyInfo = cssPropertyIDForJSCSSPropertyName(propertyName);
</span><span class="lines">@@ -361,10 +344,6 @@
</span><span class="cx"> impl().setPropertyInternal(propertyID, propValue, important, ec);
</span><span class="cx"> setDOMException(exec, ec);
</span><span class="cx">
</span><del>- // Choke point for interaction with style of element; notify DOMTimer of the event.
- if (auto* element = impl().parentElement())
- DOMTimer::scriptDidCauseElementRepaint(*element, propertyChangeMayRepaintNonDescendants(propertyID));
-
</del><span class="cx"> return true;
</span><span class="cx"> }
</span><span class="cx">
</span></span></pre></div>
<a id="releasesWebKitGTKwebkit28SourceWebCoredomElementcpp"></a>
<div class="modfile"><h4>Modified: releases/WebKitGTK/webkit-2.8/Source/WebCore/dom/Element.cpp (186352 => 186353)</h4>
<pre class="diff"><span>
<span class="info">--- releases/WebKitGTK/webkit-2.8/Source/WebCore/dom/Element.cpp        2015-07-06 13:40:54 UTC (rev 186352)
+++ releases/WebKitGTK/webkit-2.8/Source/WebCore/dom/Element.cpp        2015-07-06 14:03:06 UTC (rev 186353)
</span><span class="lines">@@ -1235,11 +1235,6 @@
</span><span class="cx"> return document().completeURL(stripLeadingAndTrailingHTMLSpaces(linkAttribute));
</span><span class="cx"> }
</span><span class="cx">
</span><del>-WeakPtr<Element> Element::createWeakPtr()
-{
- return ensureElementRareData().weakPtrFactory().createWeakPtr();
-}
-
</del><span class="cx"> // Returns true is the given attribute is an event handler.
</span><span class="cx"> // We consider an event handler any attribute that begins with "on".
</span><span class="cx"> // It is a simple solution that has the advantage of not requiring any
</span></span></pre></div>
<a id="releasesWebKitGTKwebkit28SourceWebCoredomElementh"></a>
<div class="modfile"><h4>Modified: releases/WebKitGTK/webkit-2.8/Source/WebCore/dom/Element.h (186352 => 186353)</h4>
<pre class="diff"><span>
<span class="info">--- releases/WebKitGTK/webkit-2.8/Source/WebCore/dom/Element.h        2015-07-06 13:40:54 UTC (rev 186352)
+++ releases/WebKitGTK/webkit-2.8/Source/WebCore/dom/Element.h        2015-07-06 14:03:06 UTC (rev 186353)
</span><span class="lines">@@ -554,7 +554,6 @@
</span><span class="cx"> void clearHoverAndActiveStatusBeforeDetachingRenderer();
</span><span class="cx">
</span><span class="cx"> WEBCORE_EXPORT URL absoluteLinkURL() const;
</span><del>- WeakPtr<Element> createWeakPtr();
</del><span class="cx">
</span><span class="cx"> protected:
</span><span class="cx"> Element(const QualifiedName&, Document&, ConstructionType);
</span></span></pre></div>
<a id="releasesWebKitGTKwebkit28SourceWebCoredomElementRareDatacpp"></a>
<div class="modfile"><h4>Modified: releases/WebKitGTK/webkit-2.8/Source/WebCore/dom/ElementRareData.cpp (186352 => 186353)</h4>
<pre class="diff"><span>
<span class="info">--- releases/WebKitGTK/webkit-2.8/Source/WebCore/dom/ElementRareData.cpp        2015-07-06 13:40:54 UTC (rev 186352)
+++ releases/WebKitGTK/webkit-2.8/Source/WebCore/dom/ElementRareData.cpp        2015-07-06 14:03:06 UTC (rev 186353)
</span><span class="lines">@@ -39,7 +39,7 @@
</span><span class="cx"> RegionOversetState regionOversetState;
</span><span class="cx"> LayoutSize sizeForResizing;
</span><span class="cx"> IntSize scrollOffset;
</span><del>- void* pointers[8];
</del><ins>+ void* pointers[7];
</ins><span class="cx"> };
</span><span class="cx">
</span><span class="cx"> static_assert(sizeof(ElementRareData) == sizeof(SameSizeAsElementRareData), "ElementRareData should stay small");
</span></span></pre></div>
<a id="releasesWebKitGTKwebkit28SourceWebCoredomElementRareDatah"></a>
<div class="modfile"><h4>Modified: releases/WebKitGTK/webkit-2.8/Source/WebCore/dom/ElementRareData.h (186352 => 186353)</h4>
<pre class="diff"><span>
<span class="info">--- releases/WebKitGTK/webkit-2.8/Source/WebCore/dom/ElementRareData.h        2015-07-06 13:40:54 UTC (rev 186352)
+++ releases/WebKitGTK/webkit-2.8/Source/WebCore/dom/ElementRareData.h        2015-07-06 14:03:06 UTC (rev 186353)
</span><span class="lines">@@ -35,7 +35,7 @@
</span><span class="cx">
</span><span class="cx"> class ElementRareData : public NodeRareData {
</span><span class="cx"> public:
</span><del>- ElementRareData(Element&, RenderElement*);
</del><ins>+ explicit ElementRareData(RenderElement*);
</ins><span class="cx"> ~ElementRareData();
</span><span class="cx">
</span><span class="cx"> void setBeforePseudoElement(RefPtr<PseudoElement>&&);
</span><span class="lines">@@ -113,8 +113,6 @@
</span><span class="cx"> bool hasPendingResources() const { return m_hasPendingResources; }
</span><span class="cx"> void setHasPendingResources(bool has) { m_hasPendingResources = has; }
</span><span class="cx">
</span><del>- WeakPtrFactory<Element>& weakPtrFactory() { return m_weakPtrFactory; }
-
</del><span class="cx"> private:
</span><span class="cx"> short m_tabIndex;
</span><span class="cx"> unsigned short m_childIndex;
</span><span class="lines">@@ -148,7 +146,6 @@
</span><span class="cx">
</span><span class="cx"> RefPtr<PseudoElement> m_beforePseudoElement;
</span><span class="cx"> RefPtr<PseudoElement> m_afterPseudoElement;
</span><del>- WeakPtrFactory<Element> m_weakPtrFactory;
</del><span class="cx">
</span><span class="cx"> void releasePseudoElement(PseudoElement*);
</span><span class="cx"> };
</span><span class="lines">@@ -158,7 +155,7 @@
</span><span class="cx"> return IntSize(LayoutUnit::max(), LayoutUnit::max());
</span><span class="cx"> }
</span><span class="cx">
</span><del>-inline ElementRareData::ElementRareData(Element& element, RenderElement* renderer)
</del><ins>+inline ElementRareData::ElementRareData(RenderElement* renderer)
</ins><span class="cx"> : NodeRareData(renderer)
</span><span class="cx"> , m_tabIndex(0)
</span><span class="cx"> , m_childIndex(0)
</span><span class="lines">@@ -177,7 +174,6 @@
</span><span class="cx"> , m_childrenAffectedByPropertyBasedBackwardPositionalRules(false)
</span><span class="cx"> , m_regionOversetState(RegionUndefined)
</span><span class="cx"> , m_minimumSizeForResizing(defaultMinimumSizeForResizing())
</span><del>- , m_weakPtrFactory(&element)
</del><span class="cx"> {
</span><span class="cx"> }
</span><span class="cx">
</span></span></pre></div>
<a id="releasesWebKitGTKwebkit28SourceWebCoredomNodecpp"></a>
<div class="modfile"><h4>Modified: releases/WebKitGTK/webkit-2.8/Source/WebCore/dom/Node.cpp (186352 => 186353)</h4>
<pre class="diff"><span>
<span class="info">--- releases/WebKitGTK/webkit-2.8/Source/WebCore/dom/Node.cpp        2015-07-06 13:40:54 UTC (rev 186352)
+++ releases/WebKitGTK/webkit-2.8/Source/WebCore/dom/Node.cpp        2015-07-06 14:03:06 UTC (rev 186353)
</span><span class="lines">@@ -341,7 +341,7 @@
</span><span class="cx"> {
</span><span class="cx"> NodeRareData* data;
</span><span class="cx"> if (is<Element>(*this))
</span><del>- data = std::make_unique<ElementRareData>(downcast<Element>(*this), downcast<RenderElement>(m_data.m_renderer)).release();
</del><ins>+ data = std::make_unique<ElementRareData>(downcast<RenderElement>(m_data.m_renderer)).release();
</ins><span class="cx"> else
</span><span class="cx"> data = std::make_unique<NodeRareData>(m_data.m_renderer).release();
</span><span class="cx"> ASSERT(data);
</span></span></pre></div>
<a id="releasesWebKitGTKwebkit28SourceWebCorehtmlHTMLCanvasElementcpp"></a>
<div class="modfile"><h4>Modified: releases/WebKitGTK/webkit-2.8/Source/WebCore/html/HTMLCanvasElement.cpp (186352 => 186353)</h4>
<pre class="diff"><span>
<span class="info">--- releases/WebKitGTK/webkit-2.8/Source/WebCore/html/HTMLCanvasElement.cpp        2015-07-06 13:40:54 UTC (rev 186352)
+++ releases/WebKitGTK/webkit-2.8/Source/WebCore/html/HTMLCanvasElement.cpp        2015-07-06 14:03:06 UTC (rev 186353)
</span><span class="lines">@@ -279,9 +279,6 @@
</span><span class="cx">
</span><span class="cx"> void HTMLCanvasElement::notifyObserversCanvasChanged(const FloatRect& rect)
</span><span class="cx"> {
</span><del>- // Choke point for canvas drawing; notify DOMTimer of the event.
- DOMTimer::scriptDidCauseElementRepaint(*this);
-
</del><span class="cx"> for (auto it = m_observers.begin(), end = m_observers.end(); it != end; ++it)
</span><span class="cx"> (*it)->canvasChanged(*this, rect);
</span><span class="cx"> }
</span></span></pre></div>
<a id="releasesWebKitGTKwebkit28SourceWebCorepageDOMTimercpp"></a>
<div class="modfile"><h4>Modified: releases/WebKitGTK/webkit-2.8/Source/WebCore/page/DOMTimer.cpp (186352 => 186353)</h4>
<pre class="diff"><span>
<span class="info">--- releases/WebKitGTK/webkit-2.8/Source/WebCore/page/DOMTimer.cpp        2015-07-06 13:40:54 UTC (rev 186352)
+++ releases/WebKitGTK/webkit-2.8/Source/WebCore/page/DOMTimer.cpp        2015-07-06 14:03:06 UTC (rev 186353)
</span><span class="lines">@@ -27,7 +27,6 @@
</span><span class="cx"> #include "config.h"
</span><span class="cx"> #include "DOMTimer.h"
</span><span class="cx">
</span><del>-#include "FrameView.h"
</del><span class="cx"> #include "HTMLPlugInElement.h"
</span><span class="cx"> #include "InspectorInstrumentation.h"
</span><span class="cx"> #include "Logging.h"
</span><span class="lines">@@ -82,11 +81,6 @@
</span><span class="cx">
</span><span class="cx"> void setScriptMadeUserObservableChanges() { m_scriptMadeUserObservableChanges = true; }
</span><span class="cx"> void setScriptMadeNonUserObservableChanges() { m_scriptMadeNonUserObservableChanges = true; }
</span><del>- void setScriptMadeNonUserObservableChangesToElement(Element& element)
- {
- m_scriptMadeNonUserObservableChanges = true;
- m_elementsChangedOutsideViewport.set(&element, element.createWeakPtr());
- }
</del><span class="cx">
</span><span class="cx"> bool scriptMadeNonUserObservableChanges() const { return m_scriptMadeNonUserObservableChanges; }
</span><span class="cx"> bool scriptMadeUserObservableChanges() const
</span><span class="lines">@@ -99,24 +93,12 @@
</span><span class="cx"> return document && document->domTreeVersion() != m_initialDOMTreeVersion;
</span><span class="cx"> }
</span><span class="cx">
</span><del>- void elementsChangedOutsideViewport(Vector<WeakPtr<Element>>& elements) const
- {
- ASSERT(elements.isEmpty());
- elements.reserveCapacity(m_elementsChangedOutsideViewport.size());
- for (auto& element : m_elementsChangedOutsideViewport.values()) {
- if (element)
- elements.uncheckedAppend(element);
- }
- elements.shrinkToFit();
- }
-
</del><span class="cx"> static DOMTimerFireState* current;
</span><span class="cx">
</span><span class="cx"> private:
</span><span class="cx"> ScriptExecutionContext& m_context;
</span><span class="cx"> uint64_t m_initialDOMTreeVersion;
</span><span class="cx"> DOMTimerFireState* m_previous;
</span><del>- HashMap<Element*, WeakPtr<Element>> m_elementsChangedOutsideViewport;
</del><span class="cx"> bool m_contextIsDocument;
</span><span class="cx"> bool m_scriptMadeNonUserObservableChanges { false };
</span><span class="cx"> bool m_scriptMadeUserObservableChanges { false };
</span><span class="lines">@@ -210,10 +192,6 @@
</span><span class="cx">
</span><span class="cx"> DOMTimer::~DOMTimer()
</span><span class="cx"> {
</span><del>- // If the ScriptExecutionContext has already been destroyed, there is
- // no need to stop listening for viewport changes.
- if (scriptExecutionContext() && isIntervalDependentOnViewport())
- unregisterForViewportChanges();
</del><span class="cx"> }
</span><span class="cx">
</span><span class="cx"> int DOMTimer::install(ScriptExecutionContext& context, std::unique_ptr<ScheduledAction> action, int timeout, bool singleShot)
</span><span class="lines">@@ -284,7 +262,6 @@
</span><span class="cx"> }
</span><span class="cx">
</span><span class="cx"> if (fireState.scriptMadeUserObservableChanges()) {
</span><del>- ASSERT(m_elementsCausingThrottling.isEmpty());
</del><span class="cx"> if (m_throttleState != ShouldNotThrottle) {
</span><span class="cx"> m_throttleState = ShouldNotThrottle;
</span><span class="cx"> updateTimerIntervalIfNecessary();
</span><span class="lines">@@ -294,11 +271,6 @@
</span><span class="cx"> m_throttleState = ShouldThrottle;
</span><span class="cx"> updateTimerIntervalIfNecessary();
</span><span class="cx"> }
</span><del>- // Update our vector of Elements causing throttling and register
- // for viewport changes if the vector is not empty.
- fireState.elementsChangedOutsideViewport(m_elementsCausingThrottling);
- if (isIntervalDependentOnViewport())
- registerForViewportChanges();
</del><span class="cx"> }
</span><span class="cx"> }
</span><span class="cx">
</span><span class="lines">@@ -313,17 +285,6 @@
</span><span class="cx"> DOMTimerFireState::current->setScriptMadeNonUserObservableChanges();
</span><span class="cx"> }
</span><span class="cx">
</span><del>-void DOMTimer::scriptDidCauseElementRepaint(Element& element, bool mayRepaintNonDescendants)
-{
- if (!DOMTimerFireState::current)
- return;
-
- if (mayRepaintNonDescendants || element.mayCauseRepaintInsideViewport())
- DOMTimerFireState::current->setScriptMadeUserObservableChanges();
- else
- DOMTimerFireState::current->setScriptMadeNonUserObservableChangesToElement(element);
-}
-
</del><span class="cx"> void DOMTimer::fired()
</span><span class="cx"> {
</span><span class="cx"> // Retain this - if the timer is cancelled while this function is on the stack (implicitly and always
</span><span class="lines">@@ -335,10 +296,6 @@
</span><span class="cx"> ScriptExecutionContext& context = *scriptExecutionContext();
</span><span class="cx">
</span><span class="cx"> DOMTimerFireState fireState(context);
</span><del>- if (isIntervalDependentOnViewport()) {
- // We re-evaluate if the timer interval is dependent on the viewport every time it fires.
- unregisterForViewportChanges();
- }
</del><span class="cx">
</span><span class="cx"> #if PLATFORM(IOS)
</span><span class="cx"> Document* document = nullptr;
</span><span class="lines">@@ -431,22 +388,6 @@
</span><span class="cx"> m_action = nullptr;
</span><span class="cx"> }
</span><span class="cx">
</span><del>-void DOMTimer::registerForViewportChanges()
-{
- ASSERT(isIntervalDependentOnViewport());
- if (auto* frameView = downcast<Document>(*scriptExecutionContext()).view())
- frameView->registerThrottledDOMTimer(this);
-}
-
-void DOMTimer::unregisterForViewportChanges()
-{
- ASSERT(scriptExecutionContext());
- if (auto* frameView = downcast<Document>(*scriptExecutionContext()).view())
- frameView->unregisterThrottledDOMTimer(this);
-
- m_elementsCausingThrottling.clear();
-}
-
</del><span class="cx"> void DOMTimer::updateTimerIntervalIfNecessary()
</span><span class="cx"> {
</span><span class="cx"> ASSERT(m_nestingLevel <= maxTimerNestingLevel);
</span><span class="lines">@@ -467,26 +408,6 @@
</span><span class="cx"> }
</span><span class="cx"> }
</span><span class="cx">
</span><del>-void DOMTimer::updateThrottlingStateAfterViewportChange(const IntRect& visibleRect)
-{
- ASSERT(isIntervalDependentOnViewport());
- // Check if the elements that caused this timer to be throttled are still outside the viewport.
- for (auto& weakElementPtr : m_elementsCausingThrottling) {
- Element* element = weakElementPtr.get();
- // Skip elements that were removed from the document.
- if (!element || !element->inDocument())
- continue;
-
- if (element->mayCauseRepaintInsideViewport(&visibleRect)) {
- LOG(DOMTimers, "%p - Script is changing style of an element that is now inside the viewport, unthrottling the timer.", this);
- m_throttleState = ShouldNotThrottle;
- unregisterForViewportChanges();
- updateTimerIntervalIfNecessary();
- break;
- }
- }
-}
-
</del><span class="cx"> double DOMTimer::intervalClampedToMinimum() const
</span><span class="cx"> {
</span><span class="cx"> ASSERT(scriptExecutionContext());
</span></span></pre></div>
<a id="releasesWebKitGTKwebkit28SourceWebCorepageDOMTimerh"></a>
<div class="modfile"><h4>Modified: releases/WebKitGTK/webkit-2.8/Source/WebCore/page/DOMTimer.h (186352 => 186353)</h4>
<pre class="diff"><span>
<span class="info">--- releases/WebKitGTK/webkit-2.8/Source/WebCore/page/DOMTimer.h        2015-07-06 13:40:54 UTC (rev 186352)
+++ releases/WebKitGTK/webkit-2.8/Source/WebCore/page/DOMTimer.h        2015-07-06 14:03:06 UTC (rev 186353)
</span><span class="lines">@@ -29,9 +29,7 @@
</span><span class="cx">
</span><span class="cx"> #include "SuspendableTimer.h"
</span><span class="cx"> #include <memory>
</span><del>-#include <wtf/HashSet.h>
</del><span class="cx"> #include <wtf/RefCounted.h>
</span><del>-#include <wtf/WeakPtr.h>
</del><span class="cx">
</span><span class="cx"> namespace WebCore {
</span><span class="cx">
</span><span class="lines">@@ -56,10 +54,8 @@
</span><span class="cx"> // Notify that the interval may need updating (e.g. because the minimum interval
</span><span class="cx"> // setting for the context has changed).
</span><span class="cx"> void updateTimerIntervalIfNecessary();
</span><del>- void updateThrottlingStateAfterViewportChange(const IntRect& visibleRect);
</del><span class="cx">
</span><span class="cx"> static void scriptDidInteractWithPlugin(HTMLPlugInElement&);
</span><del>- static void scriptDidCauseElementRepaint(Element&, bool mayRepaintNonDescendants = false);
</del><span class="cx">
</span><span class="cx"> private:
</span><span class="cx"> DOMTimer(ScriptExecutionContext&, std::unique_ptr<ScheduledAction>, int interval, bool singleShot);
</span><span class="lines">@@ -68,10 +64,6 @@
</span><span class="cx"> double intervalClampedToMinimum() const;
</span><span class="cx">
</span><span class="cx"> bool isDOMTimersThrottlingEnabled(Document&) const;
</span><del>- bool isIntervalDependentOnViewport() const { return m_throttleState == ShouldThrottle && !m_elementsCausingThrottling.isEmpty(); }
- void registerForViewportChanges();
- void unregisterForViewportChanges();
-
</del><span class="cx"> void updateThrottlingStateIfNecessary(const DOMTimerFireState&);
</span><span class="cx">
</span><span class="cx"> // SuspendableTimer
</span><span class="lines">@@ -92,10 +84,6 @@
</span><span class="cx"> TimerThrottleState m_throttleState;
</span><span class="cx"> double m_currentTimerInterval;
</span><span class="cx"> bool m_shouldForwardUserGesture;
</span><del>- // Use WeakPtrs because we don't want to keep the elements alive but we
- // still need to handle cases where the elements get destroyed after
- // the timer has fired.
- Vector<WeakPtr<Element>> m_elementsCausingThrottling;
</del><span class="cx"> };
</span><span class="cx">
</span><span class="cx"> } // namespace WebCore
</span></span></pre></div>
<a id="releasesWebKitGTKwebkit28SourceWebCorepageFrameViewcpp"></a>
<div class="modfile"><h4>Modified: releases/WebKitGTK/webkit-2.8/Source/WebCore/page/FrameView.cpp (186352 => 186353)</h4>
<pre class="diff"><span>
<span class="info">--- releases/WebKitGTK/webkit-2.8/Source/WebCore/page/FrameView.cpp        2015-07-06 13:40:54 UTC (rev 186352)
+++ releases/WebKitGTK/webkit-2.8/Source/WebCore/page/FrameView.cpp        2015-07-06 14:03:06 UTC (rev 186353)
</span><span class="lines">@@ -291,7 +291,6 @@
</span><span class="cx"> m_isVisuallyNonEmpty = false;
</span><span class="cx"> m_firstVisuallyNonEmptyLayoutCallbackPending = true;
</span><span class="cx"> m_maintainScrollPositionAnchor = nullptr;
</span><del>- m_throttledTimers.clear();
</del><span class="cx"> }
</span><span class="cx">
</span><span class="cx"> void FrameView::removeFromAXObjectCache()
</span><span class="lines">@@ -1764,7 +1763,6 @@
</span><span class="cx"> // When the viewport contents changes (scroll, resize, style recalc, layout, ...),
</span><span class="cx"> // check if we should resume animated images or unthrottle DOM timers.
</span><span class="cx"> resumeVisibleImageAnimationsIncludingSubframes();
</span><del>- updateThrottledDOMTimersState();
</del><span class="cx"> }
</span><span class="cx">
</span><span class="cx"> bool FrameView::fixedElementsLayoutRelativeToFrame() const
</span><span class="lines">@@ -3088,31 +3086,6 @@
</span><span class="cx"> performPostLayoutTasks();
</span><span class="cx"> }
</span><span class="cx">
</span><del>-void FrameView::registerThrottledDOMTimer(DOMTimer* timer)
-{
- m_throttledTimers.add(timer);
-}
-
-void FrameView::unregisterThrottledDOMTimer(DOMTimer* timer)
-{
- m_throttledTimers.remove(timer);
-}
-
-void FrameView::updateThrottledDOMTimersState()
-{
- if (m_throttledTimers.isEmpty())
- return;
-
- IntRect visibleRect = windowToContents(windowClipRect());
-
- // Do not iterate over the HashSet because calling DOMTimer::updateThrottlingStateAfterViewportChange()
- // may cause timers to remove themselves from it while we are iterating.
- Vector<DOMTimer*> timers;
- copyToVector(m_throttledTimers, timers);
- for (auto* timer : timers)
- timer->updateThrottlingStateAfterViewportChange(visibleRect);
-}
-
</del><span class="cx"> void FrameView::autoSizeIfEnabled()
</span><span class="cx"> {
</span><span class="cx"> if (!m_shouldAutoSize)
</span></span></pre></div>
<a id="releasesWebKitGTKwebkit28SourceWebCorepageFrameViewh"></a>
<div class="modfile"><h4>Modified: releases/WebKitGTK/webkit-2.8/Source/WebCore/page/FrameView.h (186352 => 186353)</h4>
<pre class="diff"><span>
<span class="info">--- releases/WebKitGTK/webkit-2.8/Source/WebCore/page/FrameView.h        2015-07-06 13:40:54 UTC (rev 186352)
+++ releases/WebKitGTK/webkit-2.8/Source/WebCore/page/FrameView.h        2015-07-06 14:03:06 UTC (rev 186353)
</span><span class="lines">@@ -43,7 +43,6 @@
</span><span class="cx"> namespace WebCore {
</span><span class="cx">
</span><span class="cx"> class AXObjectCache;
</span><del>-class DOMTimer;
</del><span class="cx"> class Element;
</span><span class="cx"> class FloatSize;
</span><span class="cx"> class Frame;
</span><span class="lines">@@ -314,9 +313,6 @@
</span><span class="cx">
</span><span class="cx"> void postLayoutTimerFired();
</span><span class="cx">
</span><del>- void registerThrottledDOMTimer(DOMTimer*);
- void unregisterThrottledDOMTimer(DOMTimer*);
-
</del><span class="cx"> WEBCORE_EXPORT bool wasScrolledByUser() const;
</span><span class="cx"> WEBCORE_EXPORT void setWasScrolledByUser(bool);
</span><span class="cx">
</span><span class="lines">@@ -583,7 +579,6 @@
</span><span class="cx"> void forceLayoutParentViewIfNeeded();
</span><span class="cx"> void performPostLayoutTasks();
</span><span class="cx"> void autoSizeIfEnabled();
</span><del>- void updateThrottledDOMTimersState();
</del><span class="cx">
</span><span class="cx"> void updateLayerFlushThrottling();
</span><span class="cx"> WEBCORE_EXPORT void adjustTiledBackingCoverage();
</span><span class="lines">@@ -772,8 +767,6 @@
</span><span class="cx"> std::unique_ptr<ScrollableAreaSet> m_scrollableAreas;
</span><span class="cx"> std::unique_ptr<ViewportConstrainedObjectSet> m_viewportConstrainedObjects;
</span><span class="cx">
</span><del>- HashSet<DOMTimer*> m_throttledTimers;
-
</del><span class="cx"> int m_headerHeight;
</span><span class="cx"> int m_footerHeight;
</span><span class="cx">
</span></span></pre>
</div>
</div>
</body>
</html>