Граф коммитов

439 Коммитов

Автор SHA1 Сообщение Дата
Jonathan Watt 3a3ceffce3 Bug 1263773 - Mark a bunch of classes in layout as MOZ_RAII. r=dholbert 2016-03-28 13:34:26 +01:00
Boris Chiou 6a9f22bcfe Bug 1182856 - Part 2: Let AnimationsWithDestroyFrame destroy transitions. r=heycam
We also want to cancel transitions with destroyed frames, so the simplest way
is to extend the ability of AnimationsWithDestroyFrame to cancel transitions as
well.

--HG--
extra : rebase_source : 87d09b6204240b51d425269cbdc07103df5d24ef
2016-04-10 21:28:00 +02:00
Jonathan Kew a088c94f54 Bug 1140268 - Set up mCBReflowState for the 'bogus' parent reflow state used for RestyleManager::RecomputePosition. r=dbaron 2016-04-06 00:37:31 +01:00
Brian Birtles 38e9dfee9e Bug 1245260 - Ignore redundant calls to RestyleManager::IncrementAnimationGeneration; r=dbaron
While processing restyles and starting transitions, we may trigger
a call to EffectCompositor::UpdateCascadeResults which may, in turn, call
EffectCompositor::RequestRestyle with RestyleType::Layer, which ultimately
results in a call to RestyleManager::IncrementAnimationGeneration().

Typically, nsTransitionManager::StyleContextChanged compares the animation
generation on its collection with that of the restyle manager and uses this
to ignore the restyle that it generates. However, given the sequence of events
above, that check may no longer help since the restyle manager's animation
generation will be out of step. As a result,
nsTransitionManager::StyleContextChanged will fail to ignore a subsequent
and redundant restyle. With certain combinations of content, this can mean that
restyles are posted in such a manner than an infinite cycle of restyles ensues.

This patch causes RestyleManager to ignore calls to IncrementAnimationGeneration
when it is already processing restyles such that the animation generation is
only ever updated once per restyle. This makes the check for a matching
animation generation in nsTransitionManager::StyleContextChanged work as
expected, preventing us from generating needless transitions which can produce
this endless loop.

MozReview-Commit-ID: 9HYDrknKPAI

--HG--
extra : rebase_source : f7d9f251d20805fcb4d0d9be04d4343336e69836
2016-03-16 15:05:10 +08:00
Brian Birtles a9218457d2 Bug 1239945 part 2 - Drop CommonAnimationManager::ContentOrAncestorHasAnimation; r=dholbert
This was added in bug 780692 to work around assertions that arose due to the
inconsistent state introduced by mini-flushes. However, that workaround
no longer seems necessary. In particular, the crashtest for bug 813372 no
longer reports failed assertions when we remove this method and nor do any
other tests.

I'm not sure exactly what changed about how we do mini-flushes but I suspect
it was bug 960465 or one of the related follow-ups.
2016-02-24 15:42:33 +09:00
Cameron McCormack 736a5f47e7 Bug 1248864 - Part 1: Move RestyleManager.h to EXPORTS.mozilla. r=dholbert 2016-02-24 18:01:12 +11:00
Cameron McCormack 7c95c39734 Bug 1244068 - Part 4: Use StyleSetHandle instead of concrete style set class in most places. r=dholbert 2016-02-24 18:01:11 +11:00
Cameron McCormack 2d34f1889d Bug 1244068 - Part 3: Factor out nsStyleSet getting in RestyleManager/ElementRestyler. r=dholbert 2016-02-24 18:01:10 +11:00
Boris Chiou e436478f26 Bug 1244049 - Part 2: Replace nsCSSPseudoElements::Type with CSSPseudoElementType. r=dbaron
Also, try to use forward declaraions for CSSPseudoElementType;

--HG--
extra : rebase_source : c00eb9753e8f618a33aa711538ac45c0132b353c
2016-02-17 21:37:00 +01:00
Boris Chiou 185a769719 Bug 1244049 - Part 1: Define scoped enum for CSSPseudoElement type. r=dbaron
--HG--
extra : rebase_source : e53dd269e47fa97eb259ebd9295d012eacbdb612
2016-02-16 23:07:00 +01:00
Ting-Yu Lin 1889f6bc41 Bug 1227927 Part 2 - Remove nsIFrame::GetFirstPrincipalChild(). r=mats
--HG--
extra : commitid : 5qtaK1nS8RC
extra : rebase_source : dcc98f423b2446269beb6fa6a9d092ae8213f38e
2016-01-29 22:42:14 +08:00
Xidorn Quan 072dccd81f Bug 1230034 part 6 - Convert all frame properties which do not hold pointer to be typed. r=dbaron
--HG--
extra : source : f95f143e0e521ad2f8726097a484de402c834620
2016-01-28 14:23:59 +11:00
Xidorn Quan 3006d3929b Bug 1064843 part 10 - Create and render backdrop frame for top layer frames. r=dbaron
--HG--
extra : source : 744e89b823a925df685d4d5e94b5e2bec4bedd6f
2016-01-28 10:11:00 +11:00
Brian Birtles 7236a7fdbd Bug 1232577 part 18 - Drop RestyleManager::mLastUpdateForThrottledAnimations; r=heycam
RestyleManager currently has a piece of state for tracking if throttled
animations are up-to-date or not. Actually, it's not so much about throttled
animations but really about outstanding changes to animation styles (which
is typically expected to be due to throttling animations but there are
other cases that invalidate the animation style rule that we should be
considering here).

We now have that same information stored in the EffectCompositor so we can
remove the redundant state from RestyleManager. Furthermore, the state stored
in EffectCompositor is more accurate since it captures the case when animation
style needs to be updated twice within a tick, or when nothing needs to be
updated within a tick.

This patch, therefore, introduces EffectCompositor::HasPendingStyleUpdates in
place of setting RestyleManager::mLastUpdateForThrottledAnimations.

