Commit Graph

34 Commits

Author SHA1 Message Date
Emilio Cobos Álvarez
46cc6ae18a Bug 1663618 - Speed up custom property diffing. r=boris
When entering or leaving fullscreen in youtube, we spend most of the
restyle time diffing custom properties, under IndexMap::eq.

Turns out that IndexMap equality is not order-aware, and thus you
actually need to make a hashmap lookup for each entry in the map, which
is unnecessarily inefficient.

Instead, just compare the iterators.

See https://github.com/bluss/indexmap/issues/153.

Differential Revision: https://phabricator.services.mozilla.com/D89434
2020-09-08 10:33:03 +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
75f83cd1f9 Bug 1516365 - Update the Rust target version for bindgen. r=xidorn
This brings us alignas support and also associated constants for bitfield enums.

Differential Revision: https://phabricator.services.mozilla.com/D15334
2018-12-25 23:09:29 +00: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
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
Emilio Cobos Álvarez
22584a8db8 servo: Merge #19390 - style: Minor cleanups while the sync service is down (from emilio:never-enough-cleanup); r=nox
I cannot land my Gecko-dependent patches, so let's do some cleanup in the meantime.

Source-Repo: https://github.com/servo/servo
Source-Revision: 6d49ec83a15f440f85cb9a045eaf104f30bd3053
2017-11-27 08:41:46 -06:00
Cameron McCormack
43a99c7225 servo: Merge #18842 - style: Skip custom properties comparison if other inherited properties changed (from heycam:skip-var-check); r=emilio
Servo half of https://bugzilla.mozilla.org/show_bug.cgi?id=1407246, reviewed there by Emilio.

Source-Repo: https://github.com/servo/servo
Source-Revision: 9f8514d2b94713b6dc3bb918f8ffa9fac66021a3
2017-10-11 21:45:51 -05:00
Emilio Cobos Álvarez
d4b31b7731 servo: Merge #18391 - style: Stop the cascade when only reset structs change (from emilio:cascade-stoph); r=heycam
From https://bugzilla.mozilla.org/show_bug.cgi?id=1395227

Source-Repo: https://github.com/servo/servo
Source-Revision: 9802214aba97287afa729c7efcac5e44316dc591
2017-09-06 07:55:08 -05:00
Emilio Cobos Álvarez
8d8ca7b032 servo: Merge #18184 - style: Inline a bunch of trivial stuff we're paying function calls for in Geckolib (from emilio:inline); r=upsuper
Reviewed by Xidorn in https://bugzilla.mozilla.org/show_bug.cgi?id=1392170.

Source-Repo: https://github.com/servo/servo
Source-Revision: 1059ef4fdeb5c76102c3da22293d836942740033
2017-08-22 05:48:37 -05:00
Emilio Cobos Álvarez
99be60945a servo: Merge #18153 - stylo: Remove a lot of the restyle damage related complexity (from emilio:restyle-damage-cleanup); r=heycam
The only reason why we had the `existing_style_for_style_damage` bit is to apply
some optimizations that we don't have anymore.

I still want to reintroduce a few of them, at least for the non-eager
pseudo-element case... But I think I won't need this at all.

This allows us to remove a fair amount of Gecko code too.

