Commit Graph

535 Commits

Author SHA1 Message Date
L. David Baron
94712c4f50 Bug 960465 patch 2 - Add method to return a modified version of a style context, with all or part of the animation data removed. r=birtles
This is used in patch 3.
2015-02-17 11:15:01 +13:00
L. David Baron
c7e34d6d8e Bug 960465 patch 1 - Add parameter to skip animations work to ResolveStyleWithReplacement. r=birtles
This is used in patch 2.
2015-02-17 11:15:00 +13:00
Nicholas Nethercote
0247de46d8 Bug 1127201 (attempt 2, part 1) - Replace most NS_ABORT_IF_FALSE calls with MOZ_ASSERT. r=Waldo. 2015-02-09 14:34:50 -08:00
Andrew McCreight
e048a7df33 Back out Bug 1127201 (part 2) for various problems. 2015-02-06 15:04:32 -08:00
Nicholas Nethercote
40ab0270d5 Bug 1127201 (part 2) - Convert all NS_ABORT_IF_FALSE calls to MOZ_ASSERT. r=Waldo. 2015-02-04 20:05:36 -08:00
Wes Kocher
3c0de68457 Backed out changeset bf25101e66cf (bug 1095098) for build bustage 2014-12-08 16:27:12 -08:00
Denis Volk
cbf9ae78f0 Bug 1095098: move do_QueryObject templates into their own header r=froydnj 2014-11-20 12:20:10 +01:00
L. David Baron
57696e47bf Bug 1089417 patch 6 - Pass the previous CSS rule processor to the constructor of the new one (when we replace one with another). r=heycam
This is needed for patch 7.
2014-12-05 15:50:00 -08:00
L. David Baron
1128af3278 Bug 1089417 patch 1 - Add assertions that rule processors are valid before we access them. r=heycam
This was just something that seemed worth asserting in the process of
debugging, since I wanted to see if it was the problem.
2014-12-05 15:50:00 -08:00
Wes Kocher
6d72488ca1 Backed out 8 changesets (bug 1089417) for b2g bustage possibly on a CLOSED TREE
Backed out changeset bf9f31312c1a (bug 1089417)
Backed out changeset babf33f8e077 (bug 1089417)
Backed out changeset 47b4f47d2e36 (bug 1089417)
Backed out changeset 11da22489a4f (bug 1089417)
Backed out changeset a39f32b2b2de (bug 1089417)
Backed out changeset fba9c331e036 (bug 1089417)
Backed out changeset b541a037f627 (bug 1089417)
Backed out changeset fc47a51b4f96 (bug 1089417)
2014-12-05 12:45:41 -08:00
L. David Baron
59b2c14b5b Bug 1089417 patch 6 - Pass the previous CSS rule processor to the constructor of the new one (when we replace one with another). r=heycam
This is needed for patch 7.
2014-12-05 11:37:38 -08:00
L. David Baron
bfcd82bf86 Bug 1089417 patch 1 - Add assertions that rule processors are valid before we access them. r=heycam
This was just something that seemed worth asserting in the process of
debugging, since I wanted to see if it was the problem.
2014-12-05 11:37:38 -08:00
L. David Baron
ff080cde67 Bug 1100773 patch 2 - Convert style rule List methods to use fprintf_stderr. r=heycam
Note that getting decent logcat output on Android and B2G requires not
splitting lines of output across multiple fprintf_stderr calls.
2014-11-26 22:29:44 -08:00
L. David Baron
4bd15269cc Bug 1100773 patch 1 - Fix bracing of indent loops in style rule print functions. r=heycam 2014-11-26 22:29:44 -08:00
David Zbarsky
531eab435f Bug 1085769: Merge RulesMatching, GetAnimationPlayers, and GetAnimationRule r=birtles 2014-11-19 21:48:41 -05:00
L. David Baron
436ad8d45f Bug 1087536 patch 2 - Assert when nsStyleSet::RuleNodeWithReplacement finds the rules in an incorrect order. r=birtles
I confirmed that this assertion fires (along with the other failures)
when running layout/style/test/test_transitions_events.html with patch 3
but not patch 1.
2014-11-17 11:39:14 -08:00
L. David Baron
5b5c0a3cad Bug 1087536 patch 1 - Record the transition manager's cover rule as in the eTransitionSheet level of the cascade so that ResolveStyleWithReplacement replaces it correctly. r=birtles
Without this patch, patch 3 will cause bugs where we'll never remove the
cover rule we create during the process of starting a transition.  This
won't actually be problematic during the transition, since the
transition will overwrite it, but once the transition completes, the
cover rule will still be around, and we'll be stuck with the
pre-transition value instead of the post-transition value.