nsTransitionManager also uses mLastUpdateForThrottledAnimations to warn if we
have not processed throttled animations. We can't use HasPendingStyleUpdates
here however, since it will return true in the case where we have triggered new
transitions in the process of restyling. However, any new transitions will
trigger "standard" (i.e. not throttled) restyles so we introduce another
method, HasThrottledStyleUpdates, that returns true only if we have outstanding
throttled updates and use this for the warning inside nsTransitionManager.
2016-01-13 07:54:55 +09:00
Brian Birtles dab2f9c064 Bug 1232577 part 17 - Move AddStyleUpdatesTo to EffectCompositor; r=heycam 2016-01-13 07:54:55 +09:00
Nicholas Nethercote 3ba02d7a9b Bug 1232852 (part 3) - Remove unused parameters from some accessibility code. r=tbsaunde.
--HG--
extra : rebase_source : 7cdef8244e2b44b89e8061f66d45d40cbf245041
2015-12-15 21:24:06 -08:00
Brian Birtles bf0b758990 Bug 1229280 - Move animation generation from AnimationCollection to EffectSet; r=dbaron
--HG--
extra : rebase_source : 26a942c8c6058e629e7d7ed549eb1fcdf7f6d399
2016-01-06 11:04:05 +09:00
Boris Zbarsky 8eff629f46 Bug 1230639 - Propagate the namespace ID to AttributeRuleProcessorData on attribute changes. r=dbaron 2015-12-05 01:09:13 -05:00
Markus Stange b22db3eab2 Bug 1147673 - Make display items know about their scroll clips. r=tn, r=roc
--HG--
extra : commitid : 1j8QG2b0rIG
extra : rebase_source : 027065697e7e0ef445d8bcf7a81cf0270dcf7b8b
2015-12-22 16:54:19 +01:00
Carsten "Tomcat" Book 27bbe6ec93 Backed out changeset 68b33692bed3 (bug 1147673) 2015-12-16 11:52:37 +01:00
Markus Stange bf668586d7 Bug 1147673 - Make display items know about their scroll clips. r=tn, r=roc
--HG--
extra : commitid : 7KbOQKKSVq5
extra : rebase_source : d23daf86ed8d375bd5ab3ed7dfe3cff80bc0ff4c
extra : histedit_source : cce4ded91f0672142796a852d20d052e7b6247ce
2015-12-12 10:58:37 -05:00
Nicholas Nethercote 16cd9db041 Bug 1230863 - Remove unused nsPresContext args from many functions. r=roc. 2015-12-06 17:15:53 -08:00
Brian Birtles e0492c55ba Bug 1226118 part 12a - Make RestyleManager::GetMaxAnimationGenerationForFrame used frame-based GetAnimationCollection; r=dholbert 2015-12-04 08:34:17 +09:00
L. David Baron 911415d73e Bug 1224251 patch 4 - Convert UpdateOpacityLayer to RepaintFrame when changing opacity between 1 and non-1 on table parts. r=mattwoodrow
--HG--
extra : commitid : EbDZ3fKuldK
2015-11-30 21:25:55 -08:00
L. David Baron ea2560fb45 Bug 1224251 patch 2 - Add nsChangeHint_UpdateUsesOpacity to say when opacity changes between 1 and non-1. r=xidorn
--HG--
extra : commitid : 54U9yWksA8Q
2015-11-30 21:25:54 -08:00
Carsten "Tomcat" Book b26ab66204 Backed out changeset 5c4a581885e4 (bug 1224251) 2015-11-30 12:10:44 +01:00
Carsten "Tomcat" Book a1a34b4afa Backed out changeset 0a2d8e926a66 (bug 1224251) 2015-11-30 12:10:42 +01:00
L. David Baron 17e9e51fbf Bug 1224251 patch 4 - Convert UpdateOpacityLayer to RepaintFrame when changing opacity between 1 and non-1 on table parts. r=mattwoodrow
--HG--
extra : commitid : A4ASfp124vt
2015-11-29 23:15:01 -08:00
L. David Baron 7dcb2bf7c7 Bug 1224251 patch 2 - Add nsChangeHint_UpdateUsesOpacity to say when opacity changes between 1 and non-1. r=xidorn
--HG--
extra : commitid : 4W2ejOSubfo
2015-11-29 23:15:00 -08:00
Cameron McCormack 904f671b03 Bug 1222745 - Restore eRestyleResult_StopWithStyleChange optimization for shared style contexts by comparing rule nodes for inherited style data changes. r=dbaron 2015-11-17 15:09:55 +11:00
Cameron McCormack 866defc215 Bug 1222226 - Don't return eRestyleResult_StopWithStyleChange if the old style context is shared. r=dbaron 2015-11-08 11:06:14 +11:00
Cameron McCormack 2328daec26 Comment typo fix; no bug. (DONTBUILD)
--HG--
extra : rebase_source : c17a904cc2d7fcaecaaf658eed87da4511d4de94
2015-10-30 10:38:20 +11:00
L. David Baron 51b146732f Bug 1209603 patch 6b - Rename nsStyleContext::HasCachedInheritedStyleData to HasCachedDependentStyleData. r=heycam
--HG--
extra : commitid : 1RWP1xtrXOe
2015-10-19 20:42:28 -07:00
Nathan Froyd 01583602a9 Bug 1207245 - part 6 - rename nsRefPtr<T> to RefPtr<T>; r=ehsan; a=Tomcat
The bulk of this commit was generated with a script, executed at the top
level of a typical source code checkout.  The only non-machine-generated
part was modifying MFBT's moz.build to reflect the new naming.

CLOSED TREE makes big refactorings like this a piece of cake.

 # The main substitution.
find . -name '*.cpp' -o -name '*.cc' -o -name '*.h' -o -name '*.mm' -o -name '*.idl'| \
    xargs perl -p -i -e '
 s/nsRefPtr\.h/RefPtr\.h/g; # handle includes
 s/nsRefPtr ?</RefPtr</g;   # handle declarations and variables
'

 # Handle a special friend declaration in gfx/layers/AtomicRefCountedWithFinalize.h.
perl -p -i -e 's/::nsRefPtr;/::RefPtr;/' gfx/layers/AtomicRefCountedWithFinalize.h

 # Handle nsRefPtr.h itself, a couple places that define constructors
 # from nsRefPtr, and code generators specially.  We do this here, rather
 # than indiscriminantly s/nsRefPtr/RefPtr/, because that would rename
 # things like nsRefPtrHashtable.
perl -p -i -e 's/nsRefPtr/RefPtr/g' \
     mfbt/nsRefPtr.h \
     xpcom/glue/nsCOMPtr.h \
     xpcom/base/OwningNonNull.h \
     ipc/ipdl/ipdl/lower.py \
     ipc/ipdl/ipdl/builtin.py \
     dom/bindings/Codegen.py \
     python/lldbutils/lldbutils/utils.py

 # In our indiscriminate substitution above, we renamed
 # nsRefPtrGetterAddRefs, the class behind getter_AddRefs.  Fix that up.
find . -name '*.cpp' -o -name '*.h' -o -name '*.idl' | \
    xargs perl -p -i -e 's/nsRefPtrGetterAddRefs/RefPtrGetterAddRefs/g'

if [ -d .git ]; then
    git mv mfbt/nsRefPtr.h mfbt/RefPtr.h
else
    hg mv mfbt/nsRefPtr.h mfbt/RefPtr.h
fi

