Commit Graph

465 Commits

Author SHA1 Message Date
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
John Daggett
348e0cd17d Bug 280443 p2 - parse font family lists into fontlist structs. r=heycam 2014-06-06 15:09:23 +09:00
Victor Porof
298ca2ed1b Bug 1007203 - Always add categories when pushing to the pseudostack, r=djvj 2014-05-23 17:12:29 -04:00
Jonathan Watt
f92630c9b5 No bug - Add a comment to nsStyleSet::SizeOfIncludingThis noting that it does _not_ count the size of the sheets in mSheets, only the size of the mSheets buffer. 2014-05-24 21:37:12 +01:00
Jonathan Watt
f95a2d8259 Bug 1013936, part 2 - Only load the html.css UA style sheet on-demand for SVG documents. r=bz CLOSED TREE 2014-05-24 20:29:11 +01:00
Mats Palmgren
281aa20a08 Bug 1000376 - part 3, s/FlexItemStyleFixup/FlexOrGridItemStyleFixup/ and corresponding comment changes. r=dholbert 2014-05-03 13:42:33 +00:00
Birunthan Mohanathas
eeb9aaaa94 Bug 900908 - Part 3: Change uses of numbered macros in nsIClassInfoImpl.h/nsISupportsImpl.h to the variadic variants. r=froydnj 2014-04-27 03:06:00 -04:00
Masayuki Nakano
00dfc5e0a9 Bug 989212 Rename nsEventStates to mozilla::EventStates r=smaug 2014-04-03 13:18:36 +09:00
Birunthan Mohanathas
08efb5ff8c Bug 828300 - Replace NS_ARRAY_LENGTH with mozilla::ArrayLength/MOZ_ARRAY_LENGTH. r=ehsan 2014-01-30 13:26:54 -05:00
Frédéric Wang
9c735cc79a Bug 838506 - Part 1: Add a -moz-math-display property. r=heycam 2014-01-14 09:39:50 -05:00
Birunthan Mohanathas
88a0348924 Bug 713082 - Part 2: Rename Util.h to ArrayUtils.h. r=Waldo 2013-12-08 21:52:54 -05:00
James Kitchener
07532c2262 Bug 114365 - Add CSS properties for -moz-math-variant. r=heycam 2013-12-02 11:49:00 -05:00
Cameron McCormack
a797ea4b96 Bug 922669 - Part 7: Add nsStyleSet::HasStateDependentStyle and nsCSSRuleProcessor:HasStateDependentStyle overrides that work on pseudo-elements. r=bz 2013-11-28 17:46:39 +11:00
Ms2ger
eea2926d9c Bug 923251 - Part d: Remove nsCSSStyleSheet::eUniqueInner_CloneFailed; r=heycam 2013-11-11 09:00:18 +01:00
Ms2ger
970dcfe12f Bug 923251 - Part c: Make nsCSSStyleSheet::AppendAllChildSheets return void; r=heycam 2013-11-11 08:59:58 +01:00
Cameron McCormack
1a96b9ca49 Bug 930270 - Don't initialize the ancestor filter for elements outside the document. r=dbaron 2013-11-01 13:44:40 +11:00
Arnaud Bienner
b5be97b0f6 Bug 875275 part 1: Implement layout support for <input type="color">. r=dbaron,dholbert 2013-07-10 00:25:27 +02:00
Cameron McCormack
7dfecffb5b Bug 899808 - Fix matching of pseudo-elements in scoped style sheets. r=dbaron 2013-10-11 10:28:49 +11:00
L. David Baron
7d3ee3a409 Bug 861489: Fix SkipAnimationRule to do the right thing in the presence of new cascading rules. r=bzbarsky 2013-09-17 20:46:17 -07:00
Ehsan Akhgari
1089e71462 Bug 916610 - Minimize the #includes in layout/style; r=roc 2013-09-15 21:06:52 -04:00
Robert O'Callahan
51222bdd45 Bug 910989. Remove nsTHashtable::Init, fallible allocation, and MT hashtables. r=ehsan,bsmedberg 2013-09-02 20:41:57 +12:00