diff --git a/Libraries/LibWebView/Application.cpp b/Libraries/LibWebView/Application.cpp index 5096d12dfd8..3f370512243 100644 --- a/Libraries/LibWebView/Application.cpp +++ b/Libraries/LibWebView/Application.cpp @@ -371,7 +371,7 @@ void Application::inspect_tab(DevTools::TabDescription const& description, DevTo return; } - view->on_received_dom_tree = [&view = *view, on_complete = move(on_complete)](ByteString const& dom_tree) { + view->on_received_dom_tree = [&view = *view, on_complete = move(on_complete)](String const& dom_tree) { view.on_received_dom_tree = nullptr; if (auto parsed_tree = JsonValue::from_string(dom_tree); parsed_tree.is_error()) { diff --git a/Libraries/LibWebView/ViewImplementation.h b/Libraries/LibWebView/ViewImplementation.h index 918af84b4c9..67c6265f1aa 100644 --- a/Libraries/LibWebView/ViewImplementation.h +++ b/Libraries/LibWebView/ViewImplementation.h @@ -200,9 +200,9 @@ public: Function on_request_accept_dialog; Function on_request_dismiss_dialog; Function on_received_source; - Function on_received_dom_tree; + Function on_received_dom_tree; Function)> on_received_dom_node_properties; - Function on_received_accessibility_tree; + Function on_received_accessibility_tree; Function)> on_received_style_sheet_list; Function on_inspector_requested_style_sheet_source; Function on_received_style_sheet_source; diff --git a/Libraries/LibWebView/WebContentClient.cpp b/Libraries/LibWebView/WebContentClient.cpp index dbcd12c602a..0c0cbb37d88 100644 --- a/Libraries/LibWebView/WebContentClient.cpp +++ b/Libraries/LibWebView/WebContentClient.cpp @@ -264,7 +264,7 @@ void WebContentClient::did_get_source(u64 page_id, URL::URL const& url, URL::URL } } -void WebContentClient::did_inspect_dom_tree(u64 page_id, ByteString const& dom_tree) +void WebContentClient::did_inspect_dom_tree(u64 page_id, String const& dom_tree) { if (auto view = view_for_page_id(page_id); view.has_value()) { if (view->on_received_dom_tree) @@ -272,7 +272,7 @@ void WebContentClient::did_inspect_dom_tree(u64 page_id, ByteString const& dom_t } } -void WebContentClient::did_inspect_dom_node(u64 page_id, bool has_style, ByteString const& computed_style, ByteString const& resolved_style, ByteString const& custom_properties, ByteString const& node_box_sizing, ByteString const& aria_properties_state, ByteString const& fonts) +void WebContentClient::did_inspect_dom_node(u64 page_id, bool has_style, String const& computed_style, String const& resolved_style, String const& custom_properties, String const& node_box_sizing, String const& aria_properties_state, String const& fonts) { auto view = view_for_page_id(page_id); if (!view.has_value() || !view->on_received_dom_node_properties) @@ -282,19 +282,19 @@ void WebContentClient::did_inspect_dom_node(u64 page_id, bool has_style, ByteStr if (has_style) { properties = ViewImplementation::DOMNodeProperties { - .computed_style_json = MUST(String::from_byte_string(computed_style)), - .resolved_style_json = MUST(String::from_byte_string(resolved_style)), - .custom_properties_json = MUST(String::from_byte_string(custom_properties)), - .node_box_sizing_json = MUST(String::from_byte_string(node_box_sizing)), - .aria_properties_state_json = MUST(String::from_byte_string(aria_properties_state)), - .fonts_json = MUST(String::from_byte_string(fonts)) + .computed_style_json = computed_style, + .resolved_style_json = resolved_style, + .custom_properties_json = custom_properties, + .node_box_sizing_json = node_box_sizing, + .aria_properties_state_json = aria_properties_state, + .fonts_json = fonts, }; } view->on_received_dom_node_properties(move(properties)); } -void WebContentClient::did_inspect_accessibility_tree(u64 page_id, ByteString const& accessibility_tree) +void WebContentClient::did_inspect_accessibility_tree(u64 page_id, String const& accessibility_tree) { if (auto view = view_for_page_id(page_id); view.has_value()) { if (view->on_received_accessibility_tree) diff --git a/Libraries/LibWebView/WebContentClient.h b/Libraries/LibWebView/WebContentClient.h index 6d4de74f8bf..d7fb9d00e23 100644 --- a/Libraries/LibWebView/WebContentClient.h +++ b/Libraries/LibWebView/WebContentClient.h @@ -71,9 +71,9 @@ private: virtual void did_request_image_context_menu(u64 page_id, Gfx::IntPoint, URL::URL const&, ByteString const&, unsigned, Optional const&) override; virtual void did_request_media_context_menu(u64 page_id, Gfx::IntPoint, ByteString const&, unsigned, Web::Page::MediaContextMenu const&) override; virtual void did_get_source(u64 page_id, URL::URL const&, URL::URL const&, String const&) override; - virtual void did_inspect_dom_tree(u64 page_id, ByteString const&) override; - virtual void did_inspect_dom_node(u64 page_id, bool has_style, ByteString const& computed_style, ByteString const& resolved_style, ByteString const& custom_properties, ByteString const& node_box_sizing, ByteString const& aria_properties_state, ByteString const& fonts) override; - virtual void did_inspect_accessibility_tree(u64 page_id, ByteString const&) override; + virtual void did_inspect_dom_tree(u64 page_id, String const&) override; + virtual void did_inspect_dom_node(u64 page_id, bool has_style, String const& computed_style, String const& resolved_style, String const& custom_properties, String const& node_box_sizing, String const& aria_properties_state, String const& fonts) override; + virtual void did_inspect_accessibility_tree(u64 page_id, String const&) override; virtual void did_get_hovered_node_id(u64 page_id, Web::UniqueNodeID const& node_id) override; virtual void did_finish_editing_dom_node(u64 page_id, Optional const& node_id) override; virtual void did_get_dom_node_html(u64 page_id, String const& html) override; diff --git a/Services/WebContent/ConnectionFromClient.cpp b/Services/WebContent/ConnectionFromClient.cpp index 11c36622c1c..622e36aae62 100644 --- a/Services/WebContent/ConnectionFromClient.cpp +++ b/Services/WebContent/ConnectionFromClient.cpp @@ -430,7 +430,7 @@ void ConnectionFromClient::inspect_dom_tree(u64 page_id) { if (auto page = this->page(page_id); page.has_value()) { if (auto* doc = page->page().top_level_browsing_context().active_document()) - async_did_inspect_dom_tree(page_id, doc->dump_dom_tree_as_json().to_byte_string()); + async_did_inspect_dom_tree(page_id, doc->dump_dom_tree_as_json()); } } @@ -462,7 +462,7 @@ void ConnectionFromClient::inspect_dom_node(u64 page_id, Web::UniqueNodeID const return; } - auto serialize_json = [](Web::CSS::ComputedProperties const& properties) -> ByteString { + auto serialize_json = [](Web::CSS::ComputedProperties const& properties) { StringBuilder builder; auto serializer = MUST(JsonObjectSerializer<>::try_create(builder)); @@ -471,10 +471,10 @@ void ConnectionFromClient::inspect_dom_node(u64 page_id, Web::UniqueNodeID const }); MUST(serializer.finish()); - return builder.to_byte_string(); + return MUST(builder.to_string()); }; - auto serialize_custom_properties_json = [](Web::DOM::Element const& element, Optional pseudo_element) -> ByteString { + auto serialize_custom_properties_json = [](Web::DOM::Element const& element, Optional pseudo_element) { StringBuilder builder; auto serializer = MUST(JsonObjectSerializer<>::try_create(builder)); HashTable seen_properties; @@ -498,11 +498,11 @@ void ConnectionFromClient::inspect_dom_node(u64 page_id, Web::UniqueNodeID const MUST(serializer.finish()); - return builder.to_byte_string(); + return MUST(builder.to_string()); }; - auto serialize_node_box_sizing_json = [](Web::Layout::Node const* layout_node) -> ByteString { + auto serialize_node_box_sizing_json = [](Web::Layout::Node const* layout_node) { if (!layout_node || !layout_node->is_box() || !layout_node->first_paintable() || !layout_node->first_paintable()->is_paintable_box()) { - return "{}"; + return "{}"_string; } auto const& paintable_box = as(*layout_node->first_paintable()); auto const& box_model = paintable_box.box_model(); @@ -524,13 +524,13 @@ void ConnectionFromClient::inspect_dom_node(u64 page_id, Web::UniqueNodeID const MUST(serializer.add("content_height"sv, paintable_box.content_height().to_double())); MUST(serializer.finish()); - return builder.to_byte_string(); + return MUST(builder.to_string()); }; - auto serialize_aria_properties_state_json = [](Web::DOM::Element const& element) -> ByteString { + auto serialize_aria_properties_state_json = [](Web::DOM::Element const& element) { auto role_name = element.role_or_default(); if (!role_name.has_value()) { - return ""; + return "{}"_string; } auto aria_data = MUST(Web::ARIA::AriaData::build_data(element)); auto role = MUST(Web::ARIA::RoleType::build_role_object(role_name.value(), element.is_focusable(), *aria_data)); @@ -539,10 +539,10 @@ void ConnectionFromClient::inspect_dom_node(u64 page_id, Web::UniqueNodeID const auto serializer = MUST(JsonObjectSerializer<>::try_create(builder)); MUST(role->serialize_as_json(serializer)); MUST(serializer.finish()); - return builder.to_byte_string(); + return MUST(builder.to_string()); }; - auto serialize_fonts_json = [](Web::CSS::ComputedProperties const& properties) -> ByteString { + auto serialize_fonts_json = [](Web::CSS::ComputedProperties const& properties) { StringBuilder builder; auto serializer = MUST(JsonArraySerializer<>::try_create(builder)); @@ -556,7 +556,7 @@ void ConnectionFromClient::inspect_dom_node(u64 page_id, Web::UniqueNodeID const MUST(font_json_object.finish()); }); MUST(serializer.finish()); - return builder.to_byte_string(); + return MUST(builder.to_string()); }; if (pseudo_element.has_value()) { @@ -568,9 +568,9 @@ void ConnectionFromClient::inspect_dom_node(u64 page_id, Web::UniqueNodeID const auto pseudo_element_style = element.pseudo_element_computed_properties(pseudo_element.value()); - ByteString computed_values; - ByteString fonts_json; - ByteString resolved_values; + String computed_values; + String fonts_json; + String resolved_values; if (pseudo_element_style) { computed_values = serialize_json(*pseudo_element_style); fonts_json = serialize_fonts_json(*pseudo_element_style); @@ -579,18 +579,18 @@ void ConnectionFromClient::inspect_dom_node(u64 page_id, Web::UniqueNodeID const dbgln("Inspected pseudo-element has no computed style."); } - ByteString custom_properties_json = serialize_custom_properties_json(element, pseudo_element); - ByteString node_box_sizing_json = serialize_node_box_sizing_json(pseudo_element_node.ptr()); - async_did_inspect_dom_node(page_id, true, move(computed_values), move(resolved_values), move(custom_properties_json), move(node_box_sizing_json), {}, move(fonts_json)); + auto custom_properties_json = serialize_custom_properties_json(element, pseudo_element); + auto node_box_sizing_json = serialize_node_box_sizing_json(pseudo_element_node.ptr()); + async_did_inspect_dom_node(page_id, true, move(computed_values), move(resolved_values), move(custom_properties_json), move(node_box_sizing_json), "{}"_string, move(fonts_json)); return; } - ByteString computed_values = serialize_json(*element.computed_properties()); - ByteString resolved_values = serialize_json(element.resolved_css_values()); - ByteString custom_properties_json = serialize_custom_properties_json(element, {}); - ByteString node_box_sizing_json = serialize_node_box_sizing_json(element.layout_node()); - ByteString aria_properties_state_json = serialize_aria_properties_state_json(element); - ByteString fonts_json = serialize_fonts_json(*element.computed_properties()); + auto computed_values = serialize_json(*element.computed_properties()); + auto resolved_values = serialize_json(element.resolved_css_values()); + auto custom_properties_json = serialize_custom_properties_json(element, {}); + auto node_box_sizing_json = serialize_node_box_sizing_json(element.layout_node()); + auto aria_properties_state_json = serialize_aria_properties_state_json(element); + auto fonts_json = serialize_fonts_json(*element.computed_properties()); async_did_inspect_dom_node(page_id, true, move(computed_values), move(resolved_values), move(custom_properties_json), move(node_box_sizing_json), move(aria_properties_state_json), move(fonts_json)); return; @@ -603,7 +603,7 @@ void ConnectionFromClient::inspect_accessibility_tree(u64 page_id) { if (auto page = this->page(page_id); page.has_value()) { if (auto* doc = page->page().top_level_browsing_context().active_document()) - async_did_inspect_accessibility_tree(page_id, doc->dump_accessibility_tree_as_json().to_byte_string()); + async_did_inspect_accessibility_tree(page_id, doc->dump_accessibility_tree_as_json()); } } diff --git a/Services/WebContent/WebContentClient.ipc b/Services/WebContent/WebContentClient.ipc index f74ecf4f77b..4e274efd20c 100644 --- a/Services/WebContent/WebContentClient.ipc +++ b/Services/WebContent/WebContentClient.ipc @@ -47,9 +47,9 @@ endpoint WebContentClient did_request_dismiss_dialog(u64 page_id) =| did_get_source(u64 page_id, URL::URL url, URL::URL base_url, String source) =| - did_inspect_dom_tree(u64 page_id, ByteString dom_tree) =| - did_inspect_dom_node(u64 page_id, bool has_style, ByteString computed_style, ByteString resolved_style, ByteString custom_properties, ByteString node_box_sizing, ByteString aria_properties_state, ByteString fonts) =| - did_inspect_accessibility_tree(u64 page_id, ByteString accessibility_tree) =| + did_inspect_dom_tree(u64 page_id, String dom_tree) =| + did_inspect_dom_node(u64 page_id, bool has_style, String computed_style, String resolved_style, String custom_properties, String node_box_sizing, String aria_properties_state, String fonts) =| + did_inspect_accessibility_tree(u64 page_id, String accessibility_tree) =| did_get_hovered_node_id(u64 page_id, Web::UniqueNodeID node_id) =| did_finish_editing_dom_node(u64 page_id, Optional node_id) =| did_get_dom_node_html(u64 page_id, String html) =|