mirror of
				https://github.com/RGBCube/serenity
				synced 2025-10-31 15:12:45 +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
	
	 Timothy Flynn
						Timothy Flynn