Commit Graph

62 Commits

Author SHA1 Message Date
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
Cameron McCormack
3d99c448d8 servo: Merge #18060 - style: Don't rebuild cascade origins that haven't changed (from heycam:single-origin); r=emilio
From https://bugzilla.mozilla.org/show_bug.cgi?id=1382925.

Source-Repo: https://github.com/servo/servo
Source-Revision: b1d7b6bfcfa706156940b59f61c9afcfc49da63e
2017-08-13 06:39:40 -05:00
Cameron McCormack
0c10f12be2 servo: Merge #18037 - style: Split collected @font-face / @counter-style rules per origin (from heycam:split-cascade-font-counter); r=emilio
<!-- Please describe your changes on the following line: -->

More refactoring in preparation for rebuilding sheets only from the origin that changed.

---
<!-- Thank you for contributing to Servo! Please replace each `[ ]` by `[X]` when the step is complete, and replace `__` with appropriate data: -->
- [ ] `./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
- [ ] 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: 56f5fc41fae732ba28f63acec6755559da31d47f
2017-08-11 00:40:18 -05:00
Emilio Cobos Álvarez
028c402fa7 servo: Merge #18011 - style: Avoid hashing hashes (from emilio:less-dumb-hash); r=nox
These are the last instances I can find of us hashing the atoms hash.

Source-Repo: https://github.com/servo/servo
Source-Revision: dec4ba8ea6adb2477e4d3ba4916c886ac8b1dc0e
2017-08-08 10:06:32 -05:00
Boris Zbarsky
119839f065 servo: Merge #17912 - Implement ::first-line support in stylo (from bzbarsky:stylo-first-line); r=emilio
<!-- Please describe your changes on the following line: -->

Fixes Gecko bug 1324619.

---
<!-- 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=1324619

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

<!-- 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: ed75bcae75bda9e4ad04f24ebc07b53f7b51b8b6
2017-07-28 22:51:20 -05:00
Emilio Cobos Álvarez
5ce9e9139b servo: Merge #17828 - stylo: Visited link fixes (from emilio:visited-now); r=Manishearth
Straight from https://bugzilla.mozilla.org/show_bug.cgi?id=1383307

Source-Repo: https://github.com/servo/servo
Source-Revision: 2241d5879e5d66c52d2b4f17ad730c5de1eff364
2017-07-23 13:46:43 -07:00
Michael Partheil
728ab1f36c servo: Merge #17775 - Replace all uses of the style::stylearc alias with servo_arc (from michael-p:rename-stylearc-to-servo-arc); r=emilio
The `stylearc` alias is left there temporarilly and will be removed completely in a later commit/PR where also `components/style/gecko/generated/structs_{debug|release}.rs` are re-generated (they still use the old alias).

---
<!-- 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 #17768  (github issue number if applicable).

<!-- Either: -->
- [ ] There are tests for these changes OR
- [X] These changes do not require tests because no new features / only refactoring

Source-Repo: https://github.com/servo/servo
Source-Revision: 31228c18499d1c7f68b6b64b559354c768e81215
2017-07-19 06:03:17 -07:00
Emilio Cobos Álvarez
cae5c53a3f servo: Merge #17773 - style: Cleanup post #17767 (from emilio:removing-the-ugly); r=manishearth
Reviewed in https://bugzilla.mozilla.org/show_bug.cgi?id=1381764

Source-Repo: https://github.com/servo/servo
Source-Revision: 66e06578ee68b98c94029fba3cfc3ae7d3782044
2017-07-18 09:23:03 -07:00
Manish Goregaokar
cb8af9ffe8 servo: Merge #17767 - stylo: Fuse ServoStyleContext and ServoComputedValues (from Manishearth:stylo-fuse); r=bholley
r=bholley https://bugzilla.mozilla.org/show_bug.cgi?id=1367904

Source-Repo: https://github.com/servo/servo
Source-Revision: d746abaa9e69e6cf0ad187d2b46be661bbe03a9f
2017-07-17 19:44:25 -07:00
Emilio Cobos Álvarez
26af331265 servo: Merge #17590 - stylo: Fix StyleSheetInner/Stylesheet mapping (from emilio:gecko-inner); r=heycam
Fixes https://bugzilla.mozilla.org/show_bug.cgi?id=1372041 and all the dependent/related issues.

Source-Repo: https://github.com/servo/servo
Source-Revision: 545a53ccadd3ca37330e1ee8ad0ca926af5c9c5a
2017-07-02 07:00:39 -07:00
Emilio Cobos Álvarez
600467e348 servo: Merge #17447 - style: Be more strict when setting the root font size (from emilio:root-disconnected-subtree); r=heycam,Manishearth
Before this commit, we assumed that if the element had no parent element, it was
the root of the document, which is plain false, since we can arrive there from,
let's say, getComputedStyle on a detached node.

Bug: 1374062
Reviewed-By: heycam
MozReview-Commit-ID: 65DxdzXgd0J
Source-Repo: https://github.com/servo/servo
Source-Revision: 7d785e75cd9c1b3b74d708bcc9d6ff10a40ae2f6
2017-06-22 04:17:04 -07:00
Emilio Cobos Álvarez
25fe34512d servo: Merge #17147 - Bug 1357461 - stylo: Cache media query results and only flush and restyle if they changed (from emilio:media-query-caching); r=heycam
Source-Repo: https://github.com/servo/servo
Source-Revision: 7b61d5542194c4a9affced7fd408cfe3af5ddb23
2017-06-03 08:11:23 -07:00
Emilio Cobos Álvarez
501101056c servo: Merge #17078 - stylo: Avoid restyling the whole document when adding stylesheets (from emilio:stylesheet-invalidation-scopes); r=heycam
This is for bug 1357583.

Source-Repo: https://github.com/servo/servo
Source-Revision: 939716a7bc2ba2fbd8dcfe8b64d2f61edfa99c95
2017-05-29 14:19:16 -05:00
Emilio Cobos Álvarez
0994f42bec servo: Merge #16990 - Remove dead code in restyle_hints submodule, and move SelectorMap to its own submodule (from emilio:selector-map); r=upsuper
Source-Repo: https://github.com/servo/servo
Source-Revision: f35c7a577d6b2709bf75592e091479774d55bae7
2017-05-23 08:40:37 -05:00
heyzoos
31a0ea0e7f servo: Merge #16968 - Stylist accessors (from HeyZoos:stylist-accessors); r=emilio
<!-- Please describe your changes on the following line: -->
Add accessor methods for the `device` and `ruleset` fields in the `Stylist` struct.

---
<!-- 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 #16857 (github issue number if applicable).
<!-- Either: -->
- [X] There are tests for these changes

<!-- 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: 1306b16d5a170074b4f42046a7b1a3a43952b346
2017-05-22 20:12:46 -05:00
Xidorn Quan
40e0a1f5fe servo: Merge #16888 - Implement @counter-style for stylo (from upsuper:bug1328319); r=heycam,Manishearth,SimonSapin
Servo side change of [bug 1328319](https://bugzilla.mozilla.org/show_bug.cgi?id=1328319).

Source-Repo: https://github.com/servo/servo
Source-Revision: 1afc89e944c7ea7e4510b4b678a95a8faaa309b1
2017-05-16 01:17:07 -05:00
Nazım Can Altınova
7a479b90f4 servo: Merge #16819 - stylo: Propagate quirks mode information from Gecko to Servo (from canaltinova:quirk-mode); r=bholley,emilio
r=bholley in bugzilla

---
<!-- 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 [Bug 1360488](https://bugzilla.mozilla.org/show_bug.cgi?id=1360488)

Source-Repo: https://github.com/servo/servo
Source-Revision: 94ac822132bd78a412f847a704c9ddf3eb91151c
2017-05-13 20:50:10 -05:00
Emilio Cobos Álvarez
cd917ee337 servo: Merge #16802 - style: Slim down SharedStyleContext, and do various other cleanups around the style crate (from emilio:slim-down-slc); r=bholley
This slims down SharedStyleContext, in preparation for a few things.

First, I would like to eventually move the stylist to the document in Servo, in
order for it to hold the StyleSheetSet.

Also, this gets rid of a fair amount of overhead while creating it in stylo.

Fixes bug 1363245.

Source-Repo: https://github.com/servo/servo
Source-Revision: eeb1ee9723777b0dc04e919556826eef628363fe
2017-05-12 08:56:47 -05:00
Boris Zbarsky
9d9a3e08fe servo: Merge #16798 - Allow stylo to do lazier stylist rebuilds (from bzbarsky:stylist-lazier-updates); r=emilio
---
<!-- Thank you for contributing to Servo! Please replace each `[ ]` by `[X]` when the step is complete, and replace `__` with appropriate data: -->
- [ ] `./mach build -d` does not report any errors
- [X] `./mach test-tidy` does not report any errors
- [ ] These changes fix https://bugzilla.mozilla.org/show_bug.cgi?id=1361843 (github issue number if applicable).

<!-- Either: -->
- [ ] There are tests for these changes OR
- [X] These changes do not require tests because it's optimization, which should have no observable behavior difference.

<!-- 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: c6c0252b19f82ba98ca8a102435067d15f5a1356
2017-05-10 16:22:06 -05:00
Bobby Holley
e02608275b servo: Merge #16702 - Use a custom arc in the style system (from bholley:custom_arc); r=emilio
See https://bugzilla.mozilla.org/show_bug.cgi?id=1360889

Source-Repo: https://github.com/servo/servo
Source-Revision: 7b1006936a27232fb77fef5893cc141e66bb12b7
2017-05-02 20:01:10 -05:00
Brad Werth
005368a3ce servo: Merge #16698 - Change StyleSet to track stylesheets by unique ID (from bradwerth:cloneRight); r=heycam
MozReview-Commit-ID: Ky3P53o4Euw

https://bugzilla.mozilla.org/show_bug.cgi?id=1348481
https://reviewboard.mozilla.org/r/128850/

---
<!-- 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: -->
- [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: 536d63c67028c7368dff780945626283d2c48f1c
2017-05-02 18:15:05 -05:00
Emilio Cobos Álvarez
f707920e6d servo: Merge #16516 - stylo: Centralize stylesheet handling (from emilio:stylesheet-handling); r=bholley
This is needed for both bug 1357461 and bug 1273303, where I plan to add smarter
invalidations than what we have now.

Also, it's cleaner.

Ideally I'll move this onto stylist, though that may require extra work to make
it work fine for Servo, so for now let's just do the obvious thing.

Source-Repo: https://github.com/servo/servo
Source-Revision: 5274991545fedd9b7188c40abffb61b4067daa8a
2017-04-19 03:41:08 -05:00
Brad Werth
d6ce278340 servo: Merge #16365 - Stylo: Add a bool property to PerDocumentStyleDataImpl, and pass the … (from bradwerth:authoredStyle); r=heycam
https://bugzilla.mozilla.org/show_bug.cgi?id=1341721
https://reviewboard.mozilla.org/r/121214/
r=heycam

Source-Repo: https://github.com/servo/servo
Source-Revision: 605637fe1de114e08b9c0be52bcefb67ee38d1a2
2017-04-13 21:23:07 -05:00
Xidorn Quan
4f43b83d45 servo: Merge #16187 - Implement access to CSSFontFaceRule for stylo (from upsuper:bug1345696); r=Manishearth,heycam
This is the Servo part of [bug 1345696](https://bugzilla.mozilla.org/show_bug.cgi?id=1345696) which has been reviewed on Bugzilla.

Source-Repo: https://github.com/servo/servo
Source-Revision: 2084ee29c40291c9abf9b0922e05f0663b215333
2017-03-29 20:50:47 -05:00
Simon Sapin
80dfe1b881 servo: Merge #16014 - Per-process lock for CSSOM objects (from servo:style-ref); r=emilio
<!-- Please describe your changes on the following line: -->

Before this PR, every object reflected in CSSOM is in `Arc<RwLock<_>>` to enable safe (synchronized) mutable aliasing. Acquiring all these locks has significant cost during selector matching:

* https://bugzilla.mozilla.org/show_bug.cgi?id=1311469
* https://bugzilla.mozilla.org/show_bug.cgi?id=1335941
* https://bugzilla.mozilla.org/show_bug.cgi?id=1339703

This PR introduce a mechanism to protect many objects with the same `RwLock` that only needs to be acquired once.

In Stylo, there is one such lock per process (in a `lazy_static`), used for everything.

I non-Stylo Servo, I originally intended to have one such lock per document (for author-origin stylesheets, and one per process for user-agent and user sytlesheets since they’re shared across documents, and never mutated anyway). However I failed to have the same document-specific (or pipeline-specific) `Arc` reachable from both `Document` nodes and `LayoutThread`. Recursively following callers lead me to include this `Arc` in `UnprivilegedPipelineContent`, but that needs to be serializable. So there is a second process-wide lock.

This was previously #15998, closed accidentally.

---
<!-- 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
- [ ] These changes do not require tests because _____

<!-- 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: bb54f0a429de0e8b8861f8071b6cf82f73622664
2017-03-19 14:31:19 -07:00
Emilio Cobos Álvarez
8e3c61a268 servo: Merge #15931 - style: Kill SharedStyleContext::default_computed_values (from emilio:die-defaultvalues-die); r=mbrubeck
This is on top of https://github.com/servo/servo/pull/15928.

Now that cascade() gets a Device ref, we can use the default computed values
from there to avoid propagating that state all over the place.

Source-Repo: https://github.com/servo/servo
Source-Revision: 8c8edb8731dc01d254839d0922590fba72f278c6
2017-03-13 16:50:26 -07:00