Commit Graph

4222 Commits

Author SHA1 Message Date
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
Jonathan Watt
6d11b545df No bug - Add a comment to nsStyleSet::SizeOfIncludingThis noting that it does _not_ count the size of the sheets in mSheets, only the size of the mSheets buffer. 2014-05-24 21:37:12 +01:00
Jonathan Watt
8e7a61e258 Bug 1013936, part 2 - Only load the html.css UA style sheet on-demand for SVG documents. r=bz CLOSED TREE 2014-05-24 20:29:11 +01:00
Jonathan Watt
b6253e4965 Bug 1008455 - Avoid loading the xul.css UA style sheet when possible. r=bz CLOSED TREE
--HG--
rename : toolkit/content/xul.css => toolkit/content/minimal-xul.css
2014-05-24 19:51:06 +01:00
Jonathan Watt
ea2c52a01f Bug 1015147 - Use the style sheet cache to store the user-agent style sheets svg.css and mathml.css so that we don't create new instances for each new document. r=bz 2014-05-24 19:46:38 +01:00
Birunthan Mohanathas
849371302f Bug 869836 - Part 9: Use AssignLiteral instead of Assign(NS_LITERAL_STRING(...)). r=ehsan 2014-05-22 06:48:52 +03:00
Birunthan Mohanathas
c6f127456b Bug 869836 - Part 7: Use AppendLiteral instead of Append where possible. r=ehsan 2014-05-22 06:48:51 +03:00
Birunthan Mohanathas
016d46e5f3 Bug 869836 - Part 3: Use Append('c') instead of AppendLiteral("c"). r=ehsan 2014-05-22 06:48:51 +03:00
Birunthan Mohanathas
41bdca1ff6 Bug 869836 - Part 2: Use AppendLiteral instead of Append(NS_LITERAL_STRING(...)). r=ehsan 2014-05-22 06:48:50 +03:00
John Schoenick
1fc235049e Bug 870021 - Part 5.3 - nsImageFrame should take orientation into account when getting natural size from content. r=roc 2014-05-30 13:03:07 -07:00
Trevor Saunders
c913b8d558 bug 1004746 - part 1 - Remove a bunch of usage of nsAutoPtr's copy ctor r=froydnj 2014-05-07 18:05:37 -04:00
Brian Birtles
916f65be49 Bug 964646 part 21 - Add OMTA tests for animation list lengths and dynamic style rule changes; r=dbaron
This patch adds tests for triggering animations based on the length of the
animation-name property as well as tests for dynamic changes to style rules.
These tests are based on tests in test_animations.html but for directed at
animations that run on the compositor thread.
2014-05-19 14:42:49 +09:00
Brian Birtles
a0dee800e2 Bug 964646 part 20 - Add OMTA tests for cascading between keyframe rules; r=dbaron
This patch adds tests for the cascanding of keyframes rules based on those in
test_animations.html but for animations that run on the compositor thread.
2014-05-19 14:42:49 +09:00
Brian Birtles
71b134c42a Bug 964646 part 19 - Add OMTA tests for restyling interaction; r=dbaron
This patch adds tests for the interaction of animation and restyling (Bug
686656) based on those in test_animations.html but for animations that run on
the compositor thread.
2014-05-19 14:42:49 +09:00
Brian Birtles
bdc9dbb50b Bug 964646 part 18 - Add omta_todo_is for marking OMTA animations that are known to fail; r=dbaron
The implementation here current expects BOTH the following to fail:

- The comparison between the OMTA value and the expected value
- The comparison between the OMTA value and the computed value

This generally tends to be the case since the computed value and expected value
normally match unless we have a bug that affects all CSS animations. If we need
to mark tests where the computed value is also wrong we'll need to modify the
behavior here at that time.

This patch also applies this new function to the author !important test that was
previously commented-out because it currently fails.
2014-05-19 14:42:49 +09:00
Brian Birtles
003951e81b Bug 964646 part 17 - Add RunningOn.TodoMainThread for marking animations that are known to run on the compositor when they should not; r=dbaron
This patch also ensures that when we have an animation running on the compositor
when it should not that we still compare the values produced on the compositor
and on the main thread so that the visual result is correct even if the
performance characteristics are not.
2014-05-19 14:42:49 +09:00
Brian Birtles
679d6b418a Bug 964646 part 16 - Add OMTA tests for !important rules and animations; r=dbaron
This patch adds tests for the handling of author !important rules and animations
based on similar tests in test_animations.html but for animations that run on
the compositor thread.

Due to bug 847287, these tests don't pass and are partly disabled. Subsequent
patches add todo_is tests for this.
2014-05-19 14:42:49 +09:00
Brian Birtles
150b4a413a Bug 964646 part 15 - Add OMTA tests for sampling animations with same timestamp; r=dbaron
This patch adds a version of tests in test_animations.html for bug 651456 which
covers multiple samples with the same timestamp. The version here, however,
tests animations that run on the compositor thread.
2014-05-19 14:42:48 +09:00
Brian Birtles
6ccb3b39da Bug 964646 part 14 - Add OMTA tests for multi-property animations; r=dbaron
This patch adds a version of tests in test_animations.html for keyframe
animations with multiple properties where some properties are present in only
some keyframes. The version here, however, tests animations that run on the
compositor thread.
2014-05-19 14:42:48 +09:00
Brian Birtles
a5624f2ade Bug 964646 part 13 - Add OMTA tests for animation-delay; r=dbaron
This patch adds a version of tests in test_animations.html under the heading,
"css3-animation: 3.8 The 'animation-delay' Property", for animations
that run on the compositor thread.
2014-05-19 14:42:48 +09:00
Brian Birtles
4f38562a5c Bug 964646 part 12 - Add OMTA tests for animation-play-state; r=dbaron
This patch adds a version of tests in test_animations.html under the heading,
"css3-animation: 3.7 The 'animation-play-state' Property", for animations
that run on the compositor thread.
2014-05-19 14:42:48 +09:00
Brian Birtles
016e36647b Bug 964646 part 11 - Add OMTA tests for animation-direction; r=dbaron
This patch adds a version of tests in test_animations.html under the heading,
"css3-animation: 3.6 The 'animation-direction' Property, for animations
that run on the compositor thread.
2014-05-19 14:42:48 +09:00
Brian Birtles
292493119c Bug 964646 part 10 - Fix floating point precision issues when comparing matrices; r=dbaron
This patch addresses and issue where the OMTA style and computed style were not
comparing equal in one particular case.

In this case AddTransformTranslate in nsStyleAnimation would give us
a translate-y value of 94.331673 in both cases (i.e. when calculating the
animated value on the compositor thread or when fetching computed style).

For the OMTA case, however, after we apply additional layer transformations and
then reverse them (so we can query the CSS value) we'd end up with 94.331642,
a difference of 0.000031. The reversing procedure is only used for testing so
the actual error introduced here by the additional layer transformations is
probably less.

Unfortunately, when we pass 94.331642 this along to MatrixToCSSValue we get back
matrix(1, 0, 0, 1, 94.3316) since it only outputs 6 digits of precision.

On the other hand, on the computed style end we'd pass 94.331673 to
MatrixToCSSValue which gives us matrix(1, 0, 0, 1, 94.3317), so the error swells
from 0.000031 to 0.0001.

Then when we subtract 94.3316 from 94.3317 in Javascript we get
0.00010000000000331966 due to floating-point precision issues which compares
greater than the default tolerance of 0.0001.

This patch simply adjusts the default tolerance to 0.00011 to accommodate
these floating-point differences.
2014-05-19 14:42:48 +09:00
Brian Birtles
425505c40f Bug 964646 part 9 - Add OMTA tests for animation-iteration-count; r=dbaron
This patch adds a version of tests in test_animations.html under the heading,
"css3-animation: 3.5 The 'animation-iteration-count' Property" for animations
that run on the compositor thread.

