Commit Graph

1144 Commits

Author SHA1 Message Date
Andreea Pavel
dbd394ae9e Backed out 2 changesets (bug 1504065) for failing Win reftest at child-in-animating-element-display-none.html on a CLOSED TREE
Backed out changeset 129188370231 (bug 1504065)
Backed out changeset 359e81b35cfb (bug 1504065)
2018-11-27 15:33:29 +02:00
Hiroyuki Ikezoe
b0ee38c41e Bug 1504065 - Support background-color animations on the compositor for nsIDOMWindowUtils::GetOMTAValue. r=birtles
Depends on D13001

Differential Revision: https://phabricator.services.mozilla.com/D13002
2018-11-27 09:27:22 +00:00
Kristen Wright
7d1c6ec488 Bug 1460439 - Conversion from NS_STYLE_BORDER_STYLE_* macro to StyleBorderStyle::* enum class r=emilio
Converted NS_STYLE_BORDER_STYLE_* consts to enum class. Updated corresponding values to enum class. reduced BCCornerInfo struct values to fit StyleBorderStyle values inside struct. Added defaults to switches that do not fully cover all instances of StyleBorderStyle.
2018-11-07 11:56:17 -08:00
Emilio Cobos Álvarez
78bbe56955 Bug 1507305 - Use Servo to serialize most of the already-exposed shorthands. r=heycam
Skip mask and text-decoration for now since there's a single test-case failing
for each that seem worth fixing in a different bug:

 * For mask, there's the case of setting mask: url(foo.svg#bar), which we test
   we serialize absolutely. But given we're uncomputing it we don't serialize
   the resolved URL. Chrome doesn't either so we could just change the test, but
   even if we decided to do it we probably should do it in a separate bug.

 * For text-decoration, we need to resolve the value, when it's an interpolation
   between currentcolor and other color. Right now that returns the empty string
   which is not great:

     https://searchfox.org/mozilla-central/rev/d850d799a0009f851b5535580e0a8b4bb2c591d7/servo/components/style/values/specified/color.rs#194

   So I need to come up with something. Probably we need to implement the "hard"
   version of the serialization code that doesn't reuse the animation machinery.

   Definitely a separate bug though.

While at it, also serialize all <position> longhands with Servo, so that I can
clean up the tests.

Differential Revision: https://phabricator.services.mozilla.com/D11948
2018-11-15 04:10:08 +00:00
Emilio Cobos Álvarez
1268c2c3ad Bug 1433439 - Don't expose non-content-accessible pseudo-elements from getComputedStyle. r=heycam
Differential Revision: https://phabricator.services.mozilla.com/D11830
2018-11-15 02:35:23 +00:00
Boris Chiou
850c1b854a Bug 1505200 - Part 2: Serialize Rotate by servo. r=emilio
So we can drop a lot of code.

Depends on D11247

Differential Revision: https://phabricator.services.mozilla.com/D11401
2018-11-12 19:21:22 +00:00
Boris Chiou
0866393d4f Bug 1505156 - Percentage values of translate are serialized as percent for computed values. r=emilio
Basically, we rewrite the type of generics::transform::Translate and its
ToCss to match the spec. Besides, we always serialize Translate by servo,
so we could drop a lot of duplicated code.

Differential Revision: https://phabricator.services.mozilla.com/D11206
2018-11-08 22:41:00 +00:00
Emilio Cobos Álvarez
3bbbc43b9b Bug 1505645 - Remove unused outparam from nsStyleTransformMatrix. r=boris
dummy bool is dummy.

Differential Revision: https://phabricator.services.mozilla.com/D11275
2018-11-08 02:25:28 +00:00
Boris Chiou
6d580497ed Bug 1500107 - Fix the default behavior of scale:<number>{1}. r=birtles
The current spec says: "If only the X value is given, the Y value
defaults to the same value.", so we should update the behavior.

Besides, we also update the serialization, so we serialization both
specified and computed value by servo. We enable the preference
for all the css-transforms, so some of them are passed now.

Differential Revision: https://phabricator.services.mozilla.com/D10638
2018-11-06 23:44:24 +00:00
Cameron McCormack
3326ed16c5 Bug 1504034 - Part 2: Use Servo to serialize computed quotes values r=emilio
Depends on D10650