<!-- 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: -->
- [ ] `./mach build -d` does not report any errors
- [ ] `./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: 87206bd68ee6e870c10dc09d5a7b1f893805c379
2017-08-20 07:00:25 -05:00
Tamir Duberstein
c714bf7431 servo: Merge #18148 - style: pass a borrow instead of an Arc (from tamird:computedvalues-arc-borrow); r=emilio
https://bugzilla.mozilla.org/show_bug.cgi?id=1380133 has landed,
permitting us to pass a plain borrow into Gecko_CalcStyleDifference;
propagate this through style.

Closes #17795.

- [x] `./mach build -d` does not report any errors
- [x] `./mach test-tidy` does not report any errors

Source-Repo: https://github.com/servo/servo
Source-Revision: c1b196b7cb7e5efd3cd4de0c9562dcca5da34564
2017-08-19 08:51:16 -05:00
J. Ryan Stinnett
1eae1a94c2 servo: Merge #18100 - Fix up Stylo return types for Linux 32-bit ABI (from jryans:stylo-linux32); r=Manishearth
https://bugzilla.mozilla.org/show_bug.cgi?id=1390691

Source-Repo: https://github.com/servo/servo
Source-Revision: 736e963efd81563545f292751176c219c3fe0fdc
2017-08-15 22:11:50 -05:00
Emilio Cobos Álvarez
dc1fde0fd9 servo: Merge #18095 - stylo: Remove some unused FFI functions (from emilio:unused); r=bholley
Bug: 1390650
Reviewed-by: bholley
MozReview-Commit-ID: K9fXGRmgkr4
Source-Repo: https://github.com/servo/servo
Source-Revision: eba896157edf3ba4f0d65b68eb63dd9cd40cdce4
2017-08-15 19:29:45 -05:00
Cameron McCormack
b44b1b9b28 servo: Merge #17849 - style: Ensure we generate a ReconstructFrame hint when -moz-binding changes on a display:none root (from heycam:binding-display-none); r=emilio
From https://bugzilla.mozilla.org/show_bug.cgi?id=1375383.

Source-Repo: https://github.com/servo/servo
Source-Revision: 3eeb0e5e48fcb045100ed26b396ad85226be9af0
2017-07-25 00:51:27 -07:00
Manish Goregaokar
f7c5ee2d4e servo: Merge #17818 - stylo: Various ComputedValues fixes (from Manishearth:stylo-fixup); r=heycam
r=heycam https://bugzilla.mozilla.org/show_bug.cgi?id=1382017

Source-Repo: https://github.com/servo/servo
Source-Revision: 992c647f76552ae3abaeffc69331375a69d34dab
2017-07-21 11:05:13 -07:00
Emilio Cobos Álvarez
1b1eb43427 servo: Merge #17802 - Revert "Backed out changeset b10e6ba9cbdb because gecko part had to b… (from emilio:reland-stuff); r=heycam
…e backed out."

This reverts commit b96d96d448c8ff93f212f225013461999540a5d0.

The fix on the Gecko side is trivial, and I can land it after this lands.

Source-Repo: https://github.com/servo/servo
Source-Revision: a3c398b5dacae251f483775042b12ffb5e0ff01c
2017-07-20 20:28:25 -07:00
Sebastian Hengst
ab9cf0c38b Backed out changeset b10e6ba9cbdb because gecko part had to be backed out. r=backout on a CLOSED TREE 2017-07-20 15:42:03 +02:00
Cameron McCormack
8c09f068cd servo: Merge #17796 - style: pass old ComputedValues from Element data into Gecko_CalcStyleDifference (from heycam:calc-difference); r=emilio
This is the Servo-side part of https://bugzilla.mozilla.org/show_bug.cgi?id=1380133.

Source-Repo: https://github.com/servo/servo
Source-Revision: 7b71070c04f1e1b10fdc7aa397ad687710313e09
2017-07-20 03:39:15 -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
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
15be754192 servo: Merge #17525 - style: Fix propagation of text-decoration lines (from emilio:text-decoration); r=heycam
This also paves up the ground to be able to fix #16825.

Source-Repo: https://github.com/servo/servo
Source-Revision: 79ee821bef68e371b104a7af4fb657460362ff1d
2017-06-27 12:44:33 -07:00
Emilio Cobos Álvarez
058ccb2091 servo: Merge #16967 - Bug 1366144: Correctly diff ::before and ::after pseudo-element styles if there's no generated content. r=heycam (from emilio:after); r=heycam,emilio
Source-Repo: https://github.com/servo/servo
Source-Revision: 05a26a29967b4cb70cac0055d0a177881e047efd
2017-05-20 13:44:31 -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
Bobby Holley
e59f7e85ce servo: Merge #15599 - Implement "handled for descendants" tracking for RestyleDamage (from bholley:damage_handled); r=emilio
Reviewed in https://bugzilla.mozilla.org/show_bug.cgi?id=1340022

Source-Repo: https://github.com/servo/servo
Source-Revision: eb916f290334f9f56c4c8680e25224a16e4c7d59
2017-02-17 10:20:44 -08:00
Emilio Cobos Álvarez
23c52968bd servo: Merge #14819 - Document most of the remaining parts of the style system, make docs-by-default for the whole style system (from emilio:no-missing-docs); r=Manishearth
Source-Repo: https://github.com/servo/servo
Source-Revision: 87847324a0815e2214fd34da89bbefa4222b1197
2017-01-02 04:10:56 -08:00
Bobby Holley
e075eff5c1 servo: Merge #14436 - Make restyle tracking more granular (from bholley:granular_restyle); r=emilio
The primary idea of this patch is to ditch the rigid enum of Previous/Current
styles, and replace it with a series of indicators for the various types of
work that needs to be performed (expanding snapshots, rematching, recascading,
and damage processing). This loses us a little bit of sanity checking (since
the up-to-date-ness of our style is no longer baked into the type system), but
gives us a lot more flexibility that we'll need going forward (especially when
we separate matching from cascading). We also eliminate get_styling_mode in
favor of a method on the traversal.

This patch does a few other things as ridealongs:
* Temporarily eliminates the handling for transfering ownership of styles to the
  frame. We'll need this again at some point, but for now it's causing too much
  complexity for a half-implemented feature.
* Ditches TRestyleDamage, which is no longer necessary post-crate-merge, and is
  a constant source of compilation failures from either needing to be imported
  or being unnecessarily imported (which varies between gecko and servo).
* Expands Snapshots for the traversal root, which was missing before.
* Fixes up the skip_root stuff to avoid visiting the skipped root.
* Unifies parallel traversal and avoids spawning for a single work item.
* Adds an explicit pre_traverse step do any pre-processing and determine whether
      we need to traverse at all.

Source-Repo: https://github.com/servo/servo
Source-Revision: b9a8ccd775c3192e3810a1730b1d0bc2b5c9dfb6
2016-12-09 17:01:05 -08:00
Bobby Holley
58a74f2f07 servo: Merge #14300 - stylo: Basic infrastructure for RestyleHint-driven traversal (from bholley:restyle_driven_traversal); r=emilio
Gecko Bug: https://bugzilla.mozilla.org/show_bug.cgi?id=131701

(Don't review yet, will flag on the gecko bug when the time comes)

Source-Repo: https://github.com/servo/servo
Source-Revision: d98abaec20e624aa89a3abddf4cf2a6399951ef1
2016-11-25 09:00:44 -08:00
Manish Goregaokar
0014fc57d9 servo: Merge #14268 - Regenerate bindings (from Manishearth:regen); r=bholley
Don't merge yet

Source-Repo: https://github.com/servo/servo
Source-Revision: 95bc7ece477d201605c77a5e73c211bdd7723ee9
2016-11-21 12:19:39 -06:00
Bobby Holley
45403df2b6 servo: Merge #14034 - incremental restyle: Use more concrete types in the style system (from bholley:more_concrete_types); r=emilio
We need to hang both snapshots and restyle damage off of ElementData, and so we need them to be concrete to avoid infecting ElementData with the trait hierarchy.

Source-Repo: https://github.com/servo/servo
Source-Revision: d8ac5100e81ccbad4b5131688b96bedb9b5e279d
2016-11-07 16:31:10 -06:00