Commit Graph

4225 Commits

Author SHA1 Message Date
Mats Palmgren
16016e0fde Bug 1031444 - Add missing COMPUTED_STYLE_PROP declaration for 'box-decoration-break'. r=roc 2014-06-28 10:13:14 +00:00
Mats Palmgren
7a89d0eea9 Bug 1028460 - part 3, Change the return type for Get*SkipSides(). r=roc 2014-06-28 10:13:13 +00:00
Seth Fowler
0dde473422 Bug 997010 (Part 1) - Support dynamic changes to the image-orientation property. r=dbaron 2014-06-27 20:50:26 -07:00
Andrew McCreight
6a0d822ca3 Backout the temp patch in bug 1011391 for not helping. r=bz
This may have also caused a spike in CC time.
2014-06-27 10:09:10 -07:00
Brian Birtles
c0919d719e Bug 1029969 - Make compositor animation (OMTA) tests ignore floating-point differences; r=dzbarsky 2014-06-27 11:28:51 +09:00
Brian Birtles
9b3dd393c0 Bug 1010067 part 8 - Rename ElementData methods and members in CommonAnimationManager to ElementCollection; r=dbaron 2014-06-27 08:57:13 +09:00
Brian Birtles
0b0d7d26e7 Bug 1010067 part 7 - Rename instances of ElementAnimationCollection; r=dbaron 2014-06-27 08:57:13 +09:00
Brian Birtles
f4086b4a09 Bug 1010067 part 6 - Rename mozilla::css::CommonElementAnimationData to mozilla::ElementAnimationCollection; r=dbaron 2014-06-27 08:57:12 +09:00
Brian Birtles
54749e4578 Bug 1010067 part 5 - Move ElementPropertyTransition to mozilla namespace; r=dbaron 2014-06-27 08:57:12 +09:00
Brian Birtles
b5472a63e1 Bug 1010067 part 4 - Rename nsTransition to mozilla::StyleTransition; r=dbaron 2014-06-27 08:57:12 +09:00
Brian Birtles
37462a1d7e Bug 1010067 part 3 - Rename nsAnimation to mozilla::StyleAnimation; r=dbaron 2014-06-27 08:57:11 +09:00
Andrew McCreight
417874a365 Bug 1029139 - Make the destructor of nsDOMCSSValueList private. r=bz 2014-06-26 09:29:06 -07:00
Andrew McCreight
55e1675edf Bug 1029137 - Make the destructor of nsComputedDOMStyle private. r=bz 2014-06-26 09:29:06 -07:00
Andrew McCreight
ccf6a71025 Bug 1029140 - Make the destructor of nsROCSSPrimitiveValue private. r=bz 2014-06-26 09:29:05 -07:00
Andrew McCreight
1467187fe8 Bug 1029869, part 3 - Convert nsLayoutStylesheetCache::gStyleCache to a StaticRefPtr. r=bz 2014-06-26 09:29:05 -07:00
Andrew McCreight
262f345ac8 Bug 1029869, part 2 - Make SheetLoadData::mParentData into an nsRefPtr. r=bz 2014-06-26 09:29:05 -07:00
Andrew McCreight
34a8f3d1d3 Bug 1029869, part 1 - Make SheetLoadData::mLoader into an nsRefPtr. r=bz 2014-06-26 09:29:05 -07:00
Andrew McCreight
0f503a7b17 Bug 1026033, part 2 - Make StyleRule::mImportantRule into an nsRefPtr. r=bz 2014-06-26 09:29:04 -07:00
Andrew McCreight
bd3d3b8d85 Bug 1026033, part 1 - Make StyleRule::mDOMRule into an nsRefPtr. r=bz 2014-06-26 09:29:04 -07:00
Andrew McCreight
300f672e29 Bug 1029157 - Eliminate sCachedComputedDOMStyle. r=bz 2014-06-26 09:29:04 -07:00
Jan Beich
fd60441991 Bug 1029927 - Unbreak non-SPS build after bug 1026302. r=birtles 2014-06-24 18:13:00 +02:00
John Schoenick
180294cd8e Bug 870022 - Part 2 - Add ParseSourceSizeList to CSS parser for <picture sizes> grammar. r=bz 2014-06-25 11:47:46 -07:00
Jim Blandy
b6b202b6bb Bug 914753: Make Emacs file variable header lines correct, or at least consistent. DONTBUILD r=ehsan
The -*- file variable lines -*- establish per-file settings that Emacs will
pick up. This patch makes the following changes to those lines (and touches
nothing else):

 - Never set the buffer's mode.

   Years ago, Emacs did not have a good JavaScript mode, so it made sense
   to use Java or C++ mode in .js files. However, Emacs has had js-mode for
   years now; it's perfectly serviceable, and is available and enabled by
   default in all major Emacs packagings.

   Selecting a mode in the -*- file variable line -*- is almost always the
   wrong thing to do anyway. It overrides Emacs's default choice, which is
   (now) reasonable; and even worse, it overrides settings the user might
   have made in their '.emacs' file for that file extension. It's only
   useful when there's something specific about that particular file that
   makes a particular mode appropriate.

 - Correctly propagate settings that establish the correct indentation
   level for this file: c-basic-offset and js2-basic-offset should be
   js-indent-level. Whatever value they're given should be preserved;
   different parts of our tree use different indentation styles.

 - We don't use tabs in Mozilla JS code. Always set indent-tabs-mode: nil.
   Remove tab-width: settings, at least in files that don't contain tab
   characters.

 - Remove js2-mode settings that belong in the user's .emacs file, like
   js2-skip-preprocessor-directives.
2014-06-24 22:12:07 -07:00
Brian Birtles
682984d1ae Bug 1029370 part 3 - Add a comment explaining the relationship between ComputedTiming and GetComputedTimingAt; r=dholbert
Review for this patch granted as part of bug 1029370 comment 4 (at the end).
2014-06-25 09:42:19 +09:00
Brian Birtles
92359b2948 Bug 1029370 part 2 - Make nsTransitionManager::FlushTransitions reuse GetComputedTimingAt; r=dholbert
This patch removes some redundant calculation of timing phases in
FlushTransitions by calling GetComputedTiming and using the definitions there.
2014-06-25 09:42:19 +09:00
Brian Birtles
95dcf439c6 Bug 1029370 part 1 - Move active duration calculation to GetComputedTimingAt; r=dholbert
This patch makes the active duration a property of the ComputedTiming struct and
returns this as part of calculating GetComputedTimingAt. GetComputedTimingAt was
already calling the method to calculate the ActiveDuration and the only other
callers of ActiveDuration() were also calling GetComputedTimingAt so this
doesn't make us do any unnecessary calculation.

