Martin Robinson
08ef158d4e
script: Split style and layout data in DOM nodes ( #31985 )
...
This change splits the style and layout data in DOM nodes that is
populated by style and layout passes. This makes Servo's data design
more like Gecko's. This allows:
1. Removing the various `StyleAndLayout` data structures used by layout.
2. Removing the `GetStyleAndLayoutData` and
`GetStyleAndOpaqueLayoutData` traits. Accessing style and layout data
are now just functions on the `LayoutNode` and `ThreadSafeLayoutNode`
traits.
3. Styling now doesn't populate layout data. This is is postponed until
layout itself.
4. Allows the DOM wrappers to no longer have to be generic over the
layout data. This data was already stored using `std::any::Any` and
the new code just makes layout responsible for downcasting. Cleaning
up the generic type parameter in the DOM wrappers can happen in a
followup change.
The main benefit to all of this is that we should be able to remove
unsafe creation of `ServoLayoutNode` in layout and
`TrustedLayoutNodeAddress` entirely, because `ServoLayoutNode` will be
able to be passed directly from script to layout. In addition, this
removes one more abstraction layer from the layout DOM wrappers, making
the code a lot more understandable.
Note: This increases the measured size of DOM types, but the same data
is stored. It's simply that before that data was stored behind a heap
pointer.
2024-04-04 07:56:51 +00:00
..
2024-04-03 17:19:53 +00:00
2024-03-28 13:10:37 +00:00
2024-03-29 11:59:07 +00:00
2024-04-02 12:50:45 +00:00
2024-04-01 09:12:07 +00:00
2024-03-26 21:25:42 +00:00
2024-03-18 08:33:43 +00:00
2024-03-28 15:58:36 +00:00
2023-09-11 19:16:54 +00:00
2024-03-26 10:31:22 +00:00
2024-03-26 10:31:22 +00:00
2024-04-03 08:41:19 +00:00
2024-03-28 09:03:18 +00:00
2024-03-21 17:48:54 +00:00
2024-01-22 13:13:48 +00:00
2023-12-01 15:50:52 +00:00
2024-02-28 21:24:08 +00:00
2024-03-31 19:58:37 +00:00
2024-04-02 12:50:45 +00:00
2024-03-21 17:48:54 +00:00
2024-03-27 10:19:49 +00:00
2024-03-26 10:31:22 +00:00
2024-04-01 15:43:24 +00:00
2023-09-11 19:16:54 +00:00
2024-02-28 21:24:08 +00:00
2024-04-01 15:43:24 +00:00
2024-03-28 16:17:47 +00:00
2024-04-02 12:50:45 +00:00
2024-04-02 12:50:45 +00:00
2024-03-26 08:58:34 +00:00
2024-03-29 08:58:22 +00:00
2024-03-26 08:58:34 +00:00
2024-03-26 08:58:34 +00:00
2024-03-28 09:06:02 +00:00
2024-03-21 17:48:54 +00:00
2024-03-31 19:58:37 +00:00
2024-03-23 11:29:20 +00:00
2024-03-22 13:48:03 +00:00
2024-03-19 08:01:23 +00:00
2024-04-03 08:41:19 +00:00
2023-09-11 19:16:54 +00:00
2023-12-01 15:50:52 +00:00
2023-12-01 15:50:52 +00:00
2024-03-31 19:58:37 +00:00
2024-03-19 08:01:23 +00:00
2024-04-02 12:50:45 +00:00
2023-09-11 19:16:54 +00:00
2024-04-02 12:50:45 +00:00
2024-03-28 09:06:02 +00:00
2024-02-28 21:24:08 +00:00
2024-03-23 11:29:20 +00:00
2024-03-30 10:06:26 +00:00
2024-02-16 11:56:35 +00:00
2023-11-23 10:29:16 +00:00
2024-03-20 23:05:29 +00:00
2024-03-20 23:05:29 +00:00
2024-03-20 23:05:29 +00:00
2024-03-20 23:05:29 +00:00
2024-03-27 18:43:56 +00:00
2024-03-03 12:47:39 +00:00
2024-03-03 12:47:39 +00:00
2024-03-20 23:05:29 +00:00
2024-03-31 19:58:37 +00:00
2024-03-03 12:47:39 +00:00
2024-03-27 18:43:56 +00:00
2024-04-01 15:43:24 +00:00
2024-03-26 08:58:34 +00:00
2024-02-29 10:23:53 +00:00
2024-03-23 11:29:20 +00:00
2024-03-20 23:05:29 +00:00
2024-03-29 18:15:13 +00:00
2023-09-11 19:16:54 +00:00
2024-04-02 12:50:45 +00:00
2023-12-01 15:50:52 +00:00
2024-03-21 17:48:54 +00:00
2024-04-03 08:41:19 +00:00
2024-03-29 08:58:22 +00:00
2024-03-29 16:25:47 +00:00
2024-03-20 23:05:29 +00:00
2023-09-11 19:16:54 +00:00
2023-09-11 19:16:54 +00:00
2024-03-26 19:55:20 +00:00
2024-03-21 17:48:54 +00:00
2024-03-23 11:29:20 +00:00
2023-09-11 19:16:54 +00:00
2023-09-11 19:16:54 +00:00
2024-03-23 11:29:20 +00:00
2023-09-11 19:16:54 +00:00
2023-09-11 19:16:54 +00:00
2023-09-11 19:16:54 +00:00
2023-09-11 19:16:54 +00:00
2024-03-28 11:33:29 +00:00
2023-12-01 15:50:52 +00:00
2024-04-03 11:39:52 +00:00
2024-04-02 12:50:45 +00:00
2024-03-26 21:25:42 +00:00
2024-03-26 21:25:42 +00:00
2024-04-03 18:54:28 +00:00
2024-03-25 11:12:36 +00:00
2024-04-02 12:50:45 +00:00
2024-03-28 15:58:36 +00:00
2024-03-26 21:25:42 +00:00
2024-03-26 21:25:42 +00:00
2023-12-01 15:50:52 +00:00
2024-03-31 23:15:13 +00:00
2024-02-26 14:21:46 +00:00
2024-04-02 12:50:45 +00:00
2024-04-01 15:44:07 +00:00
2024-03-23 11:29:20 +00:00
2024-02-28 21:24:08 +00:00
2024-04-02 12:50:45 +00:00
2024-02-17 18:42:31 +00:00
2024-02-17 18:42:31 +00:00
2024-03-21 17:48:54 +00:00
2024-03-26 08:37:44 +00:00
2024-02-25 12:13:17 +00:00
2024-04-03 19:24:39 +00:00
2024-01-09 09:12:53 +00:00
2024-04-02 12:50:45 +00:00
2024-01-22 13:13:48 +00:00
2024-01-22 13:13:48 +00:00
2024-01-22 13:13:48 +00:00
2024-04-02 12:50:45 +00:00
2023-09-11 19:16:54 +00:00
2024-04-03 08:41:19 +00:00
2023-09-11 19:16:54 +00:00
2024-01-22 13:13:48 +00:00
2024-03-21 17:48:54 +00:00
2024-01-22 13:13:48 +00:00
2024-01-22 13:13:48 +00:00
2024-01-22 13:13:48 +00:00
2024-01-22 13:13:48 +00:00
2024-03-06 16:48:34 +00:00
2024-04-02 12:50:45 +00:00
2024-01-22 13:13:48 +00:00
2023-09-11 19:16:54 +00:00
2024-01-22 13:13:48 +00:00
2024-01-22 13:13:48 +00:00
2024-01-22 13:13:48 +00:00
2024-03-25 11:28:12 +00:00
2024-01-22 13:13:48 +00:00
2024-03-06 16:48:34 +00:00
2024-01-22 13:13:48 +00:00
2024-01-22 13:13:48 +00:00
2024-01-22 13:13:48 +00:00
2024-01-22 13:13:48 +00:00
2023-09-11 19:16:54 +00:00
2023-12-01 15:50:52 +00:00
2024-01-22 13:13:48 +00:00
2024-04-02 12:50:45 +00:00
2023-09-11 19:16:54 +00:00
2024-01-22 13:13:48 +00:00
2024-01-22 13:13:48 +00:00
2024-01-22 13:13:48 +00:00
2024-03-20 23:05:29 +00:00
2024-03-31 20:21:52 +00:00
2024-03-23 12:48:49 +00:00
2024-03-23 12:48:49 +00:00
2024-03-22 13:48:03 +00:00
2023-12-01 15:50:52 +00:00
2023-12-01 15:50:52 +00:00
2024-03-30 13:30:13 +00:00
2023-12-01 15:50:52 +00:00
2024-03-23 12:48:49 +00:00
2024-04-03 08:41:19 +00:00
2024-03-23 12:48:49 +00:00
2023-12-01 15:50:52 +00:00
2023-12-01 15:50:52 +00:00
2023-12-01 15:50:52 +00:00
2023-12-01 15:50:52 +00:00
2023-12-01 15:50:52 +00:00
2023-12-01 15:50:52 +00:00
2023-12-01 15:50:52 +00:00
2024-03-29 16:25:47 +00:00
2023-12-01 15:50:52 +00:00
2024-03-25 11:28:12 +00:00
2024-03-30 13:30:13 +00:00
2024-03-23 11:29:20 +00:00
2024-04-01 07:18:32 +00:00
2023-12-01 15:50:52 +00:00
2023-12-01 15:50:52 +00:00
2024-03-21 07:14:12 +00:00
2024-03-20 23:05:29 +00:00
2024-03-30 13:30:13 +00:00
2023-12-01 15:50:52 +00:00
2024-04-03 08:41:19 +00:00
2024-03-25 11:28:12 +00:00
2024-04-03 08:41:19 +00:00
2024-04-01 15:44:07 +00:00
2024-03-29 11:59:07 +00:00
2023-12-01 15:50:52 +00:00
2024-03-29 08:58:22 +00:00
2023-12-01 15:50:52 +00:00
2024-04-03 08:41:19 +00:00
2023-12-01 15:50:52 +00:00
2024-03-29 08:58:22 +00:00
2023-12-01 15:50:52 +00:00
2023-12-01 15:50:52 +00:00
2024-03-29 11:59:07 +00:00
2023-12-01 15:50:52 +00:00
2024-03-29 08:58:22 +00:00
2024-03-29 08:58:22 +00:00
2023-09-30 00:52:04 +00:00
2024-03-29 11:59:07 +00:00
2023-12-01 15:50:52 +00:00
2023-12-01 15:50:52 +00:00
2023-12-01 15:50:52 +00:00
2024-03-25 11:36:48 +00:00
2023-12-01 15:50:52 +00:00
2023-12-01 15:50:52 +00:00
2024-03-31 23:15:13 +00:00
2024-04-03 11:39:52 +00:00
2023-12-01 15:50:52 +00:00
2023-12-01 15:50:52 +00:00
2024-03-29 08:58:22 +00:00
2023-12-01 15:50:52 +00:00
2024-03-30 13:30:13 +00:00
2024-02-20 13:22:02 +00:00
2024-04-03 08:41:19 +00:00
2024-03-30 13:30:13 +00:00
2024-03-30 13:30:13 +00:00
2023-12-01 15:50:52 +00:00
2024-03-27 20:22:51 +00:00
2023-12-01 15:50:52 +00:00
2024-03-26 21:25:42 +00:00
2024-03-20 08:07:22 +00:00
2023-12-01 15:50:52 +00:00
2023-12-01 15:50:52 +00:00
2024-03-29 14:43:10 +00:00
2023-09-11 19:16:54 +00:00
2023-09-11 19:16:54 +00:00
2024-03-20 23:05:29 +00:00
2024-04-02 12:50:45 +00:00
2024-04-02 12:50:45 +00:00
2024-03-18 10:05:18 +00:00
2024-03-27 10:19:49 +00:00
2024-01-22 13:13:48 +00:00
2024-03-28 15:58:36 +00:00
2024-03-23 11:29:20 +00:00
2024-03-20 23:05:29 +00:00
2024-03-27 16:16:48 +00:00
2024-03-20 23:05:29 +00:00
2024-03-20 14:11:40 +00:00
2024-03-20 23:05:29 +00:00
2024-03-20 23:05:29 +00:00
2024-04-01 15:43:24 +00:00
2024-04-02 04:01:52 +00:00
2024-03-20 08:07:22 +00:00
2024-03-20 08:07:22 +00:00
2024-01-22 13:13:48 +00:00
2024-03-20 08:07:22 +00:00
2024-03-23 11:29:20 +00:00
2024-04-02 12:50:45 +00:00
2024-03-26 08:37:44 +00:00
2023-09-11 19:16:54 +00:00
2023-09-11 19:16:54 +00:00
2024-03-22 15:02:01 +00:00
2024-04-02 12:50:45 +00:00
2024-03-25 10:22:21 +00:00
2024-04-02 12:50:45 +00:00
2024-03-25 10:22:21 +00:00
2024-03-25 13:55:45 +00:00
2024-03-29 14:43:10 +00:00
2023-09-11 19:16:54 +00:00
2024-04-04 07:56:51 +00:00
2024-03-20 23:05:29 +00:00
2024-03-29 11:59:07 +00:00
2023-09-11 19:16:54 +00:00
2024-03-28 09:03:18 +00:00
2024-03-29 11:52:45 +00:00
2024-03-29 11:52:45 +00:00
2024-03-20 14:11:40 +00:00
2023-09-11 19:16:54 +00:00
2024-02-05 08:53:00 +00:00
2023-09-11 19:16:54 +00:00
2024-03-28 09:06:02 +00:00
2024-02-28 21:24:08 +00:00
2024-03-29 10:05:20 +00:00
2024-03-28 09:06:02 +00:00
2023-09-30 00:52:04 +00:00
2024-03-22 05:41:17 +00:00
2024-03-25 10:22:21 +00:00
2023-12-01 15:50:52 +00:00
2023-12-01 15:50:52 +00:00
2024-03-28 09:06:02 +00:00
2023-12-01 15:50:52 +00:00
2024-03-25 11:28:12 +00:00
2023-09-11 19:16:54 +00:00
2023-09-11 19:16:54 +00:00
2023-09-11 19:16:54 +00:00
2023-09-11 19:16:54 +00:00
2024-03-20 23:05:29 +00:00
2024-04-01 14:53:33 +00:00
2024-03-26 08:37:44 +00:00
2024-03-20 23:05:29 +00:00
2023-12-01 15:50:52 +00:00
2023-12-01 15:50:52 +00:00
2024-03-31 23:15:13 +00:00
2024-01-22 13:13:48 +00:00
2024-03-23 11:29:20 +00:00
2024-03-27 12:10:43 +00:00
2024-04-01 08:25:42 +00:00
2024-04-01 15:43:24 +00:00
2024-03-20 08:07:22 +00:00
2023-09-11 19:16:54 +00:00
2024-03-20 08:07:22 +00:00
2024-03-22 05:41:17 +00:00
2024-03-29 08:58:22 +00:00
2024-01-22 13:13:48 +00:00
2023-09-11 19:16:54 +00:00
2024-01-22 13:13:48 +00:00
2024-01-22 13:13:48 +00:00
2024-03-20 08:07:22 +00:00
2024-03-20 08:07:22 +00:00
2024-03-23 11:29:20 +00:00
2024-03-20 23:05:29 +00:00
2024-03-23 11:29:20 +00:00
2024-04-02 12:50:45 +00:00
2024-03-20 23:05:29 +00:00
2024-03-19 16:05:56 +00:00
2024-03-22 15:02:01 +00:00
2024-02-28 21:24:08 +00:00
2024-03-20 23:05:29 +00:00
2024-04-01 14:53:33 +00:00
2024-04-01 08:25:42 +00:00
2024-03-20 23:05:29 +00:00
2023-12-01 15:50:52 +00:00
2024-03-20 23:05:29 +00:00
2023-10-02 14:37:19 +00:00
2023-10-02 14:37:19 +00:00
2024-03-25 11:28:12 +00:00
2024-03-31 23:15:13 +00:00
2023-09-11 19:16:54 +00:00
2023-12-01 15:50:52 +00:00
2024-03-22 05:41:17 +00:00
2023-09-11 19:16:54 +00:00
2023-12-01 15:50:52 +00:00
2023-10-04 11:29:54 +00:00
2024-03-28 09:06:02 +00:00
2024-03-23 11:29:20 +00:00
2023-09-11 19:16:54 +00:00
2024-03-19 16:05:56 +00:00
2024-03-28 09:06:02 +00:00
2024-03-20 23:05:29 +00:00
2024-03-19 16:05:56 +00:00
2024-04-01 14:53:33 +00:00
2024-03-28 16:57:25 +00:00
2023-09-11 19:16:54 +00:00
2024-03-28 16:57:25 +00:00
2024-03-28 16:57:25 +00:00
2023-09-11 19:16:54 +00:00
2024-04-01 14:53:33 +00:00
2024-04-01 14:53:33 +00:00
2023-09-11 19:16:54 +00:00
2024-03-19 16:05:56 +00:00
2024-03-22 05:41:17 +00:00
2024-03-20 23:05:29 +00:00
2023-09-11 19:16:54 +00:00
2023-09-11 19:16:54 +00:00
2023-09-11 19:16:54 +00:00
2024-03-28 11:26:39 +00:00
2024-03-19 16:05:56 +00:00
2023-09-30 00:52:04 +00:00
2023-10-02 14:37:19 +00:00
2024-03-31 23:15:13 +00:00
2024-03-19 16:05:56 +00:00
2024-03-19 16:05:56 +00:00
2024-03-28 11:26:39 +00:00
2024-03-28 09:06:02 +00:00
2023-09-11 19:16:54 +00:00
2024-04-03 08:41:19 +00:00
2024-03-20 23:05:29 +00:00
2024-01-22 13:13:48 +00:00
2024-03-20 23:05:29 +00:00
2024-03-27 20:22:51 +00:00
2023-09-11 19:16:54 +00:00
2024-03-20 23:05:29 +00:00
2024-03-18 08:33:43 +00:00
2024-03-22 05:41:17 +00:00
2024-04-03 08:41:19 +00:00
2024-03-25 11:28:12 +00:00
2024-03-20 23:05:29 +00:00
2024-03-20 23:05:29 +00:00
2023-09-11 19:16:54 +00:00
2024-04-01 14:53:33 +00:00
2023-09-11 19:16:54 +00:00
2023-09-11 19:16:54 +00:00
2023-09-11 19:16:54 +00:00
2023-09-11 19:16:54 +00:00
2024-03-21 11:46:18 +00:00
2024-04-01 14:53:33 +00:00
2024-04-02 04:01:52 +00:00
2024-04-02 10:25:06 +00:00
2024-03-28 11:26:39 +00:00
2024-04-01 14:53:33 +00:00
2024-03-20 23:05:29 +00:00
2024-02-07 18:41:58 +00:00
2024-04-01 14:53:33 +00:00
2024-03-25 12:57:35 +00:00
2024-04-01 14:53:33 +00:00
2024-04-01 08:25:42 +00:00
2023-09-11 19:16:54 +00:00
2023-09-11 19:16:54 +00:00
2023-09-11 19:16:54 +00:00
2023-09-11 19:16:54 +00:00
2023-09-11 19:16:54 +00:00
2023-09-11 19:16:54 +00:00
2023-09-11 19:16:54 +00:00
2024-04-01 15:44:07 +00:00
2024-01-22 13:13:48 +00:00
2023-09-11 19:16:54 +00:00
2023-09-11 19:16:54 +00:00
2024-03-28 15:58:36 +00:00
2024-04-01 05:34:48 +00:00
2023-12-01 15:50:52 +00:00
2024-04-01 14:53:33 +00:00
2024-01-22 13:13:48 +00:00
2023-09-11 19:16:54 +00:00
2023-09-11 19:16:54 +00:00
2023-09-30 00:52:04 +00:00
2024-01-22 13:13:48 +00:00
2024-01-22 13:13:48 +00:00
2023-09-11 19:16:54 +00:00
2023-09-11 19:16:54 +00:00
2024-02-25 12:13:17 +00:00
2024-03-19 16:05:56 +00:00
2024-04-01 05:34:48 +00:00
2024-02-25 12:13:17 +00:00
2024-04-02 04:01:52 +00:00
2024-03-19 16:05:56 +00:00
2023-09-11 19:16:54 +00:00
2024-01-22 13:13:48 +00:00
2024-03-30 11:30:14 +00:00
2024-03-20 08:07:22 +00:00
2024-03-19 16:05:56 +00:00
2024-03-26 08:37:44 +00:00
2024-01-22 13:13:48 +00:00
2024-01-22 13:13:48 +00:00
2024-03-19 16:05:56 +00:00
2024-01-22 13:13:48 +00:00