Differential Revision: https://phabricator.services.mozilla.com/D10651
2018-11-06 23:03:31 +00:00
Cameron McCormack
67ba6940d3 Bug 1501261 - Part 1: Use Servo to serialize border-image-repeat r=firefox-style-system-reviewers,emilio
With this change, all of Chrome, Edge, Firefox, and Safari serialize
border-image-repeat by omitting a repeated keyword, so we update a WPT
that was expecting duplicated keywords.

Differential Revision: https://phabricator.services.mozilla.com/D10445
2018-11-05 02:21:39 +00:00
Emilio Cobos Álvarez
9babd758f5 Bug 1504078 - Use references in the shapes code. r=bradwerth,TYLin
It doesn't make much sense to return const UniquePtr<Foo>& for something that
can't be null, it's just confusing.

Also make more stuff actually const.

Differential Revision: https://phabricator.services.mozilla.com/D10647
2018-11-02 18:19:06 +00:00
Boris Chiou
bef2b72b74 Bug 1501117 - Part 1: Serialize TimingFunction with servo. r=emilio
We could make sure we serialize TimingFunction for both computed
and specified values with servo (via CSSOM). However, Web animation
APIs could also serialize the timing function from a different code
path. We will fix it in the next patch.

Differential Revision: https://phabricator.services.mozilla.com/D10443
2018-11-01 21:32:55 +00:00
Boris Chiou
b47cdcd8d6 Bug 1496619 - part 6: Generate StyleTimingFunction and drop ns_timing_function.rs r=emilio,birtles
First, we generate StyleComputedTimingFunction by cbindgen from Rust, and use
it in nsTimingFunction, so we could copy it directly without handling
the different memory layout. However, we have to rewrite the
nsTimingFunction and mozilla::ComputedTimingFunction for this.