--HG--
rename : mfbt/nsRefPtr.h => mfbt/RefPtr.h
2015-10-18 01:24:48 -04:00
Vivien Nicolas a0d6fcda4b Bug 1211858 - Add a hint for the Restyle label when the id is unavailable. r=roc,benwa 2015-10-07 02:14:00 +02:00
Daniel Holbert 8f81a9c35d Bug 1032613 part 2: Make RestyleManager::AddSubtreeToOverflowTracker skip frames that don't maintain overflow areas. r=dbaron 2015-10-01 20:05:26 -07:00
Daniel Holbert 09893a542f Bug 1032613 part 1: Promote FrameMaintainsOverflow to be a public nsIFrame method, & implement it using HasAllStateBits. r=dbaron 2015-10-01 20:05:25 -07:00
Daniel Holbert 796640812b Bug 1206996: Use range-based 'for' syntax to iterate across nsFrameLists in RestyleManager. r=tn 2015-09-22 11:21:44 -07:00
Cameron McCormack 54e04d5eff Bug 1203766 - Part 4: Add a "restyle generation" counter, which increments whenever we process pending restyles. r=bzbarsky 2015-09-17 12:08:20 +10:00
Hiroyuki Ikezoe 3525eca033 Bug 1197620 - Part 1 - Stop all animations in destroyed frames. r=bbirtles 2015-09-14 23:42:00 +02:00
Cameron McCormack 646a0c727a Bug 1202512 - Part 1: Add Element flags to record whether an eRestyle_SomeDescendants restyle is pending for it. r=bzbarsky 2015-09-12 19:08:10 +10:00
Hiroyuki Ikezoe e66cf160a7 Bug 1151694 - Part 1 - Move CommonAnimationManager::sLayerAnimationInfo into LayerAnimationInfo.(cpp|h). r=bbirtles
--HG--
extra : rebase_source : 1226660e3e42a534d4c8b4f72c00888356a708fb
2015-09-03 22:59:00 +02:00
Cameron McCormack 9c2b79104e Bug 1192302 - Part 2: Traverse the frame tree when processing eRestyle_SomeDescendants. r=bzbarsky 2015-09-04 10:00:14 +10:00
Cameron McCormack 5a7fd0fade Bug 1192302 - Part 1: Make MustCheckUndisplayedContent take its frame as an argument. r=bzbarsky 2015-09-04 10:00:14 +10:00
Cameron McCormack d32a93dce9 Bug 1180120 - Part 7: Add eRestyleResult_StopWithStyleChange. r=dbaron 2015-08-29 06:13:48 +10:00
Cameron McCormack f7742cef5d Bug 1180120 - Part 6.2: Refactor MaybeReframeFor{Before,After}Pseudo. r=dbaron 2015-08-29 06:13:48 +10:00
Cameron McCormack a830175340 Bug 1180120 - Part 6.1: Factor out some of RestyleUndisplayedDescendants. r=dbaron 2015-08-29 06:13:47 +10:00
Cameron McCormack b332673f40 Bug 1180120 - Part 6: Replace HasSameCachedStyleData call with samePointerStructs bit tests. r=dbaron 2015-08-29 06:13:47 +10:00
Cameron McCormack ec9fcbb753 Bug 1180120 - Part 5: Factor out section of ElementRestyler::Restyle that calls AddPendingRestylesForDescendantsMatchingSelectors. r=dbaron 2015-08-29 06:13:47 +10:00
Cameron McCormack 1a2b30b0fc Bug 1180120 - Part 4: Add an outparam to CalcStyleDifference to indicate which struct pointers were identical. r=dbaron 2015-08-29 06:13:47 +10:00
Cameron McCormack bbf3e2feac Bug 1180120 - Part 3: Record on ElementRestyler whether we are at the root of a restyle. r=dbaron 2015-08-29 06:13:47 +10:00
Brian Birtles 774abfc8fe Bug 1180125 part 2 - Move AnimationCommon classes out of CSS namespace; r=dbaron
The long-term plan is to drop the mozilla::css namespace altogether. Before we
go to much further with refactoring code in AnimationCommon, we should drop
usage of the mozilla::css namespace. Specifically, this patch moves the
CommonAnimationManager and AnimValuesStyleRule classes to the mozilla namespace.
2015-07-29 10:57:39 +09:00
Cameron McCormack 2fdf1a9679 Bug 1190254 - Use same conditions to call ReparentStyleContext in RestyleUndisplayedNodes as in RestyleSelf. r=mats 2015-08-06 09:16:00 +10:00
Cameron McCormack ab9b04e02e Bug 1180118 - Part 11: Use ReparentStyleContext even if eRestyle_SomeDescendants is used. r=bzbarsky 2015-08-05 22:42:21 +10:00
Cameron McCormack 5b9bb2f89a Bug 1180118 - Part 10: Logging. r=bzbarsky 2015-08-05 22:42:21 +10:00
Cameron McCormack e55a3ea42c Bug 1180118 - Part 8: Keep track of the closest restyle root in AddPendingRestylesForDescendantsMatchingSelectors. r=bzbarsky 2015-08-05 22:42:21 +10:00
Cameron McCormack 9ae3b05332 Bug 1180118 - Part 5: Add a RestyleHintData outparam to HasAttributeDependentStyle for use with eRestyle_SomeDescendants. r=bzbarsky 2015-08-05 22:42:21 +10:00
Cameron McCormack 3ee4a03170 Bug 1180118 - Part 3: Convert eRestyle_SomeDescendants into eRestyle_Self for elements that match selectors. r=bzbarsky 2015-08-05 22:42:20 +10:00
Cameron McCormack a51940e7a6 Bug 1180118 - Part 2: Add eRestyle_SomeDescendants restyle hint and pass associated restyle hint data into restyle methods. r=bzbarsky 2015-08-05 22:42:20 +10:00
Carsten "Tomcat" Book 94b10d301f Backed out 13 changesets (bug 1180118) for crashes on a CLOSED TREE
Backed out changeset c65d298d7cfa (bug 1180118)
Backed out changeset 7c5ebadc3fc9 (bug 1180118)
Backed out changeset 91a3e2205388 (bug 1180118)
Backed out changeset 15ad6049b940 (bug 1180118)
Backed out changeset 9b41cd9f2bc5 (bug 1180118)
Backed out changeset 37493f6eef20 (bug 1180118)
Backed out changeset b7ec8d4d2d7e (bug 1180118)
Backed out changeset cfeeae42d514 (bug 1180118)
Backed out changeset 9bcc3233f3c8 (bug 1180118)
Backed out changeset b99c358a6fea (bug 1180118)
Backed out changeset 4a7b79980353 (bug 1180118)
Backed out changeset 20984dfa4302 (bug 1180118)
Backed out changeset ef165b896cf4 (bug 1180118)
2015-08-04 12:20:20 +02:00
Cameron McCormack e228e20bfe Bug 1180118 - Second followup warning-as-error build fix. 2015-08-04 17:50:32 +10:00
Cameron McCormack 6779b6d8a7 Bug 1180118 - Part 11: Use ReparentStyleContext even if eRestyle_SomeDescendants is used. r=bzbarsky 2015-08-04 17:27:53 +10:00
Cameron McCormack e4b325902b Bug 1180118 - Part 10: Logging. r=bzbarsky 2015-08-04 17:27:53 +10:00
Cameron McCormack e090c4f7c9 Bug 1180118 - Part 8: Keep track of the closest restyle root in AddPendingRestylesForDescendantsMatchingSelectors. r=bzbarsky 2015-08-04 17:27:53 +10:00
Cameron McCormack 18f6b81597 Bug 1180118 - Part 5: Add a RestyleHintData outparam to HasAttributeDependentStyle for use with eRestyle_SomeDescendants. r=bzbarsky 2015-08-04 17:27:53 +10:00
Cameron McCormack 1893e1d44d Bug 1180118 - Part 3: Convert eRestyle_SomeDescendants into eRestyle_Self for elements that match selectors. r=bzbarsky 2015-08-04 17:27:52 +10:00
Cameron McCormack 456e7234ef Bug 1180118 - Part 2: Add eRestyle_SomeDescendants restyle hint and pass associated restyle hint data into restyle methods. r=bzbarsky 2015-08-04 17:27:52 +10:00
L. David Baron e3af3797d8 Bug 1187851 patch 3 - Rename nsChangeHint_AddOrRemoveTransform to nsChangeHint_UpdateContainingBlock. r=roc
This is because patch 4 now uses AddAndRemoveTransform hints for changes
that are other than adding and removing a transform.  There's still a
little bit of transform-related stuff there too (which I did make
conditional in patch 2).

