Commit Graph

215 Commits

Author SHA1 Message Date
Jeff Gilbert
70a22b2878 Bug 1470325 - s/FooBinding/Foo_Binding/g - r=qdot
MozReview-Commit-ID: JtTcLL5OPF0
2018-06-26 17:05:01 -07: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
Emilio Cobos Álvarez
89aefc4c17 Bug 1466963: Provide a before-mutation closure to C++. r=xidorn,smaug
MozReview-Commit-ID: H2jwIeZoiBZ
2018-06-07 11:22:31 +02:00
Nazım Can Altınova
4e99e486f8 Bug 1464496 - Part 1: Merge ServoDeclarationBlock and DeclarationBlock r=emilio
MozReview-Commit-ID: By9fV70Oq0K
2018-05-30 18:15:25 +02:00
Olli Pettay
309d33d12c Bug 1465175 - Remove mozAutoDocConditionalContentUpdateBatch, r=dbaron 2018-05-30 12:40:07 +03:00
Emilio Cobos Álvarez
7fb56d1800 Bug 1459529: Make sheets be associated to a shadow root too potentially. r=bz
MozReview-Commit-ID: Cd8xJuLRY5w
2018-05-15 18:44:25 +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
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
Emilio Cobos Álvarez
7f5215d8c9 Bug 1458458: Minor nsDOMCSSAttrDeclaration cleanup. r=hiro
MozReview-Commit-ID: LA249WzjZ5n
2018-05-02 18:08:57 +02:00
Emilio Cobos Álvarez
1cbdd1ec8c Bug 1458458: Remove dead code from nsDOMCSSAttributeDeclaration. r=hiro
MozReview-Commit-ID: 67r8s3zDZMA
2018-05-02 18:05:13 +02:00
Emilio Cobos Álvarez
c7e1c095c7 Bug 1457920: Remove StyleSheet::AsServo. r=xidorn
MozReview-Commit-ID: IkkJvUFHykk
2018-05-02 04:13:21 +02:00
Emilio Cobos Álvarez
08bea7e24f Bug 1456471: Remove nsCSSParser.h. r=xidorn
MozReview-Commit-ID: 4qa7llzCXeR
2018-04-25 10:38:37 +02:00
Jonathan Watt
44d37e68d5 Bug 1449321 - Remove the IsServo and IsGecko methods from the style system code. r=emilio 2018-03-23 16:01:34 +00:00
Emilio Cobos Álvarez
b1a35fbef7 Bug 1447358: Unifdef the old style system code. r=jwatt
Summary:
This has been automatically generated using:

  http://dotat.at/prog/unifdef/

And:

find $OBJDIR -type f -name '*.h' |
while read FILE; do
  echo "$FILE"
  unifdef -m -DMOZ_STYLO -UMOZ_OLD_STYLE "$FILE";
done

find $OBJDIR -type f -name '*.cpp' |
while read FILE; do
  echo "$FILE"
  unifdef -m -DMOZ_STYLO -UMOZ_OLD_STYLE "$FILE";
done

MozReview-Commit-ID: I4NdKqbMXzJ

Reviewers: jwatt

Bug #: 1447358

Differential Revision: https://phabricator.services.mozilla.com/D779
2018-03-21 10:20:34 +01:00
Xidorn Quan
3ebb0c69a4 Bug 1435139 - Don't call SetCSSDeclaration when removing non-existing property. r=bz
MozReview-Commit-ID: 8jt1D5RULEy
2018-02-05 16:07:44 +11:00
Cameron McCormack
02c617875f Bug 1430014 - Part 4: #ifdef out unnecessary code when the old style system is not built. r=xidorn
MozReview-Commit-ID: 1FZ9VzjcPzN
2018-02-01 15:04:04 +11:00
Boris Zbarsky
276fce3bc4 Bug 1428610 part 7. Make the nsICSSDeclaration length API nicer. r=emilio
MozReview-Commit-ID: 2gs8npBJFJY
2018-01-30 14:48:27 -05:00
Boris Zbarsky
0ba88b2885 Bug 1428610 part 6. Give nsICSSDeclaration::GetPropertyPriority a nicer signature. r=emilio
MozReview-Commit-ID: 4H2zADwdo5L
2018-01-30 14:48:27 -05:00
Boris Zbarsky
7a1455b2cc Bug 1428610 part 5. Make nsICSSDeclaration::Get/SetCSSText have nicer signatures. r=emilio
MozReview-Commit-ID: B25qvxKj9CW
2018-01-30 14:48:26 -05:00
Boris Zbarsky
369b32cdf4 Bug 1428610 part 4. Move the nsCSSPropertyID overload of nsICSSDeclaration::SetPropertyValue to nsDOMCSSDeclaration. r=emilio
MozReview-Commit-ID: 8BzCHahJjwv
2018-01-30 14:48:26 -05:00
Boris Zbarsky
d07e03543e Bug 1428610 part 3. Move the nsCSSPropertyID overload of nsICSSDeclaration::GetPropertyValue down to nsDOMCSSDeclaration. r=emilio
MozReview-Commit-ID: FHrkptqa2hZ
2018-01-30 14:48:26 -05:00
Cameron McCormack
6f67ab6348 Bug 1427512 - Part 29: Remove nsIDOMCSSDeclaration. r=xidorn,jryans,bz
This removes the .style attribute from nsIDOMSVGElement, but there
shouldn't be any users of that.

