Compare commits
No commits in common. "9edadc2c167de7105cf4021de3bac397c59665b8" and "38759b5389b8bc554de58bad0d3f4c3d5aaf5568" have entirely different histories.
9edadc2c16
...
38759b5389
3 changed files with 15 additions and 27 deletions
|
|
@ -7,6 +7,10 @@ import sys
|
||||||
# This ensures CSS media queries (hover: hover) evaluate correctly for desktop applications
|
# This ensures CSS media queries (hover: hover) evaluate correctly for desktop applications
|
||||||
os.environ["QTWEBENGINE_CHROMIUM_FLAGS"] = "--touch-events=disabled"
|
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 PySide6.QtWidgets import QApplication
|
||||||
|
|
||||||
from webdrop_bridge.config import Config, ConfigurationError
|
from webdrop_bridge.config import Config, ConfigurationError
|
||||||
|
|
|
||||||
|
|
@ -1,13 +1,9 @@
|
||||||
"""Developer Tools for WebDrop Bridge.
|
"""Developer Tools for WebDrop Bridge - using Chromium Remote Debugging Protocol."""
|
||||||
|
|
||||||
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.
|
|
||||||
"""
|
|
||||||
|
|
||||||
import logging
|
import logging
|
||||||
from typing import Any
|
from typing import Any
|
||||||
|
|
||||||
|
from PySide6.QtCore import QTimer, QUrl
|
||||||
from PySide6.QtWebEngineWidgets import QWebEngineView
|
from PySide6.QtWebEngineWidgets import QWebEngineView
|
||||||
from PySide6.QtWidgets import QVBoxLayout, QWidget
|
from PySide6.QtWidgets import QVBoxLayout, QWidget
|
||||||
|
|
||||||
|
|
@ -19,7 +15,8 @@ __all__ = ["DeveloperToolsWidget"]
|
||||||
class DeveloperToolsWidget(QWidget):
|
class DeveloperToolsWidget(QWidget):
|
||||||
"""Embedded Chromium Developer Tools Inspector.
|
"""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:
|
Features:
|
||||||
- Real HTML/CSS Inspector with live editing
|
- Real HTML/CSS Inspector with live editing
|
||||||
|
|
@ -48,7 +45,10 @@ class DeveloperToolsWidget(QWidget):
|
||||||
self.dev_tools_view = QWebEngineView()
|
self.dev_tools_view = QWebEngineView()
|
||||||
layout.addWidget(self.dev_tools_view)
|
layout.addWidget(self.dev_tools_view)
|
||||||
|
|
||||||
# Directly attach DevTools to the existing page.
|
# Load DevTools after delay to let debugger start
|
||||||
# This is more robust than relying on the remote debugging HTTP endpoint.
|
QTimer.singleShot(500, self._load_devtools)
|
||||||
self.dev_tools_view.page().setInspectedPage(self.web_view.page())
|
|
||||||
logger.info("Developer Tools attached via QWebEnginePage.setInspectedPage")
|
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"))
|
||||||
|
|
|
||||||
|
|
@ -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()
|
|
||||||
Loading…
Add table
Add a link
Reference in a new issue