I've left ActiveDuration as a public method on ElementAnimation for now since
it's a struct and just about everything there is public. At some point in the
future we'll probably make this more class-like to hide some details but that
can happen as a separate step. This patch does, however, move the definition of
ActiveDuration inside the .cpp file.

In tidying up GetComputedTimingAt we also replace all the references to
TimeDuration() and TimeDuration(0) with a single local variable representing
zero duration. This should be easier to read and possibly a little faster.

We don't use a function static variable since this method is called from
different threads and the initialization of function statics is not guaranteed
to be thread-safe until C++0x.
2014-06-25 09:42:19 +09:00
Brian Birtles
8c5dba9bf8 Bug 1028514 - Check for integer overflow when converting from floating-point number milliseconds; r=froydnj
In TimeStamp_windows.cpp and TimeStamp_darwin.cpp, in
TimeStamp::FromMilliseconds we cast the floating-point number of ticks to
a 64-bit integer before passing to TimeStamp::FromTicks(int64_t).
This means that we skip the check for integer overflow performed by
TimeStamp::FromTicks(double).

This patch simply removes that cast so that we perform overflow checking.

It also adds an assertion to ElementAnimation since this is one place where
the lack of overflow checking was producing a negative value where it should
not.
2014-06-25 09:42:18 +09:00
Daniel Holbert
865ca55ea3 Bug 1029180: Give nsStyleContext a private destructor & MOZ_FINAL, to make it less likely to be freed by anything other than refcounting. r=heycam 2014-06-24 11:00:57 -07:00
David Major
9e3c8b0abb Bug 576435 - Use the clamping variant of NSToCoordRound to avoid rounding nscoord_MAX. r=roc 2014-06-24 15:47:02 +12:00
Brian Birtles
b117fcb04c Bug 1026315 - Remove PercentageHashKey; r=dbaron 2014-06-24 15:29:54 +09:00
Brian Birtles
e17455d50f Bug 1010067 part 2 - Rename nsStyleAnimation.{h,cpp} to StyleAnimationValue.{h,cpp}; r=dbaron
--HG--
rename : layout/style/nsStyleAnimation.cpp => layout/style/StyleAnimationValue.cpp
rename : layout/style/nsStyleAnimation.h => layout/style/StyleAnimationValue.h
2014-06-24 15:29:54 +09:00
Brian Birtles
9fe1178360 Bug 1010067 part 1 - Rename nsStyleAnimation::Value to mozilla::StyleAnimationValue; r=dbaron
This patch also moves the static methods defined on nsStyleAnimation so that
they are part of StyleAnimationValue class.

Renaming nsStyleAnimation.h to StyleAnimationValue.h is performed in a separate
patch to simplify the diff (since some tools may not handle file renames
elegantly).
2014-06-24 15:29:54 +09:00
Brian Birtles
c171a38d22 Bug 1026302 part 5 - Make a common property dtor for CommonElementAnimationData; r=dbaron
This patch takes the two static methods ElementAnimationsPropertyDtor and
ElementTransitionsPropertyDtor and replaces them with a class static on
CommonElementAnimationData.
2014-06-24 15:29:53 +09:00
Brian Birtles
91d5bacca4 Bug 1026302 part 4 - Remove ElementAnimations; r=dbaron
This patch removes ElementAnimations and replaces all references to
ElementAnimations with references to CommonElementAnimationData.

We don't bother to rename variables like 'ea' or methods like
GetElementAnimations to correspond with the data type
(CommonElementAnimationData) since CommonElementAnimationData will soon be
renamed in bug 1010067 and we'll rename these things then.

The ElementAnimationsPropertyDtor function is renamed and merged in a subsequent
patch in this series.
2014-06-24 15:29:53 +09:00
Brian Birtles
17142509da Bug 1026302 part 3 - Move GetEventsAt to nsAnimationManager; r=dbaron
In order to unify ElementAnimations with CommonElementAnimationData we need to
find another home for GetEventsAt which is specific to queueing CSS Animation
events. For now nsAnimationManager seems an appropriate place and corresponds
more closely to the arrangement for transitions (where nsTransitionManager is
responsible for queueing the events by iterating over the list of animations).

In future we may reintroduce a subclass of animation specific to CSS Animations
that does this event queueing but for now nsAnimationManager seems to be a
suitable place.

This patch simply moves the code and replaces references to "mAnimation" with
"eEA->mAnimation". There are no functional changes.
2014-06-24 15:29:53 +09:00
Benoit Jacob
0c5dc76161 Bug 1028588 - Fix dangerous public destructors in layout/ - r=dbaron 2014-06-23 18:40:01 -04:00
Brian Birtles
a55641eacb Bug 1026323 - Add a test for a transition with a delay running on the compositor; r=dzbarsky
This patch adds a test for transitions with a delay that run on the compositor.
Currently animations (including transitions) are not sent to the compositor
until they reach the end of their delay phase introducing the possibility that
the behavior might differ for animations with or without delays.

