Граф коммитов

6953 Коммитов

Автор SHA1 Сообщение Дата
Nicholas Nethercote df1c26a45e Bug 1057912 - Privatize most of PLDHashTable's fields. r=roc.
--HG--
extra : rebase_source : 0f55e70b63d9c191fbd9418cb1177ff534deeed9
2014-08-25 16:56:33 -07:00
Ryan VanderMeulen a19bf3acbf Backed out 5 changesets (bug 965022) for mochitest-2 failures on a CLOSED TREE.
Backed out changeset 7f68752ffe1e (bug 965022)
Backed out changeset 24251d4da019 (bug 965022)
Backed out changeset a34ae046c947 (bug 965022)
Backed out changeset f747fd154739 (bug 965022)
Backed out changeset f076faf3c282 (bug 965022)
2014-08-26 16:02:37 -04:00
Botond Ballo c8e5c6df06 Bug 965022 - Use MOZ_FORMAT_PRINTF for nsTString::AppendPrintf, and fix incorrect usages. r=jrmuizel 2014-08-26 12:05:41 -04:00
Botond Ballo e9b504cd9e Bug 965022 - Use MOZ_FORMAT_PRINTF for [f]printf_stderr, and fix incorrect usages. r=jrmuizel 2014-08-25 18:28:25 -04:00
Max Vujovic 2782960f7a Bug 1057900 - Resolve calc values for CSS blur() in nsRuleNode instead of storing them. r=dbaron,mstange 2014-08-26 11:11:45 -07:00
L. David Baron c1d3740db7 Bug 839812 - Add clip-path style for fullscreen override, which was probably originally intended ("SVG masking, clipping, or filtering"). r=dholbert 2014-08-25 15:32:03 -07:00
Max Vujovic 0318c98055 Bug 1057674 - Unget the token when parsing the filter property expects a function but doesn't find one. r=dbaron 2014-08-25 13:25:08 -07:00
Birunthan Mohanathas 77bfad00a6 Bug 1045801 - Rename SafeCast to AssertedCast. r=Waldo 2014-08-25 12:17:32 -07:00
Daniel Holbert acf9313ae5 Bug 1055977 part 1: Use !important (and 'initial') in full-screen-override.css, to more thoroughly prevent ancestors of a fullscreen element from creating stacking contexts. r=dbaron 2014-08-24 22:11:15 -07:00
L. David Baron 7465178016 Bug 1057129 patch 3 - Post restyles from CheckAnimationRule directly to pseudo-elements. r=birtles
This matches patch 2, and also fixes an incorrect use of eRestyle_Self
on the parents of pseudo-elements in order to restyle those
pseudo-elements, where it would not previously have been effective.

This should all be temporary, since this code can go away with bug
960465, when animation phases are removed.
2014-08-24 21:48:22 -07:00
L. David Baron 50ba17c1ca Bug 1057129 patch 2 - Post all animation restyles directly to pseudo-elements. r=birtles
This (like patch 1) posts restyles directly to the pseudo-element
content nodes, which is a new thing as of this bug.  Previously we'd
have posted eRestyle_Subtree restyles to the pseudo element's real
element (i.e., the parent of the pseudo-element content node).

This changes the way we post animation restyles for ::before and ::after
pseudo-elements with animations on them.
2014-08-24 21:48:22 -07:00
L. David Baron 26e0764f33 Bug 1057129 patch 1 - Make AddStyleUpdatesTo handle pseudo-elements. r=birtles
This (like patch 2) posts restyles directly to the pseudo-element
content nodes, which is a new thing.

This isn't needed right now since AddStyleUpdatesTo is currently only
used when updating main-thread-suppressed animations running on the
compositor.  However, it will be needed once we depend on
AddStyleUpdatesTo for bug 960465.  And it will have an effect now since
AddStyleUpdatesTo actually adds all animations rather than only the ones
that are suppressed from running on the main thread.
2014-08-24 21:48:22 -07:00
Brian Birtles 058b40127c Bug 1045993 part 2 - Move the animation name from AnimationPlayer to Animation; r=dbaron
This patch stores the animation name on the Animation object rather than its
AnimationPlayer. This is because Animation objects don't have a reference to
their AnimationPlayer but their AnimationEffect needs access to the animation
name.

This patch also adds an accessor for AnimationPlayer to get the name from its
Animation (since players *do* have a reference to their source animation
content).
2014-08-22 13:42:48 +01:00
Trevor Saunders fd5e9d1fcc bug 1047696 - mark a number of classes MOZ_FINAL to get compilers to devirtualize more r=froydnj 2014-08-05 13:33:55 -04:00
Daniel Holbert d00099acbd Bug 1056864: In ParseGridLine, use Maybe<int32_t> instead of separate bool & integer. r=SimonSapin 2014-08-21 15:56:40 -07:00
Max Vujovic 4c4ed2fc92 Bug 948265 - Add CSS saturate filter to nsCSSFilterInstance. r=mstange,dbaron 2014-08-20 17:52:28 -07:00
Max Vujovic 891ddf7cb3 Bug 948265 - Add CSS hue-rotate filter to nsCSSFilterInstance. r=mstange,dbaron 2014-08-20 15:46:59 -07:00
L. David Baron be148c11c3 Bug 1048838 - Add mochitest for transitions and restyles. No review.
The third test fails without the patch, and passes with the patch.
2014-08-20 14:57:21 -07:00
Brian Birtles d9ac434bd9 Bug 1048838 - Properly invalidate the style rule in nsTransitionManager::StyleContextChanged. r=dbaron
This patch fixes a regression from
https://hg.mozilla.org/mozilla-central/rev/31695984cfe2 (bug 1025709). That
patch replaced the EnsureStyleRuleFor method on ElementTransitions and
ElementAnimations with a common method in CommonElementAnimationData.

ElementTransitions::EnsureStyleRuleFor would create a new style rule if
there was no style rule (mStyleRule == nullptr) or if the refresh time was
old (mStyleRuleRefreshTime != aRefreshTime).

ElementAnimations::EnsureStyleRuleFor, however, would create a new style rule
only if mStyleRuleRefreshTime was null or old since a null style rule may
still be valid for animations (unlike transitions). If we bail as soon as we
a null style rule we would never update mNeedsRefreshes when the animation
finishes.

The unified version of EnsureStyleRuleFor in CommonElementAnimationData
adopted the behavior from ElementAnimations checking for a null or old
mStyleRuleRefreshTime.

However, nsTransitionManager::StyleContextChanged sets mStyleRule to nullptr
to indicate that we need to generate a new style rule. This means that we
will fail to create a style rule for the transition in some cases.