These tests surface an issue where in some cases precision errors lead to
discrepencies between the OMTA style and computed style. This is fixed in
a subsequent patch in this series.
2014-05-19 14:42:48 +09:00
Brian Birtles
23c84f7d70 Bug 964646 part 8 - Add OMTA tests for animation-name; r=dbaron
This patch adds a version of the tests in test_animations.html under the
heading, "css3-animations:  3.2. The 'animation-name' Property" that tests the
same features when animations are running on the compositor thread.
2014-05-19 14:42:48 +09:00
Brian Birtles
eaa6e189d4 Bug 964646 part 7 - Handle NaN values when comparing matrices; r=dbaron
The test harness code for normalizing transform inputs to a standard form for
comparison fails to detect the case where the input is a string such as

 { tx: "20px" }

instead of:

 { tx: 20 }

When we go to compare matrix components we fail if:

  Math.abs(a.comp - b.comp) > tolerance

But if a.comp or b.comp is a string, we'll get NaN on the LHS and
"NaN > tolerance" will return false so we'll skip the failure handling and
continue onto the next component. That means if we have input { tx: "30px" } and
we get "20" as the x-translation component we'll pass the test.

This patch fixes this condition to check for isNaN.

We *could* also just drop a few .map(parseFloat) calls into
convertObjectTo3dMatrix and convertArrayTo3dMatrix to ensure "20px" becomes 20
but there may be situations where that masks bugs (since "20px" and "20em" turn
into the same thing) so for now this minimal fix should be enough.
2014-05-19 14:42:48 +09:00
Brian Birtles
d5f38e23b6 Bug 964646 part 6 - Add OMTA tests for timing functions on keyframes; r=dbaron
This patch converts the tests in test_animations.html under the heading,
"css3-animations:  3.1. Timing functions for keyframes" to an equivalent version
for testing animations that run on the compositor thread.
2014-05-19 14:42:47 +09:00
Daniel Holbert
de1b127bc9 Bug 1005660: Add an "early freeze" step, to freeze flex items that clearly can't grow (or shrink, if we're shrinking). r=mats 2014-05-17 18:49:06 -07:00
Boris Zbarsky
40a5bc161e Bug 1008719. CSS syntax got changed to allow identifiers starting with "--", so update our escaping code accordingly. r=dholbert 2014-05-15 10:26:53 -07:00
Bobby Holley
310739adc5 Bug 1005552 - Stop binding marquee event handlers. r=bz
These functions get invoked as event listeners, so we'll automatically get the
proper |this|. The reason for the existing shenanigans was to work around
bug 872772, which has now been fixed.
2014-05-16 10:56:41 -07:00
Ryan VanderMeulen
63cd113b5a Revert to revision 63dfac3c9c87 due to mass bustage pile-ups that landed after it on a CLOSED TREE. 2014-05-16 12:29:37 -04:00
Boris Zbarsky
fc50ce040c Bug 1008719. CSS syntax got changed to allow identifiers starting with "--", so update our escaping code accordingly. r=dholbert 2014-05-15 10:26:53 -07:00
Ryan VanderMeulen
8065df607f Backed out 4 changesets (bug 1008236, bug 1010344, bug 1004458, bug 1008719) for mochitest crashes on a CLOSED TREE.
Backed out changeset 28ecab881472 (bug 1008719)
Backed out changeset 7eebcecb7e26 (bug 1004458)
Backed out changeset 17ea7f2276ac (bug 1010344)
Backed out changeset 184ead7f6e37 (bug 1008236)
2014-05-15 14:24:12 -04:00
Boris Zbarsky
3f4724f33b Bug 1008719. CSS syntax got changed to allow identifiers starting with "--", so update our escaping code accordingly. r=dholbert 2014-05-15 10:26:53 -07:00
Nick Lebedev
7d585aca9e Bug 998002 - Rename nsContentUtils::Get{Subject,Object}Principal to nsContentUtils::{Subject,Object}Principal. r=bholley 2014-05-13 11:58:00 +02:00
Brian Birtles
808c09cd73 Bug 1004383 part 4 - Move mAnimations to CommonElementAnimationData; r=dbaron
As a result, transitions are now stored using a pointer to the base class,
mozilla::ElementAnimation. We downcast to a transition only when necessary. No
error-checking of the result of AsTransition is performed since we only ever
call it on the mAnimations member of ElementTransitions.
2014-05-15 08:38:37 +09:00
Brian Birtles
70280d8ce3 Bug 1004383 part 3 - Add ElementAnimation::AsTransition virtual method; r=dbaron
Add a method for downcasting from an ElementAnimation to an
ElementPropertyTransition (when the underlying object is an
ElementPropertyTransition).

This, unfortunately, adds a vtable to ElementAnimation but in the long term
I hope we will be able to isolate transition-specific code to a specific kind of
TransitionEffect that hangs off ElementAnimation and put the vtable on
AnimationEffect instead. (The AnimationEffect concept is part of the Web
Animations API.)
2014-05-15 08:38:37 +09:00
Brian Birtles
d7d1912502 Bug 1004383 part 2 - Rename StyleAnimation to ElementAnimation; r=dholbert
We currently have mozilla::StyleAnimation as well as nsStyleAnimation. This
patch renames StyleAnimation back to ElementAnimation.

Although ElementAnimation is very similar to ElementAnimations, in the near
future we expect to retire ElementAnimations and replace it with a common
AnimationSet-like structure that is covers the features of ElementAnimations and
ElementTransitions.
2014-05-15 08:38:37 +09:00
Brian Birtles
c2e22acede Bug 1004383 part 1 - Put StyleAnimation on the heap; r=dbaron
This patch takes StyleAnimation and makes it ref-counted heap object. This
should allow us to store StyleAnimation and its subclasses (transitions only
currently) in a consistent fashion (an array of base-class pointers).
Furthermore, this will be helpful if we want these things to be pointed to
from Javascript objects that may, for example, preserve their lifetime beyond
that of the element that currently owns them.