This patch adds a simple test for a transition with a delay. It also fixes an
existing bug in the opacity test. Also, it moves the step where the "transition"
property is removed to the end of the test sequence rather than the end of the
opacity test (which previously happened to occur at the end of the test
sequence).
2014-06-23 14:10:19 +09:00
Brian Birtles
b5e5abcde5 Bug 1026302 part 2 - Move PostRestyleForAnimation to CommonElementAnimationData; r=dbaron
This patch moves PostRestyleForAnimation from ElementAnimations to the base
class CommonElementAnimationData and makes use of it within nsTransitionManager.
2014-06-23 14:10:19 +09:00
Brian Birtles
0251d1dcf6 Bug 1026302 part 1 - Move IsForElement and PseudoElement from ElementAnimations to CommonElementAnimationData; r=dbaron
IsForElement and PseudoElement are currently only defined on ElementAnimations
but could be used for transitions. This patch moves these methods to the common
base class CommonElementAnimationData and also makes use of PseudoElement within
nsTransitionManager.
2014-06-23 14:10:18 +09:00
Brian Birtles
047fdcf8f2 Backing out bug 1026302 for build bustage changesets 3e719e2cc1bd and 7a2b642bf77a 2014-06-23 11:26:59 +09:00
Brian Birtles
79f05db7a3 Bug 1026302 part 2 - Move PostRestyleForAnimation to CommonElementAnimationData; r=dbaron
This patch moves PostRestyleForAnimation from ElementAnimations to the base
class CommonElementAnimationData and makes use of it within nsTransitionManager.
2014-06-23 10:48:01 +09:00
Brian Birtles
09c9b39802 Bug 1026302 part 1 - Move IsForElement and PseudoElement from ElementAnimations to CommonElementAnimationData; r=dbaron
IsForElement and PseudoElement are currently only defined on ElementAnimations
but could be used for transitions. This patch moves these methods to the common
base class CommonElementAnimationData and also makes use of PseudoElement within
nsTransitionManager.
2014-06-23 10:48:01 +09:00
Jonathan Watt
96ce538a84 Bug 1016345 - Add memory reporting for nsHTMLCSSStyleSheet's nsDataHashtable's buffer and the buffers of its nsString keys. r=dbaron 2014-06-22 23:02:05 +01:00
Jan Beich
26f7afd9fb Bug 1028036 - Unbreak clang build on BSD after bug 1025709, using the proper namespace declaration. r=birtles 2014-06-22 22:23:59 +02:00
Xidorn Quan
9152e11870 Bug 1028512 - Remove {lower,upper}-{roman,alpha} from CSS keywords. r=jfkthame 2014-06-22 13:28:51 +01:00
Ms2ger
8824fbbbd9 Bug 1022855 - Rename nsCSSStyleSheet to mozilla::CSSStyleSheet; r=heycam
--HG--
rename : layout/style/nsCSSStyleSheet.cpp => layout/style/CSSStyleSheet.cpp
rename : layout/style/nsCSSStyleSheet.h => layout/style/CSSStyleSheet.h
2014-06-20 12:32:49 +02:00
Ms2ger
e67cb5f1e0 Backout revision 308e51eae10c for build bustage.
--HG--
rename : layout/style/CSSStyleSheet.cpp => layout/style/nsCSSStyleSheet.cpp
rename : layout/style/CSSStyleSheet.h => layout/style/nsCSSStyleSheet.h
2014-06-20 13:00:08 +02:00
Ms2ger
6a7f549221 Bug 1022855 - Rename nsCSSStyleSheet to mozilla::CSSStyleSheet; r=heycam
--HG--
rename : layout/style/nsCSSStyleSheet.cpp => layout/style/CSSStyleSheet.cpp
rename : layout/style/nsCSSStyleSheet.h => layout/style/CSSStyleSheet.h
2014-06-20 12:32:49 +02:00
Brian Birtles
e9db0d2d0c Bug 1025709 part 12 - Remove ElementTransitions; r=heycam
This patch replaces all references to ElementTransitions (now that it is empty)
with references to the base class, CommonElementAnimationData. It also takes the
opportunity to tidy up some of the call sites in nsLayoutUtils since they no
longer need to differentiate between animations and transitions.
2014-06-20 12:39:26 +09:00
Brian Birtles
cebc2e9de9 Bug 1025709 part 11 - Make ElementPropertyTransition::ValuePortionFor reuse GetComputedTimingAt; r=heycam
In order to remove redundant code and generally make transitions less special,
this patch reworks ValuePortionFor to reuse the existing code for calculation
the fractional distance of within the animation interval.
2014-06-20 12:39:26 +09:00
Brian Birtles
0026276654 Bug 1025709 part 10 - Move active layer notification out of CanPerformOnCompositorThread to call sites; r=heycam
A previous patch moved CanPerformOnCompositorThread to
CommonElementAnimationData including a FIXME saying that active layer
notification should happen at call sites. Now that the code for
GetAnimationsForCompositor is common, we can do the active layer notification
there.
2014-06-20 12:39:26 +09:00
Brian Birtles
e159d333e0 Bug 1025709 part 9 - Move heavy lifting of GetAnimationsForCompositor from ElementAnimations/ElementTransitions to base class; r=heycam
This patch still leaves ElementAnimations|
ElementTransitions::GetAnimationsForCompositor as shortcuts
for the method now defined on CommonElementAnimationData.
2014-06-20 12:39:25 +09:00
Brian Birtles
87bf388035 Bug 1025709 part 8 - Move CanPerformOnCompositorThread from ElementAnimations/ElementTransitions to the base class; r=heycam 2014-06-20 12:39:25 +09:00
Brian Birtles
e0cfc89409 Bug 1025709 part 7 - Move HasAnimationOfProperty from ElementAnimations/ElementTransitions to base class; r=heycam
This patch moves HasAnimationOfProperty to CommonElementAnimationData. It also
takes the chance to start removing some redundancy from nsLayoutUtils
/ ActiveLayerTracker. Some of this should never have been added in the first
place and some could have been removed earlier on but while we're fixing up
HasAnimationOfProperty it seems like an appropriate time to fix up its call
sites too.

Also, since HasAnimationOrTransition actually returns an object, not a bool, we
this patch renames it to GetAnimationsOrTransitions.
2014-06-20 12:39:25 +09:00
Brian Birtles
8a33f6bcdd Bug 1025709 part 6 - Reuse nsAnimationManager::EnsureStyleRuleFor; r=heycam
In a number of places in nsAnimationManager we have the following sequence of
calls:

  CommonElementAnimationData::EnsureStyleRuleFor
  ElementAnimations::GetEventsAt
  nsAnimationManager::CheckNeedsRefresh

nsAnimationManager::EnsureStyleRuleFor already does exactly that so we should
just reuse it.

