diff --git a/CHANGELOG.asciidoc b/CHANGELOG.asciidoc index 5c0e5d6d4..3831c9e42 100644 --- a/CHANGELOG.asciidoc +++ b/CHANGELOG.asciidoc @@ -28,6 +28,12 @@ Changed - When using QtWebEngine, the underlying Chromium version is now shown in the version info. +Fixed +~~~~~ + +- Added a workaround for a black screen with QtWebEngine with some setups + (requires PyOpenGL to be installed) + v0.10.1 ------- diff --git a/qutebrowser/browser/webengine/webenginesettings.py b/qutebrowser/browser/webengine/webenginesettings.py index 7c7c74aff..830879eed 100644 --- a/qutebrowser/browser/webengine/webenginesettings.py +++ b/qutebrowser/browser/webengine/webenginesettings.py @@ -25,6 +25,7 @@ Module attributes: """ import os +import logging # pylint: disable=no-name-in-module,import-error,useless-suppression from PyQt5.QtWebEngineWidgets import (QWebEngineSettings, QWebEngineProfile, @@ -33,7 +34,7 @@ from PyQt5.QtWebEngineWidgets import (QWebEngineSettings, QWebEngineProfile, from qutebrowser.browser import shared from qutebrowser.config import config, websettings -from qutebrowser.utils import objreg, utils, standarddir, javascript +from qutebrowser.utils import objreg, utils, standarddir, javascript, log class Attribute(websettings.Attribute): @@ -159,6 +160,18 @@ def init(args): if args.enable_webengine_inspector: os.environ['QTWEBENGINE_REMOTE_DEBUGGING'] = str(utils.random_port()) + # Workaround for a black screen with some setups + # https://github.com/spyder-ide/spyder/issues/3226 + if not os.environ.get('QUTE_NO_OPENGL_WORKAROUND'): + # Hide "No OpenGL_accelerate module loaded: ..." message + logging.getLogger('OpenGL.acceleratesupport').propagate = False + try: + from OpenGL import GL + except ImportError: + pass + else: + log.misc.debug("Imported PyOpenGL as workaround") + profile = QWebEngineProfile.defaultProfile() _init_profile(profile) _init_stylesheet(profile)