mirror of
https://github.com/LadybirdBrowser/ladybird.git
synced 2025-06-05 18:02:54 +00:00
LibWeb: Make NavigationParams be GC-allocated
Fixes GC-leak caused by using JS::Handle for navigable.
This commit is contained in:
parent
5bf34ecc32
commit
376427380e
Notes:
sideshowbarker
2024-07-17 05:02:35 +09:00
Author: https://github.com/kalenikaliaksandr
Commit: 376427380e
Pull-request: https://github.com/SerenityOS/serenity/pull/24069
8 changed files with 141 additions and 108 deletions
|
@ -35,21 +35,14 @@ ErrorOr<JS::NonnullGCPtr<SVGDecodedImageData>> SVGDecodedImageData::create(JS::R
|
|||
JS::NonnullGCPtr<HTML::Navigable> navigable = page->top_level_traversable();
|
||||
auto response = Fetch::Infrastructure::Response::create(navigable->vm());
|
||||
response->url_list().append(url);
|
||||
HTML::NavigationParams navigation_params {
|
||||
.id = {},
|
||||
.navigable = navigable,
|
||||
.request = nullptr,
|
||||
.response = response,
|
||||
.fetch_controller = nullptr,
|
||||
.commit_early_hints = nullptr,
|
||||
.coop_enforcement_result = HTML::CrossOriginOpenerPolicyEnforcementResult {},
|
||||
.reserved_environment = {},
|
||||
.origin = HTML::Origin {},
|
||||
.policy_container = HTML::PolicyContainer {},
|
||||
.final_sandboxing_flag_set = HTML::SandboxingFlagSet {},
|
||||
.cross_origin_opener_policy = HTML::CrossOriginOpenerPolicy {},
|
||||
.about_base_url = {},
|
||||
};
|
||||
auto navigation_params = navigable->heap().allocate_without_realm<HTML::NavigationParams>();
|
||||
navigation_params->navigable = navigable;
|
||||
navigation_params->response = response;
|
||||
navigation_params->origin = HTML::Origin {};
|
||||
navigation_params->policy_container = HTML::PolicyContainer {};
|
||||
navigation_params->final_sandboxing_flag_set = HTML::SandboxingFlagSet {};
|
||||
navigation_params->cross_origin_opener_policy = HTML::CrossOriginOpenerPolicy {};
|
||||
|
||||
// FIXME: Use Navigable::navigate() instead of manually replacing the navigable's document.
|
||||
auto document = DOM::Document::create_and_initialize(DOM::Document::Type::HTML, "text/html"_string, navigation_params).release_value_but_fixme_should_propagate_errors();
|
||||
navigable->set_ongoing_navigation({});
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue