Unreviewed rollout of r230632. Regression in memory usage.
authorjbedard@apple.com <jbedard@apple.com@268f45cc-cd09-0410-ab3c-d52691b4dbfc>
Tue, 17 Apr 2018 23:08:31 +0000 (23:08 +0000)
committerjbedard@apple.com <jbedard@apple.com@268f45cc-cd09-0410-ab3c-d52691b4dbfc>
Tue, 17 Apr 2018 23:08:31 +0000 (23:08 +0000)
That bug tracked in https://bugs.webkit.org/show_bug.cgi?id=184569.

LayoutTests/imported/w3c:

* web-platform-tests/web-animations/interfaces/Animatable/animate-expected.txt:

Source/WebCore:

Tests: animations/animation-internals-api-multiple-keyframes.html
       animations/animation-internals-api.html
       transitions/transition-drt-api-delay.html
       transitions/transition-drt-api.html

* page/RuntimeEnabledFeatures.h:
* testing/Internals.cpp:
(WebCore::Internals::pseudoElement): Deleted.
* testing/Internals.h:
* testing/Internals.idl:

Source/WebKit:

* Shared/WebPreferences.yaml:

Source/WebKitLegacy/mac:

* WebView/WebPreferences.mm:
(+[WebPreferences initialize]):

Source/WebKitLegacy/win:

* WebPreferences.cpp:
(WebPreferences::initializeDefaultSettings):

Tools:

* DumpRenderTree/TestOptions.h:
* DumpRenderTree/mac/DumpRenderTree.mm:
(runTest):
(shouldOverrideAndDisableCSSAnimationsAndCSSTransitionsBackedByWebAnimationsPreference): Deleted.
* WebKitTestRunner/TestController.cpp:
(WTR::TestController::resetPreferencesToConsistentValues):
* WebKitTestRunner/TestOptions.cpp:
(WTR::TestOptions::TestOptions):
(WTR::isLegacyAnimationEngineTestPath): Deleted.
* WebKitTestRunner/TestOptions.h:

LayoutTests:

* TestExpectations:
* animations/animation-direction-alternate-reverse-expected.txt:
* animations/animation-direction-alternate-reverse.html:
* animations/animation-hit-test-transform.html:
* animations/animation-internals-api-expected.txt: Copied from LayoutTests/animations/animation-internals-api-expected.txt.
* animations/animation-internals-api-multiple-keyframes-expected.txt: Copied from LayoutTests/animations/animation-internals-api-multiple-keyframes-expected.txt.
* animations/animation-internals-api-multiple-keyframes.html: Copied from LayoutTests/animations/animation-internals-api-multiple-keyframes.html.
* animations/animation-internals-api.html: Copied from LayoutTests/animations/animation-internals-api.html.
* animations/big-rotation-expected.txt:
* animations/big-rotation.html:
* animations/duplicated-keyframes-name.html:
* animations/fill-forwards-end-state.html:
* animations/fill-mode-forwards-zero-duration-expected.txt:
* animations/fill-mode-forwards-zero-duration.html:
* fast/css-generated-content/pseudo-animation.html:
* fast/css-generated-content/pseudo-transition.html:
* platform/ios/TestExpectations:
* platform/win/TestExpectations:
* transitions/remove-transition-style.html:
* transitions/transition-drt-api-delay-expected.txt: Copied from LayoutTests/transitions/transition-drt-api-delay-expected.txt.
* transitions/transition-drt-api-delay.html: Copied from LayoutTests/transitions/transition-drt-api-delay.html.
* transitions/transition-drt-api-expected.txt: Copied from LayoutTests/transitions/transition-drt-api-expected.txt.
* transitions/transition-drt-api.html: Copied from LayoutTests/transitions/transition-drt-api.html.
* transitions/transition-hit-test-transform.html:
* transitions/zero-duration-with-non-zero-delay-end.html:

git-svn-id: https://svn.webkit.org/repository/webkit/trunk@230736 268f45cc-cd09-0410-ab3c-d52691b4dbfc

45 files changed:
LayoutTests/ChangeLog
LayoutTests/TestExpectations
LayoutTests/animations/animation-direction-alternate-reverse-expected.txt
LayoutTests/animations/animation-direction-alternate-reverse.html
LayoutTests/animations/animation-hit-test-transform.html
LayoutTests/animations/animation-internals-api-expected.txt [new file with mode: 0644]
LayoutTests/animations/animation-internals-api-multiple-keyframes-expected.txt [new file with mode: 0644]
LayoutTests/animations/animation-internals-api-multiple-keyframes.html [new file with mode: 0644]
LayoutTests/animations/animation-internals-api.html [new file with mode: 0644]
LayoutTests/animations/big-rotation-expected.txt
LayoutTests/animations/big-rotation.html
LayoutTests/animations/duplicated-keyframes-name.html
LayoutTests/animations/fill-forwards-end-state.html
LayoutTests/animations/fill-mode-forwards-zero-duration-expected.txt
LayoutTests/animations/fill-mode-forwards-zero-duration.html
LayoutTests/fast/css-generated-content/pseudo-animation.html
LayoutTests/fast/css-generated-content/pseudo-transition.html
LayoutTests/imported/w3c/ChangeLog
LayoutTests/imported/w3c/web-platform-tests/web-animations/interfaces/Animatable/animate-expected.txt
LayoutTests/platform/ios/TestExpectations
LayoutTests/platform/win/TestExpectations
LayoutTests/transitions/remove-transition-style.html
LayoutTests/transitions/transition-drt-api-delay-expected.txt [new file with mode: 0644]
LayoutTests/transitions/transition-drt-api-delay.html [new file with mode: 0644]
LayoutTests/transitions/transition-drt-api-expected.txt [new file with mode: 0644]
LayoutTests/transitions/transition-drt-api.html [new file with mode: 0644]
LayoutTests/transitions/transition-hit-test-transform.html
LayoutTests/transitions/zero-duration-with-non-zero-delay-end.html
Source/WebCore/ChangeLog
Source/WebCore/page/RuntimeEnabledFeatures.h
Source/WebCore/testing/Internals.cpp
Source/WebCore/testing/Internals.h
Source/WebCore/testing/Internals.idl
Source/WebKit/ChangeLog
Source/WebKit/Shared/WebPreferences.yaml
Source/WebKitLegacy/mac/ChangeLog
Source/WebKitLegacy/mac/WebView/WebPreferences.mm
Source/WebKitLegacy/win/ChangeLog
Source/WebKitLegacy/win/WebPreferences.cpp
Tools/ChangeLog
Tools/DumpRenderTree/TestOptions.h
Tools/DumpRenderTree/mac/DumpRenderTree.mm
Tools/WebKitTestRunner/TestController.cpp
Tools/WebKitTestRunner/TestOptions.cpp
Tools/WebKitTestRunner/TestOptions.h