At the same time we rename EnsureStyleRuleFor to UpdateStyleAndEvents since
that's a bit more accurate. It's also confusing to have two methods of the same
name (but on different objects) that don't exactly correspond in terms of
the scope of what they do.
2014-06-20 12:39:25 +09:00
Brian Birtles
753003158e Bug 1025709 part 5 - Replace aIsThrottled bool value with an enum; r=heycam 2014-06-20 12:39:25 +09:00
Brian Birtles
5e704e1b3d Bug 1025709 part 4 - Move EnsureStyleRuleFor from ElementTransitions and ElementAnimations to CommonElementAnimationData; r=heycam
Both ElementAnimations and ElementTransitions have an EnsureStyleRuleFor method.
The ElementAnimations version is a more general of the ElementTransitions one
with the exception that the ElementTransitions version checks for finished
transitions. This patch moves the code from ElementAnimations to
CommonElementAnimationData with one minor change: adding the checks for finished
transitions. The ElementTransitions version is removed.

Since the ElementAnimations version contains a second parameter, aIsThrottled,
callers of ElementTransitions must include this extra parameter. In
a subsequent patch we add an enum for this parameter to make call sites easier
to read.

The ElementAnimations version also sets the mNeedsRefreshes member so at the
same time we move mNeedsRefreshes to CommonElementAnimationData. Furthermore,
since the ElementAnimations version which we have adopted returns early if
mNeedsRefreshes is false, this patch ensures that when we call
EnsureStyleRuleFor from ElementTransitions::WalkTransitionRule, we set
mNeedsRefreshes to true first.

Another difference to account for is that the ElementTransitions version of
EnsureStyleRuleFor *always* sets mStyleRule (even if it doesn't add anything to
it) where as the ElementAnimations version only creates the rule when necessary
so we need to add a check to ElementTransitions::WalkTransitionRule that
mStyleRule is actually set before using it.
2014-06-20 12:39:24 +09:00
Brian Birtles
77f5401b11 Bug 1025709 part 3 - Move delay calculation to GetComputedTimingAt; r=heycam
Now that an animation's delay is part of AnimationTiming--the struct we pass to
GetComputedTimingAt--it makes sense to act on it in GetComputedTimingAt.

This also happens to bring the procedures here closer to the algorithm
definitions in Web Animations.

As part of this refactoring, this patch converts ElementAnimation::IsRunningAt
to use GetComputedTiming since the previous approach no longer works now that
GetLocalTimeAt (nee ElapsedDurationAt) no longer handles delays. This also
removes duplicated logic.

Also, previously ElapsedDurationAt would assert if called on a finished
transition since TimeDuration's - operator wouldn't like the null mStartTime.
This patch adds an assertion for this case to GetLocalTimeAt to ease debugging.
2014-06-20 12:39:24 +09:00
Brian Birtles
640d1175ef Bug 1025709 part 2 - Add IsFinished() to ElementAnimation; r=heycam
One of the main differences in handling a list of transitions vs a list of
regular animations is that when we are dealing with a list of transitions we
need to check for transitions that have finished and are about to be discarded
but need to be retained temporarily to provide correct triggering of subsequent
transitions. Such transitions are marked as "removed sentinels" and are ignored
for most operations.

This patch moves the methods for setting and checking such transitions to the
base class ElementAnimation so that we can treat animations and transitions
alike without having to downcast or do obscure checks for mStartTime.IsNull()
(which equates to checking if the animation is a "removed sentinel" but is not
particularly clear).

In the process, this patch renames said methods to Is/SetFinishedTransition
since hopefully that is a little easier to understand at a glance.
2014-06-20 12:39:24 +09:00
Brian Birtles
d4fb178556 Bug 1025709 part 1 - Move mDelay to AnimationTiming; r=heycam
This patch is the first part in preparing the way to merge ElementTransitions
with CommonElementAnimationData (which we'll eventually rename to something
nicer).

Here we move mTiming from CommonElementAnimationData to the AnimationTiming
struct. While this is not strictly necessary in order to do the later
refactoring it makes it simpler since it:

- Divides time calculation into calculation based on dynamic play state (the
  responsibility of animation players in Web Animations terms) and static
  author-specified timing parameters (a property of animations in Web Animations
  terms).
- In future we will probably put animations on the compositor during their
  delay phase so we will want the delay to be present in the AnimationTiming
  struct then.
- Makes AnimationTiming line up with the dictionary of the same name in Web
  Animations.
