Commit Graph

1144 Commits

Author SHA1 Message Date
Ciure Andrei
a55b661b04 Merge inbound to mozilla-central. a=merge 2018-07-05 12:51:41 +03:00
Kris Maglione
faabba2e6f Bug 1472523: Part 1 - Avoid string copies in preference callbacks. r=njn
Most preference callbacks use literal strings for their domain filters, which
means that there's no need to make copies of them at all. Currently, however,
every preference observer node makes a separate heap-allocated copy of its
domain string.

This patch switches the domain string storage to nsCString instances, which
dramatically reduces the amount of unnecessary copies, at the expense of
making the callback nodes slightly larger.

MozReview-Commit-ID: 8NA3t2JS2UI
2018-06-30 23:06:17 -07:00
Emilio Cobos Álvarez
c90fe62ec8 Bug 1473225 - Serialize a few more lengths with Servo. r=xidorn
Differential Revision: https://phabricator.services.mozilla.com/D1934
2018-07-04 06:42:38 +00:00
Emilio Cobos Álvarez
65942fcd2c Bug 1472551 - Serialize font properties using Servo. r=xidorn
Differential Revision: https://phabricator.services.mozilla.com/D1905
2018-07-01 23:00:18 +00:00
Emilio Cobos Álvarez
fc60c3b2e7 Bug 1472497 - Serialize list-style-type / list-style-image using Servo. r=xidorn
Differential Revision: https://phabricator.services.mozilla.com/D1903
2018-07-01 00:44:26 +00:00
Emilio Cobos Álvarez
d596bad293 Bug 1472443: Serialize content properties using Servo. r=xidorn
... and cleanup unused keywords / getters using the scripts in
layout/style/tools

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

MozReview-Commit-ID: BRUGcje7X0q
2018-06-30 17:14:12 +02:00
Emilio Cobos Álvarez
8d181f4ca3 Bug 1472443: Make StyleContentType an enum class. r=xidorn
Most of it is automated by:

  %s/eStyleContentType_/StyleContentType::/g
  %s/nsStyleContentType/StyleContentType/g

But I removed some parentheses by hand.

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

MozReview-Commit-ID: 3IcirjIYX5p
2018-06-30 17:13:07 +02:00
Emilio Cobos Álvarez
5d358548d7 Bug 1116638: Expose logical props in computed style. r=xidorn
Differential Revision: https://phabricator.services.mozilla.com/D1862
2018-06-30 13:45:43 +00:00
Dorel Luca
a16f2f280d Merge mozilla-inbound to mozilla-central. a=merge 2018-06-27 13:26:49 +03:00
Xidorn Quan
53f38b6f36 Bug 1471114 part 4 - Remove unused getter functions from nsComputedDOMStyle. r=emilio
This is done with the following script:
```python
#!/usr/bin/env python3

import re
import sys

from pathlib import Path

if len(sys.argv) != 2:
    print("Usage: {} objdir".format(sys.argv[0]))
    exit(1)

generated = Path(sys.argv[1]) / "layout" / "style"
generated = generated / "nsComputedDOMStyleGenerated.cpp"
RE_GENERATED = re.compile(r"DoGet\w+")
keeping = set()
with generated.open() as f:
    for line in f:
        m = RE_GENERATED.search(line)
        if m is not None:
            keeping.add(m.group(0))

HEADER = "layout/style/nsComputedDOMStyle.h"
SOURCE = "layout/style/nsComputedDOMStyle.cpp"

# We need to keep functions invoked by others
RE_DEF = re.compile(r"nsComputedDOMStyle::(DoGet\w+)\(\)")
RE_SRC = re.compile(r"\b(DoGet\w+)\(\)")
with open(SOURCE, "r") as f:
    for line in f:
        m = RE_DEF.search(line)
        if m is not None:
            continue
        m = RE_SRC.search(line)
        if m is not None:
            keeping.add(m.group(1))

removing = set()
remaining_lines = []
with open(HEADER, "r") as f:
    for line in f:
        m = RE_SRC.search(line)
        if m is not None:
            name = m.group(1)
            if name not in keeping:
                print("Removing " + name)
                removing.add(name)
                continue
        remaining_lines.append(line)

with open(HEADER, "w", newline="") as f:
    f.writelines(remaining_lines)

remaining_lines = []
is_removing = False
with open(SOURCE, "r") as f:
    for line in f:
        if is_removing:
            if line == "}\n":
                is_removing = False
            continue
        m = RE_DEF.search(line)
        if m is not None:
            name = m.group(1)
            if name in removing:
                remaining_lines.pop()
                if remaining_lines[-1] == "\n":
                    remaining_lines.pop()
                is_removing = True
                continue
        remaining_lines.append(line)

with open(SOURCE, "w", newline="") as f:
    f.writelines(remaining_lines)
```

