aboutsummaryrefslogtreecommitdiffstats
path: root/components/gfx_traits/lib.rs
Commit message (Collapse)AuthorAgeFilesLines
* 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 MPL license to https (part 4)Jan Andre Ikenmeyer2018-11-191-1/+1
|
* `cargo fix --edition-idioms`Simon Sapin2018-11-081-1/+0
|
* Reorder importsPyfisch2018-11-061-1/+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
|
* 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-181-5/+5
|/ | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | 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-161-4/+2
|
* 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-211-3/+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 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-101-3/+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
|
* Remove unused dependencySimon Sapin2016-11-031-1/+0
|
* Use heapsize_derive instead of heapsize_pluginSimon Sapin2016-11-031-1/+2
|
* Remove gfx_traits::color.Ms2ger2016-10-311-1/+0
|
* Use a new id type for tracking scrolling areasMartin Robinson2016-10-301-0/+52
| | | | | | This is a step in disassociating scrolling areas from stacking contexts. Now scroll areas are defined by unique ids, which means that in the future stacking context will be able to contain more than one.
* Remove concept of Layers from ServoMartin Robinson2016-10-211-51/+0
| | | | | | | | Layers were a feature of the legacy drawing path. If we re-add them at some point, it probably makes more sense to make them a product of display list inspection. This change also remove a bunch of dead painting code.
* Remove old rendering backend.Glenn Watson2016-10-181-55/+14
| | | | | | | | | | | | | | This removes paint threads, rust-layers dependency, and changes optional webrender types to be required. The use_webrender option has been removed, however I've left the "-w" command line option in place so that wpt runner can continue to pass that. Once it's removed from there we can also remove the -w option. Once this stage is complete, it should be fine to change the display list building code to generate webrender display lists directly and avoid the conversion step.
* Update to Rust 1.14.0-nightly (19ac57926 2016-10-08)Anthony Ramine2016-10-091-2/+4
| | | | A cargo bump and a switch to serde_derive is needed to do this rustup.
* Move util::print_tree to gfx_traitsAnthony Ramine2016-07-041-0/+1
|
* Move ChromeToPaintMsg to gfx_traits.Ms2ger2016-06-241-0/+19
| | | | This allows compositing not to depend on gfx.
* Move ByteIndex to gfx_traits.Ms2ger2016-06-201-0/+11
|
* script: When using WebRender, keep the DOM-side scroll positions forPatrick Walton2016-06-101-5/+56
| | | | | | | elements with `overflow: scroll` up to date, and take them into account when doing hit testing. Closes #11648.
* script: Keep the DOM-side viewport up to date when scrolling happens inPatrick Walton2016-05-311-0/+55
| | | | | | | | | | | | | | | WebRender. This happens asynchronously, just as it does in non-WebRender mode. This functionality is a prerequisite for doing proper display-list-based hit testing in WebRender, since it moves the scroll offsets into Servo (and, specifically, into the script thread, enabling iframe event forwarding) instead of keeping them private to WebRender. Requires servo/webrender_traits#55 and servo/webrender#277. Partially addresses #11108.
* Report use statements that use {} with only one entryCullen Rhodes2016-05-271-1/+1
|
* Auto merge of #10706 - zwn:unused-extern-crates, r=noxbors-servo2016-04-221-1/+0
|\ | | | | | | | | | | | | | | | | | | | | Turn on unused-extern-crates warning. As discussed in #9256. It should solve second half of the issue. <!-- Reviewable:start --> --- This change is [<img src="https://reviewable.io/review_button.svg" height="35" align="absmiddle" alt="Reviewable"/>](https://reviewable.io/reviews/servo/servo/10706) <!-- Reviewable:end -->
| * Remove references to unused crates.Zbynek Winkler2016-04-221-1/+0
| | | | | | | | The cleanup is based on info from using "-W unused-extern-crates".
* | Added a dedicated panic channel.Alan Jeffrey2016-04-191-13/+1
|/
* Updated euclid to version 0.6.5Peter2016-04-171-3/+3
| | | | And updated existing usages of Matrix4 to use Matrix4D<T>
* Added panic message to failures.Alan Jeffrey2016-04-131-0/+6
|
* layout: Allow non-absolutely-positioned elements with `overflow: scroll`Patrick Walton2016-04-061-0/+4
| | | | | | | | | | | | set to be scrolled. This makes them establish stacking contexts, which is a CSS 2.1 spec violation. However, we were already violating the spec here for absolutely-positioned elements with `overflow: scroll`. It will probably be easier to fix this spec violation once we either switch entirely to WebRender or we have multiple layers per stacking context. Closes #2742.