Commit Graph

22480 Commits

Author SHA1 Message Date
Seth Fowler
1694419abc Bug 913586 (Part 7) - Update Maybe users in layout. r=dbaron
--HG--
extra : rebase_source : 1bf45d1356d36269ca951b58ebf1e448313c55c5
2014-08-13 15:42:15 -07:00
L. David Baron
7b3940b7b2 Bug 1052907 - Make --this-chunk and --total-chunks arguments to mach reftest-remote work by coercing them to ints, which they need to be. r=ahal 2014-08-13 15:39:03 -07:00
L. David Baron
e160365db0 Bug 625289 patch 13 - Test that ::first-line movement doesn't start transitions, i.e., test patch 10 in this series. r=heycam
With the full patch series, all 4 pairs of tests pass.  However, with
patch 10 removed from the patch series, all of the added tests fail
(probably through some interesting interactions).
2014-08-13 15:39:03 -07:00
L. David Baron
8cbdf72eb5 Bug 625289 patch 12 - Tests for transitions on elements that are reframing. r=heycam
The second set of 14 tests all fail (both with and without the patch)
because we don't start transitions when the before state is
display:none (either for style contexts coming out of the undisplayed
map or because we have no current style context because an ancestor is
display:none).

The patch makes all of the first set of 14 tests pass.  Without the
patch, most of these tests fail, except for the 4 testing e1 and the
root.

I presume the four tests that pass prior to the patch pass because the
restyle actually occurs and starts the transition (which is stored on
the element) before the style context is destroyed.
2014-08-13 15:39:02 -07:00
L. David Baron
1b0226483c Bug 625289 patch 11 - Call RestyleManager::TryStartingTransition during frame construction. r=heycam 2014-08-13 15:39:02 -07:00
L. David Baron
74207d1830 Bug 625289 patch 10 - Check for difference in HasPseudoElementData before starting transitions. r=heycam 2014-08-13 15:39:02 -07:00
L. David Baron
8a3adaaf25 Bug 625289 patch 9 - Convert nsCSSFrameConstructor::ResolveStyleContext away from early returns. r=heycam 2014-08-13 15:39:02 -07:00
L. David Baron
e191155e27 Bug 625289 patch 8 - Add FIXME comments suggesting additional use of ResolveStyleContext when resolving the root frame. r=heycam
This isn't actually a problem for this patch series because the root
element can't have an ancestor that's reframed because it has no
ancestors, and reframes of the element itself trigger a restyling
operation that does actually start transitions.

That said, later patches in this bug hook in to ResolveStyleContext, and
other things might as well in the future, thus the FIXME.
2014-08-13 15:39:02 -07:00
L. David Baron
b0f54ace4a Bug 625289 patch 7 - Expose TryStartingTransition. r=heycam 2014-08-13 15:39:01 -07:00
L. David Baron
124c99f785 Bug 625289 patch 6 - Store style contexts being reframed in the ReframingStyleContexts struct. r=heycam 2014-08-13 15:39:01 -07:00
L. David Baron
c308c5ad20 Bug 625289 patch 5 - Create a ReframingStyleContexts struct during restyling. r=heycam 2014-08-13 15:39:01 -07:00
L. David Baron
590dd26954 Bug 625289 patch 4 - Add member variable to restyle manager for currently reframing style contexts. r=heycam 2014-08-13 15:39:01 -07:00
L. David Baron
88fff1692f Bug 625289 patch 3 - Add types for storing the style contexts of elements currently being reframed. r=heycam 2014-08-13 15:39:01 -07:00
L. David Baron
c04b04986e Bug 625289 patch 2 - Create wrapper function around the only calling pattern of ComputeStyleChangeFor. r=heycam 2014-08-13 15:39:00 -07:00
L. David Baron
24e4c35bb3 Bug 625289 patch 1 - Add comment about dependence on synchronous frame reconstruction. r=heycam 2014-08-13 15:39:00 -07:00
Ed Morley
f69a81b897 Backed out changeset d24b367f3ac4 (bug 1022818) 2014-08-13 16:30:50 +01:00
Ed Morley
bc53ab2817 Backed out changeset e40ffcb782f8 (bug 1022818) 2014-08-13 16:30:46 +01:00
Kearwood (Kip) Gilbert
3ce8574be4 Bug 1022818 - Part 3: Tests for CSSOM-View Smooth-Scroll DOM API Methods and MSD Animation. r=bz, r=roc
- Verify that instant scroll-behavior is synchronous.
- Verify that smooth scroll-behavior is asynchronous.
- Verify that smooth scroll-behavior is triggered by CSSOM-View DOM methods.
- Verify that instant scroll-behavior interrupts smooth scroll-behavior
  animation.
