ladybird/Libraries/LibWebView/HistoryDebug.h
Andreas Kling 78bb7b8d45 LibWebView: Add a UI session history model
Add a browser-side model for top-level history entries and history step
coordinates. This gives the UI process a structure to mirror WebContent
history across process swaps.

Add debug dumping support alongside the model so traversal state can be
inspected while working on back and forward behavior.
2026-06-14 17:38:44 +02:00

36 lines
1.4 KiB
C++

/*
* Copyright (c) 2026-present, the Ladybird developers.
*
* SPDX-License-Identifier: BSD-2-Clause
*/
#pragma once
#include <AK/ByteString.h>
#include <AK/JsonArray.h>
#include <AK/JsonObject.h>
#include <AK/Optional.h>
#include <AK/String.h>
#include <AK/Types.h>
#include <AK/Vector.h>
#include <LibWeb/HTML/SessionHistoryEntry.h>
#include <LibWebView/Forward.h>
namespace WebView {
inline ByteString history_log_suggestions(Vector<String> const& suggestions)
{
return ByteString::formatted("[{}]", ByteString::join(", "sv, suggestions));
}
WEBVIEW_API bool history_debug_enabled();
WEBVIEW_API ByteString history_log_entries(TraversableSessionHistory const&);
WEBVIEW_API ByteString history_log_entries(Vector<Web::HTML::SessionHistoryEntryDescriptor> const&, Optional<size_t> current_entry_index = {});
WEBVIEW_API ByteString history_log_steps(Vector<i32> const&, Optional<size_t> current_step_index = {});
WEBVIEW_API JsonObject history_json_entry(Web::HTML::SessionHistoryEntryDescriptor const&, bool current = false);
WEBVIEW_API JsonArray history_json_entries(TraversableSessionHistory const&);
WEBVIEW_API JsonArray history_json_entries(Vector<Web::HTML::SessionHistoryEntryDescriptor> const&, Optional<size_t> current_entry_index = {});
WEBVIEW_API JsonArray history_json_steps(TraversableSessionHistory const&);
WEBVIEW_API JsonArray history_json_steps(Vector<i32> const&, Optional<size_t> current_step_index = {});
}