Bug 1379516 - Mark animation timerline marker for stylo. r=birtles

MozReview-Commit-ID: GkPSXEk4xua

--HG--
extra : rebase_source : 3fa0f5029bcfd87e9d6abfec9c6ea5d03a7656e6
This commit is contained in:
Hiroyuki Ikezoe 2017-08-11 08:44:11 +09:00
Родитель 94c7df914d
Коммит 80dfc0d6fb
5 изменённых файлов: 13 добавлений и 9 удалений

Просмотреть файл

@ -15,7 +15,7 @@ support-files =
[chrome/test_cssanimation_missing_keyframes.html]
[chrome/test_generated_content_getAnimations.html]
[chrome/test_restyles.html]
skip-if = os == 'android' || stylo # bug 1335986
skip-if = os == 'android' # bug 1335986
[chrome/test_running_on_compositor.html]
[chrome/test_simulate_compute_values_failure.html]
skip-if = !debug

Просмотреть файл

@ -187,7 +187,7 @@ ServoRestyleManager::PostRestyleEventForCSSRuleChanges()
mPresContext->PresShell()->EnsureStyleFlush();
}
/* static */ void
void
ServoRestyleManager::PostRestyleEventForAnimations(
Element* aElement,
CSSPseudoElementType aPseudoType,
@ -203,6 +203,8 @@ ServoRestyleManager::PostRestyleEventForAnimations(
return;
}
AutoRestyleTimelineMarker marker(mPresContext->GetDocShell(),
true /* animation-only */);
Servo_NoteExplicitHints(elementToRestyle, aRestyleHint, nsChangeHint(0));
}

Просмотреть файл

@ -185,9 +185,9 @@ public:
* restyling process and this restyle event will be processed in the second
* traversal of the same restyling process.
*/
static void PostRestyleEventForAnimations(dom::Element* aElement,
CSSPseudoElementType aPseudoType,
nsRestyleHint aRestyleHint);
void PostRestyleEventForAnimations(dom::Element* aElement,
CSSPseudoElementType aPseudoType,
nsRestyleHint aRestyleHint);
protected:
~ServoRestyleManager() override
{

Просмотреть файл

@ -333,9 +333,12 @@ ServoStyleSet::PrepareAndTraverseSubtree(
ServoTraversalFlags aFlags)
{
MOZ_ASSERT(MayTraverseFrom(const_cast<Element*>(aRoot)));
bool forThrottledAnimationFlush = !!(aFlags & ServoTraversalFlags::AnimationOnly);
AutoRestyleTimelineMarker marker(mPresContext->GetDocShell(), forThrottledAnimationFlush);
// For markers for animations, we have already set the markers in
// ServoRestyleManager::PostRestyleEventForAnimations so that we don't need
// to care about animation restyles here.
AutoRestyleTimelineMarker marker(mPresContext->GetDocShell(),
false /* animation-only */);
MOZ_ASSERT(!StylistNeedsUpdate());
AutoSetInServoTraversal guard(this);
@ -353,7 +356,7 @@ ServoStyleSet::PrepareAndTraverseSubtree(
// performs the animation-only restyle, skipping the normal restyle, and so
// will not generate any SequentialTask that could update animation state
// requiring a subsequent traversal.
if (forThrottledAnimationFlush) {
if (aFlags & ServoTraversalFlags::AnimationOnly) {
return postTraversalRequired;
}

Просмотреть файл

@ -267,7 +267,6 @@ support-files = redundant_font_download.sjs
[test_restyle_table_wrapper.html]
[test_restyles_in_smil_animation.html]
skip-if = toolkit == 'android' # bug 1328522
fail-if = stylo # bug 1387935
[test_root_node_display.html]
[test_rule_insertion.html]
[test_rule_serialization.html]