1
Fork 0
mirror of https://github.com/RGBCube/serenity synced 2025-05-31 12:28:12 +00:00

Ladybird+LibWebView: Move console history tracking to ConsoleClient

This will allow other chromes to make use of history in their console
implementations.
This commit is contained in:
Timothy Flynn 2023-08-30 08:45:26 -04:00 committed by Andrew Kaster
parent ed315dd950
commit 204a6f9241
6 changed files with 69 additions and 34 deletions

View file

@ -47,10 +47,44 @@ ConsoleClient::~ConsoleClient()
m_content_web_view.on_received_console_messages = nullptr;
}
void ConsoleClient::execute(StringView script)
void ConsoleClient::execute(String script)
{
print_source(script);
m_content_web_view.js_console_input(script);
m_content_web_view.js_console_input(script.to_deprecated_string());
if (m_history.is_empty() || m_history.last() != script) {
m_history.append(move(script));
m_history_index = m_history.size();
}
}
Optional<String> ConsoleClient::previous_history_item()
{
if (m_history_index == 0)
return {};
--m_history_index;
return m_history.at(m_history_index);
}
Optional<String> ConsoleClient::next_history_item()
{
if (m_history.is_empty())
return {};
auto last_index = m_history.size() - 1;
if (m_history_index < last_index) {
++m_history_index;
return m_history.at(m_history_index);
}
if (m_history_index == last_index) {
++m_history_index;
return String {};
}
return {};
}
void ConsoleClient::clear()