2014-06-20 12:39:23 +09:00
Kyle Huey
c46bed2510 Bug 737976: Remove nsINodeInfo. r=smaug
--HG--
rename : content/base/src/nsNodeInfo.cpp => dom/base/NodeInfo.cpp
rename : content/base/public/nsINodeInfo.h => dom/base/NodeInfo.h
rename : content/base/src/nsNodeInfo.h => dom/base/NodeInfoInlines.h
2014-06-19 19:01:40 -07:00
Andrew McCreight
8672c35e94 Bug 990160 - Cycle collect nsCSSRuleProcessor. r=bz 2014-06-19 14:36:53 -07:00
Andrew McCreight
7df9e4e10a Bug 1011391 - Clear rule cascades in nsCSSStyleSheet's Unlink. r=bz 2014-06-18 15:33:30 -07:00
Cameron McCormack
cfb8876bf3 Bug 1026903 - Make nsStyleContext members private. r=dbaron 2014-06-19 13:19:39 +10:00
Cameron McCormack
1f460bcf22 Bug 1026345 - Remove the now unused nsStyleContext allocation functions. r=dbaron 2014-06-19 13:19:11 +10:00
Cameron McCormack
b5d773f074 Bug 1026344 - Part 4: Make nsStyleCoord::Calc refcounted and introduce a non-refcounted nsStyleCoord::CalcValue. r=dbaron
This means that style structs holding computed calc() values are now able to be
stored in the rule tree.
2014-06-19 13:18:03 +10:00
Cameron McCormack
2d99ab3f74 Bug 1026344 - Part 3: Rename CalcValue to PixelCalcValue. r=dbaron 2014-06-19 13:17:56 +10:00
Cameron McCormack
ace3f765d2 Bug 1026344 - Part 2: Make nsStyleUnit a uint8_t-sized enum so we can use it on nsStyle{Sides,Corners}. r=dbaron 2014-06-19 13:17:10 +10:00
Cameron McCormack
6590262ffc Bug 1026344 - Part 1: Don't use memcpy to copy style structs. r=dbaron
This is in preparation for nsStyleCoords becoming non-POD types.  The
use of memcpy is a bit of a trap when modifying the style structs, and
it likely has marginal value now that anything with an nsStyleCoord
can't be memcpy-initialized.
2014-06-19 13:17:10 +10:00
Birunthan Mohanathas
617866f602 Bug 1026535 - Fix mismatched class/struct tags. r=ehsan 2014-06-18 17:57:51 -07:00
Benoit Jacob
02fc720dc5 Bug 1027251 - Fix or whitelist dangerous public destructors in layout/ - r=dbaron 2014-06-18 22:28:59 -04:00
Nicholas Nethercote
bb9d51e11e Bug 1010064 - Allow memory reports to be anonymized. r=bsmedberg.
--HG--
extra : rebase_source : 5eb756b17a97e751deb0f47e909fdb35533cb23b
2014-05-20 23:06:54 -07:00
Susanna Bowen
61669b1069 Bug 727125 - Update overflow areas for text frames on text-decoration change to ensure text-decoration on hover is visible. r=dbaron 2014-06-17 10:32:00 -04:00
Jonathan Watt
d8f30cbd1f Bug 1025553, part 1 - Change the names of the members of gfxMatrix to match the names of the members of Moz2D's Matrix. r=Bas 2014-06-17 18:35:51 +01:00
Josiah Bruner
74da862e65 Bug 1021309 - Add "mac-yosemite-theme" CSS system metric. r=mstange 2014-06-05 18:02:46 -04:00
Susanna Bowen
b6729b23ab 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
Wes Kocher
a72efc4487 Backed out 2 changesets (bug 727125) for reftest bustage on an otherwise CLOSED TREE
Backed out changeset 443361e2724a (bug 727125)
Backed out changeset 16c8d78df86e (bug 727125)
2014-06-16 13:34:50 -07:00
Susanna Bowen
6511578652 Bug 727125 - Update overflow areas for text frames on text-decoration change to ensure text-decoration on hover is visible. r=dbaron 2014-06-16 11:58:29 -07:00
Neil Deakin
63dffb940a Bug 994117, add method to check if an element has current animations, r=bbirtles 2014-06-16 14:43:04 -04:00
Xidorn Quan
fa785309a3 Bug 1025359 - Correct -moz-tamil according to Predefined Counter Styles. r=jfkthame 2014-06-13 17:01:00 +02:00
Xidorn Quan
e23d63f03c Bug 985825 - Unprefix -moz-ethiopic-numeric. r=jfkthame 2014-06-13 17:37:00 +02:00
Xidorn Quan
14eff79f0c Bug 982355 - Support disclosure-{open,closed} counter styles. r=jfkthame 2014-06-13 17:34:00 +02:00
Mats Palmgren
5b449289fb Bug 427928 - part 1, Treat outline:auto as outline:solid. r=roc 2014-06-14 12:48:07 +00:00
John Daggett
1a88a3707e Bug 1022481 - handle -moz-fixed in the no doc fonts case correctly. r=heycam 2014-06-13 10:32:27 +09:00
Ryan VanderMeulen
3dae04272f Backed out changesets d0ee7053aaf3 and c83f17cd74be (bug 727125) for B2G reftest failures.
CLOSED TREE
2014-06-12 14:45:40 -04:00
Daniel Holbert
13052ec8fd Bug 1024084: Clean up forward declarations and #includes in nsFrameManager.h and nsFrameManagerBase.h. r=jwatt 2014-06-12 10:09:31 -07:00
Susanna Bowen
221c0f8ea0 Bug 727125 - Update overflow areas for text frames on text-decoration change to ensure text-decoration on hover is visible. r=dbaron 2014-06-09 15:00:00 -04:00
Xidorn Quan
a854ae5c70 Bug 966166 - Part 6: Tests for @counter-style. r=jfkthame, r=davidb 2014-06-11 21:14:00 -04:00
Xidorn Quan
792d567136 Bug 966166 - Part 5: Move computation code with minor changes. r=dbaron
In addition to moving the code, this patch also:
* changes the square character from U+25AA to U+25FE to match the spec
* changes all the generating functions from using append to using assign
* removes negative handling from CJKIdeographicToText since it is no longer used there
* fixes indentation and naming conventions
* changes buffer size in DecimalToText
2014-06-11 21:13:00 -04:00
Xidorn Quan
fc0b9b51b4 Bug 966166 - Part 4: Rewrite some builtin counter styles. r=dbaron 2014-06-11 21:12:00 -04:00
Xidorn Quan
9755c01032 Bug 966166 - Part 3: Link to other parts. r=dbaron 2014-06-11 21:12:00 -04:00
Xidorn Quan
ceea63d7cb Bug 966166 - Part 2: Computation of counter style. r=dbaron 2014-06-11 21:11:00 -04:00
Xidorn Quan
b5700aeb25 Bug 966166 - Part 1: Parse @counter-style rule. r=dbaron, r=bz 2014-06-11 21:10:00 -04:00
Brian Birtles
1d881a8060 Bug 1004377 - Dispatch events for CSS Animations with empty keyframes rules; r=dholbert
This patch removes the check that skipped queueing events for animations
without keyframes since the spec indicates such animations should dispatch
events.

There is a further correctness fix here for the case where a keyframes rule
is modified using the CSSOM so that it becomes empty. Previously when we
came to create the new animation rules we would end up setting
ElementAnimations::mNeedRefreshes to false since we check if the keyframes
rule is empty and if it is we would skip all further processing (including
setting mNeedsRefreshes).

That means that:
(a) We may end up unregistering from the refresh observer so we would never
    dispatch the end event for such an animation.
(b) If the animation was running on the compositor we may never remove it from
    the compositor or may not do it in a timely fashion.

To fix both these problems, this patch removes the check for an empty keyframes
rule so that mNeedsRefreshes is set in this case.
2014-06-12 13:18:14 +09:00
Brian Birtles
384c09b0b0 Bug 1018862 part 8 - Add special handling for non-invertible transforms; r=dholbert
This patch adjusts the tests for transform transitions that run on the
compositor to handle transitions that begin with a non-invertible transform.
In this case the first sample at the start of the animation won't create
a layer because in nsDisplayTransform::BuildLayer
/ FrameLayerBuilder::BuildContainerLayerFor we'll skip creating the layer once
we notice the equivalent matrix is singular.