Second, the rust-bindgen seems cannot generate the correct generic members
from complex C++ templates, especially for the nested template struct,
(https://github.com/rust-lang-nursery/rust-bindgen/issues/1429)
So we have to hide StyleTimingFunction to avoid the compilation errors.

Depends on D9312

Differential Revision: https://phabricator.services.mozilla.com/D9313
2018-10-26 18:03:35 +00:00
Boris Chiou
5020af6901 Bug 1496619 - Part 1: Drop frames() timing function r=birtles
frames() timing function was removed from the spec, so we drop it.
Besides, some devtool tests are removed because they use frame(). I will
add them back by using new step function later.

Differential Revision: https://phabricator.services.mozilla.com/D9309
2018-10-26 18:03:24 +00:00
Emilio Cobos Álvarez
6d5e19d91c Bug 1500885 - Serialize text-align with Servo. r=xidorn
Differential Revision: https://phabricator.services.mozilla.com/D9372
2018-10-24 14:01:39 +02:00
Xidorn Quan
24a3bfe09e Bug 1501418 - Have scrollbar-color: auto resolved to auto rather than two colors. r=emilio
Differential Revision: https://phabricator.services.mozilla.com/D9640
2018-10-24 11:52:46 +00:00
Emilio Cobos Álvarez
1a08991a29 Bug 1500885 - mTextAlignTrue / mTextAlingLastTrue are write-only. r=mats
They were added in bug 929991, but there's no text-align: true anymore.

Differential Revision: https://phabricator.services.mozilla.com/D9371
2018-10-22 15:14:42 +00:00
Emilio Cobos Álvarez
c112dd7ef7 Bug 1498734 - Always compute angle values to degrees. r=xidorn
This matches the spec, https://drafts.csswg.org/css-values/#angles, which says:

> All <angle> units are compatible, and deg is their canonical unit.

And https://drafts.csswg.org/css-values/#compat, which says:

>When serializing computed values [...], compatible units [...] are converted into a single canonical unit.

And also other implementations (Blink always serializes angles as degrees in
computed style for example).

Also allows us to get rid of quite a bit of code, and makes computed angle value
representation just a number, which is nice.

Differential Revision: https://phabricator.services.mozilla.com/D8619
2018-10-13 00:41:03 +00:00
Cameron McCormack
e389012eee Bug 1495994 - Part 4: Merge css::{URLValueData, ImageValue} into css::URLValue r=emilio
Depends on D7595

Differential Revision: https://phabricator.services.mozilla.com/D8061
2018-10-10 02:58:20 +00:00
Emilio Cobos Álvarez
ba2bc15c9c Bug 1496008 - Serialize a bunch of image properties with Servo. r=heycam
I had to fix the conversion for BackgroundSize too, hopefully we can
simplify all this using cbindgen in the future instead of CalcValue.

Differential Revision: https://phabricator.services.mozilla.com/D7580
2018-10-05 20:08:55 +00:00
Brad Werth
de954a2152 Bug 1481192 Part 1: Change computed style to use correct pseudo element selection. r=emilio
In order to handle nsTableWrapperFrames correctly, this code is changed
to use the code in nsLayoutUtils::GetBeforePseudo and ::GetAfterPseudo,
and then finding the styling frames from those elements.

Differential Revision: https://phabricator.services.mozilla.com/D6730
2018-09-28 20:20:28 +00:00
Noemi Erli
bfa6534edb Backed out 2 changesets (bug 1481192) for build bustages in workspace/build/src/layout/style/nsComputedDOMStyle CLOSED TREE
Backed out changeset 7697665841ca (bug 1481192)
Backed out changeset 2f0c8d5a75d6 (bug 1481192)
2018-09-28 22:33:47 +03:00
Brad Werth
e619073b12 Bug 1481192 Part 1: Change computed style to use correct pseudo element selection. r=emilio
In order to handle nsTableWrapperFrames correctly, this code is changed
to use the code in nsLayoutUtils::GetBeforePseudo and ::GetAfterPseudo,
and then finding the styling frames from those elements.

Differential Revision: https://phabricator.services.mozilla.com/D6730
2018-09-28 19:12:17 +00:00
Emilio Cobos Álvarez
7f4643372c Bug 1494622 - Simplify CSSValue and co a bit more. r=xidorn
Just remove the useless stuff.

Differential Revision: https://phabricator.services.mozilla.com/D7071
2018-09-27 16:11:45 +02:00
Emilio Cobos Álvarez
400f5d131c Bug 1494622 - Remove nsDOMCSSRect. r=xidorn
Differential Revision: https://phabricator.services.mozilla.com/D7070
2018-09-27 16:11:44 +02:00
Emilio Cobos Álvarez
09b1105f40 Bug 1494622 - Serialize -moz-image-region and clip with Servo. r=xidorn
This changes the serialization of -moz-image-region to be consistent with that
of clip(), but it's an internal property and the specified value is already
serialized by servo so I think it's the right thing to do.

There are also no internal callers of the getter.

Differential Revision: https://phabricator.services.mozilla.com/D7069
2018-09-27 16:11:43 +02:00
Emilio Cobos Álvarez
e63840174f Bug 1494622 - Remove nsDOMCSSRGBColor. r=xidorn
Differential Revision: https://phabricator.services.mozilla.com/D7068
2018-09-27 16:11:42 +02:00
Emilio Cobos Álvarez
b85071edf5 Bug 1492567 - Back out bug 1481866. r=dbaron
Summary:
The behavior the WG proposed is way more subtle than what that bug implements,
including:

 * Implementing two logical overflow longhands.
 * Expanding the overflow shorthand to different longhands depending on the
   syntax of that.

Meanwhile, Blink hasn't done the swap and will ship the same behavior that we
shipped in Firefox 61 (bug 1453148), that is, overflow-x, then overflow-y.

So I think lacking a clear way forward we should revert this change and preserve
our shipped behavior.

Reviewers: dbaron!

Tags: #secure-revision

Bug #: 1492567

Differential Revision: https://phabricator.services.mozilla.com/D6317
2018-09-20 01:27:55 +02:00
Xidorn Quan
73fdf6c586 Bug 1483075 - Merge the two scrollbar color properties into scrollbar-color. r=heycam,hiro
Differential Revision: https://phabricator.services.mozilla.com/D6115
2018-09-19 05:33:12 +00:00
Mats Palmgren
fd2fb8ea94 Bug 1478485 - Use the stored CB on abs.pos. grid items when calculating used offset values. r=dholbert 2018-09-11 00:57:53 +02:00
Emilio Cobos Álvarez
fde9ff1ddc Bug 1484316: Serialize clip-path and shape-outside using Servo. r=xidorn
Differential Revision: https://phabricator.services.mozilla.com/D3653
2018-08-22 11:20:41 +02:00
Boris Chiou
aeb006d62c Bug 1429298 - Part 2: Define offset-path and implement it in style system. r=emilio
Define OffsetPath & SVGPathData on the servo-side, and StyleMotion &
StyleSVGPath on the gecko-side. We parse the SVG Path string into a
vector of PathCommand. To build the gfx::Path, we will convert it into
gfx::Path later in a different patch.

The basic flow is:
* Parse SVG Path String into SVGPathData (in Rust).
* Use cbindgen to make sure the layout of PathCommand and StylePathCommand,
  and then set the Box[PathCommand] into nsTArray<StylePathCommand>.
* Try to convert nsTArray<StylePathCommand> into gfx::Path. (This part
  will be implemented in a different patch.)

Finally, we use the gfx::Path to create a motion path transform.
The layout implementation is in the later patch.

Differential Revision: https://phabricator.services.mozilla.com/D2963
2018-08-21 22:41:38 -07:00
Cameron McCormack
eb1c77b263 Bug 1482782 - Part 4: Move CSS pseudo-element atoms to nsGkAtoms. r=njn,emilio
Summary: Depends On D3282

Reviewers: njn!, emilio!

Tags: #secure-revision

Bug #: 1482782

Differential Revision: https://phabricator.services.mozilla.com/D3283
2018-08-15 15:46:00 +10:00
Narcis Beleuzu
ace8b010f2 Backed out 8 changesets (bug 1483121, bug 1482782) for build bustages on nsDirectoryService.cpp. CLOSED TREE
Backed out changeset 0a8334bbcf45 (bug 1483121)
Backed out changeset cb2dcb859071 (bug 1482782)
Backed out changeset c834d4ca2eef (bug 1482782)
Backed out changeset 887de0efbb67 (bug 1482782)
Backed out changeset 018fdb50a6be (bug 1482782)
Backed out changeset 33a8aa8096c9 (bug 1482782)
Backed out changeset e3632354f16e (bug 1482782)
Backed out changeset 46f8319bee82 (bug 1482782)
2018-08-15 09:14:41 +03:00
Cameron McCormack
a3c0cd4850 Bug 1482782 - Part 4: Move CSS pseudo-element atoms to nsGkAtoms. r=njn,emilio
Summary: Depends On D3282

Reviewers: njn!, emilio!

Tags: #secure-revision

Bug #: 1482782

Differential Revision: https://phabricator.services.mozilla.com/D3283
2018-08-15 15:46:00 +10:00
Xidorn Quan
1e77bd0b24 Bug 1483090 - Rename StyleUserInterface to StyleUI. r=emilio
Differential Revision: https://phabricator.services.mozilla.com/D3276
2018-08-14 08:37:37 +00:00
L. David Baron
cb835eba9b Bug 1481866: Swap order of values in 'overflow' shorthand property. r=emilio
Differential Revision: https://phabricator.services.mozilla.com/D3069
2018-08-10 02:20:53 +00:00
Daniel Holbert
0144ce95fb Bug 1480222 part 3: Add includes to fix unified bustage in ArenaRefPtrInlines.h and nsComputedDOMStyle.cpp. r=TYLin
* ArenaRefPtrInlines.h calls nsPresArena::RegisterArenaRefPtr()
  and hence needs nsPresArena.h.
* nsComputedDOMStyle.cpp calls nsCSSProps::PropHasFlags()
  and hence needs nsCSSProps.h.

Differential Revision: https://phabricator.services.mozilla.com/D2631
2018-08-01 15:09:54 -07:00
Emilio Cobos Álvarez
765b78561b Bug 1479450: Implement nsCSSProps::LookupProperty using Rust. r=xidorn
Always assume allowed-for-all-content. There are a couple callers which weren't
doing that:

 * A unit test -> removed.

 * ComputeAnimationDistance: Used for testing (in transitions_per_property), and
   for the animation inspector. The animation inspector shouldn't show
   non-enabled properties. The transitions_per_property test already relies on
   getComputedStyle stuff which only uses eForAllContent.

 * GetCSSImageURLs: I added this API for the context menu page and such. It
   doesn't rely on non-enabled-everywhere properties, it was only using
   eInChrome because it was a ChromeOnly API, but it doesn't really need this.

Differential Revision: https://phabricator.services.mozilla.com/D2514

MozReview-Commit-ID: 4VOi5Su3Bos
2018-07-31 12:00:15 +02:00
Emilio Cobos Álvarez
b6d2dbb4fa Bug 1478391: Autogenerate StyleAppearance. r=jwatt
This builds on bug 1428676 and introduces StyleAppearance, which replaces the
NS_THEME_* constants.

Really sorry for the size of the patch.

There's a non-trivial change in the gtk theme, which I submitted separately as
bug 1478385.

Differential Revision: https://phabricator.services.mozilla.com/D2361

MozReview-Commit-ID: DiSmMWK7Krp
2018-07-26 17:06:17 +02:00
Ting-Yu Lin
97574b3cb6 Bug 1477533 - Use static const class variable to represent column-count: auto. r=heycam
NS_STYLE_COLUMN_COUNT_UNLIMITED is unused, so I remove it.

MozReview-Commit-ID: HLHLn9ZbkUY
2018-07-20 17:09:31 -07:00
Kris Maglione
3a415ff082 Bug 1473631: Part 0a - Make preference callbacks typesafe. r=njn
I initially tried to avoid this, but decided it was necessary given the number
of times I had to repeat the same pattern of casting a variable to void*, and
then casting it back in a part of code far distant from the original type.

This changes our preference callback registration functions to match the type
of the callback's closure argument to the actual type of the closure pointer
passed, and then casting it to the type of our generic callback function. This
ensures that the callback function always gets an argument of the type it's
actually expecting without adding any additional runtime memory or
QueryInterface overhead for tracking it.

MozReview-Commit-ID: 9tLKBe10ddP
2018-07-06 12:24:41 -07:00
Kris Maglione
6681e54f0b Bug 1473634: Part 3 - Update nsDOMComputedStyle to use RegisterCallbacks. r=bz
nsComputedDOMStyle is currently one of the biggest sources of pref callback
memory overhead. It currently registers about 5KB of callbacks per process. A
lot of that has to do with it registering multiple callbacks for the same
preference. But even with that problem fixed, we can do better by registering
a single callback for all observed preferences.

This patch does that, but also adds the optimization of deduplicating the list
of observed preferences to avoid wasted cycles needlessly matching against
many identical strings.

MozReview-Commit-ID: LZNgd7cAwo2
2018-07-04 19:07:28 -07:00
Dan Glastonbury
3e9def79c3 Bug 1467622 - P1: nsStyleSVGPaint - Change nscolor to StyleComplexColor. r=xidorn
MozReview-Commit-ID: 1bbQzOoOuBe
2018-06-27 17:07:37 +10:00
Brindusan Cristian
0ca98f8f72 Backed out 5 changesets (bug 1467622) for reftest failures on layout/reftests/svg/smil/style/anim-css-fill-1-from-by-curcol-hex.svg. CLOSED TREE
Backed out changeset 8694fe928b04 (bug 1467622)
Backed out changeset 74533cad9479 (bug 1467622)
Backed out changeset e1dbee410e98 (bug 1467622)
Backed out changeset 56142038cc7f (bug 1467622)
Backed out changeset 90cede21bad1 (bug 1467622)
2018-07-11 09:37:26 +03:00
Dan Glastonbury
55a767c104 Bug 1467622 - P1: nsStyleSVGPaint - Change nscolor to StyleComplexColor. r=xidorn
MozReview-Commit-ID: 1bbQzOoOuBe
2018-06-27 17:07:37 +10:00
Cameron McCormack
cebd37ab1f Bug 1473450 - Remove angle values from image-orientation. r=emilio
MozReview-Commit-ID: FB74ILJM6Fm
2018-07-05 12:04:58 +10:00
Andreea Pavel
20adb881e6 Backed out changeset 641b02da5961 (bug 1473450) for failing xpchsell and mochitest on a CLOSED TREE 2018-07-10 09:28:59 +03:00
Cameron McCormack
2232a7f1b1 Bug 1473450 - Remove angle values from image-orientation. r=emilio
MozReview-Commit-ID: FB74ILJM6Fm
2018-07-05 12:04:58 +10:00