From 67dfbc7e5f829d370284f84fba030b1a810bb239 Mon Sep 17 00:00:00 2001 From: Florian Bruhin Date: Tue, 28 Feb 2017 17:24:48 +0100 Subject: [PATCH] Don't create QWebEngine profile at import time Fixes #2378 --- .../browser/webengine/webenginesettings.py | 14 ++++++++------ tests/end2end/test_invocations.py | 17 +++++++++++++++++ 2 files changed, 25 insertions(+), 6 deletions(-) diff --git a/qutebrowser/browser/webengine/webenginesettings.py b/qutebrowser/browser/webengine/webenginesettings.py index a87bc4802..7c7c74aff 100644 --- a/qutebrowser/browser/webengine/webenginesettings.py +++ b/qutebrowser/browser/webengine/webenginesettings.py @@ -71,17 +71,18 @@ class ProfileSetter(websettings.Base): def __init__(self, getter, setter): super().__init__() - profile = QWebEngineProfile.defaultProfile() - self._getter = getattr(profile, getter) - self._setter = getattr(profile, setter) + self._getter = getter + self._setter = setter def get(self, settings=None): utils.unused(settings) - return self._getter() + getter = getattr(QWebEngineProfile.defaultProfile(), self._getter) + return getter() def _set(self, value, settings=None): utils.unused(settings) - self._setter(value) + setter = getattr(QWebEngineProfile.defaultProfile(), self._setter) + setter(value) class PersistentCookiePolicy(ProfileSetter): @@ -98,7 +99,8 @@ class PersistentCookiePolicy(ProfileSetter): def _set(self, value, settings=None): utils.unused(settings) - self._setter( + setter = getattr(QWebEngineProfile.defaultProfile(), self._setter) + setter( QWebEngineProfile.AllowPersistentCookies if value else QWebEngineProfile.NoPersistentCookies ) diff --git a/tests/end2end/test_invocations.py b/tests/end2end/test_invocations.py index 035bc4b52..4b18b57e2 100644 --- a/tests/end2end/test_invocations.py +++ b/tests/end2end/test_invocations.py @@ -19,6 +19,7 @@ """Test starting qutebrowser with special arguments/environments.""" +import socket import sys import logging import re @@ -202,3 +203,19 @@ def test_qt_arg(request, quteproc_new, tmpdir): quteproc_new.send_cmd(':quit') quteproc_new.wait_for_quit() + + +def test_webengine_inspector(request, quteproc_new): + if not request.config.webengine: + pytest.skip() + args = (['--temp-basedir', '--enable-webengine-inspector'] + + _base_args(request.config)) + quteproc_new.start(args) + line = quteproc_new.wait_for( + message='Remote debugging server started successfully. Try pointing a ' + 'Chromium-based browser to http://127.0.0.1:*') + port = int(line.message.split(':')[-1]) + + s = socket.socket(socket.AF_INET, socket.SOCK_STREAM) + s.connect(('127.0.0.1', port)) + s.close()