- Verify that smooth scroll-behavior is not framerate dependant.
- Verify that smooth scroll-behavior physics simulations used by animations
  converge and allow the animation to reach completion.
- CSSOM-View scroll-behavior smooth scroll animations must produce the same
  results indendently of frame-rate:
  - Reference samples of scroll position for each frame are captured from a
    smooth scroll at 120fps for variations in X-Distance, Y-Distance.
  - Test samples are captured from an animation with the same parameters at
    varying framerates.
  - Variance in position at each sampled interval is compared to the 120fps
    reference.  To pass the test, the position of each test sample must match
    the reference position with a tolerance of one test sample frame's range
    of motion.  This range of motion is calculated by the position delta of
    the reference samples one test frame duration before and after.
  - The duration of the reference sample animation and the test sample
    animation must match within 1 frame to pass the test.
  - The simulation driving the animation must converge and stop on the
    destination position for the test to pass.
2014-07-25 14:20:45 -07:00
Kearwood (Kip) Gilbert
a646bb430e Bug 1022818 - Part 2: Implement Smooth Scrolling. r=bz
- Updated ScrollTo method in nsGlobalWindow to accept a
  mozilla::dom::ScrollOptions parameter to select between the instant
  and smooth MSD motion.
- Updated WebIDL binding boilerplate scrolling functions in nsGlobalWindow
  to pass the correct value of mozilla::dom::ScrollBehavior to the
  implementation and functions, activating smooth scrolling.
- These functions will need to be updated again to support the scroll-behavior
  CSS property in Bug 1010538.
2014-07-21 11:19:00 -04:00
Jonathan Watt
143b143594 Bug 1052999 - Stop using FOR_PAINTING in nsSVGForeignObjectFrame::GetInvalidRegion. r=longsonr 2014-08-13 13:36:41 +01:00
Jonathan Watt
e70bd4bb06 Bug 1052913 - Clean up some nsSVGClipPathFrame code and add some documentation to make it clearer. r=dholbert 2014-08-13 13:36:32 +01:00
Jonathan Watt
f428c444a0 Bug 1052910 - Clean up some includes. r=dholbert 2014-08-13 13:34:53 +01:00
Jonathan Watt
142be5700b Bug 1052915 - Stop unnecessarily calling nsSVGUtils::AdjustMatrixForUnits() over and over in nsSVGClipPathFrame. r=longsonr 2014-08-13 13:34:52 +01:00
Julian Seward
f3e97389f2 Bug 1051527 - BackgroundClipState::mHasRounded corners is used uninitialised. r=matt.woodrow.
--HG--
extra : rebase_source : e21c5b9fb2c6ad380f7179d43292bbca032f9c5f
2014-08-13 11:26:33 +02:00
Brian Birtles
51fed648c3 Bug 1052147 - Initialize AnimationPlayer::mPlayState to running state; r=dbaron
The assertion in nsTimeStamp::operator >= occasionally fails due to a null RHS
timestamp when called from AnimationPlayer::GetCurrentTimeDuration, which, in
turn, is called from AnimationPlayer::SetSource.

The issue appears to be that we're not correctly initializing
AnimationPlayer.mPlayState. This value can be running (0) or paused (1) but we
only ever compare against the paused state (i.e. every other value is
effectively treated as running). If we don't initialize this we can end
up in the paused state but with mPauseStart not set to a valid (non-null)
TimeStamp. This creates an inconsistent state since we assume that when we're
paused mPauseStart is non-null, hence the assertion fails.

This gets tickled because, since bug 1040543, we call
AnimationPlayer::SetSource from nsAnimationManager::BuildAnimations *before* we
set mPlayState and mPauseStart.

This patch initializes mPlayState to the running state so we don't accidentally
end up in an inconsistent state.

It also removes some (now unnecessary) initialization of mPlayState and
mPauseStart from nsTransitionManager::ConsiderStartingTransition.

In future we could also consider reworking nsAnimationManager::BuildAnimations
so that we call SetSource on the new animation player *after* setting up its
play state. That may be more correct and would further avoid this problem but
may not be necessary since all that code is likely to change in the near future.
2014-08-13 18:21:45 +09:00
Matt Woodrow
19f7ba2da1 Bug 1019693 - Always use tiled thebes layers when we're a descendant of a layer with a critical display port so that the low-resolution drawing area is handled correctly. r=tn
--HG--
extra : rebase_source : 0dabb9c73d65414979945d0cc46ba8c89d86b90e
2014-08-08 09:12:01 +12:00
Trevor Saunders
434a7cf97c bug 1016545 - Provide an iterator that iterates over all children of an element r=bz 2014-07-16 14:41:57 -04:00
Martijn Wargers
174ea37131 Bug 1032878 - Fix for various failing mochitest-plain/-chrome tests. r=jmaher, r=akachkach, r=surkov, r=cpearce 2014-08-10 20:03:50 -07:00
Ms2ger
f069be120d Bug 1048780 - Call the standard matches() rather than the proprietary mozMatchesSelector(); r=jst
This also includes a test that mozMatchesSelector is still exposed and works.