--HG--
extra : commitid : DF2FByhoo7E
2015-08-03 20:18:00 -07:00
L. David Baron 8109f0861d Bug 1187851 patch 2 - Cleanup to prepare for making dynamic changes to filter and perspective change fixed position containing block for descendants. r=roc
--HG--
extra : commitid : BOKbXL5V3Bw
2015-08-03 20:18:00 -07:00
Robert O'Callahan 894d9c19a5 Bug 1184842. Route aOldValue/aNewValue to AttributeData. r=heycam
--HG--
extra : commitid : HPs2uc3HzHl
extra : rebase_source : c1962247a393eb10bfa85d5e9590fa71e56203ce
2015-07-22 15:54:07 +12:00
L. David Baron 7bf9f07a6e Backed out changeset f24dbdeeaef1 (Bug 1187851 patch 1) for reflow counting failures in Gaia integration tests apps/system/test/marionette/edges_gesture_test.js and apps/system/test/marionette/homescreen_navigation_test.js .
--HG--
extra : commitid : A94PEds11qA
2015-08-02 22:35:28 -07:00
L. David Baron 70c88b7d2c Backed out changeset 5dcb38c7f1b8 (Bug 1187851 patch 2) for reflow counting failures in Gaia integration tests apps/system/test/marionette/edges_gesture_test.js and apps/system/test/marionette/homescreen_navigation_test.js .
--HG--
extra : commitid : BV4uUnaUOht
2015-08-02 22:34:49 -07:00
L. David Baron 990ae820cf Bug 1187851 patch 2 - Rename nsChangeHint_AddOrRemoveTransform to nsChangeHint_UpdateContainingBlock. r=roc
--HG--
extra : commitid : 60f2ryYqjzB
2015-08-02 21:03:09 -07:00
L. David Baron e78b42c1b2 Bug 1187851 patch 1 - Make dynamic changes to filter and perspective change fixed position containing block for descendants. r=roc
Note that this now uses AddAndRemoveTransform hints for changes that are
other than adding and removing a transform.  Since there's still a
little bit of transform-related stuff there too (which I did make
conditional), I figure it's probably best to leave the name as-is,
although I'd be open to renaming it as well.

As expected, without the patch, the filter and perspective tests fail,
but the added transform test passes.  All the tests pass locally with
the patch.

--HG--
extra : commitid : 3ZfnPHG701V
2015-08-02 21:03:09 -07:00
Brian Birtles 7f5b0ef0cf Bug 1171966 - Update SMIL animation styles only when there are pending changes; r=dholbert
Bug 960465 (specifically part 6, changeset 7d16f2fd8329) changed the way we
process animation-only style changes. This caused us to update SMIL animations
more often than is needed.

This patch adjusts this behavior to update the style from SMIL animations less
frequently by tracking when animated values have been composited without adding
the corresponding changes to a restyle tracker.
2015-07-31 13:14:46 +09:00
Carsten "Tomcat" Book c86b8ab1b4 Backed out changeset a4fb4e4b1c8b (bug 1180125) 2015-07-29 17:32:19 +02:00
Brian Birtles 9b391b0177 Bug 1180125 part 2 - Move AnimationCommon classes out of CSS namespace; r=dbaron
The long-term plan is to drop the mozilla::css namespace altogether. Before we
go to much further with refactoring code in AnimationCommon, we should drop
usage of the mozilla::css namespace. Specifically, this patch moves the
CommonAnimationManager and AnimValuesStyleRule classes to the mozilla namespace.
2015-07-29 10:57:39 +09:00
Eric Rahm a24ed9cc24 Bug 1180036 - Replace the warning that anonymous nodes should not be in child lists with an assert plus whitelisting of known-OK cases. r=bz 2015-07-24 09:47:51 -07:00
Robert O'Callahan 148e0aa769 Bug 1172239. Use nsChangeHint_UpdateComputedBSize to only dirty intrinsic sizes when necessary. r=bz
--HG--
extra : commitid : 48WN0ELkG8f
extra : rebase_source : 25524e9b82251263a88584d81b31f522a3ab5709
2015-07-22 16:36:56 +12:00
Boris Zbarsky 786a11f445 Bug 1183896. Don't assume that relatively positioned table cells actually have positioned offsets computed, because in the case of position:sticky they don't. r=dholbert 2015-07-16 17:53:52 -04:00
L. David Baron 394b89942c Bug 1169440 patch 7 - Pass parameter determined from style hint to FrameNeedsReflow. r=dholbert 2015-06-20 21:54:15 -07:00
L. David Baron c874e3c159 Bug 1169440 patch 3 - Add nsChangeHint_ReflowChangesSizeOrPosition. r=heycam 2015-06-20 21:54:15 -07:00
L. David Baron 1cc4969746 Bug 1169440 patch 1 - Add bitwise operators to nsChangeHint. r=heycam
I'm fed up with having to use the NS_*Hint functions, and I also have
trouble reading/writing some of them since I don't remember the order of
parameters.

(At some point I think we should convert existing callers, but I don't
plan to do that here.)
2015-06-20 21:54:15 -07:00
Simon Montagu 7f1b0db94c Bug 1147834: Use abstract coordinates in nsHTMLReflowState, r=jfkthame 2015-06-04 03:43:02 -07:00
Jordan Santell 79b0646b65 Bug 1164338 - Move styles markers to be generated in DoProcessRestyles rather than when the Flush_Style queue is flushed. r=smaug,heycam 2015-05-18 16:03:04 -07:00
Robert Longson cba9deedb9 Bug 1163875 - ensure opacity animation in patterns results in redraws r=jwatt 2015-05-13 15:38:04 +01:00
Cameron McCormack abddd905f2 Bug 1157097 - Don't share a style context that will have its cached style data cleared. r=dbaron 2015-04-29 14:47:15 +10:00
Cameron McCormack ce18025dce Bug 1156988 - Update RestyleManager::{Change,Restyle}HintToString for recent changes. r=dbaron 2015-04-22 08:03:31 +10:00
Brian Birtles 8f5fbac8a9 Bug 1154615 part 5 - Rename AnimationPlayerCollection to AnimationCollection; r=jwatt 2015-04-21 10:22:10 +09:00
Cameron McCormack 84ff03514a Bug 1154149 - Remove nsPresContext arguments from a bunch of nsStyleSet methods. r=dbaron 2015-04-17 11:09:59 +10:00
Cameron McCormack 5ed02337c8 Bug 1146101 - Call ClearCachedInheritedStyleDataOnDescendants on more style contexts that had structs swapped out from them. r=dbaron a=abillings 2015-04-15 08:13:45 +10:00
Ryan VanderMeulen 81c2e4fd75 Backed out changeset 8882af540247 (bug 1029451) for intermittent timeouts in the newly-added test. 2015-04-06 11:22:00 -04:00
Tom Tromey fe559bb884 Bug 1029451 - Preserve mIsSynthesizedForTests on mouse events. r=ehsan 2015-04-03 08:17:00 -04:00
Jonathan Watt 2b22106122 Bug 1145246, part 3 - Update layout code for the rename of Animatable.getAnimationPlayers() to Animatable.getAnimations(). r=birtles 2015-03-20 18:20:49 +00:00
Xidorn Quan c9ec579ba2 Backout a6dbd23da598 (bug 1139283) since it is currently not needed.
--HG--
extra : source : 3acc263e7d18fc2946bd043edcf7ae865e3874fe
2015-03-20 15:12:17 +11:00
Kartikaya Gupta f64fcefe30 Bug 962594 - Don't build CSS animations for elements that are in a display:none subtree. r=heycam 2015-03-15 20:28:49 -04:00
Robert O'Callahan c7d1538273 Bug 1125767. Centralize code into nsStylePosition::IsFixedPosContainingBlock. r=mats
Also renames IsPositioned to IsAbsPosContainingBlock.

--HG--
extra : rebase_source : b412f6291d34e30e8d57e054645bd1e04f43593f
extra : histedit_source : 01a2bd57de4eec4ecf3f3712ee609d70ca14cda4
2015-03-12 16:21:01 +13:00
Xidorn Quan e89adacefb Bug 1140264 part 3 - Rename IsInlineDescendantOfRuby to ShouldSuppressLineBreak and exclude rbc/rtc from it. r=dbaron
--HG--
extra : rebase_source : b782506792fd47e41c694a49fca3967282c96113
extra : source : 9836c81fe7d401432856491dc65c38b150e5e157
2015-03-11 10:28:21 +11:00
Xidorn Quan d4289c7714 Bug 1139283 - Move some properties from nsStyleDisplay to nsStylePosition. r=dbaron
The moved properties are:
* clip
* transform-style
* transform-origin
* backface-visibility
* perspective
* perspective-origin
* will-change

--HG--
extra : source : 42bbf0328b450d1094250159fe9f7f0d07622290
2015-03-08 18:43:22 +11:00
Cameron McCormack 5ca39a7a39 Bug 1136010 - Don't coalesce style contexts added to RestyleManager::mContextsToClear. r=dbaron 2015-03-04 18:06:29 +11:00
Cameron McCormack 3d4a394d35 Bug 1137031 - Do not stop restyling when TryStartingTransitiosn gives us a new style context. r=dbaron
It is not correct to stop restyling by leaving the old style context on
the frame and returning eRestyleResult_Stop when TryStartingTransition
provides a new, without-animations style context.  This is at least
because the new new style context could have different styles from the
old new style context.
2015-03-04 16:08:00 +11:00
Andrea Marchesini 2c4f63331f Bug 1134280 - Get rid of Tag() - patch 1 - Is{HTML,XUL,MathML,SVG}Element and IsAnyOf{HTML,XUL,MathML,SVG}Elements, r=smaug 2015-03-03 11:08:59 +00:00
chiajung hung 46866d6824 Bug 1129249 - Expose the element id in Gecko profiler for Restyle. r=dholbert r=benwa 2015-02-25 23:16:00 +01:00
L. David Baron b00c25a4fd Bug 1133439 patch 2 - Distinguish animation-only SMIL restyles based on eRestyle_StyleAttribute_Animations in RestyleManager::PostRestyleEvent. r=birtles 2015-02-19 21:22:05 +13:00
L. David Baron 71e196bb22 Bug 1133392 - Make handling of nsChangeHint_UpdateSubtreeOverflow iterate continuations, as all change hint handling needs to. r=mats
The test fails without the patch (missing underline on "an underline")
and passes with the patch (where the underline is present, and aligned
with the non-displaced text).
2015-02-19 13:49:52 +13:00
Cameron McCormack 635933d3f8 Bug 1127198 - Part 4: Clear cached structs only after we have fully processed a restyle. r=dbaron 2015-02-18 09:28:53 +11:00
Cameron McCormack c11c432b20 Bug 1125391 - Re-enable bug 931668 optimizations. r=dbaron 2015-02-18 09:28:53 +11:00
L. David Baron 43c2cd3af5 Bug 960465 patch 22 - Remove implementation of nsRestyleHint_ChangeAnimationPhase. r=birtles 2015-02-17 11:15:06 +13:00
L. David Baron 04535c3f75 Bug 960465 patch 20 - Allow pseudo-elements for style attribute replacement in RuleNodeWithReplacement. r=birtles
I confirmed that we're actually using this codepath by manually testing
<input type=color>:  it works with the patch, but if I comment out the
call to nsHTMLCSSStyleSheet::PseudoElementRulesMatching from
nsStyleSet::RuleNodeWithReplacement, then the color swatch breaks, which
proves that we're depending on the code.

I think I included this in the queue because it is needed for patch 22,
although I've forgotten the full reasoning.
2015-02-17 11:15:05 +13:00
L. David Baron 6475962f36 Bug 960465 patch 18 - Remove aElementOrPseudoElement parameter to ReparentStyleContext (added in bug 1057129). r=birtles 2015-02-17 11:15:05 +13:00
L. David Baron bc26f211f6 Bug 960465 patch 17 - Remove separate animation and non-animation phases of restyling. r=birtles
Note that this means that when we start transitions, we post restyles
that are processed during the current restyling operation, rather than
in a later phase.  This depends on patch 11, which makes the transition
manager skip style changes that it posts while starting transitions, to
ensure that this doesn't lead to an infinite loop.  This also depends on
patch 16, which only consumes restyle data for the primary frame, to
ensure that the animation restyles posted are processed properly.  It
also depends on patch 14, which makes us retain data on finished
transitions, to avoid triggering extra transitions on descendants when
both an ancestor and a descendant transition an inherited property, and
the descendant does so faster.

This fixes a known failure in layout/style/test/test_animations.html and
test_animations_omta.html (as visible in the patch).  I believe this is
because this patch changes us to compute keyframe values for animations
on top of a style context *with* animation data rather than one without,
which means what we're computing them on top of changes each time.  (The
purpose of patch 3 was to avoid this in the case where avoiding it
matters, i.e., implicit 0% and 100% keyframes.)
2015-02-17 11:15:05 +13:00
L. David Baron 7695d1eb3f Bug 960465 patch 16 - Only consume restyle data for the primary frame. r=birtles
This is needed for patch 17, which removes restyling phases, so that
when the transition manager posts a restyle to undo the covering done by
the cover rule, that restyle doesn't get consumed by an inner frame.
2015-02-17 11:15:04 +13:00
L. David Baron ec1d6f8002 Bug 960465 patch 9 - Move the addition of the cover rule into nsTransitionManager::StyleContextChanged so that later patches can make it other than just addition of a rule. r=birtles 2015-02-17 11:15:02 +13:00
L. David Baron 9e99ab7b35 Bug 960465 patch 7 - Use SetInAnimationOnlyStyleUpdate for ProcessPendingRestyles runs that are only updating animation data. r=birtles 2015-02-17 11:15:02 +13:00
L. David Baron c60431ba8a Bug 960465 patch 6 - Add the new mechanism for avoiding starting spurious transitions as a result of animations: flush animation styles only before doing other restyle processing. r=birtles 2015-02-17 11:15:02 +13:00
L. David Baron cf453a224f Bug 960465 patch 5 - Make SMIL animations participate in the animation-only style flush. r=birtles
This is needed to prevent these reftests from failing:
  layout/reftests/svg/smil/smil-transitions-interaction-1a.svg
  layout/reftests/svg/smil/smil-transitions-interaction-1b.svg
  layout/reftests/svg/smil/smil-transitions-interaction-2a.svg
  layout/reftests/svg/smil/smil-transitions-interaction-2b.svg
  layout/reftests/svg/smil/smil-transitions-interaction-4a.svg
  layout/reftests/svg/smil/smil-transitions-interaction-4b.svg
The mIsCSS path fixes the a tests, and the !mIsCSS path fixes the b tests.

