mirror of
https://github.com/RGBCube/serenity
synced 2025-07-25 21:07:35 +00:00
LibWeb: Port BrowsingContext from ByteString
Also removing an unused m_name member.
This commit is contained in:
parent
1536cd05a7
commit
0b7c8e0de5
3 changed files with 10 additions and 12 deletions
|
@ -412,15 +412,15 @@ void BrowsingContext::set_cursor_position(JS::NonnullGCPtr<DOM::Position> positi
|
||||||
reset_cursor_blink_cycle();
|
reset_cursor_blink_cycle();
|
||||||
}
|
}
|
||||||
|
|
||||||
static ByteString visible_text_in_range(DOM::Range const& range)
|
static String visible_text_in_range(DOM::Range const& range)
|
||||||
{
|
{
|
||||||
// NOTE: This is an adaption of Range stringification, but we skip over DOM nodes that don't have a corresponding layout node.
|
// NOTE: This is an adaption of Range stringification, but we skip over DOM nodes that don't have a corresponding layout node.
|
||||||
StringBuilder builder;
|
StringBuilder builder;
|
||||||
|
|
||||||
if (range.start_container() == range.end_container() && is<DOM::Text>(*range.start_container())) {
|
if (range.start_container() == range.end_container() && is<DOM::Text>(*range.start_container())) {
|
||||||
if (!range.start_container()->layout_node())
|
if (!range.start_container()->layout_node())
|
||||||
return ""sv;
|
return String {};
|
||||||
return MUST(static_cast<DOM::Text const&>(*range.start_container()).data().substring_from_byte_offset(range.start_offset(), range.end_offset() - range.start_offset())).to_byte_string();
|
return MUST(static_cast<DOM::Text const&>(*range.start_container()).data().substring_from_byte_offset(range.start_offset(), range.end_offset() - range.start_offset()));
|
||||||
}
|
}
|
||||||
|
|
||||||
if (is<DOM::Text>(*range.start_container()) && range.start_container()->layout_node())
|
if (is<DOM::Text>(*range.start_container()) && range.start_container()->layout_node())
|
||||||
|
@ -434,18 +434,18 @@ static ByteString visible_text_in_range(DOM::Range const& range)
|
||||||
if (is<DOM::Text>(*range.end_container()) && range.end_container()->layout_node())
|
if (is<DOM::Text>(*range.end_container()) && range.end_container()->layout_node())
|
||||||
builder.append(static_cast<DOM::Text const&>(*range.end_container()).data().bytes_as_string_view().substring_view(0, range.end_offset()));
|
builder.append(static_cast<DOM::Text const&>(*range.end_container()).data().bytes_as_string_view().substring_view(0, range.end_offset()));
|
||||||
|
|
||||||
return builder.to_byte_string();
|
return MUST(builder.to_string());
|
||||||
}
|
}
|
||||||
|
|
||||||
ByteString BrowsingContext::selected_text() const
|
String BrowsingContext::selected_text() const
|
||||||
{
|
{
|
||||||
auto* document = active_document();
|
auto const* document = active_document();
|
||||||
if (!document)
|
if (!document)
|
||||||
return ""sv;
|
return String {};
|
||||||
auto selection = const_cast<DOM::Document&>(*document).get_selection();
|
auto selection = const_cast<DOM::Document&>(*document).get_selection();
|
||||||
auto range = selection->range();
|
auto range = selection->range();
|
||||||
if (!range)
|
if (!range)
|
||||||
return ""sv;
|
return String {};
|
||||||
return visible_text_in_range(*range);
|
return visible_text_in_range(*range);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
@ -151,7 +151,7 @@ public:
|
||||||
|
|
||||||
bool cursor_blink_state() const { return m_cursor_blink_state; }
|
bool cursor_blink_state() const { return m_cursor_blink_state; }
|
||||||
|
|
||||||
ByteString selected_text() const;
|
String selected_text() const;
|
||||||
void select_all();
|
void select_all();
|
||||||
|
|
||||||
void did_edit(Badge<EditEventHandler>);
|
void did_edit(Badge<EditEventHandler>);
|
||||||
|
@ -222,8 +222,6 @@ private:
|
||||||
RefPtr<Core::Timer> m_cursor_blink_timer;
|
RefPtr<Core::Timer> m_cursor_blink_timer;
|
||||||
bool m_cursor_blink_state { false };
|
bool m_cursor_blink_state { false };
|
||||||
|
|
||||||
ByteString m_name;
|
|
||||||
|
|
||||||
// https://html.spec.whatwg.org/multipage/browsers.html#tlbc-group
|
// https://html.spec.whatwg.org/multipage/browsers.html#tlbc-group
|
||||||
JS::GCPtr<BrowsingContextGroup> m_group;
|
JS::GCPtr<BrowsingContextGroup> m_group;
|
||||||
|
|
||||||
|
|
|
@ -842,7 +842,7 @@ Messages::WebContentServer::DumpGcGraphResponse ConnectionFromClient::dump_gc_gr
|
||||||
|
|
||||||
Messages::WebContentServer::GetSelectedTextResponse ConnectionFromClient::get_selected_text()
|
Messages::WebContentServer::GetSelectedTextResponse ConnectionFromClient::get_selected_text()
|
||||||
{
|
{
|
||||||
return page().page().focused_context().selected_text();
|
return page().page().focused_context().selected_text().to_byte_string();
|
||||||
}
|
}
|
||||||
|
|
||||||
void ConnectionFromClient::select_all()
|
void ConnectionFromClient::select_all()
|
||||||
|
|
Loading…
Add table
Add a link
Reference in a new issue