index faa13cf..5405bcd 100644 (file)
@@ -1,3 +1,35 @@
+2018-04-17  Jonathan Bedard  <jbedard@apple.com>
+
+        Unreviewed rollout of r230632. Regression in memory usage.
+
+        That bug tracked in https://bugs.webkit.org/show_bug.cgi?id=184569.
+
+        * TestExpectations:
+        * animations/animation-direction-alternate-reverse-expected.txt:
+        * animations/animation-direction-alternate-reverse.html:
+        * animations/animation-hit-test-transform.html:
+        * animations/animation-internals-api-expected.txt: Copied from LayoutTests/animations/animation-internals-api-expected.txt.
+        * animations/animation-internals-api-multiple-keyframes-expected.txt: Copied from LayoutTests/animations/animation-internals-api-multiple-keyframes-expected.txt.
+        * animations/animation-internals-api-multiple-keyframes.html: Copied from LayoutTests/animations/animation-internals-api-multiple-keyframes.html.
+        * animations/animation-internals-api.html: Copied from LayoutTests/animations/animation-internals-api.html.
+        * animations/big-rotation-expected.txt:
+        * animations/big-rotation.html:
+        * animations/duplicated-keyframes-name.html:
+        * animations/fill-forwards-end-state.html:
+        * animations/fill-mode-forwards-zero-duration-expected.txt:
+        * animations/fill-mode-forwards-zero-duration.html:
+        * fast/css-generated-content/pseudo-animation.html:
+        * fast/css-generated-content/pseudo-transition.html:
+        * platform/ios/TestExpectations:
+        * platform/win/TestExpectations:
+        * transitions/remove-transition-style.html:
+        * transitions/transition-drt-api-delay-expected.txt: Copied from LayoutTests/transitions/transition-drt-api-delay-expected.txt.
+        * transitions/transition-drt-api-delay.html: Copied from LayoutTests/transitions/transition-drt-api-delay.html.
+        * transitions/transition-drt-api-expected.txt: Copied from LayoutTests/transitions/transition-drt-api-expected.txt.
+        * transitions/transition-drt-api.html: Copied from LayoutTests/transitions/transition-drt-api.html.
+        * transitions/transition-hit-test-transform.html:
+        * transitions/zero-duration-with-non-zero-delay-end.html:
+
 2018-04-17  Tadeu Zagallo  <tzagallo@apple.com>
 
         Do not unregister MessagePorts on deallocation if it has been disentangled
index 6b25786..315df32 100644 (file)
@@ -1840,16 +1840,3 @@ webkit.org/b/48451 animations/combo-transform-translate+scale.html [ Pass Failur
 webkit.org/b/48451 animations/play-state.html [ Pass Failure ]
 webkit.org/b/48451 animations/suspend-resume-animation.html [ Pass Failure ]
 webkit.org/b/48451 animations/3d/transform-origin-vs-functions.html [ Pass Failure ]
-
-# Regressions in the new animation engine.
-webkit.org/b/184563 animations/trigger-container-scroll-boundaries.html [ Failure ]
-webkit.org/b/184563 animations/trigger-container-scroll-empty.html [ Failure ]
-webkit.org/b/184563 animations/trigger-container-scroll-simple.html [ Failure ]
-webkit.org/b/184564 imported/blink/transitions/zero-duration-should-not-cancel.html [ Failure ]
-webkit.org/b/184565 compositing/layer-creation/mismatched-rotated-transform-transition-overlap.html [ Failure ]
-webkit.org/b/184565 compositing/layer-creation/mismatched-transform-transition-overlap.html [ Failure ]
-webkit.org/b/184565 compositing/layer-creation/scale-rotation-transition-overlap.html [ Failure ]
-webkit.org/b/184565 compositing/layer-creation/translate-scale-transition-overlap.html [ Failure ]
-webkit.org/b/184565 compositing/layer-creation/translate-transition-overlap.html [ Failure ]
-webkit.org/b/184566 compositing/backing/transform-transition-from-outside-view.html [ Failure ]
-webkit.org/b/184579 fast/animation/css-animation-resuming-when-visible-with-style-change2.html [ Pass Failure ]
index 636ce26..282fa27 100644 (file)
@@ -1,5 +1,5 @@
 PASS - "left" property for "box" element at 1s saw something close to: 200
 PASS - "left" property for "box" element at 2s saw something close to: 0
 PASS - "left" property for "box" element at 3s saw something close to: 200
-PASS - "left" property for "box" element at 4s saw something close to: 0
+PASS - "left" property for "box" element at 4s saw something close to: 400
 
index 98627aa..66a1613 100644 (file)
@@ -40,8 +40,9 @@
       // [animation-name, time, element-id, property, expected-value, tolerance]
       ["move", 1.0, "box", "left", 200, 20],
       ["move", 2.0, "box", "left", 0, 20],
+
       ["move", 3.0, "box", "left", 200, 20],
-      ["move", 4.0, "box", "left", 0, 20],
+      ["move", 4.0, "box", "left", 400, 20],
     ];
     
     runAnimationTest(expectedValues);
