mirror of
https://github.com/RGBCube/serenity
synced 2025-05-14 05:44:58 +00:00
LibWebView: Protect the Inspector against rapid inspection requests
This was seen in Browser when hotkey activations were processed twice. If we open the Inspector with a hotkey (F12) and quickly activate that hotkey again, we could try sending a JS command (inspector.loadDOMTree) before the inspector.js file was actually loaded in the WebContent. The window for this bug is larger on Serenity, where loading WebContent is a bit slower than on Linux. So even with the Browser bug fixed, it is pretty easy to hit this window still.
This commit is contained in:
parent
d392375a08
commit
552f63a283
2 changed files with 4 additions and 0 deletions
|
@ -118,6 +118,7 @@ InspectorClient::InspectorClient(ViewImplementation& content_web_view, ViewImple
|
|||
m_inspector_web_view.use_native_user_style_sheet();
|
||||
|
||||
m_inspector_web_view.on_inspector_loaded = [this]() {
|
||||
m_inspector_loaded = true;
|
||||
inspect();
|
||||
|
||||
m_content_web_view.js_console_request_messages(0);
|
||||
|
@ -191,6 +192,8 @@ InspectorClient::~InspectorClient()
|
|||
|
||||
void InspectorClient::inspect()
|
||||
{
|
||||
if (!m_inspector_loaded)
|
||||
return;
|
||||
if (m_dom_tree_loaded)
|
||||
return;
|
||||
|
||||
|
|
|
@ -70,6 +70,7 @@ private:
|
|||
Optional<i32> m_body_node_id;
|
||||
Optional<i32> m_pending_selection;
|
||||
|
||||
bool m_inspector_loaded { false };
|
||||
bool m_dom_tree_loaded { false };
|
||||
|
||||
struct ContextMenuData {
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue