Commit Graph

4186 Commits

Author SHA1 Message Date
Brian Grinstead
a4b54ccb8b Bug 1037519 - Allow matching pseudo-elements in inIDOMUtils.selectorMatchesElement. r=bz 2014-07-18 14:30:00 -04:00
L. David Baron
fe52357edf Bug 1040386: Fix hopefully-harmless CSS syntax error in isOMTAWorking(). r=birtles
I noticed this in the logs of a B2G emulator mochitest run.
2014-07-18 21:22:20 -07:00
L. David Baron
e2cf09f168 Bug 1041060: Use AllocateByObjectID/FreeByObjectID for nsInheritedStyleData and nsResetStyleData. r=heycam
This is similar to bug 1038488, which did the same for style structs.
This means the entire path from frame to style struct should be
allocated using frame IDs or object IDs.
2014-07-18 21:22:20 -07:00
Michael Ratcliffe
4969ae2773 Bug 1035106 - Add new APIs to DOMUtils: colorToRGBA, isValidCSSColor & cssPropertyIsValid r=bz 2014-07-17 15:08:07 +01:00
Ahmed Kachkach
68c23f6dff Bug 886570 - Initial integration of structured logs in mochitest; r=ahal,Ms2ger 2014-07-17 09:02:00 +02:00
Brian Birtles
1b647974c5 Bug 1038032 part 2 - Add test case for overflowing TimeDuration; r=dholbert 2014-07-18 10:31:18 +09:00
Brian Birtles
22fb85ab54 Bug 1038032 part 1 - Add temporary workaround to avoid overflow when calculating the active end of an animation; r=dholbert 2014-07-18 10:31:17 +09:00
Chris Lord
d54493310a Bug 1038781 - Don't reflow/repaint frame when clip changes. r=roc
If an element's existing clip changes, just update overflow areas and let
DLBI handle invalidation.
2014-07-16 13:28:50 +02:00
Brian Birtles
07325fcbbf Bug 1037314 - Include animation-play-state in animation shorthand; r=dbaron
This patch is basically a reversal of attachment 530792 from bug 654890.
2014-07-17 10:04:56 +09:00
L. David Baron
47535266ed Bug 1038488 patch 3 - Use AllocateByObjectID/FreeByObjectID for style structs. r=heycam 2014-07-15 22:27:13 -07:00
L. David Baron
84da8eeaa5 Bug 1038488 patch 2 - Remove memset from the operator new of the 4 style structs that have it. r=heycam
This also moves those 4 operator new methods to be inline to match the
style of all of the others.

I audited that all the members of these structs are initialized by all
their constructors (see patch 1).
2014-07-15 22:27:12 -07:00
L. David Baron
8be7bc4467 Bug 1038488 patch 1 - Explicitly initialize nsStyleMargin::mCachedMargin and nsStylePadding::mCachedPadding so that it is clear all members of nsStyleFont, nsStyleMargin, nsStylePadding, and nsStyleBorder are explicitly initialized. r=heycam
While nsMargin does 0-initialize, it's not necessarily obvious that it
does, and I think it's worth making explicit.
2014-07-15 22:27:12 -07:00
L. David Baron
ecd4ba7a2e Bug 1030604 - Use nsChangeHint_UpdateOverflow for clip-path and mask changes so we update the PreEffectsBBoxProperty and run the effect on the correct area. r=roc
The testcase is a slight simplification of dholbert's testcase 2
(attachment 8456312) in the bug.  It fails in the reftest harness
without the patch, and passes in the reftest harness with the patch.
2014-07-15 22:27:12 -07:00
Cameron McCormack
7b2ef56dd0 Bug 1039151 - Replace space-wasting use of DebugOnly<> in CSSVariableResolver with #ifdef DEBUG. r=dbaron 2014-07-16 15:24:04 +10:00
Brian Birtles
885d6252c1 Bug 1036300 - Expose AnimationPlayer.timeline; r=bz 2014-07-16 09:02:33 +09:00
Brian Birtles
8c171ff8b2 Bug 1036287 part 6 - Add a GetComputedTiming shortcut that uses the current animation timeline time; r=dholbert
This patch introduces a method GetComputedTiming that calls GetComputedTimingAt
supplying the current time of the animation's timeline.

We still keep the GetComputedTimingAt static method since it is used for
off-main thread animation. Furthermore, we keep the second argument to
GetComputedTiming--the animation's timing properties--since on some occasions we
want to override those properties (ElementPropertyTransition::ValuePortionFor
does this). We could also add another overload that also supplies the
animation's timing properties but that can happen as a separate step.
2014-07-16 09:02:33 +09:00
Brian Birtles
bd6a5ac2de Bug 1036287 part 5 - Drop aTime param from IsRunning(At) and IsCurrent(At), since they now use the current timeline time; r=dholbert 2014-07-16 09:02:33 +09:00
Brian Birtles
cb1c2b8db6 Bug 1036287 part 4 - Make GetLocalTime(At) get the current time automatically from the timeline; r=dholbert
This patch changes ElementAnimation::GetLocalTimeAt so that instead of taking
the current time as input, it uses the animation's mTimeline member to look up
the current time of the associated timeline. As a result of this, it is possible
to remove a few instances of querying the refresh driver for the current time.
Further instances are removed in subsequent patches.

