Commit Graph

4598 Commits

Author SHA1 Message Date
L. David Baron
8a68f4e46e Bug 1100773 patch 4 - Fix nonunified build bustage. 2014-11-26 23:39:43 -08:00
L. David Baron
2fbfc09f6f Bug 1102650 - Make the :-moz-dir() and :-moz-locale-dir() selectors be valid selectors (matching nothing) with arguments other than rtl and ltr, rather than invalid. r=heycam 2014-11-26 22:29:45 -08:00
L. David Baron
8c516d0dfd Bug 1100773 patch 3 - Add an aListDescendants boolean to nsStyleContext::List. r=heycam 2014-11-26 22:29:45 -08:00
L. David Baron
ac0837a339 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
15771fb627 Bug 1100773 patch 1 - Fix bracing of indent loops in style rule print functions. r=heycam 2014-11-26 22:29:44 -08:00
Xidorn Quan
6bb73d843e Bug 1084183 - Propagate text decoration to ruby frames. r=dbaron 2014-11-26 15:53:18 +11:00
Daniel Holbert
cb3c595d42 Bug 1093316 part 2: Backout changeset af2a4fb980ad (i.e. backout bug 1032922 part 1), to reflect CSSWG removing "flex-basis: main-size" from the flexbox spec.
Landing on a CLOSED TREE with a=kwierso
2014-11-25 15:40:24 -08:00
Daniel Holbert
8b2fb3bb07 Bug 1093316 part 1: Backout changeset aece7f9f944c (i.e. backout bug 1032922 part 2), to reflect CSSWG removing "flex-basis: main-size" from the flexbox spec. 2014-11-25 11:28:15 -08:00
Seth Fowler
04a7d19f79 Bug 1102617 - Replace imgIContainer::FrameIsOpaque with imgIContainer::IsOpaque. r=tn 2014-11-24 23:42:43 -08:00
Dirk Schulze
fb488563e8 Bug 1074528 - Implement parsing/computing of inset(). r=dbaron 2014-11-22 05:28:00 +01:00
Jesse Ruderman
c7ef084d73 Bug 559491 - crashtest. 2014-11-23 15:09:51 +00:00
Karl Tomlinson
0a52493d8d bug 1096132 rename UnscaledAppUnitsPerDevPixel() to AppUnitsPerDevPixelAtUnitFullZoom() r=tn
--HG--
extra : rebase_source : 220ede5d449a752c16064bb77905bc68af3df707
2014-11-14 00:53:02 +13:00
Mats Palmgren
a25bb0f239 Bug 907396 - Tests for CSS 'display:contents'. 2014-11-20 18:24:11 +00:00
Mats Palmgren
a589dd143f Bug 907396 - Put display:contents support behind a pref - disabled by default. r=dholbert 2014-11-20 18:24:09 +00:00
Mats Palmgren
02d2f75bc9 Bug 907396 - Flex/Grid container changes for display:contents. r=dholbert 2014-11-20 18:24:09 +00:00
Mats Palmgren
ca5235fd31 Bug 907396 - Style system support for display:contents. r=dbaron 2014-11-20 18:24:08 +00:00
David Zbarsky
7d60c708ba Bug 1085769: Merge ContentOrAncestorHasAnimation/Transition r=birtles 2014-11-19 21:48:42 -05:00
David Zbarsky
3e883018cf Bug 1085769: Merge RulesMatching, GetAnimationPlayers, and GetAnimationRule r=birtles 2014-11-19 21:48:41 -05:00
Boris Zbarsky
e13e547738 Bug 771043. Move MediaQueryList tracking from the prescontext to the document, so they will correctly outlive prescontext changes. r=dbaron 2014-10-03 14:15:25 -04:00
Sid Stamm
7840802ff5 Bug 704320 - apply referrer policies to image loads (r=seth) 2014-11-18 08:46:53 -05:00
Sid Stamm
2189922ce8 Bug 704320 - Add referrer policy support to stylesheet and CSS loads and fonts. (r=bz) 2014-11-18 08:46:47 -05:00
Tooru Fujisawa
917acfe60d Bug 1039488 - Turn text-decoration into a shorthand. r=dbaron 2014-11-18 19:23:09 +09:00
Tooru Fujisawa
c6892f38ac Bug 825004 - Part 2: Provide temporary aliases for -moz-text-decoration-*. r=dbaron 2014-11-18 19:23:09 +09:00
Tooru Fujisawa
1bf9e20256 Bug 825004 - Part 1: Unprefix CSS3 Text Decoration. r=dbaron 2014-11-18 19:23:09 +09:00
Seth Fowler
8272e602b4 Bug 1098202 (Part 1) - Rename imgINotificationObserver handlers to be consistent with the notifications they handle. r=tn
--HG--
extra : rebase_source : 991d277afba4826ed403b74bbcbb9408b3dac0cc
2014-11-17 14:29:56 -08:00
Seth Fowler
9fdcdbbc7e Bug 1098652 - ImageLoader::OnStopFrame should be called when we get FRAME_COMPLETE, not LOAD_COMPLETE. r=tn
--HG--
extra : rebase_source : 5ab4ec002657890d615cbd6aa23da98ce8ade1d1
2014-11-17 14:29:56 -08:00
L. David Baron
7348f9ea5a Bug 1087536 patch 3 - Use new no-selector-matching hints for animation restyles. r=birtles
This depends on bug 1086937 patch 1 because it requires that
ResolveStyleWithReplacement support eRestyle_ChangeAnimationPhase on
::before and ::after pseudo-elements.

