mirror of
https://github.com/zebrajr/ladybird.git
synced 2025-12-06 00:19:53 +01:00
LibWeb/HTML: Stop observing lazy-loaded iframes when navigating
This commit is contained in:
parent
0957c59c26
commit
f11347739a
|
|
@ -171,6 +171,7 @@ public:
|
|||
virtual bool is_html_object_element() const { return false; }
|
||||
virtual bool is_html_form_element() const { return false; }
|
||||
virtual bool is_html_image_element() const { return false; }
|
||||
virtual bool is_html_iframe_element() const { return false; }
|
||||
virtual bool is_navigable_container() const { return false; }
|
||||
virtual bool is_lazy_loading() const { return false; }
|
||||
|
||||
|
|
|
|||
|
|
@ -40,6 +40,9 @@ private:
|
|||
|
||||
virtual void initialize(JS::Realm&) override;
|
||||
|
||||
// ^DOM::Node
|
||||
virtual bool is_html_iframe_element() const override { return true; }
|
||||
|
||||
// ^DOM::Element
|
||||
virtual void post_connection() override;
|
||||
virtual void removed_from(Node*) override;
|
||||
|
|
|
|||
|
|
@ -1325,11 +1325,18 @@ WebIDL::ExceptionOr<void> Navigable::navigate(NavigateParams params)
|
|||
return {};
|
||||
}
|
||||
|
||||
// FIXME: 9. Let container be navigable's container.
|
||||
// 10. If container is an iframe element and will lazy load element steps given container returns true,
|
||||
// 9. Let container be navigable's container.
|
||||
auto& container = m_container;
|
||||
|
||||
// FIXME: 10. If container is an iframe element and will lazy load element steps given container returns true,
|
||||
// 10. If container is an iframe element and will lazy load element steps given container returns true,
|
||||
// then stop intersection-observing a lazy loading element container and set container's lazy load resumption steps to null.
|
||||
if (container && container->is_html_iframe_element()) {
|
||||
auto& iframe_element = static_cast<HTMLIFrameElement&>(*container);
|
||||
if (iframe_element.will_lazy_load_element()) {
|
||||
iframe_element.document().stop_intersection_observing_a_lazy_loading_element(iframe_element);
|
||||
iframe_element.set_lazy_load_resumption_steps(nullptr);
|
||||
}
|
||||
}
|
||||
|
||||
// 11. If historyHandling is "auto", then:
|
||||
if (history_handling == Bindings::NavigationHistoryBehavior::Auto) {
|
||||
|
|
|
|||
Loading…
Reference in New Issue
Block a user