This patch also introduces a typedef for an array of refptrs to StyleAnimation
objects (and similarly for the subclass ElementPropertyTransition) to simplify
the code somewhat.
2014-05-15 08:38:37 +09:00
Arnaud Bienner
1b9047074a Bug 1007278: Restore the distinct text-color on disabled buttons. r=dholbert 2014-05-13 20:43:10 +02:00
Daniel Holbert
08a2f8c784 Bug 985336: Remove unnecessary #includes from headers in layout/style. r=dbaron 2014-05-09 08:23:14 -07:00
Benoit Jacob
472e4472e0 Bug 1004098 - Make nsTArray use size_t in its interface (32bitness is fine as an internal detail) - r=froydnj, sr=bsmedberg 2014-05-08 21:03:35 -04:00
Matt Woodrow
5b0d54b1ce Bug 995871 - Apply CSS transforms in CSS pixel space instead of device pixel space. r=dbaron 2014-05-08 17:35:00 +12:00
Bobby Holley
0a5fb33d0a Bug 997987 - Remove usage of nsIScriptSecurityManager::GetSubjectPrincipal. r=Ms2ger 2014-05-06 15:43:03 -07:00
Mats Palmgren
a023718b82 Bug 1005567 - Remove the obsolete 'grid-auto-position' property. r=simon.sapin 2014-05-06 09:45:13 +00:00
Mats Palmgren
2575422e86 Bug 994592 - Make 'row' the initial value for 'grid-auto-flow' and remove 'none' as a valid value. And add the 'stack' variants. r=simon.sapin 2014-05-06 09:45:13 +00:00
Eric Rahm
53ee1bf751 Bug 1003479 - Fix incorrect usage of SizeOfIncludingThis and SizeOfExcludingThis functions. r=njn
--HG--
extra : rebase_source : 2d51e1fc1b642b0efa60cb4e25e8b142577e93d3
2014-05-01 10:37:54 -07:00
Mats Palmgren
a9080db387 Bug 613659 - Minor whitespace fixes. r=cam 2014-05-05 17:55:55 +00:00
Mats Palmgren
4b382093f1 Bug 613659 - Change mode-lines and indentation to 2-space indent. r=cam 2014-05-05 17:55:55 +00:00
Mats Palmgren
5d7896ffef Bug 613659 - Remove remaining vestiges of -moz-background-inline-policy. r=cam 2014-05-05 17:55:54 +00:00
Mats Palmgren
8c6161f5d5 Bug 613659 - Implement box-decoration-break in the style system. r=cam 2014-05-05 17:55:53 +00:00
Daniel Holbert
92ca658314 Bug 996945: Remove prohibition on flex-grow & flex-shrink properties transitioning between 0 and other values. r=mats 2014-05-04 09:12:32 -07:00
Daniel Holbert
6b2a8c9f12 Bug 985304 part 3: Extend flexbox layout mochitest to cover cases with flex values that sum to less than 1. f=mats 2014-05-04 09:10:40 -07:00
Mats Palmgren
cdd8fec4ec Bug 1000376 - part 3, s/FlexItemStyleFixup/FlexOrGridItemStyleFixup/ and corresponding comment changes. r=dholbert 2014-05-03 13:42:33 +00:00
Mats Palmgren
71c593addf Bug 1000376 - part 1, Add -moz-anonymous-grid-item in the style system. r=dholbert 2014-05-03 13:42:33 +00:00
Mats Palmgren
53974d2b54 Bug 1002607 - Increment the number of columns, 'column', only after we have seen a new token. r=simon.sapin 2014-05-03 13:42:32 +00:00
Ms2ger
898d118c27 Bug 995664 - Move CSSRuleList to WebIDL; r=bz
As CSSRuleList is the last consumer of nsArraySH and nsGenericArraySH, this
also removes those classes.
2014-05-03 09:32:54 +02:00
Jonathan Kew
8b1998b5d8 bug 1002325 - don't try to rebuild rules if the font set is being deleted. r=jdaggett 2014-05-01 08:54:11 +01:00
Birunthan Mohanathas
80da21dedb Bug 1001966 - Part 2: Change uses of numbered NS_IMPL_CYCLE_COLLECTION_WRAPPERCACHE macro to the variadic variant. r=smaug 2014-04-29 04:57:00 -04:00
Kearwood (Kip) Gilbert
b8fc65afd2 Bug 1001237 - Don't return nsChangeHint_UpdatePostTransformOverflow in nsStyleDisplay::CalcDifference when a transform is added. r=dbaron 2014-04-28 14:51:00 -04:00
Birunthan Mohanathas
504b581650 Bug 900908 - Part 3: Change uses of numbered macros in nsIClassInfoImpl.h/nsISupportsImpl.h to the variadic variants. r=froydnj 2014-04-27 03:06:00 -04:00
Frédéric Wang
7a5fdadd38 Bug 1000879 - Remove the ::-moz-math-stretchy pseudo-element. r=karl, roc 2014-04-24 21:30:00 +02:00
Chris Peterson
619b0d656a Bug 999717 - CSS value lists other than shadows and filters may not be null. rs=dholbert 2014-04-22 23:11:01 -07:00
Maksim Lebedev
cde396c725 Bug 979345 - Implement "touch-action: manipulation" CSS value for Pointer Events. r=kats,botond,dbaron,mbrubeck 2014-04-23 09:56:46 -04:00
Phil Ringnalda
f0f9b8c0f5 Back out 5544ddbd6581 (bug 999717) for assertions
CLOSED TREE
2014-04-22 20:58:03 -07:00
Chris Peterson
ddffd256b0 Bug 999717 - Fix gcc -Wlogical-op warning in layout. r=dholbert 2014-04-22 15:50:35 -07:00
Ehsan Akhgari
c757af8994 Bug 998995 - Reserve stack space for 16 arguments when parsing a CSS function; r=dbaron 2014-04-21 20:44:33 -04:00
Daniel Holbert
c7db6814fb (no bug) Fix mis-indented line in mochitest file 'flexbox_layout_testcases.js'. (whitespace-only, DONTBUILD) 2014-04-21 13:47:51 -07:00
Adrian Lungu
a3166584d9 Bug 822480 - Add in the Resource Timing API. r=honzab, r=jst 2013-10-15 18:35:44 -07:00
Mats Palmgren
07cab7aa81 Back out bug 613659 (for regression bug 998792)
--HG--
rename : layout/reftests/backgrounds/background-size-slice.html => layout/reftests/backgrounds/background-size-continuous.html
rename : layout/reftests/backgrounds/background-size-cover-slice.html => layout/reftests/backgrounds/background-size-cover-continuous.html
rename : layout/reftests/backgrounds/background-size-cover-clone.html => layout/reftests/backgrounds/background-size-cover-each-box.html
rename : layout/reftests/backgrounds/background-size-clone.html => layout/reftests/backgrounds/background-size-each-box.html
2014-04-20 19:39:24 +00:00
Mats Palmgren
865211e339 Bug 613659 - Minor whitespace fixes. r=cam 2014-04-18 23:01:24 +00:00
Mats Palmgren
eb29ea0c7e Bug 613659 - Change mode-lines and indentation to 2-space indent. r=cam 2014-04-18 23:01:24 +00:00
Mats Palmgren
584711809b Bug 613659 - Remove remaining vestiges of -moz-background-inline-policy. r=cam 2014-04-18 23:01:23 +00:00
Mats Palmgren
ecca15c67e Bug 613659 - Implement box-decoration-break in the style system. r=cam 2014-04-18 23:01:22 +00:00
Mats Palmgren
307fabfc74 merge backout 2014-04-17 15:10:44 +00:00
Mats Palmgren
ae729a88e4 Back out bug 613659 for build failure on B2G Windows.
--HG--
rename : layout/reftests/backgrounds/background-size-slice.html => layout/reftests/backgrounds/background-size-continuous.html
rename : layout/reftests/backgrounds/background-size-cover-slice.html => layout/reftests/backgrounds/background-size-cover-continuous.html
rename : layout/reftests/backgrounds/background-size-cover-clone.html => layout/reftests/backgrounds/background-size-cover-each-box.html
rename : layout/reftests/backgrounds/background-size-clone.html => layout/reftests/backgrounds/background-size-each-box.html
2014-04-17 15:09:18 +00:00
Mats Palmgren
f39d4e6ed0 Bug 613659 - Minor whitespace fixes. r=cam 2014-04-17 12:11:08 +00:00
Mats Palmgren
9a6fefbf0b Bug 613659 - Change mode-lines and indentation to 2-space indent. r=cam 2014-04-17 12:11:08 +00:00
Mats Palmgren
71daad5042 Bug 613659 - Remove remaining vestiges of -moz-background-inline-policy. r=cam 2014-04-17 12:11:08 +00:00
Mats Palmgren
9f84dcf1c5 Bug 613659 - Implement box-decoration-break in the style system. r=cam 2014-04-17 12:11:07 +00:00
John Daggett
d0551db92e Bug 964613 - check userfont sets for enabled/disabled local fonts when platform fontlist changes occur. r=jfkthame 2014-04-17 23:17:22 +09:00
John Daggett
b8bdc45d84 Bug 997006 - rename text-combine-horizontal to text-combine-upright. r=dholbert 2014-04-17 09:15:18 +09:00
Kearwood (Kip) Gilbert
2025167bb7 Bug 984226 - Add parameter to OverflowChangedTracker::AddFrame to distingush between frames that need nsIFrame::UpdateOverflow called and frames that only have a transform that has changed. r=dbaron
- OverflowChangedTracker::AddFrame now accepts an enumerated type parameter to
  indicate if the overflow areas of children have changed (CHILDREN_CHANGED),
  the overflow areas of the children have changed and the parent have changed
  (CHILDREN_AND_PARENT_CHANGED), or if only the transform has changed
  (TRANSFORM_CHANGED).
- OverflowChangedTracker::Flush no longer falls back to calling
  nsIFrame::UpdateOverflow when a frame lacks a PreTransformOverflowAreas
  property.
- Added an additional change hint, nsChangeHint_ChildrenOnlyTransform, which
  results in TRANSFORM_CHANGED being passed in to
  OverflowChangedTracker::AddFrame.
- In nsIFrame::FinishAndStoreOverflow, the passed in overflow is now stored as
  the InitialTransformProperty for elements that are IsTransformed().
- Partially corrected Bug 926155, by only calling
  OverflowChangedTracker::AddFrame on parents of the sticky element during
  StickyScrollContainer::UpdatePositions, using CHILDREN_CHANGED.