MozReview-Commit-ID: ACewvZ9ztWp
2018-06-27 15:34:29 +10:00
Xidorn Quan
e5eaede4f5 Bug 1471114 part 3 - Drop the reference to getter functions we don't call. r=emilio
MozReview-Commit-ID: IbBayOwsjNX
2018-06-27 15:34:29 +10:00
Xidorn Quan
67ceea3e23 Bug 1471114 part 2 - Generate ComputedStyleMap entry list from property data. r=emilio
This changes the order of properties returned from gCS. The old order
doesn't make much sense, and other browsers don't agree on an identical
order either, so it should be trivial to change it. Also the spec isn't
super clear / useful in this case.

Several -moz-prefixed properties are excluded from the list due to their
being internal. I suspect they are never accessible anyway, so probably
nothing gets changed by this.

MozReview-Commit-ID: 9LfangjpJ3P
2018-06-27 15:34:29 +10:00
Xidorn Quan
a96d5a397c Bug 1471116 - Use nsCSSProps::kPropertyPrefTable for pref callback register of nsComputedDOMStyle. r=emilio
MozReview-Commit-ID: 7VvFGYi12te
2018-06-26 14:06:46 +10:00
Olli Pettay
2e64f41c9f Bug 1428246 - The attributeChangedCallback is fired twice for the *first* style attribute change, r=peterv
The idea with this patch is that style code will first call
InlineStyleDeclarationWillChange before style declaration has changed, and SetInlineStyleDeclaration once it has changed.

In order to be able to report old attribute value, InlineStyleDeclarationWillChange reads the value and also calls AttributeWillChange (so that DOMMutationObserser can grab the old value). Later SetInlineStyleDeclaration passes the old value to
SetAttrAndNotify so that mutation events and attributeChanged callbacks are handled correctly.

Because of performance, declaration can't be cloned for reading the old value. And that is why the recently-added callback is used to detect when declaration is about to change (bug 1466963 and followup bug 1468665).

To keep the expected existing behavior, even if declaration isn't changed, but just a new declaration was created (since there wasn't any), we need to still run all these
willchange/set calls. That is when the code has 'if (created)' checks.

Since there are several declaration implementation and only nsDOMCSSAttributeDeclaration needs the about-to-change callback, GetPropertyChangeClosure is the one to initialize the callback closure, and the struct which is then passes as data to the closure.

Apparently we lost mutation event testing on style attribute when the pref was added, so test_style_attr_listener.html is modified to test both pref values.
2018-06-26 12:54:00 +03:00
Chris Peterson
f7ceeaf5cf Bug 1469769 - Part 6: Replace non-failing NS_NOTREACHED with MOZ_ASSERT_UNREACHABLE. r=froydnj
This patch is an automatic replacement of s/NS_NOTREACHED/MOZ_ASSERT_UNREACHABLE/. Reindenting long lines and whitespace fixups follow in patch 6b.

