Commit Graph
43 Commits
Author SHA1 Message Date
Emilio Cobos Álvarez e4ecfea530 Bug 2038976 - Make CSSOM work on raw declaration blocks, rather than DeclarationBlock. r=firefox-style-system-reviewers,layout-reviewers,dshin
This will make being more granular with cloning easier, and we don't
need it after the previous patch.

This leaves DeclarationBlock only for the style attribute for now, we
need it for the AttrStyles stuff. But I plan to move that to
MiscContainer instead or so.

Differential Revision: https://phabricator.services.mozilla.com/D300052
2026-05-13 22:29:25 +00:00
Emilio Cobos Álvarez f7e0f764d4 Bug 2038976 - Move immutable flag from DeclarationBlock to Rust. r=firefox-style-system-reviewers,dshin
This makes us not have to care about the owning rule.

Make shmem rules immutable directly too, to avoid needing the
OwnerIsReadOnly() checks.

Differential Revision: https://phabricator.services.mozilla.com/D300026
2026-05-12 16:30:41 +00:00
Sylvestre Ledru 55481ac4b5 Bug 2023419 - Remove Emacs/Vim modelines from layout/ r=emilio,firefox-style-system-reviewers,layout-reviewers
replaced by .editorconfig

Differential Revision: https://phabricator.services.mozilla.com/D287852
2026-03-17 12:05:43 +00:00
Emilio Cobos Álvarez a8a2311474 Bug 1976457 - Sort includes in layout/. r=janv,dshin
Interesting bit is layout/.clang-format, the rest is all automated.

Differential Revision: https://phabricator.services.mozilla.com/D256616
2025-07-09 13:24:00 +00:00
Emily McDonough e3d2cf8811 Bug 1890842 - Generate CSSPageDescriptors.webidl and change CSSPageRule to use CSSPageDescriptors for Style(). r=webidl,emilio
Refactor GenerateCSS2PropertiesWebIDL.py to generate both CSS2Properties and
also CSSPageDescriptors.

I had to adjust the margin property in Servo to ensure
`margin_{inline,block}_{start,end}` did not end up in CSSPageDescriptors.

I also removed the main function from the script since the arguments are
already inaccurately named as leftovers from its previous usage, and this
script is only invoked by function name by the build anyway.

Differential Revision: https://phabricator.services.mozilla.com/D209061
2024-07-02 22:36:07 +00:00
Emily McDonough 3695814b25 Bug 1868215 - Change css::PageRule to inherit from css::GroupRule rather than css::Rule r=webidl,firefox-style-system-reviewers,emilio
Differential Revision: https://phabricator.services.mozilla.com/D206073
2024-04-04 01:04:41 +00:00
Emilio Cobos Álvarez 057cadb272 Bug 1832173 - Finish removing HasArcFFI. r=boris
Use the actual Locked<T> types around (via a typedef, just for
convenience).

Differential Revision: https://phabricator.services.mozilla.com/D177824
2023-05-12 22:31:38 +00:00
Butkovits Atila 1f06787277 Backed out changeset f6e3d050b3e7 (bug 1832173) for causing bustages at CanvasRenderingContext2D.cpp. CLOSED TREE 2023-05-13 01:16:03 +03:00
Emilio Cobos Álvarez 5c9b936c47 Bug 1832173 - Finish removing HasArcFFI. r=boris
Use the actual Locked<T> types around (via a typedef, just for
convenience).

Differential Revision: https://phabricator.services.mozilla.com/D177824
2023-05-12 21:37:19 +00:00
Emilio Cobos Álvarez 8f5d7d53d5 Bug 1832173 - Remove HasArcFFI for some types. r=boris
See blocked bug.

For non-Locked types we can just use the same underlying type at the FFI
boundary. Port StylesheetContents and CssUrlData to this set-up.
CssUrlData is already generated by cbindgen anyways.

Differential Revision: https://phabricator.services.mozilla.com/D177559
2023-05-11 00:36:24 +00:00
Emily McDonough 4c43bbfa8f Bug 1740364 Part 1 - Implement basic @page-rule selector parsing r=emilio
This does not support any of the pseudo page types.

Differential Revision: https://phabricator.services.mozilla.com/D131532
2022-01-21 21:52:43 +00:00
Emilio Cobos Álvarez eca75548b1 Bug 1729330 - Add a simple CSSLayerRule implementation. r=smaug
The specifics of how this is going to work are still getting spec'd /
discussed in https://github.com/w3c/csswg-drafts/issues/6576, but this
allows DevTools to work fine and the feature to be complete enough for
Nightly experimentation (with the other in-flight patches).

Otherwise devtools crashes when trying to inspect pages that use them.