2014-03-13 17:21:25 -07:00
Daniel Holbert
50d14afe31 Bug 996351: Rename nsPresShell::GetReferenceRenderingContext() to CreateReferenceRenderingContext(), to reduce implication of fallibility. r=roc 2014-04-14 21:30:25 -07:00
Cameron McCormack
92b03b34b0 Bug 992333 - Skip custom properties when looking for properties to transition. r=dbaron 2014-04-13 11:44:31 +10:00
Daniel Holbert
6c75ee7feb Bug 992397: Relax extreme testcases in test_flexbox_layout.html to allow an epsilon difference. r=mats 2014-04-11 14:22:11 -07:00
Gijs Kruitbosch
d5f146615c Bug 979653 - fix dir attribute checks for url field in rtl mode, r=ehsan
--HG--
extra : rebase_source : 58b0ea3e75fd8237df5ab5fadaa2feaee9cb47b9
2014-04-08 22:47:39 +01:00
Boris Zbarsky
fdbb455d4f Bug 991742 part 8. Remove the "aScope" argument of WebIDL/nsWrapperCache WrapObject() methods. r=bholley
This patch was mostly generated with the following command:

find . -name "*.h" -o -name "*.cpp" | xargs sed -e '/WrapObject(JSContext/ {; N; s/\(WrapObject(JSContext *\* *a\{0,1\}[Cc]x\),\n\{0,1\} *JS::Handle<JSObject\*> a\{0,1\}[sS]cope/\1/ ; }' -i ""

and then reverting the changes that made to
dom/bindings/BindingUtils.h, since those WrapObject methods are not
the ones we're trying to change here, plus a bunch of manual fixups
for cases that this command did not catch (including all the callsites
of WrapObject()).
2014-04-08 18:27:18 -04:00
Boris Zbarsky
3f26a82832 Bug 991742 part 6. Remove the "aScope" argument of binding Wrap() methods. r=bholley
This patch was mostly generated with this command:

find . -name "*.h" -o -name "*.cpp" | xargs sed -e 's/Binding::Wrap(aCx, aScope, this/Binding::Wrap(aCx, this/' -e 's/Binding_workers::Wrap(aCx, aScope, this/Binding_workers::Wrap(aCx, this/' -e 's/Binding::Wrap(cx, scope, this/Binding::Wrap(cx, this/' -i ""

plus a few manual fixes to dom/bindings/Codegen.py, js/xpconnect/src/event_impl_gen.py, and a few C++ files that were not caught in the search-and-replace above.
2014-04-08 18:27:17 -04:00
Ryan VanderMeulen
edd51f0af4 Backed out changeset 7be71c699b85 (bug 984226) for crashtest asserts. 2014-04-08 15:31:45 -04:00
Kearwood (Kip) Gilbert
0c00e3b8dd Bug 984226 - Add parameter to OverflowChangedTracker::AddFrame to distingush between frames that need nsIFrame::UpdateOverflow called and frames that only have a transform that has changed. r=dbaron
- OverflowChangedTracker::AddFrame now accepts an enumerated type parameter to
  indicate if the overflow areas of children have changed (CHILDREN_CHANGED) or
  if the transform has changed (TRANSFORM_CHANGED).
- OverflowChangedTracker::Flush no longer falls back to calling
  nsIFrame::UpdateOverflow when a frame lacks a PreTransformOverflowAreas
  property.
- Added an additional change hint, nsChangeHint_ChildrenOnlyTransform, which
  results in TRANSFORM_CHANGED being passed in to
  OverflowChangedTracker::AddFrame.
- In nsIFrame::FinishAndStoreOverflow, the passed in overflow is now stored as
  the InitialTransformProperty for elements that are IsTransformed().
- Partially corrected Bug 926155, by only calling
  OverflowChangedTracker::AddFrame on parents of the sticky element during
  StickyScrollContainer::UpdatePositions, using CHILDREN_CHANGED.
2014-03-13 17:21:25 -07:00
Mats Palmgren
f4adc1db1d Bug 992447 - Make <select> have 'overflow-clip-box:padding-box!important' for now since 'content-box' doesn't really work there. r=roc 2014-04-04 19:39:00 +02:00
Bobby Holley
b4a8be6b33 Bug 986730 - Fix up a bunch of tests that assume that they can touch AC in content. r=mrbkap 2014-04-06 12:32:38 -07:00
Daniel Holbert
6a7faff5d3 Bug 984786 part 8: Give NS_INLINE_DECL_*REFCOUNTING classes private destructor & MOZ_FINAL annotation where appropriate, in /gfx and /content/canvas. r=bjacob 2014-04-04 09:27:02 -07:00
Brian Birtles
06110d67b2 Bug 964646 part 5 - Add OMTA version of test_animations.html keyframe tests; r=dbaron 2014-04-03 16:55:45 +09:00
Brian Birtles
628a1ffb0d Bug 964646 part 4 - Add OMTA version of test_animations.html animation list tests; r=dbaron
Tests for animation list handling on the compositor thread. Some checks are
currently marked todo_is because they depend on Bug 980769 in order to pass.
2014-04-03 16:55:44 +09:00
Brian Birtles
1547db730a Bug 964646 part 3 - Refactor OMTA test methods to include opacity too; r=dbaron
This patch takes the compareTransform utility methods and makes them more
generic so they can be used for testing opacity too (the other property
currently animated on the compositor thread).

The naming omta_is and omta_is_approx is intended to mirror is and is_approx in
test_animations.html.
2014-04-03 16:55:44 +09:00
Brian Birtles
8f264e90e2 Bug 964646 part 2 - Add OMTA version of test_animations.html fill mode tests; r=dbaron
This patch adds an additional mochitest for specifically targetting CSS
Animations that run on the compositor thread. The content of the test mimicks
test_animations.html but using properties whose animations are expected to run
on the compositor thread.
2014-04-03 16:55:44 +09:00
Brian Birtles
4d45c0227d Bug 964646 part 1 - Add common OMTA test runner to animation_utils.js; r=dbaron
Since off-main thread animation (OMTA) is not available on all platforms we
define a common wrapper function that runs OMTA tests only when available. This
patch further performs an internal check of basic OMTA operation so that
only a single error is produced if OMTA is unexpectedly unavailable.

Typical usage is:

  SimpleTest.waitForExplicitFinish();
  runOMTATest(function() {
    ... test code ...
    SimpleTest.finish();
  },
  SimpleTest.finish);

This can be easily wrapped with promises if needed but does not require using
promises.

The calls to waitForExplicitFinish and finish are not performed automatically
since this function may be integrated with test suites that do other work
outside the call to runOMTATest.
2014-04-03 16:55:44 +09:00
Brian Birtles
917d2e24b6 Bug 880596 part 9 - Fix comment about mFlushCount; r=dbaron
Two comments in AnimationCommon.h refer to 'mFlushCount' which was presumably
the old name for mAnimationGeneration. Also, one comment says
nsCSSFrameConstructor tracks this. This patch adjusts the comments to refer
to mAnimationGeneration and RestyleManager.

(The reference to nsTransitionManager::UpdateAllThrottleStyles() is still valid
since there is useful documentation accompanying that method despite the fact
that the relevant code is mostly contained in AnimationCommon.h since bug
914847. Eventually we will unify the structures of transitions and
animations to the the point that we can replace the
IMPL_UPDATE_ALL_THROTTLED_STYLES_INTERNAL macro in AnimationCommon.h with an
actual method. At that point we can move the documentation accompanying
nsTransitionManager::UpdateAllThrottleStyles and its references to
AnimationCommon.)
2014-04-03 14:57:28 +09:00
Brian Birtles
ae6e60dda5 Bug 880596 part 8 - Rename ElementAnimation to StyleAnimation; r=dbaron
We need a basic representation of animations from which we can derive subclasses
to represent specific cases such as transitions. For now we will retrofit
ElementAnimation for that purpose hence renaming it to StyleAnimation.

