Commit Graph

87 Commits

Author SHA1 Message Date
Emilio Cobos Álvarez
450262c71f Bug 1381071 - Cache computed styles objects display: none subtrees. r=boris
This reuses our existing undisplayed style generation, but in a
per-document rather than per-nsComputedDOMStyle object, which means that
we can avoid re-resolving styles of elements in display: none subtrees
much more often.

This brings the test-case in the bug to par with other browsers or
better, and is much simpler than the initial approach I tried back in
the day.

Differential Revision: https://phabricator.services.mozilla.com/D147547
2022-05-30 11:08:15 +00:00
Ryan VanderMeulen
ccfb60c2de Backed out changeset 4b53d6459297 (bug 1719963) for causing topcrash bug 1722150. 2021-08-09 08:52:56 -04:00
Emilio Cobos Álvarez
bb5edc0cda Bug 1719963 - Better wallpaper for now.
Differential Revision: https://phabricator.services.mozilla.com/D120699
2021-07-23 07:43:59 +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
Emilio Cobos Álvarez
883c777b15 Bug 1696447 - Share CascadeData instances across ShadowRoots. r=boris
This should be both a memory and speed win for pages using a lot of
Shadow DOM.

In order to make the cache properly work we need to start keying media query
results on the actual StyleSheetContents, as that's what we share on Gecko, but
that should all be fine.

Differential Revision: https://phabricator.services.mozilla.com/D107266
2021-03-10 12:34:09 +00:00
Emilio Cobos Álvarez
fb0ce77605 Bug 1546046 - Remove support for XBL resources. r=TYLin
So much unsound code going away :-)

Differential Revision: https://phabricator.services.mozilla.com/D28380
2019-04-23 16:43:15 +00:00
Bogdan Tara
76d9bb886c Backed out changeset e85cb54e5944 (bug 1546046) complementary backout after 1470880 was backed out CLOSED TREE 2019-04-23 06:55:29 +03:00
Emilio Cobos Álvarez
e74cdacc5c Bug 1546046 - Remove support for XBL resources. r=TYLin
So much unsound code going away :-)

Differential Revision: https://phabricator.services.mozilla.com/D28380
2019-04-22 21:57:22 +00:00
Emilio Cobos Álvarez
39911e6484 Bug 1536586 - Simplify a bit our generated bindings by getting rid of FooBorrowed and FooBorrowedMut. r=heycam
This reduces a lot the boilerplate that's needed in order to add simple binding
functions.

This starts using &Foo and Option<&Foo> instead, and as a result we need to
remove the servo_function_signatures test, which is a bit unfortunate.