--HG--
rename : js/xpconnect/tests/chrome/test_mozMatchesSelector.xul => js/xpconnect/tests/chrome/test_matches.xul
rename : js/xpconnect/tests/mochitest/file_mozMatchesSelector.html => js/xpconnect/tests/mochitest/file_matches.html
2014-08-12 14:30:59 +02:00
Matt Woodrow
afb5e3b8c6 Bug 1049450 - Revert pre-rendering heuristic changes from bug 1034247. r=roc
--HG--
extra : rebase_source : c5dd220f5cf6b51a4cb0ef552f792dfcf621445c
2014-08-12 18:02:55 +12:00
Bobby Holley
2157f88dfc Bug 1050049 - Whitelist bindings that we actually expect to use in content. r=smaug 2014-08-11 20:06:55 -07:00
Seth Fowler
93a3083723 Bug 1051147 - Fix overflow area handling in nsTableRowFrame::DidSize. r=smontagu 2014-08-11 16:52:01 -07:00
Seth Fowler
ecf35b9b35 Bug 981924 - Update ReportToConsole calls in layout code to use the right category. r=dbaron 2014-08-11 16:52:01 -07:00
Terrence Cole
255bf6c3fb Bug 1033442 - Remove non-pod calloc from MallocProvider and AllocPolicy; r=jonco 2014-08-05 14:06:35 -07:00
Wes Kocher
0e8de3ce49 Backed out 4 changesets (bug 1032878) for probably introducing a leak, creating a CLOSED TREE
Backed out changeset 780c948d79f3 (bug 1032878)
Backed out changeset 0cfcc44660a8 (bug 1032878)
Backed out changeset 991f8d5da382 (bug 1032878)
Backed out changeset f54984be223e (bug 1032878)
2014-08-11 14:27:57 -07:00
Susanna Bowen
cfb435271a Bug 1039017 - Remove whitespace according to the CSS ruby spec when performing anonymous box generation. r=dholbert,f=bz 2014-08-11 13:07:51 -07:00
Martijn Wargers
b102096d4b Bug 1032878 - Fix for various failing mochitest-plain/-chrome tests. r=jmaher, r=akachkach, r=surkov, r=cpearce 2014-08-10 20:03:50 -07:00
Geoff Brown
c3b12d660f Bug 1042097 - Upload Android tombstones to blobber; r=dminor 2014-08-11 11:55:28 -06:00
Jonathan Kew
fed2e80e73 bug 1048050 - additional reftests to cover cases with and without region subtag. r=smontagu
--HG--
rename : layout/reftests/text-transform/greek-uppercase-1.html => layout/reftests/text-transform/greek-uppercase-1a.html
rename : layout/reftests/text-transform/greek-uppercase-1.html => layout/reftests/text-transform/greek-uppercase-1b.html
rename : layout/reftests/text-transform/irish-lowercase-1.html => layout/reftests/text-transform/irish-lowercase-1a.html
rename : layout/reftests/text-transform/irish-lowercase-1.html => layout/reftests/text-transform/irish-lowercase-1b.html
2014-08-11 09:49:14 +01:00
Jonathan Kew
0297d08f5d bug 1048050 - ignore region (or other) subtags when checking for language-specific casing behavior. r=smontagu 2014-08-11 09:49:11 +01:00
John Daggett
746163730b Bug 1051668 - add testdata for font-variant-alternates. r=mkato 2014-08-11 17:05:01 +09:00
John Daggett
9ada664571 Bug 1051668 - revise gsubtest fonts to include ss22..ss99 feature tags. r=mkato 2014-08-11 17:05:01 +09:00
Timothy Nikkel
7b846aeaf5 Bug 1051097. Set the initial visible rect correctly on the wrap list item stored inside transform display items. r=roc 2014-08-10 21:59:02 -05:00
Brian Birtles
813855dd9b Bug 1040543 part 11 - Make ElementPropertyTransition inherit from Animation instead of AnimationPlayer; r=bz
This patch changes the inheritance of ElementPropertyTransition so that it is
a subclass of Animation not AnimationPlayer.

The only thing special about ElementPropertyTransition is it stores some extra
state for reversing transitions and an extra ValuePortionFor convenience method.
This reversing behavior is implemented by the transition manager by creating
a new AnimationPlayer (i.e. it is *not* a property of the AnimationPlayer). As
a result this extra state can be pushed down to Animation which simplifies the
code significantly.

