ladybird/Userland/Libraries/LibWeb/HTML/Navigation.idl
Andrew Kaster f8e5df7a99 LibWeb: Implement navigation.navigate()
The implementation is incomplete, because our Navigable::navigate
implementation is missing the navigationAPIState parameter. We also
don't have Navigables hooked up completely enough to guarantee that a
fully active document that is not being unloaded always has a Navigable.
2023-08-25 19:51:13 +02:00

57 lines
1.7 KiB
Text

#import <DOM/EventHandler.idl>
#import <DOM/EventTarget.idl>
#import <HTML/NavigationHistoryEntry.idl>
#import <HTML/NavigationTransition.idl>
// https://html.spec.whatwg.org/multipage/nav-history-apis.html#navigation-interface
[Exposed=Window, UseNewAKString]
interface Navigation : EventTarget {
sequence<NavigationHistoryEntry> entries();
readonly attribute NavigationHistoryEntry? currentEntry;
undefined updateCurrentEntry(NavigationUpdateCurrentEntryOptions options);
readonly attribute NavigationTransition? transition;
readonly attribute boolean canGoBack;
readonly attribute boolean canGoForward;
// TODO: Actually implement navigation algorithms
NavigationResult navigate(USVString url, optional NavigationNavigateOptions options = {});
// NavigationResult reload(optional NavigationReloadOptions options = {});
// NavigationResult traverseTo(DOMString key, optional NavigationOptions options = {});
// NavigationResult back(optional NavigationOptions options = {});
// NavigationResult forward(optional NavigationOptions options = {});
attribute EventHandler onnavigate;
attribute EventHandler onnavigatesuccess;
attribute EventHandler onnavigateerror;
attribute EventHandler oncurrententrychange;
};
dictionary NavigationUpdateCurrentEntryOptions {
required any state;
};
dictionary NavigationOptions {
any info;
};
dictionary NavigationNavigateOptions : NavigationOptions {
any state;
NavigationHistoryBehavior history = "auto";
};
dictionary NavigationReloadOptions : NavigationOptions {
any state;
};
dictionary NavigationResult {
Promise<NavigationHistoryEntry> committed;
Promise<NavigationHistoryEntry> finished;
};
enum NavigationHistoryBehavior {
"auto",
"push",
"replace"
};