mirror of
https://github.com/lightpanda-io/browser.git
synced 2026-10-09 12:51:45 -04:00
Follow up to https://github.com/lightpanda-io/browser/pull/3510 Moves the element/node lookups, e.g. `element_class_lists` from Frame to Page. Elements and nodes can outlive a Frame (it's the reason the identity map lives on the Page, not the frame). These maps are merely properties on Node/Elements optimized for a specific usage-pattern (i.e. most Node/Elements don't have these or they are never materialized from JS). So if a Node/Element can outlive the Frame, than so too can all of their properties. And, even when an frame is alive the properties belong to the *Node* or *Element*, NOT the Frame...accessing those properties across frames should yield the same value / identity. More mechanically, frame._page => frame.page and all of these lookups lose their _ prefix. Short summary of _ prefix is: 1 - It's used to deal with Zig not allowing shadowing. This is particularly true in the WebApis were it happens a bit more often 2 - Early prototype was built as a stand-alone library, and the _ was used to signal "private" (again, working around Zig). Frame.page shouldn't be "private" and neither should these lookups (if we aren't going to provide getter/setters for them).