We need an FFI, Gecko_StyleTransition_SetUnsupportedProperty, to set the
mProperty and mUnknownProperty of StyleTransition. In Servo, we put
non-animatable, custom, and unrecognized property together, so this FFI
should look up the nsCSSPropertyID of the input string, and then store the
value and the unknown property string (if any) back to StyleTransition.
MozReview-Commit-ID: 4iZNKXNSrzj
--HG--
extra : rebase_source : 088daa620133418afdc6b1c97b6e90ceb7cf3b75
1. add binding functions for -moz-border-*-colors support.
In Gecko, we use double pointers to nsBorderColors to store -moz-border-*-colors.
The computed values of -moz-border-*-colors are set by couple member functions.
To pass the computed value from Servo to Gecko, we need support for these member
functions as well. So, I'm adding some binding functions in this patch. The
actual use of these bindings to pass/store the computed values is separated
in the following patch, which should be a pure Servo change. See servo PR:
https://github.com/servo/servo/pull/16586.
2. update test expectations for -moz-border-*-colors support.
Note that with the support of -moz-border-*-colors, 165 mochitests and 17 reftests
could be fixed.
MozReview-Commit-ID: KDbp8C6Aoqd
--HG--
extra : rebase_source : 7d9675d9ece091ea6957dcae7d28c39066e69035
We add these FFIs for retrieving the existing transitions, so we can
reduce the false alarms of triggering transitions from Servo:
1. Gecko_ElementTransitions_Length
2. Gecko_ElementTransitions_PropertyAt
3. Gecko_ElementTransitions_EndValueAt
MozReview-Commit-ID: 9eLd8fxmNd9
--HG--
extra : rebase_source : 0ea23dd7f48dbdc1f31a83244ab1dfaf1b20a321
Add one FFI, Gecko_ElementHasCSSTransitions, to check if there is any
transition in CSSTransitionCollection. This will be used to check if we need
to update transition and if we should compute the after-change style.
MozReview-Commit-ID: 7xP4SdxNp7g
--HG--
extra : rebase_source : dbc4941151835c2f1c3596a6baaef77b2198890c
Rename UpdateTransitions as DoUpdateTransitions, and add a public
method, UpdateTransitions for stylo.
MozReview-Commit-ID: 7UiGzFsGZC4
--HG--
extra : rebase_source : a1e6a1efda9fc324ba50e5a17c122d6daf1b5b01
For image-orientation property, we use methods of nsStyleImageOrientation
struct to create/set its computed value. Adding these binding functions
could let us reuse these methods for transferring computed values from Servo
side to Gecko.
The actual changes for the calling these binding functions to do the glue things
for Stylo is in a separate following patch, which should be pure Servo changes.
MozReview-Commit-ID: 9MuICVgdxNw
--HG--
extra : rebase_source : e1fbcc3445b7a1d1deb18d204f4b8f60d7356b08
CLOSED TREE
Backed out changeset 1cce9249b4a2 (bug 1351200)
Backed out changeset 792fb55377f5 (bug 1351200)
Backed out changeset 767bee78574c (bug 1351200)
This patch does the following in addition to a simple move:
* change the type of the pointers from RefPtr to nsCOMPtr
* move it from mozilla::css namespace to mozilla
MozReview-Commit-ID: 72MYq6kWm4s
--HG--
extra : rebase_source : 400fe0d7cc422f22592c302cfd4e457830b77e3e
mBaseStyleValuesForServo is a nsRefPtrHashtable<nsUint32HashKey, RawServoAnimationValue>
In this patch, we use void* instead of exposing nsRefPtrHashtable in FFI
because we just use the hash table as an argument of a C++ function, it means
we don't touch the hash table in Rust at all.
MozReview-Commit-ID: 1wM6NeF2S0t
--HG--
extra : rebase_source : 17908ff84d061e189f21641bf660dc9720b964bc
Two functions added in this patch get progress value from ComputedTiming
or get the position in a given AnimationPropertySegment.
Without these FFIs, we need to expose Maybe<> and Nullable<> and handle
them in Rust.
MozReview-Commit-ID: IXYWlqEQyVR
--HG--
extra : rebase_source : 8cc4d03f718cc13abfcb9c9af700bae7082bbf31
This is necessary because if we pass in the import rule, we would need
to invoke Servo_ImportRule_GetSheet to get the child sheet. However,
Servo_ImportRule_GetSheet tries to lock the global rwlock with read
access, while Servo_CssRules_InsertRule has already locked the same
rwlock with write access for the CSSOM case.
Since the import rule itself is never needed in the code path, it is
easier to just pass in the child stylesheet.
MozReview-Commit-ID: 4njNyGniPIm
--HG--
extra : rebase_source : ad88929713fdc5a581addc044094fa8130125121
This also removes the TABLE_ATTRS_DIRTY optimization. Constructing nsMappedAttributes isn't really expensive and we do it all the time anyway.
MozReview-Commit-ID: 2krt1nFUzgl
--HG--
extra : rebase_source : 18d400aed6f427e5efc503b87b6ee2d9af74f3f5
Also implements :link, :visited, and :any-link more efficiently, and stops
matching :-moz-read-only in everything that is not read-write, which is kind of
dumb, and probably creates some artifacts.
MozReview-Commit-ID: 6BQqi7nAWdT
--HG--
extra : rebase_source : 39dc6b481b3a92942dc3732990d8b9040d8e6d84
The UpdateAnimationsTasks is a bitflags and each bit is generated from
Gecko's UpdateAnimationsTasks (enum class) values for matching values
between C++ and Rust. For this reason, the bitflags is annotated as
(feature = "gecko"), as a result update_animations() which uses this bitflags
also became gecko-only function.
MozReview-Commit-ID: AfQd0FJGkYd
--HG--
extra : rebase_source : 2a5fee40c57a7941defa447357915756af42bc11
If an element has any type of animations in match_elements(), we need to call
UpdateEffectProperties() to update KeyframeEffectReadOnly::mProperties.
MozReview-Commit-ID: 1CDhwoM2llE
--HG--
extra : rebase_source : f2c476d579019079702b01fec375f75b4594dee9