MozReview-Commit-ID: LOBSFo85Utn
2018-01-11 16:17:57 +08:00
Kris Maglione
913a54b7fe Bug 1415352: Part 1d - Use correct subject principal in CSS environment when modifying attr declarations. r=bz
MozReview-Commit-ID: AnurVwl65fX
2017-11-05 13:23:49 -08:00
Kris Maglione
5c100ad8bf Bug 1415352: Part 1c - Store the subject principal when setting Element.style properties. r=bz
This causes the subject principal that was responsible for setting a CSS
property, or the full cssText of an attribute, to be threaded through the call
chain to the point where CSS parsing happens, so that it can be used as the
triggering principal when loading URLs for that property.

Note that this allows for different properties defined in the same style
attribute to have different triggering principals, depending on the caller
which originally set them, as long as the cssText of that attribute is not
modified. Once it is, all properties revert to the principal of the caller
that modified the CSS text.

MozReview-Commit-ID: ISUyxbqAZMX
2017-11-03 21:44:03 -07:00
Daniel Holbert
8fea3c215f Bug 1412346 part 5: (automated patch) Switch a bunch of C++ files in layout to use our standard mode lines. r=jfkthame
This patch was generated automatically by the "modeline.py" script, available
here: https://github.com/amccreight/moz-source-tools/blob/master/modeline.py

For every file that is modified in this patch, the changes are as follows:
 (1) The patch changes the file to use the exact C++ mode lines from the
     Mozilla coding style guide, available here:
https://developer.mozilla.org/en-US/docs/Mozilla/Developer_guide/Coding_Style#Mode_Line

 (2) The patch deletes any blank lines between the mode line & the MPL
     boilerplate comment.

 (3) If the file previously had the mode lines and MPL boilerplate in a
     single contiguous C++ comment, then the patch splits them into
     separate C++ comments, to match the boilerplate in the coding style.

MozReview-Commit-ID: EuRsDue63tK
2017-10-27 10:33:53 -07:00
Boris Zbarsky
ec484bcf8d Bug 1402218. Make sure to clone our CSSDeclaration as needed when removing properties. r=emilio
MozReview-Commit-ID: 6LRjLU3QQok
2017-09-28 22:04:34 -04:00
Andrew McCreight
1ca9932763 Bug 1390660, part 1 - Clean up some uses of the table-to-map segue. r=peterv
In a number of places, there's no substantial use of maps any more
after the segue.

The ELEMENT segue tries the FragmentOrElement QI, but that is
redundant with the Element QI.

This lets me use a few higher-level macros.

MozReview-Commit-ID: Gstq3Cm8LDl
2017-08-16 13:37:20 -07:00
Brad Werth
2934811adc Bug 1302513 Part 3: Remove declarations and implementations of getAuthoredPropertyValue. r=dholbert
MozReview-Commit-ID: LxlUfhPJUaa
2017-07-21 14:18:45 -07:00
Josh Matthews
34594ebaa7 Bug 1352669 - Hook up Stylo CSS parser to Gecko error reporter. r=emilio
MozReview-Commit-ID: 3r5Z6KiPgRM
2017-07-10 17:52:00 -04:00
Wes Kocher
8cbe4b5d79 Backed out changeset f220d8060c14 (bug 1352669) for build bustage CLOSED TREE a=bustage
MozReview-Commit-ID: INYGT4WT1pO
2017-07-06 14:56:06 -07:00
Josh Matthews
6416600b5e Bug 1352669 - Hook up Stylo CSS parser to Gecko error reporter.
MozReview-Commit-ID: 3r5Z6KiPgRM
2017-07-06 13:15:08 -07:00
Hiroyuki Ikezoe
9b3da66f44 Bug 1358966 - Drop a redundant include for DeclarationBlockInlines.h. r=birtles
MozReview-Commit-ID: Av21Kes51z8
2017-06-09 06:19:37 +09:00
Hiroyuki Ikezoe
45d7a975ff Bug 1361938 - Do not reuse DeclarationBlock when modifying inline style. r=heycam
In stylo, the DeclarationBlock is stored in element's RuleNode directly,
so when we call setProperty(), the new property value replaces the old value
immediately. This causes a problem for CSS transition.  CSS transition needs
before-change style.