This patch addresses this by making nsTransitionManager::StyleContextChanged
set mStyleRuleRefreshTime to a null timestamp. Setting mStyleRule to nullptr
is no longer necessary since EnsureStyleRuleFor will do this when necessary
and nsTransitionManager::mStyleRule is only used after calling
EnsureStyleRuleFor.
2014-08-12 16:57:21 +09:00
Daniel Holbert 098b729147 Bug 1041951 followup: Fix broken comparison against NS_FONT_VARIANT_CAPS_SMALLCAPS, to use != instead of negation. r=dbaron 2014-08-20 11:07:26 -07:00
Ting-Yu Lin aecd542da9 Bug 1054889 - Update images for touch caret and selection carets. r=roc, f=mtseng, ui-r=chuang
Update images provided in bug 1024930, and make touch caret uses the
same images as selection carets.
2014-08-19 01:34:00 -04:00
John Daggett 0e566c376b Bug 975744 - remove font features pref and enable features by default. r=dbaron 2014-08-20 16:54:35 +09:00
John Daggett 994206ee82 Bug 1041951 - rework computed value of font-variant to support only 2.1 values. r=dbaron 2014-08-20 16:54:27 +09:00
John Daggett 5ab27c310b Bug 1041951 - parse font-variant as a shorthand for font feature subproperties. r=dbaron 2014-08-20 16:54:25 +09:00
Ehsan Akhgari 5833657423 Bug 1055519 - Fix some more bad implicit constructors in layout and widget; r=roc 2014-08-20 00:58:22 -04:00
Matt Woodrow b66e142f4a Bug 781701 - Interpolate rotate3d rotation angles numerically when we can instead of using matrix decompositon. r=dbaron 2014-08-19 15:58:17 +12:00
Daniel Holbert d8ac5e4a47 (no bug) Fix incorrect indentation in nsComputedDOMStyle::DoGetMixBlendMode. whitespace-only, DONTBUILD 2014-08-18 15:20:02 -07:00
Aryeh Gregor 60fbc97021 Bug 1053190 - Reduce unnecessary inclusion of nsINode.h in headers; r=ehsan 2014-08-18 17:44:50 +03:00
Ed Morley 5559ec0293 Backed out changeset f4b101378a07 (bug 1021527) by request 2014-08-15 16:14:42 +01:00
John Daggett c89334b523 Bug 1053114 - fix serialization of shorthands with token value subproperties. r=heycam 2014-08-14 21:36:25 +09:00
John Daggett a6d33c86fd Bug 1053114 - test other shorthands affected by variable usage. r=heycam 2014-08-14 21:36:25 +09:00
Seth Fowler 983a3f905a 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 0795fbed25 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 fd2736dc52 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 7ddcba2342 Bug 625289 patch 10 - Check for difference in HasPseudoElementData before starting transitions. r=heycam 2014-08-13 15:39:02 -07:00
Brian Birtles c9b30cafe3 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
Ms2ger 5b546538b2 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
Bobby Holley af0cdef94f Bug 1050049 - Whitelist bindings that we actually expect to use in content. r=smaug 2014-08-11 20:06:55 -07:00
Terrence Cole a6741673cf Bug 1033442 - Remove non-pod calloc from MallocProvider and AllocPolicy; r=jonco 2014-08-05 14:06:35 -07:00
Brian Birtles 1e9fc689ae 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 264bff6b41 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 46562ab4f3 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 2520d366a6 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 8088c0320d 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 b57ec6a9c0 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 249039905a 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
Brian Birtles 8f9311bf63 Bug 1040543 part 4 - Create Animation objects and set on AnimationPlayer; r=bz 2014-08-10 17:06:47 +10:00
Brian Birtles d3002fb8dd Bug 1040543 part 2 - Rename ElementAnimationCollection to AnimationPlayerCollection; r=bz 2014-08-10 17:06:46 +10:00
Brian Birtles 0c90999575 Bug 1040543 part 1 - Move/Rename ElementAnimations to dom::AnimationPlayer; r=bz
This patch renames mozilla::ElementAnimations to mozilla::dom::AnimationPlayer
and moves the code from layout/style/AnimationCommon.cpp to
dom/animation/AnimationPlayer.cpp.

It also moves various helper classes needed by AnimationPlayer to
AnimationPlayer.cpp and moves them from the mozilla::css namespace to the
mozilla namespace.

Beyond that, there are no functional changes contained in this patch.

The renaming of various members and variables that used to refer to
ElementAnimation objects but now refer to AnimationPlayer objects--to give them
a more appropriate name--is performed in a subsequent patch.

--HG--
rename : layout/style/AnimationCommon.cpp => dom/animation/AnimationPlayer.cpp
rename : layout/style/AnimationCommon.h => dom/animation/AnimationPlayer.h
2014-08-10 17:06:44 +10:00
Ryan VanderMeulen 407f12eec4 Backed out changesets 6ee4b6cc240c, a818fd0874fe, and 70803a5f4683 (bug 1033442) for multiple crashtest oranges. 2014-08-08 21:54:58 -04:00