Title: [276132] branches/safari-611-branch

Diff

Modified: branches/safari-611-branch/LayoutTests/ChangeLog (276131 => 276132)


--- branches/safari-611-branch/LayoutTests/ChangeLog	2021-04-16 10:21:45 UTC (rev 276131)
+++ branches/safari-611-branch/LayoutTests/ChangeLog	2021-04-16 10:32:02 UTC (rev 276132)
@@ -1,48 +1,3 @@
-2021-04-16  Russell Epstein  <[email protected]>
-
-        Cherry-pick r275277. rdar://problem/76375504
-
-    Animated pseudo element style resolved against wrong parent style
-    https://bugs.webkit.org/show_bug.cgi?id=223990
-    rdar://74997361
-    
-    Reviewed by Antoine Quint.
-    Source/WebCore:
-    
-    In createAnimatedElementUpdate we get the parent and parent box styles from the parent stack.
-    This is wrong for pseudo elements. Their parent style should the host style which is not pushed to the stack.
-    
-    This matters in style adjuster which may apply wrong adjustments as a result.
-    
-    Test: fast/animation/pseudo-element-style-adjuster.html
-    
-    * style/StyleTreeResolver.cpp:
-    (WebCore::Style::TreeResolver::resolveElement):
-    (WebCore::Style::TreeResolver::resolvePseudoStyle):
-    (WebCore::Style::TreeResolver::createAnimatedElementUpdate):
-    
-    Make static and provide the parent and parent box styles as parameters.
-    
-    * style/StyleTreeResolver.h:
-    
-    LayoutTests:
-    
-    * fast/animation/pseudo-element-style-adjuster-expected.html: Added.
-    * fast/animation/pseudo-element-style-adjuster.html: Added.
-    
-    git-svn-id: https://svn.webkit.org/repository/webkit/trunk@275277 268f45cc-cd09-0410-ab3c-d52691b4dbfc
-
-    2021-03-31  Antti Koivisto  <[email protected]>
-
-            Animated pseudo element style resolved against wrong parent style
-            https://bugs.webkit.org/show_bug.cgi?id=223990
-            rdar://74997361
-
-            Reviewed by Antoine Quint.
-
-            * fast/animation/pseudo-element-style-adjuster-expected.html: Added.
-            * fast/animation/pseudo-element-style-adjuster.html: Added.
-
 2021-04-15  Russell Epstein  <[email protected]>
 
         Cherry-pick r275656. rdar://problem/76727574

Deleted: branches/safari-611-branch/LayoutTests/fast/animation/pseudo-element-style-adjuster-expected.html (276131 => 276132)


--- branches/safari-611-branch/LayoutTests/fast/animation/pseudo-element-style-adjuster-expected.html	2021-04-16 10:21:45 UTC (rev 276131)
+++ branches/safari-611-branch/LayoutTests/fast/animation/pseudo-element-style-adjuster-expected.html	2021-04-16 10:32:02 UTC (rev 276132)
@@ -1,8 +0,0 @@
-<style>
-.flex { display:flex; }
-.host::before { display:inline-block; content:'On the same'; }
-.host::after { display:inline-block; content:'line'; color:green; }
-</style>
-<div class=flex>
-<div class=host> </div>
-</div>

Deleted: branches/safari-611-branch/LayoutTests/fast/animation/pseudo-element-style-adjuster.html (276131 => 276132)


--- branches/safari-611-branch/LayoutTests/fast/animation/pseudo-element-style-adjuster.html	2021-04-16 10:21:45 UTC (rev 276131)
+++ branches/safari-611-branch/LayoutTests/fast/animation/pseudo-element-style-adjuster.html	2021-04-16 10:32:02 UTC (rev 276132)
@@ -1,12 +0,0 @@
-<style>
-@keyframes anim {
-  from { color:red; }
-  to { color:green; }
-}
-.flex { display:flex; }
-.host::before { display:inline-block; content:'On the same'; }
-.host::after { display:inline-block; content:'line'; animation-duration:0s; animation-name:anim; animation-fill-mode:forwards; }
-</style>
-<div class=flex>
-<div class=host> </div>
-</div>

Modified: branches/safari-611-branch/Source/WebCore/ChangeLog (276131 => 276132)


