Commit Graph

447 Commits

Author SHA1 Message Date
Markus Stange
4b2612a531 Bug 1227327 - Invalidate table parts and MathML frames when background-position changes on them. r=dbaron
Theoretically we should do the same for nsTreeBodyFrame, but that frame type is
harder to detect and I'm not sure it's worth adding code to support updating
background-position on XUL trees.

MozReview-Commit-ID: 8HPT53MX6bO
2016-04-28 13:01:22 -04:00
Phil Ringnalda
65d27cf8fc Back out 6 changesets (bug 1227327) for failures in est_fixed_bg_scrolling_repaints.html
Backed out changeset 529ff32ced48 (bug 1227327)
Backed out changeset b726c30c4290 (bug 1227327)
Backed out changeset 5453b1ce4e85 (bug 1227327)
Backed out changeset 462dc0904d05 (bug 1227327)
Backed out changeset 1515512d3731 (bug 1227327)
Backed out changeset 2276fc059bf7 (bug 1227327)
2016-05-02 22:23:10 -07:00
Markus Stange
e51736e71a Bug 1227327 - Invalidate table parts and MathML frames when background-position changes on them. r=dbaron
Theoretically we should do the same for nsTreeBodyFrame, but that frame type is
harder to detect and I'm not sure it's worth adding code to support updating
background-position on XUL trees.

MozReview-Commit-ID: 8HPT53MX6bO
2016-04-28 13:01:22 -04:00
Cameron McCormack
da49d92837 Bug 1268404 - Part 1: Split out ResolveStyleForText from ResolveStyleForNonElement and pass in the text node. r=bholley 2016-04-29 14:01:44 +10:00
Botond Ballo
dfa7522d52 Bug 1255214 - Only repaint GTK scrollbar button if its enablement actually changed. r=mstange
MozReview-Commit-ID: ITLeksQzvVM
2016-04-20 19:49:09 -04:00
Xidorn Quan
5742e29b02 Bug 1097499 part 4 - Adjust computed value of writing-mode on text frames when text-combine-upright is used. r=heycam
MozReview-Commit-ID: KNRe0ZpzxGr
2016-04-22 09:18:41 +10:00
Xidorn Quan
15df861e15 Bug 1097499 part 3 - Add a separate anonbox for text nodes. r=heycam
MozReview-Commit-ID: 1GfoFEGhyka
2016-04-22 09:18:41 +10:00
L. David Baron
7511e4ea42 Bug 1053986 - Rename nsIFrame::IsBoxFrame to IsXULBoxFrame. r=dholbert
Written purely with sed, over .h and .cpp files in layout/.

But with additional manual changes in accessible/.

