| 
									
										
										
										
											2022-10-05 15:23:41 +02:00
										 |  |  | /*
 | 
					
						
							|  |  |  |  * Copyright (c) 2022, Andreas Kling <kling@serenityos.org> | 
					
						
							| 
									
										
										
										
											2023-01-12 14:39:05 +00:00
										 |  |  |  * Copyright (c) 2023, Linus Groh <linusg@serenityos.org> | 
					
						
							| 
									
										
										
										
											2022-10-05 15:23:41 +02:00
										 |  |  |  * | 
					
						
							|  |  |  |  * SPDX-License-Identifier: BSD-2-Clause | 
					
						
							|  |  |  |  */ | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | #pragma once
 | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | #define AK_DONT_REPLACE_STD
 | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2022-12-04 18:43:54 +00:00
										 |  |  | #include <AK/DeprecatedString.h>
 | 
					
						
							| 
									
										
										
										
											2022-10-05 15:23:41 +02:00
										 |  |  | #include <AK/Function.h>
 | 
					
						
							|  |  |  | #include <AK/HashMap.h>
 | 
					
						
							|  |  |  | #include <AK/OwnPtr.h>
 | 
					
						
							|  |  |  | #include <AK/URL.h>
 | 
					
						
							|  |  |  | #include <LibGfx/Forward.h>
 | 
					
						
							|  |  |  | #include <LibGfx/Rect.h>
 | 
					
						
							|  |  |  | #include <LibGfx/StandardCursor.h>
 | 
					
						
							| 
									
										
										
										
											2023-01-12 18:27:34 +00:00
										 |  |  | #include <LibWeb/CSS/PreferredColorScheme.h>
 | 
					
						
							| 
									
										
										
										
											2022-12-18 00:50:53 +00:00
										 |  |  | #include <LibWeb/CSS/Selector.h>
 | 
					
						
							| 
									
										
										
										
											2022-10-05 15:23:41 +02:00
										 |  |  | #include <LibWeb/Forward.h>
 | 
					
						
							| 
									
										
										
										
											2023-03-20 18:39:20 -04:00
										 |  |  | #include <LibWeb/HTML/ActivateTab.h>
 | 
					
						
							| 
									
										
										
										
											2023-01-31 08:45:11 -05:00
										 |  |  | #include <LibWebView/ViewImplementation.h>
 | 
					
						
							| 
									
										
										
										
											2022-10-05 15:23:41 +02:00
										 |  |  | #include <QAbstractScrollArea>
 | 
					
						
							|  |  |  | #include <QPointer>
 | 
					
						
							| 
									
										
										
										
											2023-01-31 08:45:11 -05:00
										 |  |  | #include <QSocketNotifier>
 | 
					
						
							| 
									
										
										
										
											2022-10-05 15:23:41 +02:00
										 |  |  | 
 | 
					
						
							|  |  |  | class QTextEdit; | 
					
						
							|  |  |  | class QLineEdit; | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2022-10-06 10:39:02 +02:00
										 |  |  | namespace Ladybird { | 
					
						
							|  |  |  | class ConsoleWidget; | 
					
						
							| 
									
										
										
										
											2022-12-18 00:50:53 +00:00
										 |  |  | class InspectorWidget; | 
					
						
							| 
									
										
										
										
											2022-10-06 10:39:02 +02:00
										 |  |  | } | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2022-10-05 15:23:41 +02:00
										 |  |  | namespace WebView { | 
					
						
							|  |  |  | class WebContentClient; | 
					
						
							|  |  |  | } | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | using WebView::WebContentClient; | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | class Tab; | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | class WebContentView final | 
					
						
							|  |  |  |     : public QAbstractScrollArea | 
					
						
							|  |  |  |     , public WebView::ViewImplementation { | 
					
						
							|  |  |  |     Q_OBJECT | 
					
						
							|  |  |  | public: | 
					
						
							| 
									
										
										
										
											2022-12-15 09:18:52 -05:00
										 |  |  |     explicit WebContentView(StringView webdriver_content_ipc_path); | 
					
						
							| 
									
										
										
										
											2022-10-05 15:23:41 +02:00
										 |  |  |     virtual ~WebContentView() override; | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2023-03-20 18:39:20 -04:00
										 |  |  |     Function<String(Web::HTML::ActivateTab)> on_new_tab; | 
					
						
							| 
									
										
										
										
											2023-03-07 06:13:08 +03:00
										 |  |  |     Function<void()> on_close; | 
					
						
							| 
									
										
										
										
											2022-12-06 22:00:08 +00:00
										 |  |  |     Function<void(Gfx::IntPoint screen_position)> on_context_menu_request; | 
					
						
							| 
									
										
										
										
											2022-12-04 18:43:54 +00:00
										 |  |  |     Function<void(const AK::URL&, DeprecatedString const& target, unsigned modifiers)> on_link_click; | 
					
						
							| 
									
										
										
										
											2022-12-06 22:00:08 +00:00
										 |  |  |     Function<void(const AK::URL&, Gfx::IntPoint screen_position)> on_link_context_menu_request; | 
					
						
							|  |  |  |     Function<void(const AK::URL&, Gfx::IntPoint screen_position, Gfx::ShareableBitmap const&)> on_image_context_menu_request; | 
					
						
							| 
									
										
										
										
											2022-12-04 18:43:54 +00:00
										 |  |  |     Function<void(const AK::URL&, DeprecatedString const& target, unsigned modifiers)> on_link_middle_click; | 
					
						
							| 
									
										
										
										
											2022-10-05 15:23:41 +02:00
										 |  |  |     Function<void(const AK::URL&)> on_link_hover; | 
					
						
							| 
									
										
										
										
											2022-12-04 18:43:54 +00:00
										 |  |  |     Function<void(DeprecatedString const&)> on_title_change; | 
					
						
							| 
									
										
										
										
											2022-10-05 15:23:41 +02:00
										 |  |  |     Function<void(const AK::URL&)> on_load_start; | 
					
						
							|  |  |  |     Function<void(const AK::URL&)> on_load_finish; | 
					
						
							|  |  |  |     Function<void(Gfx::Bitmap const&)> on_favicon_change; | 
					
						
							|  |  |  |     Function<void(const AK::URL&)> on_url_drop; | 
					
						
							|  |  |  |     Function<void(Web::DOM::Document*)> on_set_document; | 
					
						
							| 
									
										
										
										
											2022-12-04 18:43:54 +00:00
										 |  |  |     Function<void(const AK::URL&, DeprecatedString const&)> on_get_source; | 
					
						
							|  |  |  |     Function<void(DeprecatedString const&)> on_get_dom_tree; | 
					
						
							|  |  |  |     Function<void(i32 node_id, DeprecatedString const& specified_style, DeprecatedString const& computed_style, DeprecatedString const& custom_properties, DeprecatedString const& node_box_sizing)> on_get_dom_node_properties; | 
					
						
							| 
									
										
										
										
											2022-10-05 15:23:41 +02:00
										 |  |  |     Function<void(i32 message_id)> on_js_console_new_message; | 
					
						
							| 
									
										
										
										
											2022-12-04 18:43:54 +00:00
										 |  |  |     Function<void(i32 start_index, Vector<DeprecatedString> const& message_types, Vector<DeprecatedString> const& messages)> on_get_js_console_messages; | 
					
						
							| 
									
										
										
										
											2022-11-14 17:23:35 -05:00
										 |  |  |     Function<Vector<Web::Cookie::Cookie>(AK::URL const& url)> on_get_all_cookies; | 
					
						
							| 
									
										
										
										
											2022-12-04 18:43:54 +00:00
										 |  |  |     Function<Optional<Web::Cookie::Cookie>(AK::URL const& url, DeprecatedString const& name)> on_get_named_cookie; | 
					
						
							|  |  |  |     Function<DeprecatedString(const AK::URL& url, Web::Cookie::Source source)> on_get_cookie; | 
					
						
							| 
									
										
										
										
											2022-10-05 15:23:41 +02:00
										 |  |  |     Function<void(const AK::URL& url, Web::Cookie::ParsedCookie const& cookie, Web::Cookie::Source source)> on_set_cookie; | 
					
						
							| 
									
										
										
										
											2022-12-05 10:15:41 -05:00
										 |  |  |     Function<void(Web::Cookie::Cookie const& cookie)> on_update_cookie; | 
					
						
							| 
									
										
										
										
											2022-10-05 15:23:41 +02:00
										 |  |  |     Function<void(i32 count_waiting)> on_resource_status_change; | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  |     virtual void paintEvent(QPaintEvent*) override; | 
					
						
							|  |  |  |     virtual void resizeEvent(QResizeEvent*) override; | 
					
						
							|  |  |  |     virtual void mouseMoveEvent(QMouseEvent*) override; | 
					
						
							|  |  |  |     virtual void mousePressEvent(QMouseEvent*) override; | 
					
						
							|  |  |  |     virtual void mouseReleaseEvent(QMouseEvent*) override; | 
					
						
							| 
									
										
										
										
											2023-01-07 17:40:04 +01:00
										 |  |  |     virtual void dragEnterEvent(QDragEnterEvent*) override; | 
					
						
							|  |  |  |     virtual void dropEvent(QDropEvent*) override; | 
					
						
							| 
									
										
										
										
											2022-10-05 15:23:41 +02:00
										 |  |  |     virtual void keyPressEvent(QKeyEvent* event) override; | 
					
						
							|  |  |  |     virtual void keyReleaseEvent(QKeyEvent* event) override; | 
					
						
							|  |  |  |     virtual void showEvent(QShowEvent*) override; | 
					
						
							|  |  |  |     virtual void hideEvent(QHideEvent*) override; | 
					
						
							| 
									
										
										
										
											2022-10-11 11:38:03 +02:00
										 |  |  |     virtual void focusInEvent(QFocusEvent*) override; | 
					
						
							|  |  |  |     virtual void focusOutEvent(QFocusEvent*) override; | 
					
						
							| 
									
										
										
										
											2022-10-11 17:17:49 +02:00
										 |  |  |     virtual bool event(QEvent*) override; | 
					
						
							| 
									
										
										
										
											2022-10-05 15:23:41 +02:00
										 |  |  | 
 | 
					
						
							|  |  |  |     void did_output_js_console_message(i32 message_index); | 
					
						
							| 
									
										
										
										
											2022-12-04 18:43:54 +00:00
										 |  |  |     void did_get_js_console_messages(i32 start_index, Vector<DeprecatedString> message_types, Vector<DeprecatedString> messages); | 
					
						
							| 
									
										
										
										
											2022-10-05 15:23:41 +02:00
										 |  |  | 
 | 
					
						
							|  |  |  |     void show_js_console(); | 
					
						
							|  |  |  |     void show_inspector(); | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2023-01-27 10:41:24 +01:00
										 |  |  |     ErrorOr<String> dump_layout_tree(); | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2023-01-30 23:38:19 +03:00
										 |  |  |     void set_viewport_rect(Gfx::IntRect); | 
					
						
							| 
									
										
										
										
											2023-03-08 23:57:24 +03:00
										 |  |  |     void set_window_size(Gfx::IntSize); | 
					
						
							|  |  |  |     void set_window_position(Gfx::IntPoint); | 
					
						
							| 
									
										
										
										
											2023-01-30 23:38:19 +03:00
										 |  |  | 
 | 
					
						
							| 
									
										
										
										
											2022-10-05 15:23:41 +02:00
										 |  |  |     Gfx::IntPoint to_content(Gfx::IntPoint) const; | 
					
						
							|  |  |  |     Gfx::IntPoint to_widget(Gfx::IntPoint) const; | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2022-12-06 21:58:17 +00:00
										 |  |  |     virtual void notify_server_did_layout(Badge<WebContentClient>, Gfx::IntSize content_size) override; | 
					
						
							| 
									
										
										
										
											2022-10-05 15:23:41 +02:00
										 |  |  |     virtual void notify_server_did_paint(Badge<WebContentClient>, i32 bitmap_id) override; | 
					
						
							|  |  |  |     virtual void notify_server_did_invalidate_content_rect(Badge<WebContentClient>, Gfx::IntRect const&) override; | 
					
						
							|  |  |  |     virtual void notify_server_did_change_selection(Badge<WebContentClient>) override; | 
					
						
							|  |  |  |     virtual void notify_server_did_request_cursor_change(Badge<WebContentClient>, Gfx::StandardCursor cursor) override; | 
					
						
							| 
									
										
										
										
											2022-12-04 18:43:54 +00:00
										 |  |  |     virtual void notify_server_did_change_title(Badge<WebContentClient>, DeprecatedString const&) override; | 
					
						
							| 
									
										
										
										
											2022-10-05 15:23:41 +02:00
										 |  |  |     virtual void notify_server_did_request_scroll(Badge<WebContentClient>, i32, i32) override; | 
					
						
							| 
									
										
										
										
											2022-12-06 22:00:08 +00:00
										 |  |  |     virtual void notify_server_did_request_scroll_to(Badge<WebContentClient>, Gfx::IntPoint) override; | 
					
						
							| 
									
										
										
										
											2022-10-05 15:23:41 +02:00
										 |  |  |     virtual void notify_server_did_request_scroll_into_view(Badge<WebContentClient>, Gfx::IntRect const&) override; | 
					
						
							| 
									
										
										
										
											2022-12-06 22:00:08 +00:00
										 |  |  |     virtual void notify_server_did_enter_tooltip_area(Badge<WebContentClient>, Gfx::IntPoint, DeprecatedString const&) override; | 
					
						
							| 
									
										
										
										
											2022-10-05 15:23:41 +02:00
										 |  |  |     virtual void notify_server_did_leave_tooltip_area(Badge<WebContentClient>) override; | 
					
						
							|  |  |  |     virtual void notify_server_did_hover_link(Badge<WebContentClient>, const AK::URL&) override; | 
					
						
							|  |  |  |     virtual void notify_server_did_unhover_link(Badge<WebContentClient>) override; | 
					
						
							| 
									
										
										
										
											2022-12-04 18:43:54 +00:00
										 |  |  |     virtual void notify_server_did_click_link(Badge<WebContentClient>, const AK::URL&, DeprecatedString const& target, unsigned modifiers) override; | 
					
						
							|  |  |  |     virtual void notify_server_did_middle_click_link(Badge<WebContentClient>, const AK::URL&, DeprecatedString const& target, unsigned modifiers) override; | 
					
						
							| 
									
										
										
										
											2022-11-24 01:52:16 +01:00
										 |  |  |     virtual void notify_server_did_start_loading(Badge<WebContentClient>, const AK::URL&, bool) override; | 
					
						
							| 
									
										
										
										
											2022-10-05 15:23:41 +02:00
										 |  |  |     virtual void notify_server_did_finish_loading(Badge<WebContentClient>, const AK::URL&) override; | 
					
						
							| 
									
										
										
										
											2022-11-11 14:17:55 -05:00
										 |  |  |     virtual void notify_server_did_request_navigate_back(Badge<WebContentClient>) override; | 
					
						
							|  |  |  |     virtual void notify_server_did_request_navigate_forward(Badge<WebContentClient>) override; | 
					
						
							|  |  |  |     virtual void notify_server_did_request_refresh(Badge<WebContentClient>) override; | 
					
						
							| 
									
										
										
										
											2022-12-06 22:00:08 +00:00
										 |  |  |     virtual void notify_server_did_request_context_menu(Badge<WebContentClient>, Gfx::IntPoint) override; | 
					
						
							|  |  |  |     virtual void notify_server_did_request_link_context_menu(Badge<WebContentClient>, Gfx::IntPoint, const AK::URL&, DeprecatedString const& target, unsigned modifiers) override; | 
					
						
							|  |  |  |     virtual void notify_server_did_request_image_context_menu(Badge<WebContentClient>, Gfx::IntPoint, const AK::URL&, DeprecatedString const& target, unsigned modifiers, Gfx::ShareableBitmap const&) override; | 
					
						
							| 
									
										
										
										
											2023-03-13 17:30:51 -04:00
										 |  |  |     virtual void notify_server_did_request_alert(Badge<WebContentClient>, String const& message) override; | 
					
						
							|  |  |  |     virtual void notify_server_did_request_confirm(Badge<WebContentClient>, String const& message) override; | 
					
						
							|  |  |  |     virtual void notify_server_did_request_prompt(Badge<WebContentClient>, String const& message, String const& default_) override; | 
					
						
							|  |  |  |     virtual void notify_server_did_request_set_prompt_text(Badge<WebContentClient>, String const& message) override; | 
					
						
							| 
									
										
										
										
											2022-11-16 09:06:47 -05:00
										 |  |  |     virtual void notify_server_did_request_accept_dialog(Badge<WebContentClient>) override; | 
					
						
							|  |  |  |     virtual void notify_server_did_request_dismiss_dialog(Badge<WebContentClient>) override; | 
					
						
							| 
									
										
										
										
											2022-12-04 18:43:54 +00:00
										 |  |  |     virtual void notify_server_did_get_source(const AK::URL& url, DeprecatedString const& source) override; | 
					
						
							|  |  |  |     virtual void notify_server_did_get_dom_tree(DeprecatedString const& dom_tree) override; | 
					
						
							|  |  |  |     virtual void notify_server_did_get_dom_node_properties(i32 node_id, DeprecatedString const& specified_style, DeprecatedString const& computed_style, DeprecatedString const& custom_properties, DeprecatedString const& node_box_sizing) override; | 
					
						
							| 
									
										
										
										
											2022-12-07 19:30:37 -06:00
										 |  |  |     virtual void notify_server_did_get_accessibility_tree(DeprecatedString const& accessibility_tree) override; | 
					
						
							| 
									
										
										
										
											2022-10-05 15:23:41 +02:00
										 |  |  |     virtual void notify_server_did_output_js_console_message(i32 message_index) override; | 
					
						
							| 
									
										
										
										
											2022-12-04 18:43:54 +00:00
										 |  |  |     virtual void notify_server_did_get_js_console_messages(i32 start_index, Vector<DeprecatedString> const& message_types, Vector<DeprecatedString> const& messages) override; | 
					
						
							| 
									
										
										
										
											2022-10-05 15:23:41 +02:00
										 |  |  |     virtual void notify_server_did_change_favicon(Gfx::Bitmap const& favicon) override; | 
					
						
							| 
									
										
										
										
											2022-11-11 12:01:51 -05:00
										 |  |  |     virtual Vector<Web::Cookie::Cookie> notify_server_did_request_all_cookies(Badge<WebContentClient>, AK::URL const& url) override; | 
					
						
							| 
									
										
										
										
											2022-12-04 18:43:54 +00:00
										 |  |  |     virtual Optional<Web::Cookie::Cookie> notify_server_did_request_named_cookie(Badge<WebContentClient>, AK::URL const& url, DeprecatedString const& name) override; | 
					
						
							|  |  |  |     virtual DeprecatedString notify_server_did_request_cookie(Badge<WebContentClient>, const AK::URL& url, Web::Cookie::Source source) override; | 
					
						
							| 
									
										
										
										
											2022-10-05 15:23:41 +02:00
										 |  |  |     virtual void notify_server_did_set_cookie(Badge<WebContentClient>, const AK::URL& url, Web::Cookie::ParsedCookie const& cookie, Web::Cookie::Source source) override; | 
					
						
							| 
									
										
										
										
											2022-12-05 10:15:41 -05:00
										 |  |  |     virtual void notify_server_did_update_cookie(Badge<WebContentClient>, Web::Cookie::Cookie const& cookie) override; | 
					
						
							| 
									
										
										
										
											2023-03-20 18:39:20 -04:00
										 |  |  |     virtual String notify_server_did_request_new_tab(Badge<WebContentClient>, Web::HTML::ActivateTab activate_tab) override; | 
					
						
							| 
									
										
										
										
											2023-03-20 19:52:00 -04:00
										 |  |  |     virtual void notify_server_did_request_activate_tab(Badge<WebContentClient>) override; | 
					
						
							| 
									
										
										
										
											2023-03-07 06:10:26 +03:00
										 |  |  |     virtual void notify_server_did_close_browsing_context(Badge<WebContentClient>) override; | 
					
						
							| 
									
										
										
										
											2022-10-05 15:23:41 +02:00
										 |  |  |     virtual void notify_server_did_update_resource_count(i32 count_waiting) override; | 
					
						
							| 
									
										
										
										
											2022-11-09 12:39:16 -05:00
										 |  |  |     virtual void notify_server_did_request_restore_window() override; | 
					
						
							| 
									
										
										
										
											2022-12-06 22:00:08 +00:00
										 |  |  |     virtual Gfx::IntPoint notify_server_did_request_reposition_window(Gfx::IntPoint) override; | 
					
						
							| 
									
										
										
										
											2022-12-06 21:58:17 +00:00
										 |  |  |     virtual Gfx::IntSize notify_server_did_request_resize_window(Gfx::IntSize) override; | 
					
						
							| 
									
										
										
										
											2022-11-09 12:39:16 -05:00
										 |  |  |     virtual Gfx::IntRect notify_server_did_request_maximize_window() override; | 
					
						
							|  |  |  |     virtual Gfx::IntRect notify_server_did_request_minimize_window() override; | 
					
						
							| 
									
										
										
										
											2022-11-12 18:14:35 +01:00
										 |  |  |     virtual Gfx::IntRect notify_server_did_request_fullscreen_window() override; | 
					
						
							| 
									
										
										
										
											2022-12-04 18:43:54 +00:00
										 |  |  |     virtual void notify_server_did_request_file(Badge<WebContentClient>, DeprecatedString const& path, i32) override; | 
					
						
							| 
									
										
										
										
											2022-11-21 16:36:26 +00:00
										 |  |  |     virtual void notify_server_did_finish_handling_input_event(bool event_was_accepted) override; | 
					
						
							| 
									
										
										
										
											2022-10-05 15:23:41 +02:00
										 |  |  | 
 | 
					
						
							|  |  |  | signals: | 
					
						
							| 
									
										
										
										
											2023-03-20 19:52:00 -04:00
										 |  |  |     void activate_tab(); | 
					
						
							| 
									
										
										
										
											2023-03-07 06:13:08 +03:00
										 |  |  |     void close(); | 
					
						
							| 
									
										
										
										
											2022-10-05 15:23:41 +02:00
										 |  |  |     void link_hovered(QString, int timeout = 0); | 
					
						
							|  |  |  |     void link_unhovered(); | 
					
						
							| 
									
										
										
										
											2022-11-08 02:00:24 +01:00
										 |  |  |     void back_mouse_button(); | 
					
						
							|  |  |  |     void forward_mouse_button(); | 
					
						
							| 
									
										
										
										
											2022-11-24 01:52:16 +01:00
										 |  |  |     void load_started(const URL&, bool); | 
					
						
							| 
									
										
										
										
											2022-10-05 15:23:41 +02:00
										 |  |  |     void title_changed(QString); | 
					
						
							|  |  |  |     void favicon_changed(QIcon); | 
					
						
							|  |  |  |     void got_source(URL, QString); | 
					
						
							| 
									
										
										
										
											2022-11-14 11:24:06 -05:00
										 |  |  |     void navigate_back(); | 
					
						
							|  |  |  |     void navigate_forward(); | 
					
						
							|  |  |  |     void refresh(); | 
					
						
							|  |  |  |     void restore_window(); | 
					
						
							| 
									
										
										
										
											2023-01-07 17:40:04 +01:00
										 |  |  |     void urls_dropped(QList<QUrl> const&); | 
					
						
							| 
									
										
										
										
											2022-12-06 22:00:08 +00:00
										 |  |  |     Gfx::IntPoint reposition_window(Gfx::IntPoint); | 
					
						
							| 
									
										
										
										
											2022-12-06 21:58:17 +00:00
										 |  |  |     Gfx::IntSize resize_window(Gfx::IntSize); | 
					
						
							| 
									
										
										
										
											2022-11-14 11:24:06 -05:00
										 |  |  |     Gfx::IntRect maximize_window(); | 
					
						
							|  |  |  |     Gfx::IntRect minimize_window(); | 
					
						
							|  |  |  |     Gfx::IntRect fullscreen_window(); | 
					
						
							| 
									
										
										
										
											2022-10-05 15:23:41 +02:00
										 |  |  | 
 | 
					
						
							|  |  |  | private: | 
					
						
							| 
									
										
										
										
											2023-01-12 19:27:17 +00:00
										 |  |  |     // ^WebView::ViewImplementation
 | 
					
						
							|  |  |  |     virtual void create_client() override; | 
					
						
							| 
									
										
										
										
											2023-01-12 19:49:49 +00:00
										 |  |  |     virtual void update_zoom() override; | 
					
						
							| 
									
										
										
										
											2023-01-12 19:27:17 +00:00
										 |  |  | 
 | 
					
						
							| 
									
										
										
										
											2022-10-05 15:23:41 +02:00
										 |  |  |     void request_repaint(); | 
					
						
							|  |  |  |     void update_viewport_rect(); | 
					
						
							|  |  |  |     void handle_resize(); | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  |     void ensure_js_console_widget(); | 
					
						
							|  |  |  |     void ensure_inspector_widget(); | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2022-12-18 00:50:53 +00:00
										 |  |  |     bool is_inspector_open() const; | 
					
						
							| 
									
										
										
										
											2022-12-19 13:25:49 +00:00
										 |  |  |     void close_sub_widgets(); | 
					
						
							| 
									
										
										
										
											2022-12-18 00:50:53 +00:00
										 |  |  | 
 | 
					
						
							| 
									
										
										
										
											2023-03-15 22:56:47 +01:00
										 |  |  |     void update_palette(); | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2022-10-05 15:23:41 +02:00
										 |  |  |     qreal m_inverse_pixel_scaling_ratio { 1.0 }; | 
					
						
							|  |  |  |     bool m_should_show_line_box_borders { false }; | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2022-11-16 09:06:47 -05:00
										 |  |  |     QPointer<QDialog> m_dialog; | 
					
						
							| 
									
										
										
										
											2022-10-05 15:23:41 +02:00
										 |  |  | 
 | 
					
						
							| 
									
										
										
										
											2022-10-06 10:39:02 +02:00
										 |  |  |     Ladybird::ConsoleWidget* m_console_widget { nullptr }; | 
					
						
							| 
									
										
										
										
											2022-12-18 00:50:53 +00:00
										 |  |  |     Ladybird::InspectorWidget* m_inspector_widget { nullptr }; | 
					
						
							| 
									
										
										
										
											2022-10-05 15:23:41 +02:00
										 |  |  | 
 | 
					
						
							|  |  |  |     Gfx::IntRect m_viewport_rect; | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  |     void handle_web_content_process_crash(); | 
					
						
							| 
									
										
										
										
											2023-01-31 08:45:11 -05:00
										 |  |  |     QSocketNotifier m_web_content_notifier { QSocketNotifier::Type::Read }; | 
					
						
							| 
									
										
										
										
											2022-10-05 15:23:41 +02:00
										 |  |  | 
 | 
					
						
							|  |  |  |     RefPtr<Gfx::Bitmap> m_backup_bitmap; | 
					
						
							| 
									
										
										
										
											2022-11-14 11:08:44 -05:00
										 |  |  | 
 | 
					
						
							| 
									
										
										
										
											2022-12-15 09:18:52 -05:00
										 |  |  |     StringView m_webdriver_content_ipc_path; | 
					
						
							| 
									
										
										
										
											2022-10-05 15:23:41 +02:00
										 |  |  | }; |