mirror of
https://github.com/RGBCube/serenity
synced 2025-07-26 03:37:43 +00:00
LibWeb: Add HTML::NavigationParams
This commit is contained in:
parent
fb1900e79c
commit
0781bdb23e
1 changed files with 72 additions and 0 deletions
72
Userland/Libraries/LibWeb/HTML/NavigationParams.h
Normal file
72
Userland/Libraries/LibWeb/HTML/NavigationParams.h
Normal file
|
@ -0,0 +1,72 @@
|
||||||
|
/*
|
||||||
|
* Copyright (c) 2022, Andreas Kling <kling@serenityos.org>
|
||||||
|
*
|
||||||
|
* SPDX-License-Identifier: BSD-2-Clause
|
||||||
|
*/
|
||||||
|
|
||||||
|
#pragma once
|
||||||
|
|
||||||
|
#include <LibWeb/Fetch/Infrastructure/HTTP/Requests.h>
|
||||||
|
#include <LibWeb/Fetch/Infrastructure/HTTP/Responses.h>
|
||||||
|
#include <LibWeb/HTML/CrossOrigin/CrossOriginOpenerPolicy.h>
|
||||||
|
#include <LibWeb/HTML/CrossOrigin/CrossOriginOpenerPolicyEnforcementResult.h>
|
||||||
|
#include <LibWeb/HTML/Origin.h>
|
||||||
|
#include <LibWeb/HTML/PolicyContainers.h>
|
||||||
|
#include <LibWeb/HTML/SandboxingFlagSet.h>
|
||||||
|
|
||||||
|
namespace Web::HTML {
|
||||||
|
|
||||||
|
// https://html.spec.whatwg.org/multipage/browsing-the-web.html#history-handling-behavior
|
||||||
|
enum class HistoryHandlingBehavior {
|
||||||
|
Default,
|
||||||
|
EntryUpdate,
|
||||||
|
Reload,
|
||||||
|
Replace,
|
||||||
|
};
|
||||||
|
|
||||||
|
// https://html.spec.whatwg.org/multipage/browsing-the-web.html#navigation-params
|
||||||
|
struct NavigationParams {
|
||||||
|
// a navigation id
|
||||||
|
String id;
|
||||||
|
|
||||||
|
// null or a request that started the navigation
|
||||||
|
OwnPtr<Fetch::Infrastructure::Request> request;
|
||||||
|
|
||||||
|
// a response that ultimately was navigated to (potentially a network error)
|
||||||
|
NonnullOwnPtr<Fetch::Infrastructure::Response> response;
|
||||||
|
|
||||||
|
// an origin to use for the new Document
|
||||||
|
Origin origin;
|
||||||
|
|
||||||
|
// a policy container to use for the new Document
|
||||||
|
PolicyContainer policy_container;
|
||||||
|
|
||||||
|
// a sandboxing flag set to impose on the new Document
|
||||||
|
SandboxingFlagSet final_sandboxing_flag_set;
|
||||||
|
|
||||||
|
// a cross-origin opener policy to use for the new Document
|
||||||
|
CrossOriginOpenerPolicy cross_origin_opener_policy;
|
||||||
|
|
||||||
|
// a cross-origin opener policy enforcement result, used for reporting and potentially for causing a browsing context group switch
|
||||||
|
CrossOriginOpenerPolicyEnforcementResult coop_enforcement_result;
|
||||||
|
|
||||||
|
// null or an environment reserved for the new Document
|
||||||
|
Optional<Environment> reserved_environment;
|
||||||
|
|
||||||
|
// the browsing context to be navigated (or discarded, if a browsing context group switch occurs)
|
||||||
|
NonnullRefPtr<HTML::BrowsingContext> browsing_context;
|
||||||
|
|
||||||
|
// a history handling behavior
|
||||||
|
HistoryHandlingBehavior history_handling { HistoryHandlingBehavior::Default };
|
||||||
|
|
||||||
|
// a boolean
|
||||||
|
bool has_cross_origin_redirects { false };
|
||||||
|
|
||||||
|
// FIXME: an algorithm expecting a response
|
||||||
|
void* process_response_end_of_body { nullptr };
|
||||||
|
|
||||||
|
// FIXME: null or an algorithm accepting a Document, once it has been created
|
||||||
|
void* commit_early_hints { nullptr };
|
||||||
|
};
|
||||||
|
|
||||||
|
}
|
Loading…
Add table
Add a link
Reference in a new issue