It's possible it also fixes existing bugs prior to the patch series in
this bug.
2014-11-17 11:39:14 -08:00
L. David Baron
611d94b270 Bug 1086937 patch 1 - Add eRestyle_ChangeAnimationPhaseDescendants restyle hint that is like eRestyle_ChangeAnimationPhase, but for a whole subtree. r=birtles 2014-11-12 23:28:52 -08:00
L. David Baron
15a9bd30d2 Bug 1087541 - Make RuleNodeWithReplacement handle animations and transitions like RulesMatching codepath does. r=birtles
I originally wrote this to see if it would fix bug 1086937, but it
didn't.

Note that this conflicts a bit with the patch in bug 1085769; whoever
lands second will have some merging (though it shouldn't be difficult).

The updating of the style rule is needed as part of the animation-only
style update, but it shouldn't be in the general restyling code, so it
has moved there.
2014-11-11 15:42:57 -08:00
L. David Baron
53e322dd26 Bug 1075137 patch 4 - Convert callers from IsProcessingRestyles/IsProcessingAnimationStyleChange to SkipAnimationRules/PostAnimationRestyles. r=birtles 2014-10-02 21:53:24 -07:00
L. David Baron
c6846320c2 Bug 1075082 patch 1 - Add a helper function for the root of the rule tree. r=birtles 2014-10-02 21:53:22 -07:00
L. David Baron
e781de91cd Bug 977991 patch 5 - Add eRestyle_ChangeAnimationPhase to switch between the with-animation and without-animation styles. r=birtles
This is an additional bit on nsRestyleHint that says that the restyling
operation should also perform all the work needed to switch between
style-without-animation and style-with-animation (based on
nsPresContext::IsProcessingAnimationStyleChange).  These concepts will
go away in bug 960465.

Note that we don't want this behavior for the animation-only style
update code (bug 996796, etc.), and I wanted to make this explicit so
that it was clear when it was happening, and so that it was clear what
code should be removed when we git rid of it.

This is the workaround needed to land bug 977991 prior to bug 960465.
(I think there's also a minor dependency in the other direction, so we
need a workaround one way or the other.)

Note that this depends on bug 1057231.
2014-09-13 06:17:37 -07:00
L. David Baron
91736f6c6a Bug 977991 patch 3 - Add ability for RuleNodeWithReplacement to replace the style attribute rule and its important rule. r=birtles
This allows posting a restyle that says that only the rule(s) from the
StyleAttrSheet cascade level will be replaced, which avoids running
selector matching.

Part 4 will ensure that we only invoke this code for element styles (and
not pseudo-element or anonymous box styles).  Despite that, I prefer
having the runtime check here as well given that it's a very simple way
to ensure we don't do something silly that might have security
implications.
2014-09-13 06:17:36 -07:00
L. David Baron
061f044c42 Bug 977991 patch 2 - Add mCheckForImportantRules to the information nsStyleSet::RuleNodeWithReplacement keeps about cascade levels. r=birtles
This is needed to support doing replacements of levels that can contain
important rules, which will happen in patch 3.
2014-09-13 06:17:36 -07:00
L. David Baron
e8b05171db Bug 1058346 patch 2 - Add eRestyle_SVGAttrAnimations and support it in nsStyleSet::RuleNodeWithReplacement. r=birtles
This allows posting a restyle that says that only the rule(s) from the
SVGAttrAnimationSheet cascade level will be replaced, which avoids running
selector matching.

This is needed to land bug 977991 prior to landing bug 960465, since
that requires replacing all levels that contain animations.

(I'll rename this to match the name determined in bug 1057231.)
2014-09-13 06:17:35 -07:00
L. David Baron
9fb1a080c9 Bug 1057231 patch 3 - Add new cascade level for rules from SMIL Animation of SVG attributes to the style set. r=dholbert
I will fix the indentation of gCascadeLevels in bug 977991 patch 2,
which adds a member to each element of the array.

Note that this bumps the maximum sheetType from 8 to 9 (and number of
them from 9 to 10), which does not require updating
NS_RULE_NODE_LEVEL_MASK, since NS_RULE_NODE_LEVEL_MASK currently has 4
bits and allows a maximum of 15.
2014-09-13 06:17:35 -07:00
L. David Baron
0b3e379984 Bug 1066911 - Allow eRestyle_Force{,Descendants} in RuleNodeWithReplacement. r=heycam
This is fine since the assertion is just checking that we're not calling
RuleNodeWithReplacement in cases when stronger restyling (i.e.,
restyling that does more work) is needed; the new eRestyle_Force and
eRestyle_ForceDescendants flags control whether we restyle at all.

This probably should have been done in bug 931668 (since bug 996796
landed before bug 931668, although not before the patches were written),
but it doesn't actually show up in our test suite until bug 977991 (or
maybe slightly earlier in bug 1057231 or bug 1058346).
2014-09-13 06:17:34 -07:00
L. David Baron
42863b4bad Bug 1057129 patch 3 - Post restyles from CheckAnimationRule directly to pseudo-elements. r=birtles
This matches patch 2, and also fixes an incorrect use of eRestyle_Self
on the parents of pseudo-elements in order to restyle those
pseudo-elements, where it would not previously have been effective.

This should all be temporary, since this code can go away with bug
960465, when animation phases are removed.
2014-08-24 21:48:22 -07:00
Brian Birtles
123299d683 Bug 1040543 part 2 - Rename ElementAnimationCollection to AnimationPlayerCollection; r=bz 2014-08-10 17:06:46 +10:00
L. David Baron
20be34a7e0 Bug 996796 patch 20 - Make restyling exact - Avoid rerunning selector matching on everything when the basis of rem units changes. r=heycam 2014-08-03 13:11:55 -07:00
L. David Baron
6e4ca84b80 Back out bug 996796 patch 18 through patch 25 (changesets fbe97c2db729 through 9719c08c3144) to fix 50%-of-the-time Android 4.0 debug orange from single assertion ("Why did this not get handled while processing mRestyleRoots?", layout/base/RestyleTracker.cpp, line 87) in gfx/tests/crashtests/815489.html . 2014-08-03 01:22:07 -07:00
L. David Baron
1b8f8d00b3 Bug 996796 patch 20 - Make restyling exact - Avoid rerunning selector matching on everything when the basis of rem units changes. r=heycam 2014-08-02 19:37:47 -07:00
L. David Baron
85925761e3 Bug 996796 patch 17 - Add comment about how RuleNodeWithReplacement should interact with nsTransitionManager and nsAnimationManager. r=heycam 2014-08-02 19:37:46 -07:00
L. David Baron
681420bbbe Bug 996796 patch 16 - Add comment about potential performance impromevent to RuleNodeWithReplacement. r=heycam 2014-08-02 19:37:46 -07:00
L. David Baron
7a622b4aa6 Bug 996796 patch 15 - Copy the eSkipParentDisplayBasedStyleFixup bit from ReparentStyleContext as well. r=heycam 2014-08-02 19:37:46 -07:00
L. David Baron
bc7271fdfe Bug 996796 patch 14 - Fix the aElementForAnimation passed from ResolveStyleWithReplacement. r=heycam 2014-08-02 19:37:45 -07:00
L. David Baron
d798cd8c49 Bug 996796 patch 13 - Fix the pseudo element information created by ResolveStyleWithReplacement. r=heycam
Note that we're not yet using this code for style contexts that have
pseudo-elements, since we don't run transitions or animations on
pseudo-elements on the compositor thread.  But bug 960465 will (with
some more work) start doing so.
2014-08-02 19:37:45 -07:00
L. David Baron
fd515c4379 Bug 996796 patch 12 - Fix the visited rule node handling in ResolveStyleWithReplacement. r=heycam
The added test passes locally on Linux with OMT compositing and OMT
animations enabled.  However, it also passes without the patch because
the calls to FlushAnimations and FlushTransitions from
PresShell::FlushPendingNotifications cover up the damage done by bugs in
the animation-only style flush.

Unfortunately due to lack of global history on B2G and not running OMT
animations tests on any other platforms, the new test won't actually run
in automation right now.
2014-08-02 19:37:45 -07:00
L. David Baron
18c910c627 Bug 996796 patch 11 - Fix the visited flag handling in ResolveStyleWithReplacement. r=heycam
This does the same thing as ReparentStyleContext (which thanks to the
patch to bug 1031149 deals with aNewParentStyleContext being null).
2014-08-02 19:37:44 -07:00
L. David Baron
b6b97f2a82 Bug 996796 patch 10 - Separate the rule node replacement code from the style context handling so that we can make visited handling correct. r=heycam 2014-08-02 19:37:44 -07:00
L. David Baron
462fb9c4e0 Bug 996796 patch 9 - Make nsStyleSet::ResolveStyleWithReplacement handle changing between having and not having animation or transition rules, make it set IsImportantRule on rule nodes correctly, and merge the bogus ResolveStyleForRules into it. r=heycam
ResolveStyleForRules had various problems:  it failed to set importance
correctly and really only handled replacing a path in the rule tree
since it didn't handle creating important rules.  (Possibly more.)
2014-08-02 19:37:44 -07:00
L. David Baron
f6b7b27fd9 Bug 996796 patch 8 - Pass the replacements through to ResolveStyleWithReplacement. r=heycam
This means ResolveStyleWithReplacement will replace only the rules in
the nsRestyleHint rather than always replacing both the animations rule
and the transitions rule.  (This will become even more useful later when
we add the ability to replace the style attribute rule.)
2014-08-02 19:37:44 -07:00
L. David Baron
3ee274944a Bug 996796 patch 5 - Move the guts of UpdateThrottledStyle into nsStyleSet, where it can be reused. r=heycam 2014-08-02 19:37:43 -07:00
L. David Baron
c24d526151 Bug 1031149 - Consistently pass correct aRelevantLinkVisited to nsStyleContext::FindChildWithRules. r=heycam
I believe this will fix some cache misses in the FindChildWithRules
lookup when restyling.  I don't think it will fix any correctness bugs
because the RelevantLinkVisited() bit will always end up set to true
anyway as the non-link descendant of a visited link style context, and
link descendants shouldn't be able to share styles with non-link
descendants due to matching rules in the UA style sheet.
2014-08-02 19:37:42 -07:00
William Chen
2fea1cc7fb Bug 1041880 - Use GetParentElementCrossingShadowRoot() when initializing style scopes. r=heycam 2014-07-24 01:12:38 -07:00
Ms2ger
7f901a51fa Bug 1022855 - Rename nsCSSStyleSheet to mozilla::CSSStyleSheet; r=heycam 2014-06-20 12:32:49 +02:00
Ms2ger
78134e6fa1 Backout revision 308e51eae10c for build bustage. 2014-06-20 13:00:08 +02:00
Ms2ger
f747edc3e4 Bug 1022855 - Rename nsCSSStyleSheet to mozilla::CSSStyleSheet; r=heycam 2014-06-20 12:32:49 +02:00
Susanna Bowen
1c51e9400a Bug 1025308 - Rename the variables associated with skipping style fixups for children element's based on parent display value. r=mats 2014-06-16 09:55:00 -04:00
Xidorn Quan
311ef2f9f9 Bug 966166 - Part 1: Parse @counter-style rule. r=dbaron, r=bz 2014-06-11 21:10:00 -04:00