I think it's worth though, this causes problems on some platforms (see bug
1534844), and messing up the functions signature is not something that I've ever
seen (other than bug 1308234, which already had all the FooBorrowed mess which
I'm removing).

Also, cbindgen understands references and Option<&Foo>, so it will be the way to
go in the future.

After this patch we can also remove HasSimpleFFI, but I've kept it for now since
I still use it in a few places, and this patch is quite big on its own.

Differential Revision: https://phabricator.services.mozilla.com/D24092
2019-03-21 17:00:27 +00:00
Emilio Cobos Álvarez
0a9e717305 Bug 1530751 - Make the pres context optional in the style system. r=jwatt
Differential Revision: https://phabricator.services.mozilla.com/D21239
2019-03-06 21:36:12 +00:00
Emilio Cobos Álvarez
7f72635b8f Bug 1530193 - Refactor preference stylesheet prefs to not require a pres context. r=jwatt
We really only have two sets of prefs, one for chrome-like documents
(stuff in chrome docshells + chrome-origin images), and one for the rest.

Differential Revision: https://phabricator.services.mozilla.com/D20946
2019-03-06 21:34:30 +00:00
Emilio Cobos Álvarez
93fa139f60 Bug 1518045 - Rustfmt recent changes. 2019-01-07 00:53:17 +01:00
Simon Sapin
07c1de366b Bug 1518045 - Rustfmt has changed its default style. r=emilio
This cherry-picks the formatting parts of
https://github.com/servo/servo/pull/22385.
2019-01-07 00:53:06 +01: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
dea05cdada Bug 1511811 - Use https for the MPL license URL.
Cherry-picks https://github.com/servo/servo/pull/22198
2018-12-03 08:43:48 -05:00
shindli
3a4462fafb Backed out 13 changesets (bug 1511811) for Btup bustages
Backed out changeset d71cde918f43 (bug 1511811)
Backed out changeset 0ae2634de8e1 (bug 1511811)
Backed out changeset 53d1f5ca4099 (bug 1511811)
Backed out changeset 5a08148928ef (bug 1511811)
Backed out changeset da7816ec50ef (bug 1511811)
Backed out changeset 5fe23889cccc (bug 1511811)
Backed out changeset 800bc60c75a7 (bug 1511811)
Backed out changeset 2392d8199cd0 (bug 1511811)
Backed out changeset 7bc486fbd195 (bug 1511811)
Backed out changeset d2c997426108 (bug 1511811)
Backed out changeset ddd573878432 (bug 1511811)
Backed out changeset 29c8ec1559a4 (bug 1511811)
Backed out changeset f5851346109d (bug 1511811)
2018-12-03 15:39:11 +02:00
Emilio Cobos Álvarez
11a665046f Bug 1511811 - Use https for the MPL license URL.
Cherry-picks https://github.com/servo/servo/pull/22198
2018-12-03 08:15:21 -05:00
Simon Sapin
4fde18b0de Bug 1506391 - cargo fix --edition --features gecko. r=emilio 2018-11-11 02:40:24 +01:00
Brindusan Cristian
d311f835d2 Backed out 7 changesets (bug 1506391) for Btup bustages.
Backed out changeset b8216171101c (bug 1506391)
Backed out changeset 03d2309b737d (bug 1506391)
Backed out changeset 7b63f3149852 (bug 1506391)
Backed out changeset be88680421db (bug 1506391)
Backed out changeset 3840ce1ebfb0 (bug 1506391)
Backed out changeset 94517e21621c (bug 1506391)
Backed out changeset 32bde6f52a32 (bug 1506391)
2018-11-11 01:08:20 +02:00
Simon Sapin
bbea913aba Bug 1506391 - cargo fix --edition --features gecko. r=emilio 2018-11-10 21:14:15 +01:00
Emilio Cobos Álvarez
94e6b3c75b Bug 1505618 - Some minor follow-up formatting nits. 2018-11-08 01:05:36 +01:00
Emilio Cobos Álvarez
87231dd9d5 Bug 1505618 - Import formatting changes from servo/servo#22126. 2018-11-08 00:50:12 +01:00
Cameron McCormack
93494a70e9 Bug 1498755 - Part 11: Move Gecko borrowed FFI types to a separate header file r=emilio
Depends on D8652

Differential Revision: https://phabricator.services.mozilla.com/D8653
2018-10-14 00:06:13 +00:00
chansuke
135da1df90 Bug 1489862 - Format style component. r=emilio
This cherry-picks servo/servo#21652.
2018-09-09 17:03:19 +02:00
Emilio Cobos Álvarez
a1a56ee439 Bug 1477773: no-op visited changes earlier if visited links are disabled. r=xidorn
We force a repaint from ContentStateChangedInternal if visited links are
disabled, and that's observable. Let's cut it off as early as we can to avoid
timing attacks even when :visited is disabled.

Differential Revision: https://phabricator.services.mozilla.com/D3304
2018-08-15 12:54:26 +02:00
Emilio Cobos Álvarez
9aec6d7a36 No bug - Appease Servo's tidy lint. r=me
MozReview-Commit-ID: WPZYZPzuCK
2018-06-23 20:46:42 +02:00
Emilio Cobos Álvarez
b74c80a080 Bug 1470145: Better debugging for stylesheets and URLs. r=xidorn
MozReview-Commit-ID: FIcz2K1ZYX0
2018-06-22 02:33:07 +02:00
Emilio Cobos Álvarez
be43ec910e Bug 1457920: Remove ServoStyleSheet usage. r=xidorn
MozReview-Commit-ID: LIBkovuQ6MB
2018-05-02 04:13:26 +02:00
Emilio Cobos Álvarez
9649475c48 Bug 1457920: Merge ServoStyleSheet and StyleSheet. r=xidorn
These are the most minimal changes I could make. More cleanups incoming.

MozReview-Commit-ID: AdMOA1acQIH
2018-05-02 04:13:10 +02:00
Emilio Cobos Álvarez
dce7fa7d38 Bug 1456471: Unify MediaList and ServoMediaList. r=xidorn
MozReview-Commit-ID: KFWxoohpGlb
2018-04-25 10:37:04 +02:00
Bobby Holley
e009b4e54f Bug 1454030 - Allow placeholder import sheets. r=emilio
This is necessary because we can't create GeckoStyleSheets off-main-thread,
so we need a placeholder until it can be filled in.

MozReview-Commit-ID: ssRme4fLYg
2018-04-16 15:15:45 -07:00
Bobby Holley
196912c9bf servo: Merge #20603 - Run rustfmt on selectors, servo_arc, and style (from bholley:rustfmt_style); r=Manishearth
Now that rustfmt is getting close to stable, and work on the style system has died down a bit, it seemed like an opportune time to auto-format the style crates.

The first commit disables import reordering, since tidy and rustfmt don't currently agree on the correct ordering. The second commit does a bunch of manual fixups such that the output of rustfmt passes tidy. The third commit runs rustfmt on the three aforementioned crate.

There are a few dozen warnings in the style crate about lines longer than 100 characters. It would be good to fix these, but I don't have time for that now.

Source-Repo: https://github.com/servo/servo
Source-Revision: 9a900ef019cd643bff961d7b20db6da69f3edb29
2018-04-10 21:00:11 -04:00
Nicholas Nethercote
8decdb3fdd servo: Merge #20508 - Convert StylePrefs to StaticPrefs (from nnethercote:bug-1448225); r=emilio
<!-- Please describe your changes on the following line: -->

This is the Servo part of https://bugzilla.mozilla.org/show_bug.cgi?id=1448225.
---
<!-- Thank you for contributing to Servo! Please replace each `[ ]` by `[X]` when the step is complete, and replace `__` with appropriate data: -->
- [x] `./mach build -d` does not report any errors
- [x] `./mach test-tidy` does not report any errors
- [x] These changes fix https://bugzilla.mozilla.org/show_bug.cgi?id=1448225

<!-- Either: -->
- [ ] There are tests for these changes OR
- [X] These changes do not require tests because tested on the Gecko side.

<!-- Also, please make sure that "Allow edits from maintainers" checkbox is checked, so that we can help you if you get stuck somewhere along the way.-->

<!-- Pull requests that do not address these steps are welcome, but they will require additional verification as part of the review process. -->

r? emilio

Source-Repo: https://github.com/servo/servo
Source-Revision: 0a3ffc0c6045eb6983273010d91a35267d8ec3fa
2018-04-03 01:54:24 -04:00
Emilio Cobos Álvarez
c0cc52372a servo: Merge #20030 - style: Remove useless code after #19994 (from emilio:useless-return-is-useless); r=nox
Source-Repo: https://github.com/servo/servo
Source-Revision: 3a42f6f988c4bfb1847ed8dbb7a0013c6b2e528a
2018-02-12 08:47:36 -05:00
Manish Goregaokar
cca6c7f2a6 servo: Merge #19994 - Remove traversal telemetry (from Manishearth:rm-telemetry); r=upsuper
Source-Repo: https://github.com/servo/servo
Source-Revision: e654afbc3e47d97835328e6131ef51b2e27e3409
2018-02-08 08:10:09 -05:00
Emilio Cobos Álvarez
9134742fc1 servo: Merge #19877 - style: Look at the snapshots when invalidating due to stylesheet changes (from emilio:remove-sheet-oh-noes); r=bz
Otherwise removal of stylesheets may get out of sync with other DOM changes, and
we may fail to invalidate the style of the affected elements.

Bug: 1432850
Reviewed-by: bz
MozReview-Commit-ID: DrMTgLzQcnk
Source-Repo: https://github.com/servo/servo
Source-Revision: bc7dd644f6f50bd6eb3fba1547808775ee9d7620
2018-01-26 20:18:48 -06:00
Manish Goregaokar
e1e6fb55b6 servo: Merge #19549 - Add telemetry probe for measuring frequency of parallel restyles (from Manishearth:telemetry); r=emilio
Servo side of https://bugzilla.mozilla.org/show_bug.cgi?id=1421195

r=emilio

Source-Repo: https://github.com/servo/servo
Source-Revision: 80341b291b3c1f0d423d8b8ab4eb8b1e78e03f2a
2017-12-12 10:14:31 -06:00
Emilio Cobos Álvarez
c502b43d72 servo: Merge #19398 - style: Disable :visited if the document is being used as an image (from emilio:visited-as-an-image); r=dholbert
Bug: 1420001
Reviewed-by: dholbert
MozReview-Commit-ID: F9MeT1kXZER
Source-Repo: https://github.com/servo/servo
Source-Revision: 7c99ae3bb8056f7e30a3b40340200eced385902d
2017-11-27 14:57:57 -06:00
Cameron McCormack
f1a4603a3f servo: Merge #19262 - style: Look up Gecko visited style pref directly (from heycam:visited-links-enable); r=TYLin
Servo side part of https://bugzilla.mozilla.org/show_bug.cgi?id=1418217 reviewed there by TYLin.

Source-Repo: https://github.com/servo/servo
Source-Revision: 7b0006ece6aff4fdac4dd88b49eb6468329dae11
2017-11-17 03:12:48 -06:00
Emilio Cobos Álvarez
4edd12ae04 servo: Merge #18794 - style: use the XBL styleset quirks mode to match XBL rules (from emilio:xbl-quirks-mode); r=heycam
This fixes bug 1405543.

MozReview-Commit-ID: Dv3mt3Fb8Yp
Source-Repo: https://github.com/servo/servo
Source-Revision: 604cc4e311f1aec72599d43c5a0138b04c8b780d
2017-10-09 05:04:15 -05:00
Nicholas Nethercote
f458f10d55 servo: Merge #18637 - Two small tweaks related to MallocSizeOf (from nnethercote:rename-add_size_of_children); r=emilio
<!-- Please describe your changes on the following line: -->

---
<!-- Thank you for contributing to Servo! Please replace each `[ ]` by `[X]` when the step is complete, and replace `__` with appropriate data: -->
- [X] `./mach build -d` does not report any errors
- [X] `./mach test-tidy` does not report any errors
- [ ] These changes fix #__ (github issue number if applicable).

<!-- Either: -->
- [ ] There are tests for these changes OR
- [X] These changes do not require tests because tested on the Gecko side.

<!-- Also, please make sure that "Allow edits from maintainers" checkbox is checked, so that we can help you if you get stuck somewhere along the way.-->

<!-- Pull requests that do not address these steps are welcome, but they will require additional verification as part of the review process. -->

Source-Repo: https://github.com/servo/servo
Source-Revision: 81801ab8b4c76eb1fc69a6d31175c3a372dad93a
2017-09-26 05:52:34 -05:00
Emilio Cobos Álvarez
2052160110 servo: Merge #18502 - style: Unify how servo and Gecko handle UA sheets (from emilio:ua-sheets-unify); r=simonsapin
Source-Repo: https://github.com/servo/servo
Source-Revision: 75e126f139197c447686242082d9e7f61ba92c3f
2017-09-14 15:55:21 -05:00
Emilio Cobos Álvarez
32fbdbefbc servo: Merge #18486 - style: Move ExtraStyleData into CascadeData (from emilio:extra-data-to-cascade-data); r=SimonSapin
It logically belongs there, and the only reason it wasn't there before we were
working around other stuff. Now it's needed to share UA stylesheets across documents.

Source-Repo: https://github.com/servo/servo
Source-Revision: 1ab705b0265cac358c3bebb3fec8cbac089f015d
2017-09-13 17:44:21 -05:00
Nicholas Nethercote
32af6cf8e2 servo: Merge #18452 - Overhaul MallocSizeOf and related things (from nnethercote:bug-1398737); r=jdm
This patch makes the MallocSizeOf stuff in Stylo work more like the HeapSizeOf
stuff already in Servo, except better. In particular, it adds deriving support
for MallocSizeOf, which will make it easier to improve coverage.

The patch does the following.

- Combines servo/components/style/stylesheets/memory.rs and the heapsize crate
  into a new crate, malloc_size_of.

- Forks the heapsize_derive crate, calling it malloc_size_of, so that
  MallocSizeOf can be derived.

- Both the new crates have MIT/Apache licenses, like heapsize, in case they are
  incorporated into heapsize in the future.

- Renames the methods within MallocSizeOf and the related traits so they are
  more concise.

- Removes MallocSizeOfWithGuard.

- Adds `derive(MallocSizeOf)` to a lot of types, in some cases replacing an
  equivalent or almost-equivalent hand-written implementation.

- Adds stuff so that Rc/Arc can be handled properly.

<!-- Please describe your changes on the following line: -->

---
<!-- Thank you for contributing to Servo! Please replace each `[ ]` by `[X]` when the step is complete, and replace `__` with appropriate data: -->
- [X] `./mach build -d` does not report any errors
- [X] `./mach test-tidy` does not report any errors
- [ ] These changes fix #__ (github issue number if applicable).

<!-- Either: -->
- [ ] There are tests for these changes OR
- [X] These changes do not require tests because tested on Gecko side.

<!-- Also, please make sure that "Allow edits from maintainers" checkbox is checked, so that we can help you if you get stuck somewhere along the way.-->

<!-- Pull requests that do not address these steps are welcome, but they will require additional verification as part of the review process. -->

Source-Repo: https://github.com/servo/servo
Source-Revision: 7f4cb1861b172423781a369b2decca6c65d60546
2017-09-11 22:11:25 -05:00
Emilio Cobos Álvarez
b70bbee2fd servo: Merge #18384 - style: Don't waste a whole selector map for each class / id in the document (from emilio:invalidation-map-bloat); r=bholley
On top of #18375, only last commit needs review.

Source-Repo: https://github.com/servo/servo
Source-Revision: 4721ef81fd7fb6ee15546a6abe140a66ce0280e8
2017-09-05 12:51:17 -05:00
Nicholas Nethercote
6f490f85ad servo: Merge #18310 - Measure memory usage of Stylo's Rule Tree (from nnethercote:bug-1394729); r=heycam
<!-- Please describe your changes on the following line: -->
This is for https://bugzilla.mozilla.org/show_bug.cgi?id=1394729, which was r=heycam.

---
<!-- Thank you for contributing to Servo! Please replace each `[ ]` by `[X]` when the step is complete, and replace `__` with appropriate data: -->
- [X] `./mach build -d` does not report any errors
- [X] `./mach test-tidy` does not report any errors
- [ ] These changes fix #__ (github issue number if applicable).

<!-- Either: -->
- [ ] There are tests for these changes OR
- [X] These changes do not require tests because tests exist in Gecko.

<!-- Also, please make sure that "Allow edits from maintainers" checkbox is checked, so that we can help you if you get stuck somewhere along the way.-->

<!-- Pull requests that do not address these steps are welcome, but they will require additional verification as part of the review process. -->

Source-Repo: https://github.com/servo/servo
Source-Revision: d795ceae17b2ce5346d4f211f73c62e5c25dce79
2017-08-31 00:31:31 -05:00
Clément DAVID
a6c6efb7e6 servo: Merge #18179 - Automatically verify that derive() lists are alphabetically ordered #… (from davidcl:master); r=jdm
<!-- Please describe your changes on the following line: -->
Automatically verify that derive() lists are alphabetically ordered #18172

---
<!-- Thank you for contributing to Servo! Please replace each `[ ]` by `[X]` when the step is complete, and replace `__` with appropriate data: -->
- [X] `./mach build -d` does not report any errors
- [X] `./mach test-tidy` does not report any errors
- [X] These changes fix #18172 (github issue number if applicable).

<!-- Either: -->
- [X] There are tests for these changes OR
- [ ] These changes do not require tests because _____

<!-- Also, please make sure that "Allow edits from maintainers" checkbox is checked, so that we can help you if you get stuck somewhere along the way.-->

<!-- Pull requests that do not address these steps are welcome, but they will require additional verification as part of the review process. -->

Source-Repo: https://github.com/servo/servo
Source-Revision: 474369618965569407d127b1e8c481e757cc59d3
2017-08-23 17:18:31 -05:00
Bobby Holley
08dfc88998 servo: Merge #18196 - stylo: Maintain a restyle root and use it to cull the traversal (from bholley:restyle_roots); r=emilio
https://bugzilla.mozilla.org/show_bug.cgi?id=1383332

Source-Repo: https://github.com/servo/servo
Source-Revision: 20c73e7f7d620600f161f3c00cbe5a80b5e2a5a9
2017-08-22 22:04:34 -05:00
Emilio Cobos Álvarez
6a55053fa7 servo: Merge #18170 - style: Move the StyleSheetSet into the Stylist (from emilio:stylist-stylesheet-set); r=SimonSapin
This will allow tracking whether there have been only additions to the
stylesheet set, and in that case don't destroy and completely rebuild the
invalidation map.

This is on top of #18143.

Source-Repo: https://github.com/servo/servo
Source-Revision: 019b125963d4db9b18991d3ab06042e475c83f9f
2017-08-22 11:45:42 -05:00
Emilio Cobos Álvarez
576ac2258a servo: Merge #18087 - style: Cleanup a bit Stylist and SelectorMap (from emilio:stylist-clear-cleanup); r=heycam
Bug: 1390255
Reviewed-by: heycam
Source-Repo: https://github.com/servo/servo
Source-Revision: b300800b2c450f325c0308e9dcd7ec0113498e37
2017-08-16 02:56:13 -05:00