MozReview-Commit-ID: 5UQVHElSpCr
2018-06-17 22:43:11 -07:00
Dan Glastonbury
ff951cc67d Bug 1467621 - P1: nsCSSShadowItem - Change nscolor to StyleComplexColor. r=xidorn
MozReview-Commit-ID: moE2CI7fT8
2018-06-19 14:18:33 +10:00
Olli Pettay
f7f69e2df0 Bug 1470099 - Make CSSStyleDeclaration's wrapper use nursery heap and make last Release call ClearComputedStyle(), r=emilio 2018-06-21 15:28:47 +03:00
Xidorn Quan
ebb82a5abf Bug 1418874 part 3 - Remove CSSLexer and related stuff. r=emilio,tromey,smaug
MozReview-Commit-ID: 2DuHpc3HfmB
2018-06-14 18:12:02 -07:00
Emilio Cobos Álvarez
6e1ad72b7c Bug 1467722: Do not throw when we don't have a style, but just return an empty style. r=heycam
We return '0' for the length, and "" for every declaration. This matches other
browsers and the spec in the "no style" behavior.

Of course we don't claim not to have a style for every case the spec says, but
that will come later, given that's a much more risky change.

This doesn't make any case where we returned something useful return something
less useful, but stops null from getting returned, and returns the empty string
which matches other browsers when they cannot return a style.

MozReview-Commit-ID: 7Sc7HL5CgZU
2018-06-19 11:47:59 +02:00
Emilio Cobos Álvarez
be973378dc Bug 1467722: Make nsComputedDOMStyle store an actual Element. r=heycam
MozReview-Commit-ID: FdfXvPARilD
2018-06-19 11:47:40 +02:00
Emilio Cobos Álvarez
33571ed1bf Bug 1467722: Don't return null for getComputedStyle when there's no pres shell. r=heycam
We need to deal with this case regardless from getPropertyValue, and this causes
pain and webcompat issues.

MozReview-Commit-ID: Gbpzq0N4O2T
2018-06-19 11:47:16 +02:00
Andi-Bogdan Postelnicu
3d1fef09a0 Bug 1453795 - Layout/Style - Initialize member fields in classes/ structures. r=heycam 2018-06-14 12:54:03 +03:00
Dan Glastonbury
9361f5f784 Bug 1467379 - P1: nsStyleGradientStop - Change nscolor to StyleComplexColor. r=xidorn
MozReview-Commit-ID: D9KQcv9uQ4S
2018-06-07 15:55:26 +10:00
Emilio Cobos Álvarez
d273efe938 Bug 1467536: Serialize properties flagged as SerializedByServo from getComputedStyle. r=xidorn
MozReview-Commit-ID: 9hnxejljlhG
2018-06-10 00:41:50 +02:00
Emilio Cobos Álvarez
4f6de7c474 Bug 1467536: Split GetPropertyValue from GetPropertyCSSValueWithoutWarning. r=xidorn
And remove the later.

MozReview-Commit-ID: BO3epOMe70w
2018-06-10 00:41:50 +02:00
Gurzau Raul
6564b555e7 Backed out 4 changesets (bug 1467536) for permafailing on layout/style/test/test_bug418986-2.html. a=backout
Backed out changeset 4e1cee0e0a48 (bug 1467536)
Backed out changeset 697892c54d63 (bug 1467536)
Backed out changeset 13b38c2d3251 (bug 1467536)
Backed out changeset 086eaeb69efa (bug 1467536)
2018-06-09 10:45:08 +03:00
Emilio Cobos Álvarez
576fb4a25f Bug 1467536: Serialize properties flagged as SerializedByServo from getComputedStyle. r=xidorn
MozReview-Commit-ID: 9hnxejljlhG
2018-06-08 14:18:11 +02:00
Emilio Cobos Álvarez
92e884e61e Bug 1467536: Split GetPropertyValue from GetPropertyCSSValueWithoutWarning. r=xidorn
And remove the later.

MozReview-Commit-ID: BO3epOMe70w
2018-06-08 14:18:06 +02:00
Jeff Walden
69d48e52fa Bug 745089 - Replace nscoord-specific positive-infinity/is-nan primitives with FloatingPoint.h uses. r=dbaron 2018-06-06 16:03:48 -07:00
Dan Glastonbury
b032a76a35 Bug 1465307 - P2: Fix nsStyleBorder::mBorderColor for GCC. r=xidorn
GCC doesn't like StyleComplexColor with constructor in an anonymous
struct in an anonymous union.  Replace the use of a union to access
`mBorder[..]Color` fields as an array with an accessor methods.