This patch removes the "using namespace mozilla::layers" line from
AnimationCommon.cpp since the unified build system concatenates several files
together before compiling making using declarations like this leak into other
files potentially creating ambiguities. Previously, when we were calling
ElementAnimation, 'Animation', there were ambiguities between
mozilla::layers::Animation and this new 'Animation' class. In general, it is
probably a good idea to limit the scope of these using declarations so I've kept
that change.
2014-04-03 14:57:28 +09:00
Brian Birtles
095840cb6d Bug 880596 part 7 - Move ElementAnimation to AnimationCommon; r=dbaron
This patch relocates ElementAnimation from nsAnimationManager.{h,cpp} to
AnimationCommon.{h,cpp} and in the process moves it into the mozilla::css
namespace.
2014-04-03 14:57:28 +09:00
Brian Birtles
e4bdcd3cfb Bug 880596 part 5 - Make ElementAnimation::HasAnimationOfProperty no longer virtual; r=dbaron
ElementAnimation::HasAnimationOfProperty doesn't seem to be overridden anywhere.
I suspect it was a copy-paste mistake because the methods of the same name on
ElementAnimations, ElementTransitions, and CommonElementAnimationData are
virtual.
2014-04-03 14:57:28 +09:00
Brian Birtles
217cb32ecc Bug 880596 part 4 - Reuse ElementAnimation::HasAnimationOfProperty; r=dbaron
Now that ElementTransitionProperty inherits from ElementAnimation,
ElementTransitions::HasAnimationOfProperty can re-use
ElementAnimation::HasAnimationOfProperty in its definition of
ElementTransitions::HasAnimationOfProperty.

Similarly, in nsDisplayList::AddAnimationsAndTransitionsToLayer we can use this
method rather than drilling down to the appropriate segment by hand.
2014-04-03 14:57:27 +09:00
Brian Birtles
e503422f93 Bug 880596 part 3 - Remove ElementPropertyTransition::IsRunningAt and mIsRunningOnCompositor; r=dbaron
Both ElementPropertyTransition and ElementAnimation specify an IsRunningAt
method which have the same purpose but with two subtle differences:

a) ElementPropertyTransition::IsRunningAt checks if the transition is a removed
sentinel and if so returns false. This patch adds a check for a null start time
to IsRunningAt since I think in future we will want to allow null times in
various places to represent, for example, animations that are not connected to
a timeline. (However, ultimately we will probably not allow start times on
*animations* to be null, only on their associated player.)

Should we later use a different mechanism for marking sentinel transitions (e.g.
a boolean flag) this method should still be correct as it checks if aTime is
inside the transition interval before returning true.

b) ElementPropertyTransition::IsRunningAt returns false if the transition is in
the delay phase, that is, waiting to start. This patch changes this behavior so
that transitions are considered running even if they are in the delay phase.
This brings their behavior into line with animations and removes the need for
the ElementPropertyTransition::mIsRunningOnCompositor since it is only used to
determine when a transition in the delay phase has begun.

ElementAnimation::IsRunningAt also handles pause state and iterations but this
logic should still be correct for transitions which, in this area, only use
a subset of the functionality of animations since their pause state is always
playing and their iteration count is 1.
2014-04-03 14:57:27 +09:00
Brian Birtles
5e2f8ede42 Bug 880596 part 2 - Make ElementPropertyTransition inherit from ElementAnimation; r=dbaron
As part of moving towards more shared data structures for animation, this patch
makes ElementPropertyTransition inherit from ElementAnimation. At the same time
we switch from storing the target property, start/end values, start time, delay,
and timing function on the transition to the corresponding location in
ElementAnimation.

Since nsDisplayList::AddAnimationsAndTransitionsToLayer was already doing this
conversion in order to create animations to pass to the compositor thread, we
can remove the conversion code from there and just use the ElementAnimation data
structures as-is.

A number of assertions are added to verify that transitions are set up as
expected (namely, they have only a single property-animation with a single
segment). As we move to more generic handling of animations and transitions
these assertions should disappear.
2014-04-03 14:57:27 +09:00
Brian Birtles
19e2304b94 Bug 880596 part 1 - Separate delay from start time for transitions; r=dbaron
As a first step towards making CSS animations and CSS transitions use the same
data structures, this patch aligns their behavior with regards to start time and
delay handling.

Previously, ElementAnimation objects maintained separate mStartTime and mDelay
members whilst ElementPropertyTransition objects maintained a single mStartTime
property that incorporated the delay. This patch adds an mDelay member to
ElementPropertyTransition and stores the delay and start time separately.
Calculations involving ElementPropertyTransition::mStartTime are adjusted to
incorporate mDelay.
2014-04-03 14:57:27 +09:00
L. David Baron
4d2197bf3c Bug 975397 - Call TrackImage when constructing a new nsStyleBorder. r=heycam
I confirmed that the crashtest crashes in the harness without the patch.

--HG--
rename : layout/reftests/backgrounds/blue-32x32.png => layout/style/crashtests/blue-32x32.png
2014-04-02 22:56:19 -07:00
Masayuki Nakano
5c4524957a Bug 989212 Rename nsEventStates to mozilla::EventStates r=smaug
--HG--
rename : dom/events/nsEventStates.h => dom/events/EventStates.h
2014-04-03 13:18:36 +09:00
Xidorn Quan
0a8f327ab2 Bug 990297 - Refactor table initialization code in nsCSSProps::AddRefTable. r=dbaron 2014-04-02 11:47:55 -04:00
Simon Sapin
cb211f18e1 Bug 988780 - Refactor ParseGridTemplateAfterString() to not use CheckEndProperty() (layout/style/nsCSSParser.cpp). r=dbaron 2014-03-27 02:24:00 +01:00
Cameron McCormack
c0b95085bb Bug 989965 - Resolve style for pseudo-elements correctly when style rules that have user action pseudo-classes on them are present. r=bzbarsky 2014-04-02 15:08:52 +11:00
Cameron McCormack
f456b184df Bug 985838 - Change custom property name prefix from "var-" to "--" and allow identifiers to begin with "--". r=dbaron 2014-04-02 14:32:16 +11:00
Mark Hammond
763885adb1 Bug 987404 - Disable failing mochitest-browser tests in e10s. r=ted. 2014-04-02 10:53:55 +11:00
L. David Baron
67734de948 Bug 989560 patch 4 - Remove most uses of CheckEndProperty()/ExpectEndProperty(). r=heycam 2014-04-01 11:53:32 -07:00
L. David Baron
94c2eb86fa Bug 989560 patch 3 - Add one more ExpectEndProperty() call that is needed for variables. r=heycam
This adds a check that is currently present in most but not all
codepaths leading to this point, but which patch 4 will remove from many
of those codepaths.
2014-04-01 11:53:32 -07:00
L. David Baron
e7c2035cb7 Bug 989560 patch 2 - Don't accept an empty value for font-variant-alternates. r=heycam
Had patch 3 not been present, this would be needed to prevent a test
failure with patch 4 (which removes the ExpectEndProperty check from the
CSS_PROPERTY_PARSE_VALUE case in
CSSParserImpl::ParseProperty(nsCSSProperty) since its callers handle
checking for appropriate endings), since the way this function returns
success for empty values leads var() functions alone inside
font-variant-alternates to be rejected, since
CSSParserImpl::ParseProperty(nsCSSProperty) won't try reparsing with
variables.
2014-04-01 11:53:32 -07:00
L. David Baron
418dc99018 Bug 989560 patch 1 - Make it an error to have an empty item within an animation or transition shorthand. r=heycam
This is needed to make the test in the next patch (which tests that we
reject entirely-empty properties) pass.
2014-04-01 11:53:31 -07:00
L. David Baron
8592c4c03a Bug 988702 patch 3 - Fix missing UngetToken() calls in ParseCounterData(), and avoid evil CheckEndProperty() calls while I'm there. r=heycam
I tested that test_property_syntax_errors.html gives a failure on the
new test without the patch, and that the failure is not present with the
patch.
2014-04-01 11:53:31 -07:00
L. David Baron
0c81f40b4b Bug 988702 patch 2 - Test invalid CSS property values for their balanced-ness of () [] or {}. r=heycam
(This provides an easy mechanism for testing for missing UngetToken()
calls as in the following patch.)
2014-04-01 11:53:31 -07:00
L. David Baron
1d5f54dbab Bug 988702 patch 1 - Remove duplication between invalidGradientAndElementValues and the list of invalid values in background-image. r=heycam
Values that are already in invalidGradientAndElementValues don't also
need to be listed in an array that has invalidGradientAndElementValues
appended to it.
2014-04-01 11:53:31 -07:00
Simon Sapin
bc4b99a25a Bug 989755: Fix up serialization of the grid-template shorthand. r=dholbert
* Refuse to serialize some combinations of values that the shorthand
  can not represent: 'grid-template-areas: (not none)' combined with
  'grid-template-rows: subgrid' or 'grid-template-columns: subgrid'.
  (The former used to cause an assertion failure.)
