aboutsummaryrefslogtreecommitdiffstats
path: root/components/gfx_traits
Commit message (Collapse)AuthorAgeFilesLines
* Move `*_traits` and other shared types to `shared`Martin Robinson2023-11-033-237/+0
| | | | | | | | | | | | This is the start of the organization of types that are in their own crates in order to break dependency cycles between other crates. The idea here is that putting these packages into their own directory is the first step toward cleaning them up. They have grown organically and it is difficult to explain to new folks where to put new shared types. Many of these crates contain more than traits or don't contain traits at all. Notably, `script_traits` isn't touched because it is vendored from Gecko. Eventually this will move to `third_party`.
* Fix painting order of atomic inline stacking containers (#30458)Delan Azabani2023-10-061-1/+1
| | | | | | | | | | | | | | | | | | | | | | | * Sort stacking contexts and stacking containers by painting order * fix stealing of stacking containers; fix interleaving with fragments * actually positioned stacking containers should be stolen too * update expectations and clean up panic changes * rework naming and docs * rename s_c_a_p_s_c to real_s_c_a_p_s_c; fix docs * rename InlineStackingContainer to AtomicInlineStackingContainer * rework debug logging to use PrintTree * clean up docs and PrintTree output * don't panic unless cfg!(debug_assertions) is true * update expectations
* Only access hit test items for the current epoch in the compositor (#30491)Martin Robinson2023-10-041-0/+13
| | | | | | | | | | | | | | | When display lists update quickly, a hit test result might be returned for a previous display list / list of hit test items. When that happens, ignore the hit test result. This fixes a crash, but there might be situations where we can do something better, such as wait for display list processing to finish before performing the hit test. A future change might do this for events like mouse clicks and touch events that should never be thrown away. Ultimately, the best thing is likely moving hit testing back to layout or script so a valid hit test can always be performed against the current DOM. Fixes #29796.
* Strict import formatting (grouping and granularity) (#30325)Samson2023-09-111-1/+2
| | | | | * strict imports formatting * Reformat all imports
* remove `extern crate` (#30311)Samson2023-09-081-8/+3
| | | | | | | | | | | * remove extern crate * Update components/script_plugins/lib.rs Co-authored-by: Martin Robinson <mrobinson@igalia.com> --------- Co-authored-by: Martin Robinson <mrobinson@igalia.com>
* build(deps): bump bitflags from 1.3.2 to 2.3.1 (#30273)Martin Robinson2023-09-011-4/+3
| | | | | | Bumps [bitflags](https://github.com/bitflags/bitflags) from 1.3.2 to 2.3.1. - [Release notes](https://github.com/bitflags/bitflags/releases) - [Changelog](https://github.com/bitflags/bitflags/blob/main/CHANGELOG.md) - [Commits](https://github.com/bitflags/bitflags/compare/1.3.2...2.3.1)
* Try to `use` WebRender types moreMartin Robinson2023-07-101-10/+7
| | | | | The newer versions of WebRender move types around between `webrender` and `webrender_api` and this will reduce the churn during the upgrade.
* Vendor the current version of WebRenderMartin Robinson2023-07-031-1/+1
| | | | | | | | This is a step toward upgrading WebRender, which will be upgraded and patched in the `third_party` directory. This change vendors the current private branch of WebRender that we use and adds a `patches` directory which tracks the changes on top of the upstream WebRender commit described by third_party/webrender/patches/head.
* Clean up and document the `send_display_list` interfaceMartin Robinson2023-05-241-0/+6
| | | | | | This moves more members to the CompositorDisplayListInfo struct, which now holds all miscellaneous, non-WebRender data when sending display lists. It also documents what each things sent with a display list does.
* Start the transition to workspace dependenciesMartin Robinson2023-05-171-2/+2
| | | | | | | This will ultimately make it simpler to update crate dependencies and reduce duplicate when specifying requirements. Generally, this change does not touch dependencies that are only used by a single crate. We could consider moving them to workspace dependencies in the future.
* Update webrender.Josh Matthews2020-06-112-2/+1
|
* Proxy all WR interactions for layout/font/script/canvas threads to the ↵Josh Matthews2020-06-092-0/+16
| | | | | | | compositor thread. There is now a single RenderApi that is used, and all transactions are serialized through the compositor.
* More Cargo.toml cleanupsAlex Touchet2020-05-141-1/+1
|
* Replace DisplayList::is_contentful with tracking during conversion to WR ↵Simon Sapin2019-09-061-5/+0
| | | | display lists
* Fix deprecation warningsSimon Sapin2019-01-281-2/+2
|
* Update references to malloc_size_of_derive, which is in crates.io now.Emilio Cobos Álvarez2019-01-131-1/+1
|
* Update MPL license to https (part 4)Jan Andre Ikenmeyer2018-11-192-2/+2
|
* `cargo fix --edition-idioms`Simon Sapin2018-11-081-1/+0
|
* Reorder importsPyfisch2018-11-061-1/+1
|
* Switch most crates to the 2018 editionSimon Sapin2018-11-061-0/+1
|
* Format gfx_traits #21373kingdido9992018-09-091-6/+8
|
* Update WebRenderMartin Robinson2018-02-061-15/+12
| | | | | | | | | This allows servo to use the ExternalScrollId API from WebRender fixing some issues related to duplicate scroll root ids. Fixes #17176. Fixes #19287. Fixes #19648.
* Decoupled gfx and metricsGeorg Streich2018-01-151-0/+5
|
* pretty print treetigercosmos2017-12-231-5/+29
|
* Auto merge of #18921 - mrobinson:incremental-stacking-context-ids, r=emiliobors-servo2017-10-181-4/+3
|\ | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Fix duplicate stacking context creation for anonymous Flows Anonymous nodes were previously creating duplicate stacking contexts, one for each node in the anonymous node chain. This change eliminates that for tables. Additionally the use of stacking context ids based on node addresses is no longer necessary since stacking contexts no longer control scrolling. This is the first step in eliminating the dependency between node addresses and ClipScrollNodes which causes issues like #16425. <!-- 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 they are covered by existing 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. --> <!-- Reviewable:start --> --- This change is [<img src="https://reviewable.io/review_button.svg" height="34" align="absmiddle" alt="Reviewable"/>](https://reviewable.io/reviews/servo/servo/18921) <!-- Reviewable:end -->
| * Fix duplicate stacking context creation for anonymous FlowsMartin Robinson2017-10-181-4/+3
| | | | | | | | | | | | | | | | | | | | | | Anonymous nodes were previously creating duplicate stacking contexts, one for each node in the anonymous node chain. This change eliminates that for tables. Additionally the use of stacking context ids based on node addresses is no longer necessary since stacking contexts no longer control scrolling. This is the first step in eliminating the dependency between node addresses and ClipScrollNodes which causes issues like #16425.
* | Replace all uses of the `heapsize` crate with `malloc_size_of`.Nicholas Nethercote2017-10-182-7/+7
|/ | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Servo currently uses `heapsize`, but Stylo/Gecko use `malloc_size_of`. `malloc_size_of` is better -- it handles various cases that `heapsize` does not -- so this patch changes Servo to use `malloc_size_of`. This patch makes the following changes to the `malloc_size_of` crate. - Adds `MallocSizeOf` trait implementations for numerous types, some built-in (e.g. `VecDeque`), some external and Servo-only (e.g. `string_cache`). - Makes `enclosing_size_of_op` optional, because vanilla jemalloc doesn't support that operation. - For `HashSet`/`HashMap`, falls back to a computed estimate when `enclosing_size_of_op` isn't available. - Adds an extern "C" `malloc_size_of` function that does the actual heap measurement; this is based on the same functions from the `heapsize` crate. This patch makes the following changes elsewhere. - Converts all the uses of `heapsize` to instead use `malloc_size_of`. - Disables the "heapsize"/"heap_size" feature for the external crates that provide it. - Removes the `HeapSizeOf` implementation from `hashglobe`. - Adds `ignore` annotations to a few `Rc`/`Arc`, because `malloc_size_of` doesn't derive those types, unlike `heapsize`.
* order derivable traits listsClément DAVID2017-08-231-2/+2
| | | | | | Ignoring : - **generated**.rs - python/tidy/servo_tidy_tests/rust_tidy.rs
* Wait for actual paint before setting paint related metricsFernando Jiménez Moreno2017-08-221-1/+1
|
* Fix fixed position items with parents with CSS clipsMartin Robinson2017-08-031-1/+1
| | | | | | | | | | In order to properly handle CSS clipping, we need to keep track of what the different kinds of clips that we have. On one hand, clipping due to overflow rules should respect the containing block hierarchy, while CSS clipping should respect the flow tree hierarchy. In order to represent the complexity of items that are scrolled via one clip/scroll frame and clipped by another we keep track of that status with a ClipAndScrollInfo.
* Remove explicit dependencies on serde_deriveSimon Sapin2017-06-162-5/+2
|
* Bump serde to 1.0Bastien Orivel2017-06-161-2/+2
|
* Bump euclid to 0.13 and heapsize to 0.4Bastien Orivel2017-06-051-1/+1
|
* Eliminate ScrollRootIdMartin Robinson2017-04-201-98/+41
| | | | | | | Just use WebRender's ClipId directly. This will allow us to create and use ReferenceFrames in the future, if we need to do that. It will also make it easier to have Servo responsible for creating the root scrolling area, which will allow removing some old hacks in the future.
* Kill the plugins crate and its clippy supportAnthony Ramine2017-02-212-4/+0
| | | | | | Sometimes clippy gets outdated by months, and its current support setup means that each Servo component need to opt into it by depending on the plugins crate manually, and not all components do that.
* Update serde to 0.9 (fixes #15325)Anthony Ramine2017-02-181-2/+2
|
* Update rustc to 1.16.0-nightly (7821a9b99 2017-01-23).Ms2ger2017-01-241-1/+0
|
* Move DevicePixel to script_traits.Ms2ger2017-01-111-8/+0
|
* Remove the rustc-serialize dependency from gfx_traits.Ms2ger2017-01-102-4/+2
|
* Replace gfx_traits::ScrollPolicy by webrender_traits::ScrollPolicy.Ms2ger2017-01-101-9/+0
|
* Remove unused LayerKind and LayerType enums.Ms2ger2017-01-101-18/+0
|
* Move LayerPixel to compositing.Ms2ger2017-01-101-7/+0
|
* Move FrameTreeId to compositing.Ms2ger2017-01-101-9/+0
|
* Remove some unused StackingContextId methods.Ms2ger2017-01-101-26/+0
|
* Remove unused ScrollRootId::to_stacking_context_id.Ms2ger2017-01-101-5/+0
|
* Upgrade to rustc 1.16.0-nightly (6f1ae663e 2017-01-06)Simon Sapin2017-01-061-1/+1
|
* Don't promote all scrollable regions to stacking contextsMartin Robinson2016-11-051-0/+5
| | | | | | | | | | | | | | | | | Instead annotate all flows with their owning ScrollRoots. When processing the display list items into a flattened display list, we add PushScrollRoot and PopScrollRoot to signal when scrolling regions start and end. It is possible for content from different scrolling regions to intersect and when they do, the stack of scrolling regions is duplicated. When these duplicated scrolling regions stacks reach WebRender, it will scroll them in tandem. The PushScrollRoot and PopScrollRoot items are currently represented as StackingContexts in WebRender, but eventually these will be replaced with special WebRender display items. Fixes #13529. Fixed #13298.
* Remove #![feature(rustc_attrs)]Anthony Ramine2016-11-031-1/+1
|
* Remove #![feature(structural_match)]Anthony Ramine2016-11-031-1/+1
|
* Remove #![feature(custom_derive)]Anthony Ramine2016-11-031-1/+1
|