This is because this patch series changes the way in which transitions
interact with other types of animations to depend on those animations
being flushed in the animation-only style flush.  (The relevant call is
added in patch 6, though we don't really depend on it until patch 17.)
2015-02-17 11:15:02 +13:00
L. David Baron 1b6ffe0698 Bug 960465 patch 4 - Track whether there are any pending non-animation restyles. r=birtles
This depends on bug 1087536 patch 3, which posts animation restyles
using the eRestyle_CSSTransitions and eRestyle_CSSAnimations hints.

This is used by patch 6.
2015-02-17 11:15:02 +13:00
L. David Baron 5a3d7683d5 Bug 992077 patch 3 - Stop using OverflowChangedTracker::CHILDREN_AND_PARENT_CHANGED for the UpdateOverflow and related hints. r=mats
This makes UpdateOverflow hint handling (which definitely did previously
need CHILDREN_AND_PARENT_CHANGED) and handling of related hints (which I
believe never actually needed CHILDREN_AND_PARENT_CHANGED) use the
CHILDREN_CHANGED hint in the overflow changed tracker, since use of
CHILDREN_AND_PARENT_CHANGED is no longer needed following the
introduction of the UpdateParentOverflow hint in patch 2.
2015-02-16 16:34:29 +13:00
L. David Baron f6a6550205 Bug 992077 patch 1 - Add nsChangeHint_UpdateParentOverflow hint so that we can reduce unnecessary UpdateOverflow calls for top/right/bottom/left changes, and reduce unnecessary propagation to the parent for UpdateOverflow hints for changes that actually affect the element's overflow. r=mats
This cleans up after bug 984226, which introduced
CHILDREN_AND_PARENT_CHANGED to deal with the facts that:

 (1) most properties whose changes yield UpdateOverflow style hints
     imply that an element's overflow area may have changed, and
     propagation to ancestors can stop without updating the element's
     parent if the element's own overflow area didn't change.

 (2) a few properties whose changes yield UpdateOverflow style hints
     actually don't change the overflow area of the element on which the
     property changed, but instead change that element's overflow area
     on the element's parent.

Having two separate hints means that we don't have to do the extra work
of always updating the parent's overflow area (when the child's overflow
area didn't actually change) for the properties in category (1), and we
don't have to do extra work of updating the element's own overflow area
for properties in category (2).
2015-02-16 16:34:29 +13:00
Nicholas Nethercote 242708cf72 Bug 1127201 (attempt 2, part 1) - Replace most NS_ABORT_IF_FALSE calls with MOZ_ASSERT. r=Waldo.
--HG--
extra : rebase_source : 488e401ff87e31a2074c4108c4df0572d9536667
2015-02-09 14:34:50 -08:00
Andrew McCreight d3826daa16 Back out Bug 1127201 (part 2) for various problems. 2015-02-06 15:04:32 -08:00
Nicholas Nethercote d34f0301b8 Bug 1127201 (part 2) - Convert all NS_ABORT_IF_FALSE calls to MOZ_ASSERT. r=Waldo.
--HG--
extra : rebase_source : 99182e70335d2b5ff95f8c528ae992d37294be3a
2015-02-04 20:05:36 -08:00
Cameron McCormack 301463dc20 Bug 1092363 - Disable bug 931668 optimizations for the time being. r=dbaron 2015-01-22 13:25:08 +11:00
L. David Baron c90d6e2a33 Bug 1110277 patch 7 - Call CreateNeededFrames from ~ReframingStyleContexts. r=bzbarsky
I don't have any tests that exercise this code, and I can't even find a
codepath that demonstrates that it's needed, since the lazy
reconstruction that happens during style-triggered frame reconstruction
all appears to go through PostRestyleEvent rather than
MaybeConstructLazily.

But I think we should either do this or add an assertion that it's not
needed, and given that it's one line, it seems like we may as well just
do it.  (Note also that we're currently calling CreateNeededFrames at
the start of style reresolution, in
RestyleManager::ProcessPendingRestyles; this adds a call at the end.)
2015-01-13 21:03:13 -08:00
L. David Baron f290869b5e Bug 1110277 patch 6 - Make the lifetime of the ReframingStyleContexts object longer. r=heycam
This makes the ReframingStyleContexts live across the lifetime of the
processing of a full queue of posted restyles.

This depends on bug 1115812 to behave sensibly (and not assert) when
rebuilding the rule tree (RebuildAllStyleData, etc.).

This handles the form of lazy frame construction that is done in
nsCSSFrameConstructor::RecreateFramesForContent, which posts a restyle.
Patch 7 handles any use of the lazy frame construction mechanism.

This patch (with patches 4 and 5 under it, but without patches 1-3)
fixes the original testcase in bug 1110277, except for some flashing of
the final position as the transition starts.

Also fixes bug 1111451.
2015-01-13 21:03:13 -08:00
L. David Baron 6a6e77a8d9 Bug 1110277 patch 5 - Move the AutoRestore into ReframingStyleContexts. r=heycam
This is just a little cleanup that follows from patch 4.
2015-01-13 21:03:13 -08:00
L. David Baron c85cb4876e Bug 1110277 patch 4 - Add a RestyleManager member to ReframingStyleContexts. r=heycam
This is needed for patch 7.
2015-01-13 21:03:13 -08:00
L. David Baron f1332e99f1 Bug 1115812 patch 20 - Add assertions that mDoRebuildAllStyleData and mInRebuildAllStyleData are false by the end of restyle processing. r=heycam
These assertions are as requested in comment 30 in the bug.

(If the first one doesn't fire, it's possible we could even get rid of
the handling of mDoRebuildAllStyleData that it's within.)
2015-01-13 21:03:13 -08:00
L. David Baron 7bc8463f0e Bug 1115812 patch 19 - Avoid bad kungFuDeathGrip pattern. r=heycam
If we need a strong reference to the pres shell, we may as well do it
the first time rather than bothering with an extra variable.
2015-01-13 21:03:12 -08:00
L. David Baron 0e8362d05a Bug 1115812 patch 18 - We only need to call ProcessPendingRestyles recursively, rather than RebuildAllStyleData. r=heycam
If we discover that we've set mDoRebuildAllStyleData in the middle of
ProcessPendingRestyles(), now that ProcessPendingRestyles() fully
handles mDoRebuildAllStyleData, we only need to make a recursive call to
ProcessPendingRestyles, rather than calling RebuildAllStyleData to call
ProcessPendingRestyles.
2015-01-13 21:03:12 -08:00
L. David Baron a998c7bd03 Bug 1115812 patch 17 - Do animation-only update properly for a rebuild all. r=heycam
This fixes another pre-existing bug in the rebuild-all codepath; it
didn't handle the animation-only update correctly, which could have
caused bugs in transitions with OMT animations enabled.
2015-01-13 21:03:12 -08:00
L. David Baron 20ed69a9ae Bug 1115812 patch 16 - Remove the now-unused DoRebuildAllStyleData. r=heycam 2015-01-13 21:03:12 -08:00
L. David Baron f9abbf6ae0 Bug 1115812 patch 15 - Change the rebuild-all that we do for 'rem' unit changes to use the new way. r=heycam
This means that instead of recurring into DoRebuildAllStyleData, we'll
call StartRebuildAllStyleData in the middle of processing the restyle
queue (which is fine).  StartRebuildAllStyleData will move the old rule
tree out of the way and immediately do a full-tree restyle, before
returning to any queue processing that might be left (the full-tree
restyle should have consumed all remaining restyle hints, but might have
posted some new ones for handling reframes that require reframing
ancestors).  And, more importantly, the EndReconstruct() call to get rid
of the old rule tree won't happen until after we're done processing the
containing RestyleTracker's queue of restyles, which reduces the risk of
having dangling old style contexts and makes it easier (in bug 1110277)
to have a ReframingStyleContexts with the right lifetime.
2015-01-13 21:03:12 -08:00
L. David Baron eed121aaa9 Bug 1115812 patch 14 - For rem unit change handling, repost min hint to root just like change hint. r=heycam
This changes what was probably a silly design choice when I wrote the
code for 'rem'-basis handling; we shouldn't try continuing through the
rest of RestyleElement() here, but instead repost the hint to the
rebuild-all process.
2015-01-13 21:03:12 -08:00
L. David Baron 6dc93cb14d Bug 1115812 patch 13 - Make RebuildAllStyleData use the normal ProcessPendingRestyles() codepath. r=heycam
This switches RebuildAllStyleData() to the normal
ProcessPendingRestyles() manner of restyle processing.  This means a
rebuild-all going through this codepath (the main rebuild-all codepath)
only sets up for non-animation restyle processing once rather than doing
it twice (and potentially having reframes posted in
DoRebuildAllStyleData() that don't get processed until
ProcessPendingRestyles(), which causes a variant of bug 1110277 with
transitions on reframed elements failing to start because it doesn't
match the lifetime of the ReframingStyleContexts).
2015-01-13 21:03:12 -08:00
L. David Baron 504d9a46e0 Bug 1115812 patch 12 - Null-check the root frame in StartRebuildAllStyleData. r=heycam
In the new way of doing a rebuild-all, StartRebuildAllStyleData might be
called directly from ProcessPendingRestyles rather than from
RebuildAllStyleData (which null-checks the root frame) or from within
processing restyles (which can only happen when there's a root frame).
This means it needs its own null-check of the root frame.
2015-01-13 21:03:12 -08:00
L. David Baron b8e6ffef57 Bug 1115812 patch 11 - Move the beginning part of the rebuild-all process to StartRebuildAllStyleData. r=heycam
Here we call StartRebuildAllStyleData from BeginProcessingRestyles (much
like patch 9 and EndProcessingRestyles).  But we will later also call it
from the code that handles a root element font size change when we have
'rem' units.  That's because it's fine to *start* the rebuild process in
the middle of processing the queue of pending restyles.  (We have to end
after the whole process is done, though, in order to avoid wanting to
destroy the old rule tree while we still have style contexts referencing
it.)

We only call StartRebuildAllStyleData in this case when we're processing
our primary restyle queue (mPendingRestyles), not the animation restyles
(to be removed in bug 960465) or the animation-only restyles, since a
rebuild-all should be processed (in terms of animation phases, or in
terms of having an animation-only update before it) like a normal
restyle.  (This isn't true for the 'rem' unit restyle, which could
happen during any sort of update.)
2015-01-13 21:03:12 -08:00
L. David Baron 9d5b480b41 Bug 1115812 patch 10 - Add RestyleTracker parameter to BeginProcessingRestyles. r=heycam
This is needed in patch 11.
2015-01-13 21:03:12 -08:00
L. David Baron 9815b54790 Bug 1115812 patch 9 - Move the end part of the rebuild-all process to RestyleManager::EndProcessingRestyles. r=heycam
This moves the code that finishes the rebuild-all process into
EndProcessingRestyles(), which is part of the main restyling codepath.

Patch 7 ensures that we'll always get to EndProcessingRestyles in this
case, when we're going through the normal ProcessPendingRestyles()
codepath rather than the special DoRebuildAllStyleData() codepath (which
will be removed later in this patch series).
2015-01-13 21:03:12 -08:00
L. David Baron 4991382cc8 Bug 1115812 patch 8 - Call BeginProcessingRestyles and EndProcessingRestyles from DoRebuildAllStyleData. r=heycam
This fixes one of the omissions in the rebuild-all codepaths (where it
incorrectly differs from the regular ProcessPendingRestyles codepath).
Note that the explicit FlushOverflowChangedTracker() is no longer needed
because that's part of EndProcessingRestyles.

(This will all get refactored more substantially in the following
patches.)
2015-01-13 21:03:12 -08:00
L. David Baron 61bcb1749a Bug 1115812 patch 6 - Move ProcessRestyles from RestyleTracker to RestyleManager. r=heycam
This is needed for the following patch, so that it can access a member
variable of RestyleManager.
2015-01-13 21:03:12 -08:00
L. David Baron e19772aa8e Bug 1115812 patch 5 - Store the state of whether we're currently rebuilding all style data in a member variable, to prepare for future merging of the rebuild into other code. r=heycam
This adds a member variable that is currently only used within a single
function, but that function will be split apart so that different parts
of it can be called from different places within ProcessPendingRestyles.
2015-01-13 21:03:12 -08:00
L. David Baron 1493ba39f8 Bug 1115812 patch 4 - Rename mRebuildAllStyleData to mDoRebuildAllStyleData. r=heycam
This is the variable that says we *need to* rebuild style data.  Since
the next patch will introduce a variable that says we're *currently*
rebuilding all style data, renaming this one makes things clearer.
2015-01-13 21:03:11 -08:00
L. David Baron a6b18a766a Bug 1115812 patch 3 - Pass the hints to DoRebuildAllStyleData via the member variables, in preparation for future refactoring. r=heycam
Part of this refactoring involves the ability to start the rebuild-all
process within the processing of restyles.  This means we can't pass
parameters directly from RebuildAllStyleData into DoRebuildAllStyleData.
So this continues storing the hints as member variables a little bit
deeper into the process.

(I tried to move in a different direction in this patch queue, and store
these hints in mPendingRestyles, for the root element.  But that broke
layout/style/test/test_counter_style.html and
layout/style/test/test_font_loading_api.html, and I didn't want to
figure out why.  It would be somewhat better in the long run, since
currently these hints will get processed if we do a rebuild-all on a
RestyleTracker other than mPendingRestyles, which can happen if we have
'rem' units and have a root element font size change in the
animation-only update or in mPendingAnimationRestyles.)
2015-01-13 21:03:11 -08:00
L. David Baron 5d1c7926f6 Bug 1115812 patch 2 - Move the eRestyle_ChangeAnimationPhaseDescendants hint in DoRebuildAllStyleData so that the new rebuild-all codepaths will keep it. r=heycam
The patches in this series refactor the process of rebuilding all style
data (RestyleManager::RebuildAllStyleData and
RestyleManager::DoRebuildAllStyleData) so that the process of rebuilding
all style data uses the existing restyle processing loops in
ProcessPendingRestyles.  (Rebuilding all style data is what we do when
we need to throw away the rule tree because something has invalidated
the cached data in it.)  This removes (increasing, especially with bug
960465 coming) code duplicated between the two codepaths, fixes some
omissions from the separate rebuild-all codepath, and (more immediately)
allows fixing lifetime issues of ReframingStyleContexts objects in bug
1110277 so that we can have a single ReframingStyleContexts for all of
the restyle processing in each restyle processing operation.  In other
words, the goal is to change the rebuild-all process from a separate
codepath to a few variables that modify the way ProcessPendingRestyles
works (and make it do the extra work).

This is just a small first step in that process, which moves one piece
of code from a chunk of duplicated and to-be-removed code into a chunk
of code that will be preserved.
2015-01-13 21:03:11 -08:00
L. David Baron c18ac3eff2 Bug 1115812 patch 1 - Remove obsolete comment that was fixed by bug 1047928. r=heycam 2015-01-13 21:03:11 -08:00
L. David Baron 590d7a434b Bug 1110277 patch 1 - Consider the ib-split chain when checking for ::before and ::after in order to reframe when they're missing. r=bzbarsky
This patch is not needed to fix the bug, but it seems like it's probably
desirable.  It's not needed for this bug because
MaybeReframeForBeforePseudo and MaybeReframeForAfterPseudo are already
called (by ElementRestyler::RestyleChildren) on only the first and last
continuation or ib-split sibling with the same style.  So this patch
should only actually change anything for cases like a block-in-inline
split whose initial inline part is inside of a ::first-line (where
different parts of the block-in-inline split chain have different style).

Since the symptom of this bug is (once patch 6 is in the tree) only
causing extra reframes, it can only be tested using the new API (from
bug 1115691) for observing reframes.  I confirmed that the test for this
bug fails without the patch and passes with the patch (as noted by the
removal of its todo annotation).
2015-01-11 15:43:10 -08:00
Brian Birtles 3dcfc0b8f5 Bug 927349 part 28 - Call AddLayerChangesForAnimation after updating style; r=dbaron 2014-12-25 16:28:25 +09:00
Xidorn Quan 61ff35b52e Bug 1114792 - Rename nsStyleContext::IsDirectlyInsideRuby to IsInlineDescendantOfRuby. r=dbaron
--HG--
extra : rebase_source : c28b41828c7d02ab26803c583bae15a218a5da05
2014-12-31 16:39:43 +11:00
Brian Birtles e5b88e8ef0 Back out parts 22-29 from bug 927349 for causing intermittent test failure in css-animations/test_animation-pausing.html on 10.8 2014-12-26 11:54:43 +09:00