In this patch we detect that case and force an extra sample betwee 0 and 200s at
100s. This means the layer will be created at t=100s and be available for
querying at the next sample.

Similar issues could occur, for example, if the transforms at both t=0s
and t=100s are not invertible but currently that doesn't occur. We can add
handling for that if and when it becomes necessary.
2014-06-12 13:17:47 +09:00
Brian Birtles
6381e159bc Bug 1018862 part 7 - Convert test_transitions_per_property.html to use OMTA test methods; r=dholbert
This patch takes the existing tests for transitions running on the compositor
and makes them re-use the same test utility methods as used for testing CSS
Animations that run on the compositor. This means these tests now also check
that the transition is in fact running on the compositor when it is expected to.

It seems the big_omta_round_error is no longer needed so I've removed that.

The test that begins with "skew(45deg, 45deg)" currently fails so it is skipped
here. This is addressed in the next patch in the series.
2014-06-12 13:17:47 +09:00
Brian Birtles
6fca66ae6a Bug 1018862 part 6 - Fix handling of 3d matrices in omta_is and co.; r=dholbert
This patch fixes a bug in the handling of 3d matrices represented as an array of
numbers.
2014-06-12 13:17:47 +09:00
Brian Birtles
fc0f391f97 Bug 1018862 part 5 - Move paint listener promise wrappers to animation_utils.js; r=dholbert
This patch moves some utility methods from test_animations_omta.html to
animation_utils.js so that they can be used for testing transitions as well.
2014-06-12 13:17:47 +09:00
Brian Birtles
89755f2774 Bug 1018862 part 4 - Move omta_is and friends to animation_utils.js; r=dholbert
This patch simply moves code from test_animations_omta.html to
animation_utils.js so that we can use it for testing transitions as well.
2014-06-12 13:17:47 +09:00
Brian Birtles
c7cb81d5a5 Bug 1018862 part 3 - Fix the order of arguments to omta_is_approx; r=dholbert
This patch simply re-arranges the order of arguments to omta_is_approx so that
the delta sits along side the values being compared.

This, I think, makes more sense and also is more consistent when converting
tests from test_animations.html to test_animations_omta.html since the
"RunningOn" parameter is consistently inserted in the second-to-last position
just before the description for both omta_is and omta_is_approx.
2014-06-12 13:17:47 +09:00
Brian Birtles
2862d31d1f Bug 1018862 part 2 - Make new_div no longer secretly flush styles; r=dholbert
This patch removes the line from new_div that forced a style flush. This was
very confusing because:
* It behaved differently to new_div in test_animations.html so copying tests
  over was more complex (particularly when registering for events is involved).
* It meant after setting up initial style using new_div you could just call
  waitForPaints but if you updated style using elem.style you'd need to call
  waitForPaintsFlushed.

In adjusting test_animations_omta.html we are able to simplify the tests
somewhat. This patch also adds a few additional checks that waiting to update
the compositor does not produce different results.
2014-06-12 13:17:47 +09:00
Brian Birtles
b71056cd35 Bug 1018862 part 1 - Factor out common async animation test methods; r=dholbert
This patch moves some test utility methods from test_animations_omta.html to
animation_utils.js. It also renames addAsyncTest to addAsyncAnimTest and
likewise for a few other methods.
2014-06-12 13:17:46 +09:00
Daniel Holbert
4595d2613a Bug 1021913: Explicitly give the textfield in input[type="number"] a min-width of 0, so that "min-width:auto" won't block it from shrinking. r=jwatt 2014-06-11 15:35:18 -07:00
Jonathan Watt
e9b294c317 Bug 1016680, part 1 - Report the memory used by RuleCascadeData::mKeyframesRuleTable. r=dholbert
--HG--
extra : rebase_source : 97bd8b0ddef514e9eb218eac783c3af892a8014e
2014-06-11 11:20:50 +01:00
Brian Birtles
48c86b1c33 Bug 1004365 part 5 - Add tests for zero-duration animations; r=dholbert 2014-06-11 14:19:08 +09:00
Brian Birtles
0872fec6d7 Bug 1004365 part 4 - Make nsAnimationManager.cpp no longer skip zero-duration animations; r=dholbert 2014-06-11 14:19:08 +09:00
Brian Birtles
9dbb01d24b Bug 1004365 part 3b.2 - Make ElementAnimation::GetComputedTimingAt handle zero-duration animations; r=dholbert
This patch adjusts GetComputedTimingAt to set the time fraction and current
iteration fields of the output computed timing correctly for animations with
zero iteration duration. Care must be taken to handle cases such as animations
that have zero duration but repeat infinitely.

The code is significantly re-arranged to more closely align with the naming and
algorithms defined in Web Animations.

A couple of tests in test_animations.html have been tweaked to account for
floating-point error. This is not because the new code is less precise but
actually the opposite. These tests fall on the transition point of step-timing
functions. The new code uses the closest possible floating-point representation
of these times which happens to cause them to fall on the opposite side of the
transition point.

For example, in evaluating a point 3s into a reversed interval the old code
would give us an intermediate time fraction of:

   0.29999999999999982

When we reverse that by subtracting from 1.0 we get: 0.70000000000000018

With the code in this patch we get an intermediate time fraction of:

   0.29999999999999999

When we reverse that by subtracting from 1.0 we get: 0.69999999999999996

Hence we fall on the opposite side of the transition boundary.
2014-06-11 14:19:08 +09:00
Brian Birtles
4073f0ca66 Bug 1004365 part 1 - Make active duration calculation handle zero-duration animations; r=dholbert
This patch also makes ElementAnimation::ActiveDuration a static method that
takes timing parameters as an argument. This is so that this method can be
used within ElementAnimations::GetComputedTimingAt (a static method) in a
future patch.

We could also make ActiveDuration() a method of AnimationTiming. I suspect
this logic belongs together in ElementAnimation however.