Furthermore, in order to keep the use of time sources consistent, the mStartTime
of new transitions and animations is initialized with the current time from the
animation's timeline rather than with the latest refresh driver tick.
Since this time could, in future, be null, GetLocalTime(At) is updated to check
for a null start time.

GetLocalTimeAt is also renamed to GetLocalTime in the process.
2014-07-16 09:02:32 +09:00
Brian Birtles
00b3f67470 Bug 1036287 part 3 - Make GetLocalTimeAt return a nullable time duration; r=dholbert
Once we support arbitrary timelines which can return null current time values,
the local time of an animation can also become null so this patch updates
ElementAnimation::GetLocalTimeAt to return a Nullable<TimeDuration>.
Doing this also allows us to pass the result of GetLocalTimeAt directly to
GetComputedTimingAt.
2014-07-16 09:02:32 +09:00
Brian Birtles
3d5b51ab69 Bug 1036287 part 2 - Make GetComputedTimingAt take a nullable local time; r=dholbert
As part of supporting arbitrary timelines, we'd like to pass null times to the
function that calculates computed timing. Incidentally, this also provides
a means for evaluating calculating timing parameters that are independent of the
current time (currently only the active duration) without requiring a valid
time.

This patch updates the signature of ElementAnimation::GetComputedTimingAt to
take a nullable time duration.

We use the Nullable wrapper to represent null TimeDurations since, unlike,
TimeStamp, TimeDuration does not include a null state.
2014-07-16 09:02:32 +09:00
Brian Birtles
adc58299de Bug 1036287 part 1 - Add a null animation phase; r=dholbert
In order to support arbitrary timelines which may provide a "null" current time,
we need a suitable value to return from GetComputedTimingAt for the animation's
phase when the timeline time is null.

This patch introduces a null animation phase for this purpose.
2014-07-16 09:02:32 +09:00
Brian Birtles
04e0f33548 Bug 1032573 part 5 - Add GetAnimationPlayers to Element; r=bz
This patch adds the WebIDL definitions and implementation of
getAnimationPlayers on Element.

It does not include the full definition of AnimationPlayer but only readonly
versions of the currentTime and startTime attributes since these are easy
to implement and enable identifying the different animations that are returned
for the sake of testing.

Web Animations defines getAnimationPlayers as only returning the animations that
are either running or will run in the future (known as "current" animations).
This will likely change since it seems desirable to be able query animations
that have finished but are applying a forwards fill. For now, however, this
patch makes us only return animations that have not finished.

This patch also removes an assertion in ElementAnimation::GetLocalTime that
would fail if called on a finished transition. This assertion is no longer
necessary since an earlier patch in this series removed the overloading of
the animation start time that meant calling this on a finished transition
was unsafe. Furthermore, this assertion, if it were not removed, would fail
if script holds onto a transition and queries its start time after it
completed.
2014-07-16 09:02:31 +09:00
Brian Birtles
928bc914e9 Bug 1032573 part 2 - Add a timeline member to ElementAnimations; r=dbaron
When we expose ElementAnimation objects to script they need to have a parent
object so they can be associated with a Window.

This patch adds a pointer from an ElementAnimation to its AnimationTimeline.
2014-07-16 09:02:30 +09:00
Brian Birtles
f05c94c274 Bug 1032573 part 1 - Don't overload start time for marking finished transitions; r=dbaron
When transitions finish, we keep them around for one additional throttle-able
tick to provide correct behavior for subsequent transitions that may be
triggered. Prior to this patch we did this by overloading the start time of the
animation and setting it to null in this case.

However, if we begin returning ElementAnimation objects to script, script can
hold on to those objects and query their start time even after they are
finished. Therefore we need another means of marking finished transitions that
doesn't clobber the start time field.

This patch introduces a new boolean member for marking such transitions.

While we're touching IsFinishedTransition we also take the chance to tidy up one
of the call sites, namely IsCurrentAt, to make the logic a little easier to
follow.
2014-07-16 09:02:29 +09:00
Bobby Holley
38181bf65d Bug 987678 - Stop doing all the crazy stuff in xbl-marquee. r=bz 2014-07-15 12:23:43 -07:00
Ting-Yu Lin
c3f651ea76 Bug 1021527 - Fix blurry carets by using svg image. r=roc
* Replace png images with svg images for touch caret and selection
  carets.
* Fix touch caret is enlarged on high resolution device due to
  background-size was not set.
