Compare commits

..

No commits in common. "9edadc2c167de7105cf4021de3bac397c59665b8" and "38759b5389b8bc554de58bad0d3f4c3d5aaf5568" have entirely different histories.

3 changed files with 15 additions and 27 deletions

View file

@ -7,6 +7,10 @@ import sys
# This ensures CSS media queries (hover: hover) evaluate correctly for desktop applications
os.environ["QTWEBENGINE_CHROMIUM_FLAGS"] = "--touch-events=disabled"
# Enable Qt WebEngine Remote Debugging Protocol (Chromium Developer Tools)
# Allows debugging via browser DevTools at http://localhost:9222 or edge://inspect
os.environ["QTWEBENGINE_REMOTE_DEBUGGING"] = "9222"
from PySide6.QtWidgets import QApplication
from webdrop_bridge.config import Config, ConfigurationError

View file

@ -1,13 +1,9 @@
"""Developer Tools for WebDrop Bridge.
Uses Qt WebEngine's built-in inspector wiring instead of the remote debugging
HTTP endpoint. This avoids localhost/port timing issues that can differ between
development runs and frozen MSI installations.
"""
"""Developer Tools for WebDrop Bridge - using Chromium Remote Debugging Protocol."""
import logging
from typing import Any
from PySide6.QtCore import QTimer, QUrl
from PySide6.QtWebEngineWidgets import QWebEngineView
from PySide6.QtWidgets import QVBoxLayout, QWidget
@ -19,7 +15,8 @@ __all__ = ["DeveloperToolsWidget"]
class DeveloperToolsWidget(QWidget):
"""Embedded Chromium Developer Tools Inspector.
Attaches a dedicated DevTools page directly to the inspected web page.
Loads the Chromium DevTools UI using the Remote Debugging Protocol
running on localhost:9222.
Features:
- Real HTML/CSS Inspector with live editing
@ -48,7 +45,10 @@ class DeveloperToolsWidget(QWidget):
self.dev_tools_view = QWebEngineView()
layout.addWidget(self.dev_tools_view)
# Directly attach DevTools to the existing page.
# This is more robust than relying on the remote debugging HTTP endpoint.
self.dev_tools_view.page().setInspectedPage(self.web_view.page())
logger.info("Developer Tools attached via QWebEnginePage.setInspectedPage")
# Load DevTools after delay to let debugger start
QTimer.singleShot(500, self._load_devtools)
def _load_devtools(self) -> None:
"""Load the DevTools targets page from localhost:9222."""
logger.info("Loading DevTools from http://localhost:9222")
self.dev_tools_view.load(QUrl("http://localhost:9222"))

View file

@ -1,16 +0,0 @@
"""Unit tests for DeveloperToolsWidget."""
from PySide6.QtWebEngineWidgets import QWebEngineView
from webdrop_bridge.ui.developer_tools import DeveloperToolsWidget
def test_developer_tools_widget_attaches_inspected_page(qtbot):
"""DeveloperToolsWidget should inspect the provided web view page directly."""
web_view = QWebEngineView()
qtbot.addWidget(web_view)
dev_tools = DeveloperToolsWidget(web_view)
qtbot.addWidget(dev_tools)
assert dev_tools.dev_tools_view.page().inspectedPage() is web_view.page()