In a future patch we could also add the active duration to the ComputedTiming
struct which would simplify the only other place this is currently used
which is ElementAnimations::GetEventsAt.
2014-06-11 14:19:07 +09:00
William Chen
6d093181ec Bug 1022741 - Use CrossShadowCurrentDoc() in Element::UpdateState. r=smaug 2014-06-10 14:41:31 -07:00
Giovanni Sferro
1a91a7c42e Bug 995901 - Rename nsICSSRuleList to mozilla::dom::CSSRuleList. r=bz
--HG--
rename : layout/style/nsICSSRuleList.cpp => layout/style/CSSRuleList.cpp
rename : layout/style/nsICSSRuleList.h => layout/style/CSSRuleList.h
2014-06-09 22:11:00 -04:00
Cameron McCormack
3a1fd6f8c9 Bug 1017798 - Part 3: Crashtest. r=bzbarsky 2014-06-06 17:51:25 +10:00
Cameron McCormack
10b511a515 Bug 1017798 - Part 1: Make AncestorFilter and the TreeMatchContext style scope list include ancestors from following ShadowRoots up to the light tree. r=bzbarsky 2014-06-06 15:22:55 +10:00
Ryan VanderMeulen
bea421e322 Bug 891840 - Disable test_pixel_lengths.html on all platforms for intermittent crashes.
CLOSED TREE
2014-06-07 01:08:16 -04:00
William Chen
0eff3949f3 Bug 992521 - Part 2: Make styles work when not in document, but contained by a ShadowRoot with a host in document. r=smaug 2014-06-07 01:42:54 -07:00
John Daggett
ebf08c0266 Bug 280443 p4 - properly escape unquoted font family names. r=heycam 2014-06-06 15:09:24 +09:00
John Daggett
2ee6606229 Bug 280443 p3 - use fontlist struct in gfx. r=roc,fredw 2014-06-06 15:09:23 +09:00
John Daggett
3b6d3045d3 Bug 280443 p2 - parse font family lists into fontlist structs. r=heycam 2014-06-06 15:09:23 +09:00
Jonathan Kew
ca16b0455a bug 1020143 - prefer tabular numerals for list numbering. r=jdaggett 2014-06-05 11:15:26 +01:00
Ed Morley
aa6a508fce Backed out changeset 70713dd1ee5e (bug 1020143) for B2G reftest failures in counter-suffix.html; CLOSED TREE 2014-06-05 15:47:53 +01:00
Cameron McCormack
f954679900 Bug 1019555 - Treat newlines and tabs as space characters in SVG xml:space="preserve" text. r=roc 2014-06-05 13:25:15 +10:00
Morris Tseng
3ed6a2adc9 Bug 987718 - Part 6: Hooks up SelectionCaret; r=roc 2014-06-04 22:58:00 +02:00
Jonathan Kew
18800e7604 bug 1020143 - prefer tabular numerals for list numbering. r=jdaggett 2014-06-05 11:15:26 +01:00
Daniel Holbert
a142a5db26 Bug 864005: Remove mentions of & checks for 'layout.css.supports-rule.enabled' pref. r=heycam r=khuey 2014-06-04 21:07:07 -07:00
Jeremy Poulin
ab83f7f8dd Bug 1016622: Renaming mozilla::network::Seer to mozilla::network Predictor. r=hurley
--HG--
rename : netwerk/base/public/nsINetworkSeer.idl => netwerk/base/public/nsINetworkPredictor.idl
rename : netwerk/base/public/nsINetworkSeerVerifier.idl => netwerk/base/public/nsINetworkPredictorVerifier.idl
rename : netwerk/base/src/Seer.cpp => netwerk/base/src/Predictor.cpp
rename : netwerk/base/src/Seer.h => netwerk/base/src/Predictor.h
rename : netwerk/test/unit/test_seer.js => netwerk/test/unit/test_predictor.js
2014-06-03 13:37:46 -07:00
Boris Zbarsky
0579ef3fcd Bug 1016063. Don't include the fake classnames XUL tree pseudo-elements have when calculating style rule specificity. r=heycam 2014-06-03 11:38:38 -04:00
Phoebe Chang
4d2bf9e76b Bug 924692 - Part 1: Add touch caret rendering support; r=roc 2014-06-03 15:08:25 +08:00
Phil Ringnalda
cb35da9c6d Merge f-t to m-c 2014-05-31 20:31:07 -07:00
Victor Porof
928e1cef59 Bug 1007203 - Always add categories when pushing to the pseudostack, r=djvj 2014-05-23 17:12:29 -04:00
Ms2ger
1524450324 Merge mozilla-inbound to mozilla-central. 2014-05-30 14:07:35 +02:00
Xidorn Quan
eb6dcbb235 Bug 1013160 - Remove padding suppressing mechanism of bullet. r=jfkthame,surkov 2014-05-30 09:00:26 +01:00
Ms2ger
8775440177 Bug 741295 - Treat 'id' and 'class' as global attributes for all elements; r=bz 2014-05-30 09:36:53 +02:00
Ms2ger
9c46293c09 Bug 995780 - Remove CSSStyleSheet classinfo; r=bz 2014-05-30 09:36:51 +02:00
Brian Birtles
e0a35a2fc8 Bug 1007513 - Make AnimationEvent.elapsedTime report the actual time the animation has been running; r=dholbert
This patch implements the behavior proposed in:

  http://lists.w3.org/Archives/Public/www-style/2014May/0356.html
2014-05-30 09:45:39 +09:00
L. David Baron
b3ff03ae42 Bug 989802 - Round viewport units to appunits using trunc rather than round so that repeated uses fit within a container. r=roc
viewport-units-rounding-1.html fails without the patch and passes with
the patch.

viewport-units-rounding-2.html fails with an early version of the patch
but not without the patch or with the final version.
2014-05-29 17:43:06 -07:00
Brian Birtles
9cad5ef8d9 Bug 1004361 - Dispatch animationstart events as well when skipping entire animation intervals; r=dholbert 2014-05-28 16:51:50 +09:00
Brian Birtles
70ade8a6ac Bug 1004871 part 11 - Move ElementAnimation members closer together for readability and packing; r=dholbert
Also shuffle the initialization of members in
nsAnimationManager::BuildAnimations to roughly match the order in which they
are declared (with the exception that mPlayState needs to be set before calling
IsPaused() which is used to set mPauseStart).
2014-05-28 16:51:50 +09:00
Brian Birtles
3962fb440f Bug 1004871 part 10 - Stop passing a fill mode of "both" to GetComputedTimingAt for throttled samples; r=dholbert
This was only needed when we were inspecting the returned time fraction but now
that we inspect the phase it's not necessary to force the fill mode to "both".
2014-05-28 16:51:50 +09:00
Brian Birtles
ce31823aa2 Bug 1004871 part 9 - Move ElementAnimations::GetPositionInIteration to ElementAnimation::GetComputedTimingAt; r=dholbert
This patch simply moves the code from ElementAnimations to ElementAnimation so
that it can later be used in transitions code and so we can later move
EnsureStyleRuleFor to ElementAnimation.
2014-05-28 16:51:50 +09:00
Brian Birtles
adf45cac79 Bug 1004871 part 8 - Simplify ElementAnimations::GetEventsAt; r=dholbert
This patch shuffles the code in ElementAnimations::GetEventsAt to make it easier
to follow.

