mirror of
https://github.com/LadybirdBrowser/ladybird.git
synced 2025-08-09 09:39:39 +00:00
LibWeb: Bring back cache of intrinsic sizes across layout runs
12c6ac78e2
with fixed mistake when cache
slot is copied instead of being referenced:
```cpp
auto cache =
box.cached_intrinsic_sizes().min_content_height.ensure(width);
```
while it should've been:
```cpp
auto& cache =
box.cached_intrinsic_sizes().min_content_height.ensure(width);
```
This commit is contained in:
parent
73a4b176cf
commit
a4463c45b9
Notes:
github-actions[bot]
2025-03-08 13:53:25 +00:00
Author: https://github.com/kalenikaliaksandr
Commit: a4463c45b9
Pull-request: https://github.com/LadybirdBrowser/ladybird/pull/3857
13 changed files with 108 additions and 102 deletions
|
@ -91,6 +91,26 @@ enum class StyleInvalidationReason {
|
|||
#undef __ENUMERATE_STYLE_INVALIDATION_REASON
|
||||
};
|
||||
|
||||
#define ENUMERATE_SET_NEEDS_LAYOUT_REASONS(X) \
|
||||
X(CharacterDataReplaceData) \
|
||||
X(FinalizeACrossDocumentNavigation) \
|
||||
X(HTMLImageElementReactToChangesInTheEnvironment) \
|
||||
X(HTMLImageElementUpdateTheImageData) \
|
||||
X(HTMLVideoElementSetVideoTrack) \
|
||||
X(KeyframeEffect) \
|
||||
X(LayoutTreeUpdate) \
|
||||
X(NavigableSetViewportSize) \
|
||||
X(SVGImageElementFetchTheDocument) \
|
||||
X(StyleChange)
|
||||
|
||||
enum class SetNeedsLayoutReason {
|
||||
#define ENUMERATE_SET_NEEDS_LAYOUT_REASON(e) e,
|
||||
ENUMERATE_SET_NEEDS_LAYOUT_REASONS(ENUMERATE_SET_NEEDS_LAYOUT_REASON)
|
||||
#undef ENUMERATE_SET_NEEDS_LAYOUT_REASON
|
||||
};
|
||||
|
||||
[[nodiscard]] StringView to_string(SetNeedsLayoutReason);
|
||||
|
||||
class Node : public EventTarget
|
||||
, public TreeNode<Node> {
|
||||
WEB_PLATFORM_OBJECT(Node, EventTarget);
|
||||
|
@ -291,6 +311,10 @@ public:
|
|||
void set_needs_style_update(bool);
|
||||
void set_needs_style_update_internal(bool) { m_needs_style_update = true; }
|
||||
|
||||
bool needs_layout_update() const { return m_needs_layout_update; }
|
||||
void set_needs_layout_update(SetNeedsLayoutReason);
|
||||
void reset_needs_layout_update() { m_needs_layout_update = false; }
|
||||
|
||||
bool child_needs_style_update() const { return m_child_needs_style_update; }
|
||||
void set_child_needs_style_update(bool b) { m_child_needs_style_update = b; }
|
||||
|
||||
|
@ -528,6 +552,8 @@ protected:
|
|||
bool m_child_needs_style_update { false };
|
||||
bool m_entire_subtree_needs_style_update { false };
|
||||
|
||||
bool m_needs_layout_update { false };
|
||||
|
||||
UniqueNodeID m_unique_id;
|
||||
|
||||
// https://dom.spec.whatwg.org/#registered-observer-list
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue