Oriol Brufau
108c50c6df
Further changes required by Servo
2023-05-16 12:54:55 +02:00
Martin Robinson
72b5fcd0b6
Combine DOM-related concepts in Layout 2020 into dom.rs
2023-05-13 11:52:59 +02:00
Martin Robinson
72302e2dae
Detect body elements during layout
...
During layout it is often useful, for various specification reasons, to
know if an element is the `<body>` element of an `<html>` element root. There
are a couple places where a brittle heuristic is used to detect `<body>`
elements. This information is going to be even more important to
properly handle `<html>` elements that inherit their overflow property from
their `<body>` children.
Implementing this properly requires updating the DOM wrapper interface.
This check does reach up to the parent of thread-safe nodes, but this is
essentially the same kind of operation that `parent_style()` does, so is
ostensibly safe.
This change should not change any behavior and is just a preparation
step for properly handle `<body>` overflow.
2023-05-04 10:46:27 +02:00
Martin Robinson
9e0b41ebc4
Add support for <iframe> elements for Layout 2020
...
This change adds support for the <iframe> element to Layout 2020. In
addition, certain aspects of the implementation are made the same
between both layout systems.
2023-04-04 17:49:24 +02:00
Simon Sapin
4a4199c1d6
Don’t parse unspported values of content
2020-07-24 09:31:24 +02:00
Simon Sapin
82e274aec9
Make a bool for display: list-item
available to flow box construction
2020-07-23 16:43:57 +02:00
Anthony Ramine
b692318931
Bump rust to 1.46.0-nightly (a8cf39911 2020-06-21)
...
This fixes a rustfmt reporting bug when the code contains syntax errors.
2020-06-23 19:13:36 +02:00
Kunal Mohan
2c95df73a4
Add WebGPU to Layout-2020
2020-06-14 11:05:36 +05:30
Martin Robinson
89855afa4d
layout_2020: Tag fragments with their pseudo content type
...
This will allow us to answer queries and properly handle animations in
the future for fragments generated for pseudo content.
2020-06-06 17:25:08 +02:00
Simon Sapin
fff5cd5142
Owned ServoArc<ComputedValues>
in TraversalHandler
2020-06-04 13:19:53 +02:00
Anthony Ramine
f4c4af2bd4
Don't panic while already panicking in BoxSlot::drop
2020-05-18 10:23:45 +02:00
Simon Sapin
1f6efbf9e9
Correctly paint the CSS canvas’ background
...
https://drafts.csswg.org/css-backgrounds/#special-backgrounds
Fixes https://github.com/servo/servo/issues/25559
Closes https://github.com/servo/servo/pull/26121 , as it is an alternative.
2020-05-15 13:37:09 +02:00
Simon Sapin
3e8623332b
Rewrite handling of pointers to boxes in the DOM tree
2020-05-15 13:25:35 +02:00
Anthony Ramine
e3be136c9b
Rename a bunch of style/layout data items
...
GetLayoutData::get_style_and_layout_data becomes
GetOpaqueStyleAndLayoutData::get_opaque_style_and_layout_data.
GetRawData::get_raw_data becomes GetStyleAndLayoutData::get_style_and_layout_data.
LayoutNode::init_style_and_layout_data becomes
LayoutNode::init_opaque_style_and_layout_data.
LayoutNode::take_style_and_layout_data becomes
LayoutNode::take_opaque_style_and_layout_data.
2020-04-06 12:39:52 +02:00
Anthony Ramine
185a402d9c
Make DOM own the style and layout data, in an UnsafeCell
...
The previous Cell was a lie.
2020-04-04 13:10:19 +02:00
Anthony Ramine
4c61baee30
Make OpaqueLayoutAndStyleData just a bit less opaque
...
It now stores a NonNull<dyn Any>.
2020-04-04 13:08:51 +02:00
Anthony Ramine
6fe294fa5b
Make LayoutNodeHelpers::text_content return a cow
2020-03-31 15:02:13 +02:00
Anthony Ramine
04af32128c
Add a 'dom lifetime to GetLayoutData
2020-03-26 13:17:46 +01:00
Patrick Walton
1d9f669cf0
Switch some uses of Arc<AtomicRefCell<T>>
over to ArcRefCell<T>
2020-03-17 11:15:17 -07:00
Fernando Jiménez Moreno
f0e30f5b0c
Canvas rendering for layout 2020
...
Update test expectations with layout 2020 canvas support
2020-03-06 13:23:07 +01:00
Fernando Jiménez Moreno
dc9a33f3a9
Generate ::before and ::after content from url() for layout2020
2020-02-28 15:00:07 +01:00
Fernando Jiménez Moreno
60fd1e005a
Temporarily allow PseudoElementContentItem unused variant
2020-02-25 11:24:43 +01:00
Fernando Jiménez Moreno
5b2d6c81b2
Generate ::before and ::after content from attr() for layout 2020
2020-02-25 10:47:48 +01:00
Fernando Jiménez Moreno
bc66948f7c
Generate ::before and ::after string content for layout 2020
2020-02-25 10:47:48 +01:00
Martin Robinson
02deb99a05
Use euclid data types for physical structs in layout_2020
...
This removes a bit of duplication and allows layout_2020 to benefit from
a much richer set of utilities.
2020-01-23 15:39:32 +01:00
Martin Robinson
27e0400891
Fix an issue with unset_boxes_in_subtree
in layout_2020
...
If the root node of the subtree doesn't have any boxes to unset, we
should exit early instead of unsetting boxes on siblings of the root.
This eliminates an infinite loop in this method, since the siblings of
the root are not in the subtree.
2020-01-21 15:29:23 +01:00
Anthony Ramine
abc2c15c28
Store an OpaqueNode in boxes and fragments
2019-12-13 17:59:27 +01:00
Anthony Ramine
47944a39fc
Remove the Node type parameter from Contents
...
We now pass the Node as an argument during DOM traversal in layout.
2019-12-13 17:51:06 +01:00
Anthony Ramine
fb1891f436
Add NodeExt::as_opaque
2019-12-13 17:51:06 +01:00
Simon Sapin
8996be3c5e
Don’t assume replaced elements have an intrinsic size
2019-12-10 15:11:53 +01:00
Simon Sapin
c056e5b6b0
Finish plumbing intrinsic min/max-content through box construction
2019-12-03 15:11:35 +01:00
Simon Sapin
da36fcddb0
Add box construction for 'inline-block'…
...
… and other atomic inline-level boxes.
2019-12-03 15:11:35 +01:00
Simon Sapin
4e6e31a76c
Pass a LayoutContext through box construction
2019-12-02 22:26:49 +01:00
Simon Sapin
aa925a5984
Un-allow and fix warnings in components/layout_2020
2019-12-02 16:32:34 +01:00
Anthony Ramine
5a360ac63d
Start supporting images in layout 2020
2019-12-01 10:56:33 +01:00
Anthony Ramine
24b7eadfff
Make NodeExt private in layout_2020
2019-11-26 16:36:24 +01:00
Anthony Ramine
10eccc8beb
Rename Arc to ServoArc in layout_2020::dom_traversal
2019-11-26 16:36:24 +01:00
Simon Sapin
b2b3ea992c
Make IndependentFormattingContext a struct that owns styles
...
… and has a private enum for its contents.
Privacy forces the rest of the code to go through methods
rather than matching on the enum,
reducing accidental layout-mode-specific behavior.
2019-11-26 15:42:27 +01:00
Anthony Ramine
327740d67a
Fix a ridiculous bug in layout-2020
...
Who needs CI anyway?
2019-10-25 11:23:46 +02:00
Simon Sapin
1bb85ed05b
Make some of layout_2020 private
2019-10-04 17:51:05 +02:00
Anthony Ramine
ec74204fa0
Call BoxTreeRoot::construct from layout_thread_2020
2019-10-04 10:03:42 +02:00
Anthony Ramine
053a3d5a5a
Handle anonymous style in traverse_pseudo_element_contents
2019-09-23 20:32:16 +02:00
Anthony Ramine
0c156c60c2
Handle anonymous style in end_inline_formatting_context
2019-09-23 20:31:43 +02:00
Anthony Ramine
c08cfbb5f3
Cheat the system and use an Arc in BoxSlot
...
Ideally we want to be able to borrow from the DOM during box construction
but that's not playing very well at the moment with the current bridge
between script and layout.
2019-09-19 11:24:50 +02:00
Anthony Ramine
4444c5a2ad
Import victor's layout system 🍷
2019-09-11 10:36:30 +02:00
Simon Sapin
86904757e6
Import files from Victor
...
fdb11f3e87
2019-09-11 10:06:35 +02:00