* Remove an extraneous trailing space that occured when a <track-list>
  was last. (ie. followed by an omitted <line-names>)
* Add tests for the result of this serialization.
2014-03-31 13:31:00 +02:00
Simon Sapin
f410d8a001 Bug 978478 part 2: Add support for repeat() in <track-list> (CSS Grid) r=dholbert 2014-03-31 22:49:51 -07:00
Simon Sapin
e6f3513409 Bug 978478 part 1: Add support for repeat() in <line-name-list> (CSS Grid) r=dholbert 2014-03-31 22:49:45 -07:00
L. David Baron
4e6a059a99 Bug 470769 - Store computed styles of integer-valued properties as integers in nsROCSSPrimitiveValue, so they round-trip correctly. r=bzbarsky 2014-03-29 09:29:30 -07:00
Neil Rashbrook
fe80fce47a Bug 514280 Consistently declare and define IID accessors r=bsmedberg 2014-03-28 08:45:02 +00:00
Ehsan Akhgari
345b35a6e8 Bug 798158 - Part 1: Use a pointer-sized type to store refcounts internally; r=bsmedberg 2014-03-27 16:38:33 -04:00
Simon Sapin
6064ae5c0e Bug 983175 - Part 2: Add style system support for 'subgrid' in the grid-template* properties. r=dholbert
http://dev.w3.org/csswg/css-grid/#subgrids
2014-03-27 11:54:40 -04:00
Simon Sapin
3f0ca1cfe4 Bug 983175 - Part 1: Refactor ParseGridLineNames (CSS Grid). r=dholbert
Return a CSSParseResult rather than a bool to distinguish between
an empty list of names '()' and the lack of a list.
2014-03-27 11:54:40 -04:00
Simon Sapin
0a31fb78d4 Bug 983175 - Part 0: Rename nsParsingStatus to CSSParseResult. r=dbaron 2014-03-27 11:54:40 -04:00
Boris Zbarsky
235a752941 Bug 610733. Vertically center the text in the combobox display area when a non-default height is set for the combobox. r=dbaron 2014-03-25 22:48:46 -04:00
Brian Birtles
827ab27605 Bug 986367 - Make paint_listener.js check for paint suppression; r=mattwoodrow
This patch adds an extra check for paint suppression when waiting for paint
events. This is because on some platforms (notably B2G) we can think all paints
have completed because paint suppression is in effect and as a result call the
callback too soon.

This patch use window.setTimeout(..., 0) to wait for paint suppression to finish
before preceding to check for pending paint events.

When the refresh driver is under test control, if we detect that paint events
are pending we need to force a refresh driver tick. This patch adds that tick.
I suppose we had previously never hit this situation before and never noticed
this.

This patch also rearranges the main loop so that early returns appear first and
calling the callback appears at the end.
2014-03-26 09:20:07 +09:00
Bobby Holley
8ce8fa17a7 Bug 987672 - Use a more reliable Function constructor and |bind| implementation for marquee event handler compilation. r=bz 2014-03-25 12:36:39 -03:00
Matt Woodrow
2cabdd6d95 Bug 976365 - Make 'perspective' create a containing block for absolute and fixed positioned children. r=dbaron 2014-03-25 11:45:43 +13:00
Simon Sapin
72897b9af2 Bug 984728 - Refactor grid-auto-flow parsing to use ParseBitmaskValues; r=dholbert 2014-03-24 14:26:04 +01:00
Boris Zbarsky
4326c51942 Bug 955860 followup to add a pointer to the source of the tests. 2014-03-21 23:07:12 -04:00
Simon Sapin
6161867d62 Bug 984760 part 2: Use GridTemplateAreasValue though nsRefPtr pointers. r=dholbert 2014-03-21 23:06:16 +08:00
Simon Sapin
4d0c20f01f Bug 984760 part 1: Rename nsCSSValueGridTemplateAreas to css::GridTemplateAreasValue. r=dholbert 2014-03-21 23:06:13 +08:00
Simon Sapin
e83e296f58 Bug 981752 part 3: Add the grid shorthand. r=dholbert 2014-03-21 23:06:12 +08:00
Simon Sapin
48d0651e87 Bug 981752 part 2c: Add the grid-template shorthand. r=dholbert 2014-03-21 23:06:12 +08:00
Simon Sapin
4d9684360b Bug 981752 part 2b: Refactor grid-template-{columns,rows} parsing, preparing for the grid-template shorthand. r=dholbert
... and a bit of grid-auto-flow, for the grid shorthand.

* Avoid using CheckEndProperty() when possible
* Distinguish between "error" and "not a <track-size>"
* Split out parsing of a <track-list>, given its initial [<line-names>?]
2014-03-21 23:06:12 +08:00
Simon Sapin
c27572613c Bug 981752 part 1: Add the grid-column, grid-row and grid-area shorthands. r=dholbert 2014-03-21 23:06:12 +08:00
Brian Birtles
880027c0e0 Bug 975261 part 5 - Fix OMTA animations with backwards fill; r=dzbarsky
When we have a backwards fill and we sample at *exactly* the start of the
animation on the next refresh driver tick, when we get to
RestyleManager::ComputeStyleChangeFor (or more specifically
ElementRestyler::CaptureChange) we notice that the style hasn't changed (since
the first frame of the animation produces the same value as the backwards fill)
and end up with an empty change list. As a result we never schedule a view
manager flush and rebuild the layer. Hence, the animation never gets sent to the
compositor thread. On the next tick we're already throttling the main thread.

This patch fixes this by applying the same approach as is used for transitions,
that is, explicitly marking which animations are running on the compositor
thread so we know if we need to trigger a layer transaction or not. This should
not only be more robust than the previous code but also facilitate aligning
animations and transitions code (bug 880596).
2014-03-22 05:59:58 +08:00
Brian Birtles
11a7708f98 Bug 975261 part 4 - Add test for starting OMTA animations with backwards fill; r=dzbarsky
This test reproduces a bug where we don't send an animation to the compositor
thread. The important step is the sample precisely at the start of the animation
interval.
2014-03-22 05:59:58 +08:00
Brian Birtles
d362de8251 Bug 975261 part 3 - Add test for transforms; r=dzbarsky
Adds a test for transform animations with a delay where there is already
a transform specified on the element.

This test used to fail but bug 828173 fixed it. It is included here as
a regression test.

(Prior to bug 828173 we were able to fix this by triggering
ForceLayerRerendering inside nsAnimationManager::nsFlushAnimations whenever we
detected *different* style rules but canThrottleTick=true)

The issue stemmed from the fact that when an element has a transform property,
LayerIsPrerenderedDataKey would get set on the layer because in
nsDisplayTransform::ShouldPrerenderTransformedContent we would only check for
the *presence* of an animation, not whether it is running. Then in
RestyleManager::DoApplyRenderingChangeToTree we wouldn't do an invalidating
paint because TryUpdateTransformOnly() returns true since it looks at
LayerIsPrerenderedDataKey.

Bug 828173 fixes this, at least in part, by checking if an animation is running.
This bug may resurface if we put animations with a delay on the compositor
thread hence it is worth including here.
2014-03-22 05:59:57 +08:00
Brian Birtles
036a91443e Bug 975261 part 2 - Trigger animations with a delay; r=dzbarsky
Animations with a delay are not put on the compositor thread until the end of
the delay phase. However, there is currently nothing that explicitly triggers
this transaction. It may occur due to flushes that arise from UI events but it
is not guaranteed.

This patch detects the end of a delay phase and turns off throttling for that
sample. It re-uses the mLastNotification member which is not ideal but
a subsequent patch in this queue removes this and replaces it with the approach
used for transitions.
2014-03-22 05:59:57 +08:00
Brian Birtles
dda03127b6 Bug 975261 part 1 - Add test for OMTA animations that start with a delay; r=dzbarsky 2014-03-22 05:59:57 +08:00
Srirakshith Betageri
9e99311a3a Bug 955860. Implement the CSS.escape API for escaping CSS identifiers from script. r=bzbarsky 2014-03-20 23:19:43 -04:00
Daniel Holbert
3363b24a57 Bug 984786 part 1: Add MOZ_FINAL and private destructors to some refcounted classes in layout. r=dbaron 2014-03-21 09:16:20 +08:00
Simon Sapin
5fa7f76138 Bug 984241: Refactor/optimize grid-template-areas, store number of columns. r=dholbert
In the parsing code for grid-template-areas:

* Move some of the processing into the helper function,
  so that the grid-template will not have to duplicate it.

* Store the number of parsed columns (and rows),
  as they will affect the size of the "explicit grid".

* Use a hash table instead of a linear scan to avoid O(n²)-ish complexity.
2014-03-18 22:05:49 +08:00
Cameron McCormack
d36b03a216 Bug 950436 - Store ImageValues that resulted from re-parsing a nsCSSValueTokenStream on that object. r=dbaron 2014-03-18 20:11:14 +11:00
Cameron McCormack
e91094a2d6 Bug 984739 - Make nsCSSValue::StartImageLoad assume |new ImageValue| is infallible. r=dbaron 2014-03-18 16:49:51 +11:00
Masayuki Nakano
b7a8d4a392 Bug 983049 part.5 Rename nsEventDispatcher to mozilla::EventDispatcher r=smaug
--HG--
rename : dom/events/nsEventDispatcher.cpp => dom/events/EventDispatcher.cpp
rename : dom/events/nsEventDispatcher.h => dom/events/EventDispatcher.h
2014-03-18 13:48:21 +09:00
Neil Rashbrook
921625ab05 Bug 514280 Stop using nsCOMPtr for concrete types r=bsmedberg
--HG--
extra : rebase_source : f8fb50de9292320eb7589dd28dc566d0f5044da6
2014-03-18 00:23:03 +00:00
Wes Kocher
2939a367ba Backed out 2 changesets (bug 514280) for OSX build bustage on a CLOSED TREE
Backed out changeset 2a015b45d808 (bug 514280)
Backed out changeset a01f97c1ed02 (bug 514280)
2014-03-17 15:19:53 -07:00
Neil Rashbrook
f83724018d Bug 514280 Stop using nsCOMPtr for concrete types r=bsmedberg
--HG--
extra : rebase_source : eaca8b2925eaffb49e29a617cd72c0d6686e6d9e
2014-03-17 19:07:09 +00:00
Kyle Huey
567b9398be Bug 981150: Use nsTArrayForwardDeclare.h more. r=ehsan 2014-03-15 12:00:17 -07:00
Kyle Huey
f7eafc09a9 Bug 967364: Rename already_AddRefed::get to take. r=bsmedberg 2014-03-15 12:00:15 -07:00
Bill McCloskey
d960718b48 Bug 982828 - [e10s] Disable mochitest-plain tests that don't pass in e10s (r=ted) 2014-03-13 21:38:19 -07:00
Wes Kocher
62d61f05a8 Backed out changeset 88425ad0f06a (bug 982828) for introducing various mochitest-5 failures on a CLOSED TREE
* * *
Backed out changeset 94f9ebdc6662 (bug 982828)
2014-03-13 19:41:21 -07:00
Bill McCloskey
cff466f79f Bug 982828 - [e10s] Disable mochitest-plain tests that don't pass in e10s (r=ted) 2014-03-13 15:41:41 -07:00
Ehsan Akhgari
6fe1d98a9c Bug 983084 - Correctly handle z-order only changes by removing opacity through a dynamic change; r=dbaron 2014-03-13 19:14:35 -04:00
Bill McCloskey
624ffda758 Backed out changeset d6261f65070a 2014-03-13 15:52:27 -07:00
Bill McCloskey
a23e0f8633 Bug 982828 - [e10s] Disable mochitest-plain tests that don't pass in e10s (r=ted) 2014-03-13 15:41:41 -07:00
Andrew McCreight
f6b68d4079 Bug 982373 - Don't leak val when we return early from nsComputedDOMStyle::DoGetTextDecoration(). r=dholbert 2014-03-13 09:18:32 -04:00
Boris Zbarsky
db50ae0d43 Bug 349259 patch 3 - Allow pages to override line-height on form controls, except for <select>. r=dbaron
This re-lands the part of the patch not backed out in
https://hg.mozilla.org/mozilla-central/rev/b97aef275b5e
2014-03-12 20:33:21 -07:00
L. David Baron
2d1064d968 Bug 349259 patch 1: Add an nsIContent* parameter to nsHTMLReflowState::CalcLineHeight. r=bz 2014-03-12 20:33:21 -07:00
Wes Kocher
428bc84ea0 Merge m-c to inbound 2014-03-12 18:59:54 -07:00
Benoit Jacob
234b97765b Bug 977757 - 3/3 - Expose CSS_PROPERTY_ALWAYS_ENABLED_IN_CHROME_OR_CERTIFIED_APP properties in JS bindings as needed - r=bz 2014-03-07 12:14:26 -05:00
Benoit Jacob
5c4b2e9208 Bug 977757 - 2/3 - add nsCSSProps::eEnabledInChromeOrCertifiedApp bit, and use it for will-change - r=dbaron,bz 2014-03-07 12:14:25 -05:00
Benoit Jacob
618e69aee7 Bug 977757 - 1/3 - make nsCSSProps::EnabledState a bitfield - r=dbaron,bz 2014-03-07 12:14:23 -05:00
Peter Chang
0feb380b0d backout of rev 45253e02bde3, fd02f1217e4c, 75217485ce5a b=981804 2014-03-12 15:16:20 +08:00
Daniel Holbert
8460b112aa Bug 981919: Add some documentation/clarification in test_flexbox_flex_shorthand.html. r=SimonSapin 2014-03-11 10:06:54 -07:00
Ted Mielczarek
b491b5d0d8 Bug 980015 - Remove MOCHITEST_FILES et. al. r=gps 2014-03-05 15:51:39 -05:00
Daniel Holbert
9fb0a3d672 (no bug) fix trailing whitespace in test_flexbox_flex_shorthand.html. whitespace-only, DONTBUILD
Pusing on a CLOSED TREE with KWierso|sheriffduty's permission
2014-03-10 16:57:44 -07:00
Simon Sapin
1916414b92 Bug 976787 part 5: Add grid-{column,row}-{start,end} and grid-auto-position to the style system. r=dholbert 2014-03-10 15:54:17 -07:00
Simon Sapin
c7dab4e0c0 Bug 976787 part 4: Add the grid-auto-flow property to the style system. r=dholbert 2014-03-10 15:54:16 -07:00
Simon Sapin
d5e74775d3 Bug 976787 part 3: Add the grid-auto-{columns,rows} properties to the style system. r=dholbert 2014-03-10 15:54:15 -07:00
Simon Sapin
7d52218be2 Bug 976787 part 2: Add the grid-template-areas property to the style system. r=dholbert 2014-03-10 15:54:14 -07:00
Simon Sapin
64446c5b2e Bug 976787 part 1: Add the grid-template-{columns,rows} properties to the style system. r=dholbert 2014-03-10 15:54:13 -07:00
Ryan VanderMeulen
9ced6c9188 Backed out changeset 88780b5a201e (bug 980015) for test_property_database.html failures.
CLOSED TREE
2014-03-10 15:31:23 -04:00
Ted Mielczarek
c0e5c0cfe5 Bug 980015 - Remove MOCHITEST_FILES et. al. r=gps
--HG--
extra : rebase_source : 3825abc63eb0901bc1422aa00aed3680dbe3e44c
2014-03-05 15:51:39 -05:00
Chris Peterson
910eb057f1 Bug 980810 - Part 2: Fix clang -Wstring-conversion warning in layout. r=dbaron 2014-03-07 00:53:03 -08:00
Benoit Jacob
e01f9a3958 Bug 977757 - 3/3 - Expose CSS_PROPERTY_ALWAYS_ENABLED_IN_CHROME_OR_CERTIFIED_APP properties in JS bindings as needed - r=bz 2014-03-07 12:14:26 -05:00
Benoit Jacob
c3679a9840 Bug 977757 - 2/3 - add nsCSSProps::eEnabledInChromeOrCertifiedApp bit, and use it for will-change - r=dbaron,bz 2014-03-07 12:14:25 -05:00
Benoit Jacob
5690c8f7e0 Bug 977757 - 1/3 - make nsCSSProps::EnabledState a bitfield - r=dbaron,bz 2014-03-07 12:14:23 -05:00
L. David Baron
a2f97c232b Bug 978712 - Prevent non-running transitions and animations (animations or transitions during their delay period, and animations after they finish) from repeatedly poking layer activity because we think we can run them on the compositor. r=heycam
This changes the behavior of the CanPerformOnCompositorThread methods of
both ElementAnimations and ElementTransitions to check that the
respective animations or transitions are actually running.  This is ok
because:
 - The main caller is nsLayoutUtils::HasAnimationsForCompositor, and all
   of its callers pretty clearly want the more restricted behavior (they're
   concerned with layer activity)
 - The only other callers of these functions are
   nsAnimationManager::FlushAnimations and
   nsTransitionManager::FlushTransitions (determining when to do
   throttling), nsAnimationManager::GetAnimationsForCompositor (whose
   only caller,
   nsDisplayListBuilder::AddAnimationsAndTransitionsToLayer, also checks
   IsRunningAt).  I think these also all want or are fine with having
   the IsRunningAt check.