In future if we implement KeyframeEffect as a separate object we may be able to
push transition-specific state down to KeyframeEffect instead.
2014-08-10 17:06:52 +10:00
Brian Birtles
435e24f424 Bug 1040543 part 10 - Move mIsLastNotification from AnimationPlayer to Animation; r=bz
In this fourth step of dividing functionality between AnimationPlayer and
Animation, we move the mIsLastNotification and related methods/enums from
AnimationPlayer to Animation.

It is somewhat unclear where this belongs. This member is used to determine
which event to send for CSS Animations. The thinking behind moving this to
Animation is that if an animation that has already dispatched its animationstart
event was transferred to a new animation player with a similar current time then
I think it is expected that such an animation would *not* dispatch another
animationstart event. That suggests that event-state is a property of the
Animation not the AnimationPlayer.

Obviously, this needs to be defined somewhere (namely, the CSS Animations <->
Web Animations integration spec likely to become "CSS Animations Level 4"). Once
that behavior is agreed upon, if AnimationPlayer proves to be the more suitable
home for this member then it should be relatively straightforward to move the
member back at that time.
2014-08-10 17:06:51 +10:00
Brian Birtles
7cc2fe6201 Bug 1040543 part 9 - Move IsFinishedTransition from AnimationPlayer to Animation; r=bz
As the third step in dividing functionality between AnimationPlayer and
Animation this patch moves the mIsFinishedTransition member and related methods
from AnimationPlayer to Animation.

At the same time we rename SetFinishedTransition to SetIsFinishedTransition.
2014-08-10 17:06:51 +10:00
Brian Birtles
eee37dc2bd Bug 1040543 part 8 - Move timing parameters from AnimationPlayer to Animation; r=bz
As the second step in dividing functionality between AnimationPlayer and
Animation, this patch moves the AnimationTiming member from AnimationPlayer to
Animation.

Most of this patch is simply moving code around. However, one significant
functional difference is that Animation::GetLocalTime() uses the mParentTime
member which is set when the Animation is updated by the player it is attached
to.

Other less significant differences are:

* AnimationPlayer::GetLocalTime is renamed to GetCurrentTimeDuration
  In Web Animations, animation players have a (writeable) "current time" and
  animations have a (read-only) "local time".
  We would call the method simply "GetCurrentTime" (instead of
  "GetCurrentTimeDuration") but GetCurrentTime is the name of the method used in
  the content-facing API where it returns a double.

* "IsCurrent" is defined on both AnimationPlayer and Animation with the version
  in AnimationPlayer serving mostly as a convenience shortcut to the version on
  Animation.

* Animation::GetComputedTiming (previously on AnimationPlayer) now makes the
  timing parameter optional since most of the time it is not needed.
2014-08-10 17:06:50 +10:00
Brian Birtles
a66a1ea7b5 Bug 1040543 part 7 - Move keyframe properties from AnimationPlayer to Animation; r=bz
As the first step in dividing the functionality currently contained in
AnimationPlayer between AnimationPlayer and Animation this patch moves the set
of keyframe properties to the Animation.

These properties are returned from the Animation by a couple of Properties()
methods that provide direct access to the member variable. In future it is
anticipated that the non-const version will be replaced with an appropriate
setter function. This will likely happen when we implement a separate
KeyframeEffect object as defined by the Web Animations API.

With regards to error checking, nsAnimationManager checks the result of
AnimationPlayer::GetSource() and handles the case where it is nullptr.
nsTransitionManager, however, simply asserts that GetSource() is never null much
like it also asserts that there is only one property with one segment in the
animation. Eventually this code should be made more generic which will probably
happen in bug 999927.
2014-08-10 17:06:49 +10:00
Brian Birtles
cbee07055c Bug 1040543 part 6 - Rename mAnimations to mPlayers and likewise for similar local variables; r=bz
Now that we have both AnimationPlayer and Animation in use we need to clarify
which object we are referring to. This patch renames a number of member and
local variables to better reflect whether they point to an AnimationPlayer or an
Animation.

This patch is mostly renaming only with one exception. Since we are touching
a number of local variables used in loops (for looping over the array of
animation players) we take the opportunity to replace a number of instances of
uint32_t with size_t since that is the preferred type for array indices now.
2014-08-10 17:06:48 +10:00
Brian Birtles
9403f55c91 Bug 1040543 part 5 - Pass down time from AnimationPlayer to Animation; r=bz
This patch makes AnimationPlayers pass their current time down to the Animation
they are playing.

Since all Animations need from their players is their time, this avoids adding
a pointer back to their AnimationPlayer.
2014-08-10 17:06:48 +10:00