MozReview-Commit-ID: 1Wulh1qKYCZ
2018-06-05 11:24:12 +10:00
Dan Glastonbury
cbeb62b354 Bug 1465307 - P1: Extend StyleComplexColor to support additive blending. r=hiro,xidorn
Refactored StyleComplexColor to support "complex" blending between
background (numeric) color and foreground color (currentColor).
Made explicit the distinction between numeric, currentColor and a
complex blend in Gecko and Stylo.

This is to support SMIL animation, for example, of the form:

     <animate from="rgb(10,20,30)" by="currentColor" ... />

MozReview-Commit-ID: IUAK8P07gtm
2018-05-23 15:23:26 +10:00
Emilio Cobos Álvarez
4b8b5e1717 Bug 1465585: Switch from mozilla::Move to std::move. r=froydnj
This was done automatically replacing:

  s/mozilla::Move/std::move/
  s/ Move(/ std::move(/
  s/(Move(/(std::move(/

Removing the 'using mozilla::Move;' lines.

And then with a few manual fixups, see the bug for the split series..

MozReview-Commit-ID: Jxze3adipUh
2018-06-01 10:45:27 +02:00
Dan Glastonbury
e803ad5869 Bug 1457353 - P1: Change nscolor to StyleComplexColor. r=xidorn
Change mStopColor, mFloodColor, and mLightingColor in nsStyleSVGReset.

MozReview-Commit-ID: KMRMtHk1jNK
2018-04-27 12:07:20 +10:00
Morgan Rae Reschenberg
d80e0e78fa Bug 1463589 - Add contain:size and contain:content parsing functionality. r=emilio
MozReview-Commit-ID: 4fOqln3oOpC
2018-05-30 07:49:31 -07:00
Gerald Squelart
a16ba9f383 Bug 1457373 - Remove text-combine-upright digits option - r=xidorn
MozReview-Commit-ID: Ehzsd2rmBER
2018-05-17 15:29:17 +10:00
Xidorn Quan
1be43ecdd9 Bug 1460456 part 3 - Add scrollbar-{face,track}-color properties. r=heycam
MozReview-Commit-ID: ImNfHHfzRdM
2018-05-10 10:40:17 +10:00
Emilio Cobos Álvarez
f276c14053 Bug 1459871: Remove other getPropertyCSSValue-related interfaces. r=bz
I can land the removal behind a pref first if you want and all that instead.

Again, this doesn't remove the internal usage for getComputedStyle (yet).

MozReview-Commit-ID: LA157ohfLhu
2018-05-15 14:05:13 +02:00
bobslept
d61777aa3b Bug 1459111 - Rename ServoCSSParsingEnvironment to ParsingEnvironment. r=emilio
MozReview-Commit-ID: Jl5aoarH0aU
2018-05-14 20:20:20 +02:00
Emilio Cobos Álvarez
de550d360c Bug 1408301: Remove getPropertyCSSValue. r=bz
It's been removed for a while on Nightly without any known regressions. This
gives us a full beta cycle of telemetry and two nightly cycles without the API
before shipping.

This only removes the API, followup work will replace serialization by Servo's,
and remove the remaining DOM interfaces.

MozReview-Commit-ID: 2m1taYg5xEr
2018-05-12 11:23:47 +02:00
Dan Glastonbury
39f56c63ae Bug 1457810: Move CalcComplexColor to StyleComplexColor. r=xidorn
Move from nsStyleColor::CalcComplexColor to StyleComplexColor::CalcColor.

MozReview-Commit-ID: FkYovvPZLc8
2018-05-09 17:03:02 +10:00
Chris Peterson
5d6b16ea3b Bug 1457813 - Part 2: Replace non-asserting NS_PRECONDITIONs with MOZ_ASSERTs. r=froydnj
s/NS_PRECONDITION/MOZ_ASSERT/ and reindent

MozReview-Commit-ID: KuUsnVe2h8L
2018-04-28 12:50:58 -07:00
Emilio Cobos Álvarez
273c47eac5 Bug 1458928: Remove GetCSSParsingEnvironment. r=xidorn
MozReview-Commit-ID: KXGM7JiUZAt
2018-05-03 17:41:48 +02:00
Xidorn Quan
fdbb6ec7a2 Bug 1448759 part 2 - Have nsStyleUtil::AppendBitmaskCSSValue take a keyword table directly. r=heycam
MozReview-Commit-ID: zjCWjA5W0E
2018-04-29 21:34:52 +10:00
Xidorn Quan
03f92561ac Bug 1448759 part 1 - Make KTableEntry an independent type. r=heycam
MozReview-Commit-ID: oZfJAigThN
2018-04-29 21:17:26 +10:00
Xidorn Quan
f0cd165e77 Bug 1456364 part 4 - Convert CSS_PROPERTY_* flags to a typed enum flags. r=emilio
MozReview-Commit-ID: 4mLPe5cH80N
2018-04-26 16:24:33 +02:00
Andreea Pavel
c6bbb5991e Backed out 4 changesets (bug 1456364) for build bustages at /builds/worker/workspace/build/src/obj-firefox/dist/include/mozilla/dom/AnimationEffectReadOnlyBinding.h:35 on a CLOSED TREE
Backed out changeset 020151240bb8 (bug 1456364)
Backed out changeset bc0aa5224d91 (bug 1456364)
Backed out changeset d919bbe7440c (bug 1456364)
Backed out changeset ab1472823e8a (bug 1456364)
2018-04-26 08:27:45 +03:00
Xidorn Quan
c6acf387e3 Bug 1456364 part 4 - Convert CSS_PROPERTY_* flags to a typed enum flags. r=emilio
MozReview-Commit-ID: 4mLPe5cH80N
2018-04-26 15:00:50 +10:00
Brad Werth
eaf578995a Bug 1265342 Part 1: Add shape-margin to style system (Gecko bindings). r=xidorn
MozReview-Commit-ID: 3G0ZpWDrumg
2018-02-07 17:27:04 -08:00
Narcis Beleuzu
87b92a12ca Backed out 20 changesets (bug 1265342) for mochitest-plain-headless failures on layout/style/test/test_first_letter_restrictions.html. CLOSED TREE
Backed out changeset 6c80ec2d0398 (bug 1265342)
Backed out changeset 62d571916086 (bug 1265342)
Backed out changeset fd247f38f8a7 (bug 1265342)
Backed out changeset 83aee3dafe4b (bug 1265342)
Backed out changeset 9b200122014e (bug 1265342)
Backed out changeset a90aa063b2fd (bug 1265342)
Backed out changeset 0791ff3d9194 (bug 1265342)
Backed out changeset 7109288f10b3 (bug 1265342)
Backed out changeset 048cce2fb99f (bug 1265342)
Backed out changeset c8e3dbc6c729 (bug 1265342)
Backed out changeset 09da0968333a (bug 1265342)
Backed out changeset d16f7ff85677 (bug 1265342)
Backed out changeset 53eb7f14463d (bug 1265342)
Backed out changeset 64fc631ef122 (bug 1265342)
Backed out changeset 332382c708e1 (bug 1265342)
Backed out changeset a8695981eec0 (bug 1265342)
Backed out changeset ce473fa5f1f4 (bug 1265342)
Backed out changeset 5ee470e75a53 (bug 1265342)
Backed out changeset 802aa95a52d9 (bug 1265342)
Backed out changeset 5da0c34c9600 (bug 1265342)
2018-04-24 22:31:15 +03:00
Brad Werth
752d6a172e Bug 1265342 Part 1: Add shape-margin to style system (Gecko bindings). r=xidorn
MozReview-Commit-ID: 3G0ZpWDrumg
2018-02-07 17:27:04 -08:00