Differential Revision: https://phabricator.services.mozilla.com/D124656
2021-09-08 11:18:32 +00:00
Emilio Cobos Álvarez 64c5bc4ff9 Bug 1711437 - Don't EnsureUniqueInner from the cssRules getter. r=layout-reviewers,jfkthame
Instead, fix up the various content data structures when the stylesheet
is mutated. This makes reading a stylesheet not disable style sharing.

Differential Revision: https://phabricator.services.mozilla.com/D115203
2021-07-20 13:17:02 +00:00
Dorel Luca 50c9bd5973 Backed out changeset 0e17878eeb86 (bug 1711437) for causing Bug 1719963. a=backout DONTBUILD 2021-07-14 00:36:05 +03:00
Emilio Cobos Álvarez 0aa7c71572 Bug 1711437 - Don't EnsureUniqueInner from the cssRules getter. r=layout-reviewers,jfkthame
Instead, fix up the various content data structures when the stylesheet
is mutated. This makes reading a stylesheet not disable style sharing.

Differential Revision: https://phabricator.services.mozilla.com/D115203
2021-07-12 16:02:58 +00:00
Alexandru Michis 38af0168b1 Backed out changeset 998af7ced46f (bug 1711437) for causing Bug 1719963. a=backout 2021-07-10 12:44:08 +03:00
Emilio Cobos Álvarez 757fc5dc7e Bug 1711437 - Don't EnsureUniqueInner from the cssRules getter. r=layout-reviewers,jfkthame
Instead, fix up the various content data structures when the stylesheet
is mutated. This makes reading a stylesheet not disable style sharing.

Differential Revision: https://phabricator.services.mozilla.com/D115203
2021-07-09 16:25:54 +00:00
Butkovits Atila 05da8627a7 Backed out changeset f7944c3f9e5b (bug 1711437) for causing mochitest failures. CLOSED TREE 2021-05-25 18:56:00 +03:00
Emilio Cobos Álvarez 300a55ef37 Bug 1711437 - Don't EnsureUniqueInner from the cssRules getter. r=layout-reviewers,jfkthame
Instead, fix up the various content data structures when the stylesheet
is mutated. This makes reading a stylesheet not disable style sharing.

Differential Revision: https://phabricator.services.mozilla.com/D115203
2021-05-25 13:23:35 +00:00
Dorel Luca 34cfddcda0 Backed out changeset 2c95330ad7c7 (bug 1711437) for Devtools failures in devtools/client/inspector/markup/test/browser_markup_shadowdom.js. CLOSED TREE 2021-05-24 23:01:46 +03:00
Emilio Cobos Álvarez d11652972d Bug 1711437 - Don't EnsureUniqueInner from the cssRules getter. r=layout-reviewers,jfkthame
Instead, fix up the various content data structures when the stylesheet
is mutated. This makes reading a stylesheet not disable style sharing.

Differential Revision: https://phabricator.services.mozilla.com/D115203
2021-05-24 17:18:44 +00:00
Kagami Sascha Rosylight 09c48240aa Bug 1697829 - Part 1: Get relevant global for disassociated CSS rule objects r=emilio
Differential Revision: https://phabricator.services.mozilla.com/D108873
2021-03-22 21:15:34 +00:00
Emilio Cobos Álvarez fe2b95e111 Bug 1682003 - Avoid UTF-8 -> UTF-16 conversion during CSSOM serialization. r=heycam
This lifts a bunch of string conversions higher up the stack, but allows
us to make the servo code use utf-8 unconditionally, and seemed faster
in my benchmarking (see comment 0).

It should also make a bunch of attribute setters faster too (like
setting .cssText), now that we use UTF8String for them (we couldn't
because we couldn't specify different string types for the getter and
setters).

Differential Revision: https://phabricator.services.mozilla.com/D99590
2020-12-17 14:04:35 +00:00
Emilio Cobos Álvarez b04596dcdf Bug 1665816 - CSSOM should respect rule-level property restrictions. r=jwatt
Differential Revision: https://phabricator.services.mozilla.com/D90729
2020-09-21 09:57:46 +00:00
Simon Giesecke 9bcfd47601 Bug 1611415 - Prefer using std::move over forget. r=froydnj
Differential Revision: https://phabricator.services.mozilla.com/D60980
2020-02-13 14:38:48 +00:00
shindli 6bb3487209 Backed out changeset 0c982bc69cb3 (bug 1611415) for causing build bustages in /builds/worker/workspace/build/src/obj-firefox/dist/include/nsCOMPtr CLOSED TREE 2020-02-12 20:13:29 +02:00
Simon Giesecke d45525793f Bug 1611415 - Applied FixItHints from mozilla-non-std-move. r=froydnj
Differential Revision: https://phabricator.services.mozilla.com/D60980
2020-02-12 17:24:41 +00:00
Boris Zbarsky 02b54ca516 Bug 1566684 followup to address review comments. r=smaug, DONTBUILD 2019-07-22 15:27:28 -04:00
Emilio Cobos Álvarez 790064c3c3 Bug 1566684 - Make sure to unlink rule declarations before unlinking css::Rule. r=smaug,emilio
Rules and their declarations are a single object as far as the CC is concerned.  They have a single nsCycleCollectionISupports and they are represented by a single node in the CC graph.  That single object has two nsWrapperCache instances in it that point to different JS objects, and we need to make sure that the ordering of the unlink operations for those nsWrapperCache instances is handled correctly.