index 9441ed0..49f50e7 100644 (file)
@@ -58,7 +58,7 @@
         {
             if (window.testRunner) {
                 var target = document.getElementById("target");
-                if (!pauseAnimationAtTimeOnElement("anim", 2.0, target)) {
+                if (!internals.pauseAnimationAtTimeOnElement("anim", 2.0, target)) {
                     document.getElementById('result').innerHTML = "FAIL: Failed to pause animation"
                     testRunner.notifyDone();
                     return;
diff --git a/LayoutTests/animations/animation-internals-api-expected.txt b/LayoutTests/animations/animation-internals-api-expected.txt
new file mode 100644 (file)
index 0000000..ece4993
--- /dev/null
@@ -0,0 +1 @@
+PASS: correctly paused animation
diff --git a/LayoutTests/animations/animation-internals-api-multiple-keyframes-expected.txt b/LayoutTests/animations/animation-internals-api-multiple-keyframes-expected.txt
new file mode 100644 (file)
index 0000000..ece4993
--- /dev/null
@@ -0,0 +1 @@
+PASS: correctly paused animation
diff --git a/LayoutTests/animations/animation-internals-api-multiple-keyframes.html b/LayoutTests/animations/animation-internals-api-multiple-keyframes.html
new file mode 100644 (file)
index 0000000..4f3f46c
--- /dev/null
@@ -0,0 +1,60 @@
+<!DOCTYPE html>
+
+<html>
+<head>
+  <style>
+    #target {
+      position: relative;
+      left: 100px;
+      height: 100px;
+      width: 100px;
+      background-color: blue;
+      -webkit-animation-duration: 1s;
+      -webkit-animation-timing-function: linear;
+    }
+
+    @-webkit-keyframes anim {
+      from { left: 10px; }
+      40% { left: 30px; }
+      60% { left: 15px; }
+      to { left: 20px; }
+    }
+   </style>
+
+   <script src="resources/animation-test-helpers.js"></script>
+   <script>
+    if (window.testRunner)
+      testRunner.dumpAsText();
+
+    function animationStarted()
+    {
+      if (window.testRunner) {
+        var target = document.getElementById('target');
+        var paused = internals.pauseAnimationAtTimeOnElement("anim", 1, target);
+        var result;
+        if (paused)
+          result = "PASS: correctly paused animation";
+        else
+          result = "FAIL: failed to pause animation";
+
+        document.getElementById('results').innerText = result;
+        testRunner.notifyDone();
+      } else
+        document.getElementById('results').innerText = "This test requires WebCore Internals";
+    }
+
+    function startTest()
+    {
+      var target = document.getElementById('target');
+      target.style.webkitAnimationName = "anim";
+      waitForAnimationToStart(target, animationStarted);
+    }
+   </script>
+</head>
+<body onload="startTest()">
+  <!-- Test for Internals' pauseAnimationAtTimeOnElement() API on animations with multiple keyframes -->
+  <div id="target"></div>
+  <div id="results"></div>
+
+</body>
+</html>
diff --git a/LayoutTests/animations/animation-internals-api.html b/LayoutTests/animations/animation-internals-api.html
new file mode 100644 (file)
index 0000000..0545419
--- /dev/null
@@ -0,0 +1,61 @@
+<!DOCTYPE html>
+<html>
+<head>
+  <style>
+    #target {
+      position: relative;
+      left: 100px;
+      height: 100px;
+      width: 100px;
+      background-color: blue;
+      -webkit-animation-duration: 1s;
+      -webkit-animation-timing-function: linear;
+    }
+
+    @-webkit-keyframes bounce {
+      from {
+        left: 100px;
+      }
+      to {
+        left: 200px;
+      }
+    }
+
+  </style>
+
+  <script src="resources/animation-test-helpers.js"></script>
+  <script>
+    if (window.testRunner)
+      testRunner.dumpAsText();
+
+    function animationStarted()
+    {
+      if (window.testRunner) {
+        var target = document.getElementById('target');
+        var paused = internals.pauseAnimationAtTimeOnElement("bounce", 1.0, target);
+        var result = "";
+        if (paused)
+          result = "PASS: correctly paused animation";
+        else
+          result = "FAIL: failed to pause animation";
+
+        document.getElementById('results').innerText = result;
+        testRunner.notifyDone();
+      } else
+        document.getElementById('results').innerText = "This test requires WebCore Internals";
+    }
+
+    function startTest()
+    {
+      var target = document.getElementById('target');
+      target.style.webkitAnimationName = "bounce";
+      waitForAnimationToStart(target, animationStarted);
+    }
+   </script>
+</head>
+<body onload="startTest()">
+  <!-- Test for Internals pauseAnimationAtTimeOnElement() API -->
+  <div id="target"></div>
+  <div id="results"></div>
+</body>
+</html>
index 1dd516a..d5d082a 100644 (file)
@@ -2,5 +2,5 @@ This test shows rotation of > 180 degrees. The box should make one and a half ro
 
 PASS - "webkitTransform" property for "box" element at 1s saw something close to: -1,0,0,-1
 PASS - "webkitTransform" property for "box" element at 2s saw something close to: 1,0,0,1
-PASS - "webkitTransform" property for "box" element at 3s saw something close to: none
+PASS - "webkitTransform" property for "box" element at 3s saw something close to: -1,0,0,-1
 
index 416760d..27baf83 100644 (file)
@@ -25,7 +25,7 @@
       // [animation-name, time, element-id, property, expected-value, tolerance]
       ["rotate", 1, "box", "webkitTransform", [-1,0,0,-1], 0.2],
       ["rotate", 2, "box", "webkitTransform", [1,0,0,1], 0.2],
-      ["rotate", 3, "box", "webkitTransform", "none", 0.2],
+      ["rotate", 3, "box", "webkitTransform", [-1,0,0,-1], 0.2],
     ];
     
     runAnimationTest(expectedValues);
index 1ab642c..222e16d 100644 (file)
@@ -16,7 +16,6 @@
         -webkit-animation-duration: 1s;
         -webkit-animation-timing-function: linear;
         -webkit-animation-name: anim;
-        -webkit-animation-fill-mode: forwards;
     }
     @-webkit-keyframes anim {
         from { left: 50px; }
index 62a8aad..301361d 100644 (file)
@@ -10,7 +10,8 @@
       height: 100px;
       width: 100px;
       background-color: blue;
-      animation: anim1 2s 0.2s linear forwards;
+      animation-fill-mode: forwards;
+      animation: anim1 2s 0.2s linear;
     }
     @keyframes anim1 {
         from { left: 100px; }
index da39256..df411d0 100644 (file)
@@ -1,4 +1,4 @@
 Fill-forwards state should be the last keyframe state, even with a zero-duration animation.
 
-PASS - "left" property for "box1" element at 3s saw something close to: 100
+PASS - "left" property for "box1" element at 1s saw something close to: 100
 
index c67e2b8..0ac79a9 100644 (file)
@@ -23,7 +23,7 @@
 
     const expectedValues = [
       // [animation-name, time, element-id, property, expected-value, tolerance]
-      ["anim1", 3, "box1", "left", 100, 2],
+      ["anim1", 1, "box1", "left", 100, 2],
     ];
 
     runAnimationTest(expectedValues);
index e30865a..3a0c6c4 100644 (file)
@@ -78,25 +78,6 @@ function getPseudoComputedTop(id)
 // FIXME: This test should be modified so subpixel doesn't cause off by one
 // below and it no longer needs shouldBeCloseTo.
 
-function pauseAnimationAtTimeOnPseudoElement(animationName, time, element, pseudoId)
-{
-    const pseudoElement = internals.pseudoElement(element, pseudoId);
-    if (!pseudoElement) {
-        console.log("Failed to find pseudo element");
-        return;
-    }
-
-    const animations = pseudoElement.getAnimations();
-    for (let animation of animations) {
-        if (animation instanceof CSSAnimation && animation.animationName == animationName && animation.effect.getKeyframes().length) {
-            animation.currentTime = time * 1000;
-            animation.pause();
-            return true;
-        }
-    }
-    return false;
-}
-
 function testAnimation(id)
 {
     var div = document.getElementById(id);
@@ -104,11 +85,11 @@ function testAnimation(id)
     window.div = div;
     shouldBe('div.offsetWidth', '52');
     if (window.internals) {
-        pauseAnimationAtTimeOnPseudoElement('example', 1.0, div, id);
+        internals.pauseAnimationAtTimeOnPseudoElement('example', 1.0, div, id);
         shouldBeCloseTo('div.offsetWidth', 20, 1);
         computedTop = getPseudoComputedTop(id);
         shouldBeCloseTo('computedTop', 170, 1);
-        pauseAnimationAtTimeOnPseudoElement('example', 2.0, div, id);
+        internals.pauseAnimationAtTimeOnPseudoElement('example', 2.0, div, id);
         shouldBeCloseTo('div.offsetWidth', 12, 1);
         computedTop = getPseudoComputedTop(id);
         shouldBeCloseTo('computedTop', 200, 1);
index 9a742fe..2499e88 100644 (file)
@@ -53,33 +53,6 @@ function getPseudoComputedTop(id)
 // FIXME: This test should be modified so subpixel doesn't cause off by one
 // below and it no longer needs shouldBeCloseTo.
 
-const prefix = "-webkit-";
-const propertiesRequiringPrefix = ["-webkit-text-stroke-color", "-webkit-text-fill-color"];
-
-function pauseTransitionAtTimeOnPseudoElement(transitionProperty, time, element, pseudoId)
-{
-    const pseudoElement = internals.pseudoElement(element, pseudoId);
-    if (!pseudoElement) {
-        console.log("Failed to find pseudo element");
-        return;
-    }
-
-    if (transitionProperty.startsWith(prefix) && !propertiesRequiringPrefix.includes(transitionProperty))
-        transitionProperty = transitionProperty.substr(prefix.length);
-
-    // Otherwise, use the Web Animations API.
-    const animations = pseudoElement.getAnimations();
-    for (let animation of animations) {
-        if (animation instanceof CSSTransition && animation.transitionProperty == transitionProperty) {
-            animation.currentTime = time * 1000;
-            animation.pause();
-            return true;
-        }
-    }
-    console.log(`A transition for property ${transitionProperty} could not be found`);
-    return false;
-}
-
 function testTransition(id)
 {
     var div = document.getElementById(id);
@@ -87,14 +60,14 @@ function testTransition(id)
     window.div = div;
     shouldBe('div.offsetWidth', '52');
     if (window.internals) {
-        pauseTransitionAtTimeOnPseudoElement('width', 1.0, div, id);
+        internals.pauseTransitionAtTimeOnPseudoElement('width', 1.0, div, id);
         shouldBeCloseTo('div.offsetWidth', 20, 1);
-        pauseTransitionAtTimeOnPseudoElement('top', 1.0, div, id);
+        internals.pauseTransitionAtTimeOnPseudoElement('top', 1.0, div, id);
         computedTop = getPseudoComputedTop(id);
         shouldBeCloseTo('computedTop', 170, 1);
-        pauseTransitionAtTimeOnPseudoElement('width', 2.0, div, id);
+        internals.pauseTransitionAtTimeOnPseudoElement('width', 2.0, div, id);
         shouldBeCloseTo('div.offsetWidth', 12, 1);
-        pauseTransitionAtTimeOnPseudoElement('top', 2.0, div, id);
+        internals.pauseTransitionAtTimeOnPseudoElement('top', 2.0, div, id);
         computedTop = getPseudoComputedTop(id);
         shouldBeCloseTo('computedTop', 200, 1);
     } else {
index cdec7bd..368cbaf 100644 (file)
@@ -1,3 +1,11 @@
+2018-04-17  Jonathan Bedard  <jbedard@apple.com>
+
+        Unreviewed rollout of r230632. Regression in memory usage.
+
+        That bug tracked in https://bugs.webkit.org/show_bug.cgi?id=184569.
+
+        * web-platform-tests/web-animations/interfaces/Animatable/animate-expected.txt:
+
 2018-04-16  Youenn Fablet  <youenn@apple.com>
 
         Use NetworkLoadChecker to handle synchronous HTTP loads
index 7f03af8..f2a5e73 100644 (file)
@@ -118,6 +118,6 @@ PASS Element.animate() correctly sets the id attribute
 PASS Element.animate() correctly sets the Animation's timeline 
 PASS Element.animate() correctly sets the Animation's timeline when triggered on an element in a different document 
 PASS Element.animate() calls play on the Animation 
-FAIL CSSPseudoElement.animate() creates an Animation object assert_equals: expected Element node <div class="pseudo"></div> but got null
-FAIL CSSPseudoElement.animate() creates an Animation object targeting to the correct CSSPseudoElement object assert_equals: expected Element node <div class="pseudo"></div> but got null
+FAIL CSSPseudoElement.animate() creates an Animation object assert_true: expected true got false
+FAIL CSSPseudoElement.animate() creates an Animation object targeting to the correct CSSPseudoElement object assert_true: expected true got false
 
index c8e5832..688a66f 100644 (file)
@@ -3289,6 +3289,3 @@ webkit.org/b/173928 storage/websql/database-lock-after-reload.html [ Pass Failur
 [ Debug ] imported/w3c/web-platform-tests/IndexedDB/interfaces.any.html [ Slow ]
 [ Debug ] imported/w3c/web-platform-tests/IndexedDB/interfaces.any.worker.html [ Slow ]
 [ Debug ] imported/w3c/web-platform-tests/hr-time/idlharness.html [ Slow ]
-
-webkit.org/b/184580 animations/stop-animation-on-suspend.html [ Failure ]
-
index 1c33a31..7b4851e 100644 (file)
@@ -1740,9 +1740,11 @@ legacy-animation-engine/animations/transition-and-animation-2.html [ Pass Failur
 [ Debug ] legacy-animation-engine/animations/animation-hit-test-transform.html [ Skip ] # Debug assertion
 [ Debug ] animations/animation-hit-test.html [ Skip ] # Debug assertion
 [ Debug ] legacy-animation-engine/animations/animation-hit-test.html [ Skip ] # Debug assertion
+[ Debug ] animations/animation-internals-api.html [ Skip ] # Debug assertion
 [ Debug ] legacy-animation-engine/animations/animation-internals-api.html [ Skip ] # Debug assertion
 [ Debug ] animations/animation-direction-reverse-fill-mode-hardware.html [ Skip ] # Debug assertion
 [ Debug ] legacy-animation-engine/animations/animation-direction-reverse-fill-mode-hardware.html [ Skip ] # Debug assertion
+[ Debug ] animations/animation-internals-api-multiple-keyframes.html [ Skip ] # Debug assertion
 [ Debug ] legacy-animation-engine/animations/animation-internals-api-multiple-keyframes.html [ Skip ] # Debug assertion
 [ Debug ] animations/animation-shorthand-name-order.html [ Skip ] # Debug assertion
 [ Debug ] legacy-animation-engine/animations/animation-shorthand-name-order.html [ Skip ] # Debug assertion
@@ -1770,6 +1772,7 @@ legacy-animation-engine/animations/transition-and-animation-2.html [ Pass Failur
 [ Debug ] legacy-animation-engine/animations/animation-on-inline-crash.html [ Skip ] # Debug assertion
 [ Debug ] animations/animation-css-rule-types.html [ Skip ] # Debug assertion
 [ Debug ] legacy-animation-engine/animations/animation-css-rule-types.html [ Skip ] # Debug assertion
+[ Debug ] animations/animation-direction-alternate-reverse.html [ Skip ] # Debug assertion
 [ Debug ] legacy-animation-engine/animations/animation-direction-alternate-reverse.html [ Skip ] # Debug assertion
 [ Debug ] animations/animation-direction-reverse-timing-functions.html [ Skip ] # Debug assertion
 [ Debug ] legacy-animation-engine/animations/animation-direction-reverse-timing-functions.html [ Skip ] # Debug assertion
@@ -4048,10 +4051,4 @@ webkit.org/b/184482 legacy-animation-engine/compositing/reflections/nested-refle
 
 webkit.org/b/184537 fast/forms/file/entries-api/webkitEntries-nonascii-folder-name.html [ Skip ]
 
-webkit.org/b/184589 transitions/zero-duration-with-non-zero-delay-end.html [ Skip ]
-webkit.org/b/184589 animations/big-rotation.html [ Skip ]
-webkit.org/b/184589 fast/css-generated-content/pseudo-transition.html [ Skip ]
-webkit.org/b/184589 animations/animation-direction-alternate-reverse.html [ Skip ]
-webkit.org/b/184589 fast/css-generated-content/pseudo-animation.html [ Skip ]
-
 webkit.org/b/184649 css3/filters/blur-various-radii.html [ Crash ]
index a52a0ba..3d8b7c9 100644 (file)
@@ -29,7 +29,7 @@
     function testTransitions()
     {
       if (window.testRunner) {
-        var numAnims = document.getAnimations().length;
+        var numAnims = internals.numberOfActiveAnimations();
         if (numAnims == 0)
           log('No running transitions: PASS');
         else
diff --git a/LayoutTests/transitions/transition-drt-api-delay-expected.txt b/LayoutTests/transitions/transition-drt-api-delay-expected.txt
new file mode 100644 (file)
index 0000000..9429f27
--- /dev/null
@@ -0,0 +1,5 @@
+Test for transition delay on testRunner API
+
+This test works only in DumpRenderTree. It uses an API exposed only there to jump to a particular time in a running transition. Tests bug 22368
+
+PASS
diff --git a/LayoutTests/transitions/transition-drt-api-delay.html b/LayoutTests/transitions/transition-drt-api-delay.html
new file mode 100644 (file)
index 0000000..01d8097
--- /dev/null
@@ -0,0 +1,62 @@
+<!DOCTYPE html>
+
+<html>
+<head>
+  <style>
+    #target {
+      position: relative;
+      left: 100px;
+      height: 50px;
+      width: 50px;
+      background-color: green;
+      -webkit-transition-property: left;
+      -webkit-transition-duration: 4s;
+      -webkit-transition-timing-function: linear;
+      -webkit-transition-delay: 1s;
+    }
+    
+    #target.moved {
+      left: 200px;
+    }
+   </style>
+   <script src="resources/transition-test-helpers.js"></script>
+   <script>
+    function endTest() {
+      if (window.testRunner) {
+        var target = document.getElementById('target');
+        internals.pauseTransitionAtTimeOnElement("left", 2.0, target);
+        var left = window.getComputedStyle(target).left;
+        var result = "PASS";
+        if (left != "125px") {
+          result = "FAIL - expected 125px got " + left;
+        }
+        document.getElementById('result').innerHTML = "<p>" + result + "</p>";
+        testRunner.notifyDone();
+      }
+    }
+    
+    function startTest() {
+      if (window.testRunner) {
+        testRunner.dumpAsText();
+        testRunner.waitUntilDone();
+      }
+      
+      document.getElementById("target").className = "moved";
+      waitForAnimationStart(endTest, 1);
+    }
+   </script>
+</head>
+<body onload="startTest()">
+  <h1>Test for transition delay on testRunner API</h1>
+  
+  <p>This test works only in DumpRenderTree. It uses an API exposed
+    only there to jump to a particular time in a running transition.
+    Tests bug <a href="https://bugs.webkit.org/show_bug.cgi?id=22368">22368</a>
+  </p>
+
+  <div id="target"></div>
+
+  <div id="result"></div>
+
+</body>
+</html>
diff --git a/LayoutTests/transitions/transition-drt-api-expected.txt b/LayoutTests/transitions/transition-drt-api-expected.txt
new file mode 100644 (file)
index 0000000..7437ece
--- /dev/null
@@ -0,0 +1 @@
+PASS: correctly paused transition
diff --git a/LayoutTests/transitions/transition-drt-api.html b/LayoutTests/transitions/transition-drt-api.html
new file mode 100644 (file)
index 0000000..15c30f0
--- /dev/null
@@ -0,0 +1,56 @@
+<!DOCTYPE html>
+
+<html>
+<head>
+  <style>
+    #target {
+      position: relative;
+      left: 100px;
+      height: 100px;
+      width: 100px;
+      background-color: blue;
+      -webkit-transition-property: left;
+      -webkit-transition-duration: 4s;
+      -webkit-transition-timing-function: linear;
+    }
+    
+    #target.moved {
+      left: 200px;
+    }
+   </style>
+   <script>
+    if (window.testRunner)
+      testRunner.dumpAsText();
+
+    function endTest() {
+      if (window.testRunner) {
+        var target = document.getElementById('target');
+        var paused = internals.pauseTransitionAtTimeOnElement("left", 1.0, target);
+        var result = "";
+        if (paused)
+          result = "PASS: correctly paused transition";
+        else
+          result = "FAIL: failed to pause transition";
+
+        document.getElementById('results').innerText = result;
+        testRunner.notifyDone();
+      } else
+        document.getElementById('results').innerText = "This test requires DRT";
+    }
+    
+    function startTest() {
+      if (window.testRunner)
+        testRunner.waitUntilDone();
+      
+      document.getElementById("target").className = "moved";
+      window.setTimeout(endTest, 0);
+    }
+   </script>
+</head>
+<body onload="startTest()">
+  <!-- Test for Interals pauseTransitionAtTimeOnElement() API -->
+  <div id="target"></div>
+  <div id="results"></div>
+
+</body>
+</html>
index ef806c7..1c0a035 100644 (file)
@@ -49,7 +49,7 @@
         {
             if (window.testRunner) {
                 var target = document.getElementById('target');
-                if (!pauseTransitionAtTimeOnElement("-webkit-transform", 2.0, target))
+                if (!internals.pauseTransitionAtTimeOnElement("-webkit-transform", 2.0, target))
                     throw("Transition is not running");
         
                 checkResults();
index 5fa4e3b..20c0180 100644 (file)
     }
    </style>
    <script>
-
-    function numberOfActiveAnimations()
-    {
-        return document.getAnimations().filter(animation => {
-            const playState = animation.playState;
-            return playState == "running" || playState == "paused";
-        }).length;
-    }
-
     function sample0() {
       var expected = 1;
-      var current = numberOfActiveAnimations();
+      var current = internals.numberOfActiveAnimations();
       if (current == expected)
         document.getElementById('result0').innerHTML = "Number of active animations before transition is (" + current + ") as expected";
       else
@@ -40,7 +31,7 @@
     
     function sample1() {
       var expected = 0;
-      var current = numberOfActiveAnimations();
+      var current = internals.numberOfActiveAnimations();
       if (current == expected)
         document.getElementById('result1').innerHTML = "Number of active animations after transition is (" + current + ") as expected";
       else
index 856aab1..9f59c62 100644 (file)
@@ -1,3 +1,20 @@
+2018-04-17  Jonathan Bedard  <jbedard@apple.com>
+
+        Unreviewed rollout of r230632. Regression in memory usage.
+
+        That bug tracked in https://bugs.webkit.org/show_bug.cgi?id=184569.
+
+        Tests: animations/animation-internals-api-multiple-keyframes.html
+               animations/animation-internals-api.html
+               transitions/transition-drt-api-delay.html
+               transitions/transition-drt-api.html
+
+        * page/RuntimeEnabledFeatures.h:
+        * testing/Internals.cpp:
+        (WebCore::Internals::pseudoElement): Deleted.
+        * testing/Internals.h:
+        * testing/Internals.idl:
+
 2018-04-17  Tadeu Zagallo  <tzagallo@apple.com>
 
         Do not unregister MessagePorts on deallocation if it has been disentangled
index 0047bb9..c54f8ef 100644 (file)
@@ -337,7 +337,7 @@ private:
 #endif
 
     bool m_areWebAnimationsEnabled { true };
-    bool m_areCSSAnimationsAndCSSTransitionsBackedByWebAnimationsEnabled { true };
+    bool m_areCSSAnimationsAndCSSTransitionsBackedByWebAnimationsEnabled { false };
 
 #if ENABLE(WEBGL2)
     bool m_isWebGL2Enabled { false };
index 2bc3822..b583ac8 100644 (file)
@@ -1040,14 +1040,6 @@ ExceptionOr<bool> Internals::pauseTransitionAtTimeOnPseudoElement(const String&
     return frame()->animation().pauseTransitionAtTime(*pseudoElement, property, pauseTime);
 }
 
-ExceptionOr<RefPtr<Element>> Internals::pseudoElement(Element& element, const String& pseudoId)
-{
-    if (pseudoId != "before" && pseudoId != "after")
-        return Exception { InvalidAccessError };
-
-    return pseudoId == "before" ? element.beforePseudoElement() : element.afterPseudoElement();
-}
-
 ExceptionOr<String> Internals::elementRenderTreeAsText(Element& element)
 {
     element.document().updateStyleIfNeeded();
index cca3fea..00b21b9 100644 (file)
@@ -193,9 +193,6 @@ public:
     ExceptionOr<bool> pauseTransitionAtTimeOnElement(const String& propertyName, double pauseTime, Element&);
     ExceptionOr<bool> pauseTransitionAtTimeOnPseudoElement(const String& property, double pauseTime, Element&, const String& pseudoId);
 
-    // For animations testing, we need a way to get at pseudo elements.
-    ExceptionOr<RefPtr<Element>> pseudoElement(Element&, const String&);
-
     Node* treeScopeRootNode(Node&);
     Node* parentTreeScope(Node&);
 
index 1ee92a8..9771e80 100644 (file)
@@ -148,9 +148,6 @@ enum EventThrottlingBehavior {
     [MayThrowException] boolean pauseTransitionAtTimeOnElement(DOMString propertyName, unrestricted double pauseTime, Element element);
     [MayThrowException] boolean pauseTransitionAtTimeOnPseudoElement(DOMString property, unrestricted double pauseTime, Element element, DOMString pseudoId);
 
-    // For animations testing, we need a way to get at pseudo elements.
-    [MayThrowException] Element? pseudoElement(Element element, DOMString pseudoId);
-
     DOMString visiblePlaceholder(Element element);
     void selectColorInColorChooser(HTMLInputElement element, DOMString colorValue);
     [MayThrowException] sequence<DOMString> formControlStateOfPreviousHistoryItem();
index dfde1f7..ef098d4 100644 (file)
@@ -1,3 +1,11 @@
+2018-04-17  Jonathan Bedard  <jbedard@apple.com>
+
+        Unreviewed rollout of r230632. Regression in memory usage.
+
+        That bug tracked in https://bugs.webkit.org/show_bug.cgi?id=184569.
+
+        * Shared/WebPreferences.yaml:
+
 2018-04-17  Timothy Hatcher  <timothy@apple.com>
 
         Always use LayerContentsType::IOSurface in minimal simulator mode
index ab0fdbb..520f7f1 100644 (file)
@@ -101,7 +101,7 @@ CSSAnimationTriggersEnabled:
 
 CSSAnimationsAndCSSTransitionsBackedByWebAnimationsEnabled:
   type: bool
-  defaultValue: true
+  defaultValue: false
   webcoreBinding: RuntimeEnabledFeatures
 
 ForceFTPDirectoryListings:
index 64a5907..ba92804 100644 (file)
@@ -1,3 +1,12 @@
+2018-04-17  Jonathan Bedard  <jbedard@apple.com>
+
+        Unreviewed rollout of r230632. Regression in memory usage.
+
+        That bug tracked in https://bugs.webkit.org/show_bug.cgi?id=184569.
+
+        * WebView/WebPreferences.mm:
+        (+[WebPreferences initialize]):
+
 2018-04-17  Chris Dumez  <cdumez@apple.com>
 
         REGRESSION (r229831): CMD-clicking an iCloud web app link unexpectedly opens that link in a new tab and the current tab
index 5d0b0ab..1bb4796 100644 (file)
@@ -625,7 +625,7 @@ public:
         [NSNumber numberWithBool:YES], WebKitDataTransferItemsEnabledPreferenceKey,
         [NSNumber numberWithBool:NO], WebKitCustomPasteboardDataEnabledPreferenceKey,
         [NSNumber numberWithBool:YES], WebKitModernMediaControlsEnabledPreferenceKey,
-        [NSNumber numberWithBool:YES], WebKitCSSAnimationsAndCSSTransitionsBackedByWebAnimationsEnabledPreferenceKey,
+        [NSNumber numberWithBool:NO], WebKitCSSAnimationsAndCSSTransitionsBackedByWebAnimationsEnabledPreferenceKey,
 
 #if ENABLE(WEBGL2)
         [NSNumber numberWithBool:NO], WebKitWebGL2EnabledPreferenceKey,
index 477e9bc..580cbf6 100644 (file)
@@ -1,3 +1,12 @@
+2018-04-17  Jonathan Bedard  <jbedard@apple.com>
+
+        Unreviewed rollout of r230632. Regression in memory usage.
+
+        That bug tracked in https://bugs.webkit.org/show_bug.cgi?id=184569.
+
+        * WebPreferences.cpp:
+        (WebPreferences::initializeDefaultSettings):
+
 2018-04-17  Chris Dumez  <cdumez@apple.com>
 
         Unreviewed attempt to fix the Windows build after r230721
index 5eb41c1..e460d13 100644 (file)
@@ -310,8 +310,6 @@ void WebPreferences::initializeDefaultSettings()
 
     CFDictionaryAddValue(defaults, CFSTR(WebKitWebAnimationsEnabledPreferenceKey), kCFBooleanFalse);
 
-    CFDictionaryAddValue(defaults, CFSTR(WebKitCSSAnimationsAndCSSTransitionsBackedByWebAnimationsEnabledPreferenceKey), kCFBooleanFalse);
-
     CFDictionaryAddValue(defaults, CFSTR(WebKitUserTimingEnabledPreferenceKey), kCFBooleanFalse);
 
     CFDictionaryAddValue(defaults, CFSTR(WebKitResourceTimingEnabledPreferenceKey), kCFBooleanFalse);
index c1575e1..3215afb 100644 (file)
@@ -1,3 +1,20 @@
+2018-04-17  Jonathan Bedard  <jbedard@apple.com>
+
+        Unreviewed rollout of r230632. Regression in memory usage.
+
+        That bug tracked in https://bugs.webkit.org/show_bug.cgi?id=184569.
+
+        * DumpRenderTree/TestOptions.h:
+        * DumpRenderTree/mac/DumpRenderTree.mm:
+        (runTest):
+        (shouldOverrideAndDisableCSSAnimationsAndCSSTransitionsBackedByWebAnimationsPreference): Deleted.
+        * WebKitTestRunner/TestController.cpp:
+        (WTR::TestController::resetPreferencesToConsistentValues):
+        * WebKitTestRunner/TestOptions.cpp:
+        (WTR::TestOptions::TestOptions):
+        (WTR::isLegacyAnimationEngineTestPath): Deleted.
+        * WebKitTestRunner/TestOptions.h:
+
 2018-04-17  Yusuke Suzuki  <utatane.tea@gmail.com>
 
         [JSC] Rename runWebAssembly to runWebAssemblySuite
index 45de443..43f3f49 100644 (file)
@@ -29,7 +29,7 @@
 
 struct TestOptions {
     bool enableAttachmentElement { false };
-    bool enableCSSAnimationsAndCSSTransitionsBackedByWebAnimations { true };
+    bool enableCSSAnimationsAndCSSTransitionsBackedByWebAnimations { false };
     bool useAcceleratedDrawing { false };
     bool enableIntersectionObserver { false };
     bool enableMenuItemElement { false };
index 91c05da..83781ac 100644 (file)
@@ -1751,11 +1751,6 @@ static bool shouldDumpAsText(const char* pathOrURL)
     return strstr(pathOrURL, "dumpAsText/");
 }
 
-static bool shouldOverrideAndDisableCSSAnimationsAndCSSTransitionsBackedByWebAnimationsPreference(const char* pathOrURL)
-{
-    return strstr(pathOrURL, "legacy-animation-engine/");
-}
-
 static bool shouldEnableDeveloperExtras(const char* pathOrURL)
 {
     return true;
@@ -1925,9 +1920,6 @@ static void runTest(const string& inputLine)
 
     TestOptions options { [url isFileURL] ? [url fileSystemRepresentation] : pathOrURL, command.absolutePath };
 
-    if (shouldOverrideAndDisableCSSAnimationsAndCSSTransitionsBackedByWebAnimationsPreference(pathOrURL.c_str()))
-        options.enableCSSAnimationsAndCSSTransitionsBackedByWebAnimations = false;
-
     if (!mainFrameTestOptions || !options.webViewIsCompatibleWithOptions(mainFrameTestOptions.value())) {
         if (mainFrame)
             destroyWebViewAndOffscreenWindow([mainFrame webView]);
index 938dbdf..5f1bdba 100644 (file)
@@ -697,9 +697,7 @@ void TestController::resetPreferencesToConsistentValues(const TestOptions& optio
     WKPreferencesSetWebAuthenticationEnabled(preferences, options.enableWebAuthentication);
     WKPreferencesSetIsSecureContextAttributeEnabled(preferences, options.enableIsSecureContextAttribute);
     WKPreferencesSetAllowCrossOriginSubresourcesToAskForCredentials(preferences, options.allowCrossOriginSubresourcesToAskForCredentials);
-
-    // We always want to have CSS Animations and CSS Transitions as Web Animations turned off for legacy-animation-engine directory.
-    WKPreferencesSetCSSAnimationsAndCSSTransitionsBackedByWebAnimationsEnabled(preferences, options.enableCSSAnimationsAndCSSTransitionsBackedByWebAnimations && !options.isLegacyAnimationEngineTest);
+    WKPreferencesSetCSSAnimationsAndCSSTransitionsBackedByWebAnimationsEnabled(preferences, options.enableCSSAnimationsAndCSSTransitionsBackedByWebAnimations);
 
     static WKStringRef defaultTextEncoding = WKStringCreateWithUTF8CString("ISO-8859-1");
     WKPreferencesSetDefaultTextEncodingName(preferences, defaultTextEncoding);
index 004658c..d6e8ab2 100644 (file)
@@ -65,16 +65,10 @@ static float deviceScaleFactorForTest(const std::string& pathOrURL)
     return 1;
 }
 
-static bool isLegacyAnimationEngineTestPath(const std::string& pathOrURL)
-{
-    return pathContains(pathOrURL, "legacy-animation-engine/");
-}
-
 TestOptions::TestOptions(const std::string& pathOrURL)
     : useFlexibleViewport(shouldMakeViewportFlexible(pathOrURL))
     , useFixedLayout(shouldUseFixedLayout(pathOrURL))
     , isSVGTest(isSVGTestPath(pathOrURL))
-    , isLegacyAnimationEngineTest(isLegacyAnimationEngineTestPath(pathOrURL))
     , deviceScaleFactor(deviceScaleFactorForTest(pathOrURL))
 {
 }
index ce83ae5..36b53ca 100644 (file)
@@ -55,8 +55,7 @@ struct TestOptions {
     bool shouldShowTouches { false };
     bool dumpJSConsoleLogInStdErr { false };
     bool allowCrossOriginSubresourcesToAskForCredentials { false };
-    bool enableCSSAnimationsAndCSSTransitionsBackedByWebAnimations { true };
-    bool isLegacyAnimationEngineTest { false };
+    bool enableCSSAnimationsAndCSSTransitionsBackedByWebAnimations { false };
 
     float deviceScaleFactor { 1 };
     Vector<String> overrideLanguages;