It also removes a check for whether or not the animation is paused.
Previously we would not dispatch events if the animation was paused and in its
active phase (but we would if the animation had finished). There doesn't seem to
be any reason for this. If the animation was paused between the last sample and
the current sample and the boundary of an iteration also occurred in that time
then I expect we should dispatch that event. Removing this check for the pause
state does not cause any tests fail.

Separating out the event logic here makes it clear that we do not dispatch start
events in the situation where one sample falls before the active interval and
one sample falls after it (filed as bug 1004361). This patch adds a comment to
this effect.
2014-05-28 16:51:49 +09:00
Brian Birtles
baaeda5bee Bug 1004871 part 7 - Remove event queueing from GetPositionInIteration and do it in GetEventsAt; r=dholbert
This patch simply shifts the event-related code from GetPositionInIteration to
GetEventsAt. Although there are simplifications that could be done to
GetEventsAt, they are deferred to a subsequent patch so as not to obscure the
translation of code from one function to another.

As a result of moving event-related handling from GetPositionInIteration it no
longer needs to support different main-thread vs compositor modes.
2014-05-28 16:51:49 +09:00
Brian Birtles
155c5f0edb Bug 1004871 part 6 - Make GetPositionInIteration return a ComputedTiming object; r=dholbert
This patch makes ElementAnimations::GetPositionInIteration return
a ComputedTiming object instead of just a time portion (time fraction).

Since the ComputedTiming object includes phase information, we can fix those
parts of EnsureStyleRule and GetEventsAt that were temporarily using the time
portion to guess if the animation might have finished or not.
2014-05-28 16:51:49 +09:00
Brian Birtles
c9cad0a5c8 Bug 1004871 part 5 - Add ComputedTiming data structure; r=dholbert
This patch adds a ComputedTiming struct for storing the results of calculating
the timing properties of an animation at a given sample time.
2014-05-28 16:51:49 +09:00
Brian Birtles
b0f0bab622 Bug 1004871 part 4 - Move FillsForwards/FillsBackwards to AnimationTiming; r=dholbert
This patch moves the FillsForwards/FillsBackwards methods previously defined on
ElementAnimations to the structure contain the fill mode: AnimationTiming. It
also changes GetPositionInIteration to use these methods.
2014-05-28 16:51:49 +09:00
Brian Birtles
9f3b8d91b0 Bug 1004871 part 3 - Replace parameters to GetPositionInIteration with an AnimationTiming object; r=dholbert
This patch makes use of the AnimationTiming struct introduced in the previous
patch to simplify calls to ElementAnimations::GetPositionInIteration.
2014-05-28 16:51:49 +09:00
Brian Birtles
1fa5b12248 Bug 1004871 part 2 - Add AnimationTiming struct, to encapsulate animation timing parameters; r=dholbert
Introduces a struct to store timing parameters for passing to
GetPositionInIteration. In future this struct is expected to be expanded to
include other timing parameters as well (based roughly on Web Animations'
"Timing" interface, hence the name AnimationTiming).
2014-05-28 16:51:49 +09:00
Brian Birtles
f06a971a86 Bug 1004871 part 1 - Factor event queuing out of EnsureStyleRuleFor; r=dholbert
This patch moves event queuing out of EnsureStyleRuleFor into a separate method.
This is a preparatory step towards making GetPositionInIteration into a more
generic method for calculating the current time fraction.

In order to achieve this, GetPositionInIteration needs to be able to calculate
the correct time portion for times outside the range [0, 1] even when it is not
passed a ElementAnimation object. Specifically, it needs the fill mode of the
animation to be passed in.

(Rather than using FillForwards/FillBackwards this patch just compares the
NS_STYLE_ANIMATION_FILL_MODE_* values directly but FillForwards/FillBackwards
are restored in a subsequent patch when they are added to the struct used to
lump the timing parameters together.)

There are a number of places where positionInIteration is used to determine if
the current sample occurs in the active phase or after. This is sub-optimal but
is fixed in a subsequent patch in this series.

The actual work of removing event queuing from GetPositionInIteration is
deferred to a subsequent patch in order to keep the changes as small as
possible. This patch simply makes separate calls to GetPositionInIteration for
interpolating and for event queuing.
2014-05-28 16:51:48 +09:00
Neil Rashbrook
0b70d2a086 Bug 869836 - Part 9a: Use AssignLiteral(MOZ_UTF16(...)) instead of Assign(NS_LITERAL_STRING(...)). r=ehsan
Relading with correct bug number so DONTBUILD.

--HG--
extra : amend_source : 6e05de7729c27761564124212b7d4cbe3318e482
2014-05-26 21:54:10 +03:00
Birunthan Mohanathas
740e2ee668 Backout 8b8bbe7aa1cc due to wrong bug number 2014-05-27 14:42:13 +03:00
Birunthan Mohanathas
2779282281 Bug 869836 - Part 12: Use Assign('c') instead of AssignLiteral("c"). r=ehsan
--HG--
extra : rebase_source : a6b15019cee452973dd8bf3112c15e14175855a9
2014-05-26 21:55:08 +03:00
Neil Rashbrook
4a282365d2 Bug 995730 - Part 9a: Use AssignLiteral(MOZ_UTF16(...)) instead of Assign(NS_LITERAL_STRING(...)). r=ehsan
--HG--
extra : rebase_source : d2d3d611c06a2a7ec930fb11576d7c8335c0a6e2
2014-05-26 21:54:10 +03:00