MozReview-Commit-ID: W0wUPoQsVH
2016-04-20 21:28:30 -07:00
Jonathan Watt
83f82d13a2 Bug 1263773 - Mark a bunch of classes in layout as MOZ_RAII. r=dholbert 2016-03-28 13:34:26 +01:00
Boris Chiou
c216e03c38 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.
2016-04-10 21:28:00 +02:00
Jonathan Kew
b7a2cd6f44 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
b0980b35d1 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
2016-03-16 15:05:10 +08:00
Brian Birtles
b9b6b9f62d 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
471cf640eb Bug 1248864 - Part 1: Move RestyleManager.h to EXPORTS.mozilla. r=dholbert 2016-02-24 18:01:12 +11:00
Cameron McCormack
8a879b8032 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
1fd85b244f Bug 1244068 - Part 3: Factor out nsStyleSet getting in RestyleManager/ElementRestyler. r=dholbert 2016-02-24 18:01:10 +11:00
Boris Chiou
32cdf253b7 Bug 1244049 - Part 2: Replace nsCSSPseudoElements::Type with CSSPseudoElementType. r=dbaron
Also, try to use forward declaraions for CSSPseudoElementType;
2016-02-17 21:37:00 +01:00
Boris Chiou
16edfa82cd Bug 1244049 - Part 1: Define scoped enum for CSSPseudoElement type. r=dbaron 2016-02-16 23:07:00 +01:00
Ting-Yu Lin
122e5b9aeb Bug 1227927 Part 2 - Remove nsIFrame::GetFirstPrincipalChild(). r=mats 2016-01-29 22:42:14 +08:00
Xidorn Quan
c26e860288 Bug 1230034 part 6 - Convert all frame properties which do not hold pointer to be typed. r=dbaron 2016-01-28 14:23:59 +11:00
Xidorn Quan
56b9331e0f Bug 1064843 part 10 - Create and render backdrop frame for top layer frames. r=dbaron 2016-01-28 10:11:00 +11:00
Brian Birtles
96518aab2c 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
39d4cf8ebc Bug 1232577 part 17 - Move AddStyleUpdatesTo to EffectCompositor; r=heycam 2016-01-13 07:54:55 +09:00
Nicholas Nethercote
4fab88afad Bug 1232852 (part 3) - Remove unused parameters from some accessibility code. r=tbsaunde. 2015-12-15 21:24:06 -08:00
Brian Birtles
6a634e5c4f Bug 1229280 - Move animation generation from AnimationCollection to EffectSet; r=dbaron 2016-01-06 11:04:05 +09:00
Boris Zbarsky
7caf2ad0a6 Bug 1230639 - Propagate the namespace ID to AttributeRuleProcessorData on attribute changes. r=dbaron 2015-12-05 01:09:13 -05:00
Markus Stange
55bb4c2297 Bug 1147673 - Make display items know about their scroll clips. r=tn, r=roc 2015-12-22 16:54:19 +01:00
Carsten "Tomcat" Book
791f2a3ca3 Backed out changeset 68b33692bed3 (bug 1147673) 2015-12-16 11:52:37 +01:00
Markus Stange
7ce6f2aca9 Bug 1147673 - Make display items know about their scroll clips. r=tn, r=roc 2015-12-12 10:58:37 -05:00
Nicholas Nethercote
a0edd1fb5f Bug 1230863 - Remove unused nsPresContext args from many functions. r=roc. 2015-12-06 17:15:53 -08:00
Brian Birtles
6c7b2850b3 Bug 1226118 part 12a - Make RestyleManager::GetMaxAnimationGenerationForFrame used frame-based GetAnimationCollection; r=dholbert 2015-12-04 08:34:17 +09:00
L. David Baron
83576c6dce Bug 1224251 patch 4 - Convert UpdateOpacityLayer to RepaintFrame when changing opacity between 1 and non-1 on table parts. r=mattwoodrow 2015-11-30 21:25:55 -08:00
L. David Baron
9262d2ab6d Bug 1224251 patch 2 - Add nsChangeHint_UpdateUsesOpacity to say when opacity changes between 1 and non-1. r=xidorn 2015-11-30 21:25:54 -08:00
Carsten "Tomcat" Book
61ef45f0a5 Backed out changeset 5c4a581885e4 (bug 1224251) 2015-11-30 12:10:44 +01:00
Carsten "Tomcat" Book
7cb6f96390 Backed out changeset 0a2d8e926a66 (bug 1224251) 2015-11-30 12:10:42 +01:00
L. David Baron
d1f41b5553 Bug 1224251 patch 4 - Convert UpdateOpacityLayer to RepaintFrame when changing opacity between 1 and non-1 on table parts. r=mattwoodrow 2015-11-29 23:15:01 -08:00
L. David Baron
9a2c3eb658 Bug 1224251 patch 2 - Add nsChangeHint_UpdateUsesOpacity to say when opacity changes between 1 and non-1. r=xidorn 2015-11-29 23:15:00 -08:00
Cameron McCormack
fd0da7375c 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
8f06b1a270 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
0c745d77fa Comment typo fix; no bug. (DONTBUILD) 2015-10-30 10:38:20 +11:00
L. David Baron
e3b828dd57 Bug 1209603 patch 6b - Rename nsStyleContext::HasCachedInheritedStyleData to HasCachedDependentStyleData. r=heycam 2015-10-19 20:42:28 -07:00
Nathan Froyd
4e6d8f6705 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
2015-10-18 01:24:48 -04:00
Vivien Nicolas
c665f8cc45 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
e99261c6e5 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
e3f3a17054 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
7821df6691 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
e902dbd417 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
803a8a8e23 Bug 1197620 - Part 1 - Stop all animations in destroyed frames. r=bbirtles 2015-09-14 23:42:00 +02:00
Cameron McCormack
6eaea62895 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
7a289dfa4d Bug 1151694 - Part 1 - Move CommonAnimationManager::sLayerAnimationInfo into LayerAnimationInfo.(cpp|h). r=bbirtles 2015-09-03 22:59:00 +02:00