Differential Revision: https://phabricator.services.mozilla.com/D38326
2019-07-22 18:33:29 +00:00
Coroiu Cristina 241c275d38 Backed out changeset 54e5c7e82504 (bug 1566684) for crashtest failures at dist/include/mozilla/dom/BindingUtils.h on a CLOSED TREE 2019-07-17 19:20:23 +03:00
Emilio Cobos Álvarez e5371027f8 Bug 1566684 - Make sure to unlink rule subclass members before unlinking css::Rule. r=bzbarsky
Differential Revision: https://phabricator.services.mozilla.com/D38326
2019-07-17 15:09:58 +00:00
Cameron McCormack ceebf312b5 Bug 1539159 - Prevent modification of UA style sheets. r=emilio
Differential Revision: https://phabricator.services.mozilla.com/D25661
2019-04-29 05:34:06 +00:00
Emilio Cobos Álvarez dc336a73ba Bug 1517241 - Rename nsIDocument to mozilla::dom::Document. r=smaug
Summary: Really sorry for the size of the patch. It's mostly automatic
s/nsIDocument/Document/ but I had to fix up in a bunch of places manually to
add the right namespacing and such.

Overall it's not a very interesting patch I think.

nsDocument.cpp turns into Document.cpp, nsIDocument.h into Document.h and
nsIDocumentInlines.h into DocumentInlines.h.

I also changed a bunch of nsCOMPtr usage to RefPtr, but not all of it.

While fixing up some of the bits I also removed some unneeded OwnerDoc() null
checks and such, but I didn't do anything riskier than that.
2019-01-03 17:48:33 +01:00
Emilio Cobos Álvarez 464c5a2325 Bug 1515707 - Reformat the files touched in the previous commit. r=Ehsan
Depends on D15125

Differential Revision: https://phabricator.services.mozilla.com/D15126
2018-12-20 19:33:09 +00:00
Emilio Cobos Álvarez 4d49e25b6b Bug 1515707 - Use NS_INTERFACE_MAP_END_INHERITING in some CSSStyleDeclaration implementations. r=Ehsan
This has no behavior change, since it just expands to
NS_IMPL_QUERY_TAIL_INHERITING, but it's clearer, and clang-format understands
it.

Also, these are the only uses of this macro, so I don't think we should make
clang-format understand it.

Differential Revision: https://phabricator.services.mozilla.com/D15125
2018-12-20 19:32:51 +00:00
Sylvestre Ledru e5a134f73a Bug 1511181 - Reformat everything to the Google coding style r=ehsan a=clang-format
# ignore-this-changeset
2018-11-30 11:46:48 +01:00
Cameron McCormack bd44a6c7df Bug 1472065 - Initialize mSheet and mParentRule in css::Rule's constructor. r=xidorn
MozReview-Commit-ID: JI3cMiJaH3x
2018-06-29 12:56:09 +10:00
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
Nazım Can Altınova 7afde10da7 Bug 1451289 - Part 7: Merge ServoPageRule and CSSPageRule r=emilio
MozReview-Commit-ID: 5kqMLZWXFN5
2018-06-05 13:39:42 +02:00
Cameron McCormack fdd9179555 Bug 1427512 - Part 12: Remove nsIDOMCSSPageRule. r=xidorn
MozReview-Commit-ID: 3UjngxQgQ6W
2018-01-11 16:17:55 +08:00
Andrew McCreight 84ee98de3c Bug 1391005 - Eliminate NS_INTERFACE_MAP_BEGIN_CYCLE_COLLECTION_INHERITED. r=peterv
Replace it with NS_INTERFACE_MAP_BEGIN_CYCLE_COLLECTION, because it
has been the same for a while.

MozReview-Commit-ID: 5agRGFyUry1
2017-08-29 16:02:48 -07:00
J. Ryan Stinnett 0bbef73202 Bug 1345206 - Extract CSSPageRule base class. r=xidorn
Extract a `CSSPageRule` base class from the existing Gecko `nsCSSPageRule`
class.  This will be used in the next commit as the parent of a new
`ServoPageRule` for the Servo variant.

MozReview-Commit-ID: 1F3FWfVKH29
2017-03-31 19:14:49 -05:00