--- branches/safari-611-branch/Source/WebCore/ChangeLog	2021-04-16 10:21:45 UTC (rev 276131)
+++ branches/safari-611-branch/Source/WebCore/ChangeLog	2021-04-16 10:32:02 UTC (rev 276132)
@@ -1,61 +1,3 @@
-2021-04-16  Russell Epstein  <[email protected]>
-
-        Cherry-pick r275277. rdar://problem/76375504
-
-    Animated pseudo element style resolved against wrong parent style
-    https://bugs.webkit.org/show_bug.cgi?id=223990
-    rdar://74997361
-    
-    Reviewed by Antoine Quint.
-    Source/WebCore:
-    
-    In createAnimatedElementUpdate we get the parent and parent box styles from the parent stack.
-    This is wrong for pseudo elements. Their parent style should the host style which is not pushed to the stack.
-    
-    This matters in style adjuster which may apply wrong adjustments as a result.
-    
-    Test: fast/animation/pseudo-element-style-adjuster.html
-    
-    * style/StyleTreeResolver.cpp:
-    (WebCore::Style::TreeResolver::resolveElement):
-    (WebCore::Style::TreeResolver::resolvePseudoStyle):
-    (WebCore::Style::TreeResolver::createAnimatedElementUpdate):
-    
-    Make static and provide the parent and parent box styles as parameters.
-    
-    * style/StyleTreeResolver.h:
-    
-    LayoutTests:
-    
-    * fast/animation/pseudo-element-style-adjuster-expected.html: Added.
-    * fast/animation/pseudo-element-style-adjuster.html: Added.
-    
-    git-svn-id: https://svn.webkit.org/repository/webkit/trunk@275277 268f45cc-cd09-0410-ab3c-d52691b4dbfc
-
-    2021-03-31  Antti Koivisto  <[email protected]>
-
-            Animated pseudo element style resolved against wrong parent style
-            https://bugs.webkit.org/show_bug.cgi?id=223990
-            rdar://74997361
-
-            Reviewed by Antoine Quint.
-
-            In createAnimatedElementUpdate we get the parent and parent box styles from the parent stack.
-            This is wrong for pseudo elements. Their parent style should the host style which is not pushed to the stack.
-
-            This matters in style adjuster which may apply wrong adjustments as a result.
-
-            Test: fast/animation/pseudo-element-style-adjuster.html
-
-            * style/StyleTreeResolver.cpp:
-            (WebCore::Style::TreeResolver::resolveElement):
-            (WebCore::Style::TreeResolver::resolvePseudoStyle):
-            (WebCore::Style::TreeResolver::createAnimatedElementUpdate):
-
-            Make static and provide the parent and parent box styles as parameters.
-
-            * style/StyleTreeResolver.h:
-
 2021-04-15  Russell Epstein  <[email protected]>
 
         Cherry-pick r274403. rdar://problem/76374004

Modified: branches/safari-611-branch/Source/WebCore/style/StyleTreeResolver.cpp (276131 => 276132)


--- branches/safari-611-branch/Source/WebCore/style/StyleTreeResolver.cpp	2021-04-16 10:21:45 UTC (rev 276131)
+++ branches/safari-611-branch/Source/WebCore/style/StyleTreeResolver.cpp	2021-04-16 10:32:02 UTC (rev 276132)
@@ -221,7 +221,7 @@
         m_document.setHasNodesWithNonFinalStyle();
     }
 
-    auto update = createAnimatedElementUpdate(WTFMove(newStyle), styleable, parent().change, parent().style, parentBoxStyle());
+    auto update = createAnimatedElementUpdate(WTFMove(newStyle), styleable, parent().change);
     auto descendantsToResolve = computeDescendantsToResolve(update.change, element.styleValidity(), parent().descendantsToResolve);
 
     if (&element == m_document.documentElement()) {
@@ -277,11 +277,8 @@
         return { };
     if (!elementUpdate.style->hasPseudoStyle(pseudoId))
         return { };
-    
-    auto& parentStyle = *elementUpdate.style;
-    auto* parentBoxStyle = parentBoxStyleForPseudo(elementUpdate);
-    
-    auto pseudoStyle = scope().resolver.pseudoStyleForElement(element, { pseudoId }, parentStyle, parentBoxStyle, &scope().selectorFilter);
+
+    auto pseudoStyle = scope().resolver.pseudoStyleForElement(element, { pseudoId }, *elementUpdate.style, parentBoxStyleForPseudo(elementUpdate), &scope().selectorFilter);
     if (!pseudoStyle)
         return { };
 
@@ -289,7 +286,7 @@
     if (!pseudoElementRendererIsNeeded(pseudoStyle.get()) && !hasAnimations)
         return { };
 
-    return createAnimatedElementUpdate(WTFMove(pseudoStyle), { element, pseudoId }, elementUpdate.change, parentStyle, parentBoxStyle);
+    return createAnimatedElementUpdate(WTFMove(pseudoStyle), { element, pseudoId }, elementUpdate.change);
 }
 
 const RenderStyle* TreeResolver::parentBoxStyle() const