2014-07-14 23:08:00 +02:00
Gabriel Luong
0db3e380b1 Bug 591303 - Part 3: Set line and column number for all rules in nsCSSParser. r=bz 2014-07-14 15:57:54 -07:00
Birunthan Mohanathas
ad2cce83e8 Bug 591303 - Part 2: Add getCSSRule function to nsIDOMCSSRule. r=bz 2014-07-14 15:57:46 -07:00
Gabriel Luong
53f4caf2b6 Bug 591303 - Part 1: Move mLineNumber, mColumnNumber, and mWasMatched from StyleRule to Rule. r=bz
Also, pass the line/column number through the constructor rather than through a separate function.
2014-07-14 15:57:02 -07:00
Mats Palmgren
d4fa1d8a04 Bug 637242, patch 3 of 3: crashtest. r=dbaron 2014-07-13 13:01:44 +00:00
Mats Palmgren
94e0905223 Bug 637242, patch 2 of 3: Make nsRuleNode::Sweep nonrecursive to avoid stack exhaustion crashes. r=dbaron 2014-07-13 13:01:44 +00:00
Mats Palmgren
3e8f0d915b Bug 637242, patch 1 of 3: Fix ref-counting bug. r=dbaron 2014-07-13 13:01:43 +00:00
Carsten "Tomcat" Book
f0569c8ad2 Backed out changeset cf85693280c7 (bug 886570) frequent mochitest-3 errors on windows 2014-07-11 14:15:29 +02:00
Ahmed Kachkach
c4872d76ea Bug 886570 - Initial integration of structured logs in mochitest. r=ahal,Ms2ger 2014-07-10 13:33:00 +02:00
Boris Zbarsky
5e12c9a56f Bug 965413 part 11. Use a LoadInfo as needed for loading stylesheets. r=smaug 2014-07-10 02:56:38 -04:00
Cameron McCormack
c811f2428c Bug 1031187 - Part 2: Use family name from proxy rather than gfxMixedFontFamily when logging. r=jdaggett 2014-07-09 17:08:55 +10:00
Cameron McCormack
33a40a5ee5 Bug 1031199 - Followup to fix style constant typo. 2014-07-09 17:08:45 +10:00
Tom Schuster
a86e640326 Bug 1024707 - Test. r=bz 2014-07-09 11:43:33 +02:00
Carsten "Tomcat" Book
c2f4620fc5 Backed out changeset 37683ae1953f (bug 1031199) for crashtest bustage on Linux Opt on a CLOSED TREE 2014-07-09 13:44:42 +02:00
Carsten "Tomcat" Book
ed60ddd832 Backed out changeset dc4ff3a5afd1 (bug 1031187) 2014-07-09 13:44:11 +02:00
Carsten "Tomcat" Book
f4ea185afa Backed out changeset f213b3135312 (bug 1024707) 2014-07-09 13:18:47 +02:00
Cameron McCormack
09dc53b8b2 Bug 1031187 - Part 2: Use family name from proxy rather than gfxMixedFontFamily when logging. r=jdaggett 2014-07-09 21:04:14 +10:00
Cameron McCormack
2d8929449a Bug 1031199 - Followup to fix style constant typo. 2014-07-09 21:03:19 +10:00
Tom Schuster
21421de5f8 Bug 1024707 - Test. r=bz 2014-07-09 11:43:33 +02:00
Brian Birtles
cd38f4d2f0 Bug 1033881 part 1 - Don't generate animations when the animation-name doesn't match; r=dbaron
When animation-name does not match a keyframes rule, we should not dispatch
animation events as per:

  "Any animation for which both a valid keyframe rule and a non-zero duration
  are defined will run and generate events; this includes animations with empty
  keyframe rules."
  http://dev.w3.org/csswg/css-animations/#events

Since bug 1004377, however, we started dispatching events in this case because
we no longer ignore animations whose set of keyframes is empty.

This patch checks for a matching keyframes rule in BuildAnimations and if one is
not found, no corresponding animation is generated.
2014-07-09 09:13:33 +09:00
Benoit Jacob
79c308b707 Bug 1035394 - Fix dangerous public destructors in layout - r=dbaron 2014-07-08 17:23:18 -04:00
Cameron McCormack
848ba0baa7 Bug 1034803 - Treat local(serif) as an invalid value in descriptor_database.js. r=dbaron 2014-07-08 10:17:19 +10:00
Cameron McCormack
c5b5f9ebf6 Bug 1031153 - Move unicode-range descriptor serialization to nsStyleUtil. r=dbaron 2014-07-04 11:19:33 +10:00
Robert Longson
f11fe57907 Bug 556441 - Interpolation fails for stroke-width and stroke-dashoffset when animating between unitless values & values with units. r=dbaron 2014-07-03 20:05:43 +01:00
Brian Birtles
aa6189d49d Bug 1010067 - Whitespace fix to nsTransitionManager::FlushTransitions. No review.
This change was suggested in bug 1010067 comment 22 but somehow ended up in the
wrong patch when pushing.
2014-07-03 09:04:35 +09:00