It also depends on patch 1 of this bug for the reasons described in
patch 1's commit message.

This is needed for bug 960465 so that we can use these hints to detect
whether pending restyles include restyles other than those for
animations.  In other words, patches for bug 960465 (or perhaps a
dependent bug that lands before it) will require that all animation
restyles use an animation-specific nsRestyleHint.

It is also, on its own, a performance improvement for animations and
transitions, since we will stop rerunning selector matching on the
animating element during the progress of the animations or transitions.
Once we remove eRestyle_ChangeAnimationPhase the performance improvement
will even become slightly better.

Note that the eRestyle_ChangeAnimationPhase is needed in some cases
because we use PostRestyleForAnimation in the non-animation-restyle
phase when we have a style rule that we need to add during the animation
restyle phase.  (It's not needed during the progress of the animation,
though.  But hopefully both eRestyle_ChangeAnimationPhase will go away
soon, after bug 960465.  And hopefully the way we tick animations will
also change to look more like the animation-only restyle, but without
the main-thread-suppressed (throttled) animations.)
2014-11-17 11:39:14 -08:00
L. David Baron
45e5ce14aa 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
79ff09761b 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
Brian Birtles
85688c0d50 Bug 1081007 - Fix relationship between Play/PlayFromJS/PlayFromStyle etc.; r=dholbert
The existing relationship between the particular versions of
AnimationPlayer::Play* (particularly in the CSSAnimationPlayer) subclass are
confusing because, for example, CSSAnimationPlayer::PlayFromStyle needs to be
careful to *not* call Play on CSSAnimationPlayer, but only on the parent
object (since otherwise we reset the sticky pause behavior).

This patch reworks this relationship by adding a protected DoPlay method that
performs the common pausing behavior. Play/PlayFromJS/PlayFromStyle then add
flushing, sticky pausing etc. as necessary.

This patch also removes the UpdateFlags enum and parameters previously used to
control whether we forced an update to style. This is no longer necessary since
we no longer call 'Play' from style. Instead we make Play always post restyles.

If we come across a case where we want to call Play and *not* post restyles, we
can re-add the flags then.

Roughly the same arrangement is true for Pause except that we don't currently
flush styles for CSS animations in PauseFromJS since it currently won't make any
observable difference.
2014-11-17 13:46:01 +09:00
Brian Birtles
2f81a1905a Bug 1073336 part 16 - Factor out animation-layer related information to a common database; r=dbaron 2014-11-17 13:46:00 +09:00
Brian Birtles
b873dee10d Bug 1073336 part 14c - Check for a null style refresh time in AnimationPlayerCollection::CanThrottleTransformChanges; r=dbaron
We often set mStyleRuleRefreshTime to null to ensure styles get updated.
However, CanThrottleTransformChanges doesn't check for this case and blindly
does subtraction using this value.

Until now we've got away with this but now that we set mStyleRuleRefreshTime to
null when making changes via the API this case crops up in different
circumstances and we can trip over it.

This patch simply adds a null check before using mStyleRuleRefreshTime in
CanThrottleTransformChanges. All other cases where we operate on
mStyleRuleRefreshTime check for null.
2014-11-17 13:46:00 +09:00
Brian Birtles
d208f5d64f Bug 1073336 part 14a - Update animation generation when changing animations via the API; r=dbaron 2014-11-17 13:45:59 +09:00
Brian Birtles
05bcd90baf Bug 1073336 part 11 - Move GetAnimationPlayers to base CommonAnimationManager class; r=dbaron
nsAnimationManager provides GetAnimationPlayers while nsTransitionManager
provides GetElementTransitions. Both perform the same function, namely, fetching
(and optionally creating if it does not exist) the AnimationPlayerCollection for
the specified element/pseudo. Furthermore, both take the same arguments.