From the spec;
 before-change style as the computed values of all properties on the element
 as of the previous style change event, except with any styles derived from
 declarative animations such as CSS Transitions, CSS Animations, and SMIL
 Animations updated to the current time

To get correct before-change style, when we call getProperty(), we need to
preserve rule nodes tree as the rules as of the *previous style change event*.
And we need to cascade the preserved rule nodes with updated animation rules during
animation-only restyle, and then we can use the result of the cascading as
before-change style before cascading inline style changes in normal restyle.

MozReview-Commit-ID: 9bkHz3Vvqg2
2017-05-31 09:24:57 +09:00
Emilio Cobos Álvarez
316468597e Bug 1365629: minor cleanup in ServoCSSParsingEnvironment code. r=canaltinova
At first I thought that the problem was related to this bug, so I wrote this.

I think it's worth landing.

MozReview-Commit-ID: G6UKp5l5STm
2017-05-21 15:06:27 +02:00
Xidorn Quan
e866068ced Bug 1345697 part 1 - Various fix for adding new files. r=heycam
MozReview-Commit-ID: 33Ssd7tNZ2K
2017-05-19 16:12:34 +10:00
Nazım Can Altınova
072d3c9b05 Bug 1364746 - stylo: Continue to propagate quirks mode information to Servo r=bholley
I've propagated quirks mode information on some places. But we needed to pass
quirks mode to some other FFI functions to be able to handle that information
properly.

MozReview-Commit-ID: JovQWjN3YJx
2017-05-14 18:11:18 +03:00
Nazım Can Altınova
fe6b4ad014 Bug 1360488 - Part 2: stylo: Propagate quirks mode information from Gecko to Servo r=bholley
MozReview-Commit-ID: 6AyuC2jd3d4
2017-05-06 01:12:03 +03:00
Nazım Can Altınova
7aed30d8da Bug 1360488 - Part 1: stylo: Add ServoCSSParsingEnvironment and pass this instead of URLExtraData r=bholley
It was inconsistent with gecko side and also we needed to pass nsCompatibility enum along with URLExtraData.

MozReview-Commit-ID: 2ceutBfqBrg
2017-05-11 19:06:43 +03:00
Hiroyuki Ikezoe
fcfc8db486 Bug 1357295 - Rename LengthParsingMode to ParsingMode and LengthParsingMode::SVG to PasingMode::AllowUnitlessLength. r=emilio
We need another flag that represents allow-negative-number for SMIL, so
this enum will also comprise the another parsing mode that allows negative number.

MozReview-Commit-ID: IDFNppjGeB
2017-05-13 19:47:38 +09:00
J. Ryan Stinnett
7a0935b7e4 Bug 1329088 - Pass SVG length mode to Stylo. r=emilio
In the SVG element case, tell Stylo to use the SVG length mode.

MozReview-Commit-ID: 9UR1AYRh4RE
2017-04-14 18:27:49 +08:00
Xidorn Quan
a441f29cd6 Bug 1343964 followup - Add back code change which was incorrectly dropped when addressing review comment on a CLOSED TREE.
MozReview-Commit-ID: Kwehpac1Dia
2017-04-07 13:56:03 +10:00
Xidorn Quan
c61841a1ad Bug 1343964 part 7 - Use URLExtraData for declaration modification directly for Servo backend. r=heycam
MozReview-Commit-ID: 78JRYKk9hgV
2017-04-04 16:09:20 +10:00
Xidorn Quan
94dc384220 Bug 1343964 part 5 - Factor out common part of nsDOMCSSDeclaration::Parse{,Custom}PropertyValue. r=heycam
MozReview-Commit-ID: 6IX8sWF4Vhn
2017-04-04 15:28:07 +10:00
Xidorn Quan
93655e51b9 Bug 1343964 part 1 - Move URLExtraData into its own header. r=heycam
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
2017-04-04 10:04:13 +10:00
Xidorn Quan
d119ed8817 Bug 1352025 part 2 - Stop passing in url as string for parsing. r=manishearth
MozReview-Commit-ID: CRgOO7NyYd9
2017-04-01 16:17:55 +11:00
Xidorn Quan
95cf226194 Bug 1351957 - Create URLExtraData for holding base uri, referrer, and principal. r=heycam
MozReview-Commit-ID: 1wqTb3kvvWh
2017-03-30 18:54:48 +11:00
Manish Goregaokar
778095fea4 Bug 1341690 - stylo: Make URLs work in inline style; r=emilio
MozReview-Commit-ID: 6Tc0kBw4V8c
2017-03-10 18:28:02 -08:00
Manish Goregaokar
e1727077ec Bug 1329093 - Part 1: stylo: Handle SVG presentation attributes; r=bz
MozReview-Commit-ID: 9cymo3c9HIn
2017-03-09 17:46:21 -08:00