@@ -318,10 +315,9 @@
     }
 }
 
-ElementUpdate TreeResolver::createAnimatedElementUpdate(std::unique_ptr<RenderStyle> newStyle, const Styleable& styleable, Change parentChange, const RenderStyle& parentStyle, const RenderStyle* parentBoxStyle)
+ElementUpdate TreeResolver::createAnimatedElementUpdate(std::unique_ptr<RenderStyle> newStyle, const Styleable& styleable, Change parentChange)
 {
     auto& element = styleable.element;
-    auto& document = element.document();
     auto* oldStyle = element.renderOrDisplayContentsStyle(styleable.pseudoId);
 
     OptionSet<AnimationImpact> animationImpact;
@@ -329,9 +325,9 @@
     // First, we need to make sure that any new CSS animation occuring on this element has a matching WebAnimation
     // on the document timeline. Note that we get timeline() on the Document here because we need a timeline created
     // in case no Web Animations have been created through the JS API.
-    if (document.backForwardCacheState() == Document::NotInBackForwardCache && !document.renderView()->printing()) {
+    if (element.document().backForwardCacheState() == Document::NotInBackForwardCache && !element.document().renderView()->printing()) {
         if (oldStyle && (oldStyle->hasTransitions() || newStyle->hasTransitions()))
-            document.timeline().updateCSSTransitionsForStyleable(styleable, *oldStyle, *newStyle);
+            m_document.timeline().updateCSSTransitionsForStyleable(styleable, *oldStyle, *newStyle);
 
         // The order in which CSS Transitions and CSS Animations are updated matters since CSS Transitions define the after-change style
         // to use CSS Animations as defined in the previous style change event. As such, we update CSS Animations after CSS Transitions
@@ -357,7 +353,7 @@
         animationImpact = styleable.applyKeyframeEffects(*animatedStyle, *previousLastStyleChangeEventStyle);
         newStyle = WTFMove(animatedStyle);
 
-        Adjuster adjuster(document, parentStyle, parentBoxStyle, styleable.pseudoId == PseudoId::None ? &element : nullptr);
+        Adjuster adjuster(m_document, parent().style, parentBoxStyle(), styleable.pseudoId == PseudoId::None ? &element : nullptr);
         adjuster.adjustAnimatedStyle(*newStyle, animationImpact);
     } else
         styleable.setLastStyleChangeEventStyle(nullptr);

Modified: branches/safari-611-branch/Source/WebCore/style/StyleTreeResolver.h (276131 => 276132)


--- branches/safari-611-branch/Source/WebCore/style/StyleTreeResolver.h	2021-04-16 10:21:45 UTC (rev 276131)
+++ branches/safari-611-branch/Source/WebCore/style/StyleTreeResolver.h	2021-04-16 10:32:02 UTC (rev 276132)
@@ -61,7 +61,7 @@
 
     ElementUpdates resolveElement(Element&);
 
-    static ElementUpdate createAnimatedElementUpdate(std::unique_ptr<RenderStyle>, const Styleable&, Change, const RenderStyle& parentStyle, const RenderStyle* parentBoxStyle);
+    ElementUpdate createAnimatedElementUpdate(std::unique_ptr<RenderStyle>, const Styleable&, Change);
     Optional<ElementUpdate> resolvePseudoStyle(Element&, const ElementUpdate&, PseudoId);
 
     struct Scope : RefCounted<Scope> {
_______________________________________________
webkit-changes mailing list
[email protected]
https://lists.webkit.org/mailman/listinfo/webkit-changes

Reply via email to