This patch aligns the method names and makes this a virtual method on the base
class CommonAnimationManager so that it can be used generically from a pointer
to a CommonAnimationManager.
2014-11-17 13:45:59 +09:00
Brian Birtles
3b5c4f0d9d Bug 1073336 part 10 - Add AnimationPlayer::GetAnimationManager(); r=dbaron
This patch introduces an abstract method to AnimationPlayer to fetch the manager
object associated with the player. This method is implemented separate by
CSSAnimationPlayer and CSSTransitionPlayer to return the nsAnimationManager or
nsTransitionManager accordingly.
2014-11-17 13:45:58 +09:00
Brian Birtles
e3a6d8668d Bug 1073336 part 7 - Move style flushing to CSSAnimationPlayer and CSSTransitionPlayer; r=dbaron
Previously AnimationPlayer::Play() and AnimationPlayer::PlayState() would flush
styles as part of their operation. This, however, is only needed when the player
corresponds to a CSS Animation or CSS Transition. Now that we have concrete
subclasses for each of these cases we can move style flushing to the subclasses
and remove it from the base class (which is expected to be shared with
animations that are not dependent on style).
2014-11-17 13:45:58 +09:00
Brian Birtles
2213cff252 Bug 1073336 part 6 - Add CSSTransitionPlayer; r=dbaron
In order to be able to find the collection a player belongs to from its source
content, we first need to be able to determine which manager--the animation
manager or transition manager--to look up.

We eventually plan to push transition event dispatch down to a CSS
transitions-specific subclass of AnimationPlayer, so this seems like a suitable
point to introduce this class.

Using this subclass we can define a virtual GetManager method that will
return the appropriate animation/transition manager for the player.
2014-11-17 13:45:57 +09:00
Brian Birtles
b07eebee5b Bug 1073336 part 5 - Add AnimationPlayerCollection::PlayerUpdated; r=dbaron 2014-11-17 13:45:57 +09:00
Brian Birtles
d9b4e0e02f Bug 1073336 part 4 - Add CommonAnimationManager::CollectionUpdated; r=dbaron
Adds a method to the animation manager base class to handle changes to one of
its associated collections.
2014-11-17 13:45:57 +09:00
Brian Birtles
baef709a86 Bug 1073336 part 2 - Call CheckNeedsRefresh from within EnsureStyleRuleFor; r=dbaron
Now that CheckNeedsRefresh is a member of the base class,
CommonAnimationManager, we no longer need to rely on callers of
AnimationPlayerCollection::EnsureStyleRuleFor to remember to call this method
but can do it automatically.
2014-11-17 13:45:56 +09:00
Brian Birtles
89f4908fb5 Bug 1073336 part 1 - Move CheckNeedsRefreshes to CommonAnimationManager; r=dbaron
In order to add AnimationPlayerCollection::NotifyPlayerUpdated, collections
need a way of updating their managers to inform them that their mNeedsRefreshes
flag has changed and hence the manager may need to resume observing the refresh
driver.

Currently, only nsAnimationManager makes use of mNeedsRefreshes and provides
a CheckNeedsRefresh method. In order to allow AnimationPlayerCollection to
operate independently of the type of manager it is attached to (and because
there's a lot of similar code here that we eventually want to move to a common
manager anyway), this patch moves CheckNeedsRefreshes and associated
machinery to CommonAnimationManager.
2014-11-17 13:45:56 +09:00
Phil Ringnalda
8e167728ed Backed out 2 changesets (bug 1084183) for b2g crashes
Backed out changeset a7e75614e955 (bug 1084183)
Backed out changeset af96c149900b (bug 1084183)
2014-11-16 20:21:55 -08:00
Xidorn Quan
79dba04000 Bug 1084183 - Propagate text decoration to ruby frames. r=dbaron 2014-11-17 10:26:39 +11:00
Daniel Holbert
da820542cf Bug 624647 part 2: Honor "object-fit" & "object-position" in nsImageFrame, nsSubDocumentFrame, & nsVideoFrame. r=roc 2014-11-14 16:45:24 -08:00
Daniel Holbert
6c33817dd5 Bug 624647 part 0: Don't use ASSUME_DRAWING_RESTRICTED_TO_CONTENT_RECT flag if 'object-fit' and/or 'object-position' might make our drawing overflow. r=roc 2014-11-14 16:45:23 -08:00
Cameron McCormack
a954ec858b Bug 1089463 - Clear an element's restyle bits when inserting into a shadow tree. r=bzbarsky 2014-11-15 09:08:21 +11:00
Christoph Kerschbaumer
a9d3ae9136 Bug 1083422 - Add triggering Principal to nsILoadInfo - update callsites (r=bz,sicking) 2014-11-14 08:56:55 -08:00
Brian Marshall
5d639a0edf Bug 783213 - Part 3: Tests. r=dbaron 2014-11-10 21:50:12 -08:00
Brian Marshall
5e4a1f9247 Bug 783213 - Part 2: Don't apply the quirk to selectors that use a pseudo-element or are part of a pseudo-class argument. r=dbaron 2014-11-13 21:37:42 -08:00
Brian Marshall
9ca3173fa9 Bug 783213 - Part 1: Only apply the :active and :hover quirk to links, and not when the selector uses other pseudo-classes. r=dbaron 2014-11-08 17:16:39 -08:00