As to the actual changes:
 - In the animation manager, I think it's a mistake that
   ElementAnimation::IsRunningAt didn't already check
   mIterationDuration, since we throw out animations with a bad
   iteration-duration in ElementAnimations::EnsureStyleRuleFor.  So this
   makes that change as well.
 - In the transition manager, IsRunningAt already checks
   !IsRemovedSentinel().

I've confirmed in gdb on a device that this fixes the repeated
nsIFrame::SchedulePaint calls that were the symptom of this bug.

I believe this patch also makes it so that a short animation of a
property that can't be animated on the compositor doesn't prevent the
entire duration of the animation of a property that can from being
throttled (having the main thread style updates suppressed).
2014-03-06 22:08:57 -08:00
Vaibhav Agarwal
b192b2603d Bug 971132 - B2G mochitests should use the new manifest format; r=jmaher 2014-03-06 13:42:43 -05:00
Ryan VanderMeulen
eccc1b69c8 Backed out changesets d65a803d2b9a, 9456495d6121, and 73c710ddf3d8 (bug 977757) for Gaia UI test failures.
CLOSED TREE
2014-03-06 13:10:20 -05:00
Benoit Jacob
bb9ddf27a6 Bug 977757 - 3/3 - Expose CSS_PROPERTY_ALWAYS_ENABLED_IN_CHROME_OR_CERTIFIED_APP properties in JS bindings as needed - r=bz 2014-03-06 11:38:21 -05:00
Benoit Jacob
5af2dfb560 Bug 977757 - 2/3 - add nsCSSProps::eEnabledInChromeOrCertifiedApp bit, and use it for will-change - r=dbaron,bz 2014-03-06 11:38:19 -05:00
Benoit Jacob
39560c498f Bug 977757 - 1/3 - make nsCSSProps::EnabledState a bitfield - r=dbaron,bz 2014-03-06 11:38:17 -05:00
Mats Palmgren
079b02433f Bug 971955 - Make overflow-clip-box:content-box the default for all <input> @type values except type=file/button/reset/submit. r=roc 2014-03-06 10:03:38 +00:00
Simon Sapin
ee55ba56ec (no bug) Add labels to the various is() checks in test_initial_storage.html, to aid in diagnosing test-failures. r=dholbert 2014-03-05 16:53:08 -08:00
L. David Baron
b109d5c930 Bug 979557: CanAnimatePropertyOnCompositor should return early when there's no OMT compositing, whether or not logging is enabled. r=dzbarsky
This shouldn't behave differently depending on whether or not logging is
enabled; that difference was introduced in bug 785648.
2014-03-04 20:13:22 -08:00
L. David Baron
c9ae86a635 Bug 828173 patch 6: Remove calls to ForceLayerRerendering from the miniflush code (UpdateThrottledStyles, which flushes animations whose main thread updates are throttled without updating any other styles). r=mattwoodrow
I've been wanting to remove this code for a while.  I think this code is
problematic for three reasons:

 (1) It's in the middle of code where it doesn't belong, and which ought
     to be handling purely-style-system things.  (This is blocking me
     from reusing that code elsewhere, e.g., in bug 977991 and
     bug 960465, both of which could use it in some form.)

 (2) It defeats the optimization from bug 790505 whenever we do a
     miniflush (in other words, whenever we have any style change,
     whether or not it's related)

 (3) It means the conditions for when we decide to ship a new set of
     animation data to a layer doesn't cover all the cases the layer
     needs it.  In particular, we only run this miniflush code when we
     have a currently running animation or transition that's running on
     the compositor thread.  On the other hand, the UpdateTransformLayer
     style change handling in DoApplyRenderingChangeToTree depends on
     whether the frame currently has a transform layer, which can
     continue to be true for a bit after the animation stops.  So if we
     need to send animations to the layer because of a transform style
     change that happens soon after an animation completes, our style
     change handling will find the existing layer and call its
     SetBaseTransformForNextTransaction method but never do anything
     that triggers layer construction.  The style throttling code, in
     turn, will never stop doing main thread updates because the
     animation generation on the layer is out-of-date, and these main
     thread updates will keep the layer active, but they'll never show
     up because the stale animation data overrides the new transform
     that we've been setting.  (At least, I think that's what was
     happening; it makes sense to me and matches the behavior I was
     observing.  I didn't verify which main thread updates and which
     layer updates were actually happening, though.)

     This shows up, for example, in the animation in attachment 8384813
     just halting at a corner if I'm careful not to disturb it.  (I'm
     testing on Linux, with both accelerated layers and OMT animations
     explicitly enabled.)

I think there are probably some other things that can be removed as
followups to removing this code, because I think we made some boundary
conditions intentionally incorrect so that problem (3) above wouldn't be
as bad as it otherwise would have been.
2014-03-04 20:13:22 -08:00
L. David Baron
ef65031de5 Bug 978903: Fix some uninitialized variable warnings in the CSS parser. r=heycam
The first provides a reasonable default (failure to parse) for the case
of an unknown value type (which should never happen).

The second reorders two failure checks so that the one that returns
early when units is uninitialized happens before the one that looks at
units.
2014-03-04 20:13:20 -08:00
L. David Baron
537d857ff5 Bug 978648: Handle dynamic changes to @keyframes rules and keyframe rules better. r=heycam 2014-03-04 20:13:20 -08:00
Mihaela Velimiroviciu
6cead5f1b3 Bug 959973 - Add tests for using variables in external style sheets. r=heycam,ted 2014-03-05 12:29:44 +11:00
Brian Birtles
1b317920a5 Bug 972199 part 3 - Fix comment in ElementAnimations::GetPositionInIteration; r=nrc
Make comment reflect current parameter names.
2014-03-05 10:19:16 +09:00
Brian Birtles
a863a20459 Bug 972199 part 2 - Add a crashtest for restoring the refresh driver after an advance; r=nrc
In this crash test we restore the refresh driver after manually advancing it.
This causes a situation where a layer has an animation that has yet to start.

Prior to modifying ElementAnimations::GetPositionIteration this test case would
trip an assertion there that rejected negative elapsed times when called from
the compositor thread.
2014-03-05 10:19:15 +09:00
Mats Palmgren
5bd85e6c56 Bug 978443 - Rename NS_STYLE_CLEAR_LEFT_AND_RIGHT to NS_STYLE_CLEAR_BOTH. r=dholbert
Rename NS_STYLE_CLEAR_LEFT_AND_RIGHT to NS_STYLE_CLEAR_BOTH.  Also fix whitespace and remove unnecessary parens in a few places and enumerate the possible break types in an assertion so that it doesn't make assumptions on the actual property values.
2014-03-02 17:42:16 +00:00
Mats Palmgren
42841bae56 Bug 513110 - Adjust the maximum break type (only used in assertions) to reflect reality. r=dholbert 2014-03-01 10:36:39 +00:00
L. David Baron
9f6268fc48 Add bug number (bug 828173) to FIXME comment.
DONTBUILD.
2014-02-28 17:14:31 -08:00