Don't create QWebEngine profile at import time

Fixes #2378
This commit is contained in:
Florian Bruhin 2017-02-28 17:24:48 +01:00
parent 4f90fd952d
commit 67dfbc7e5f
2 changed files with 25 additions and 6 deletions

View File

@ -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
)

View File

@ -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()