Remove service workers based on QtWebEngine version
See https://bugreports.qt.io/browse/QTBUG-93744
This commit is contained in:
parent
7a0118119e
commit
b03b03bdf6
|
|
@ -39,7 +39,7 @@ import qutebrowser
|
|||
from qutebrowser.config import (configexc, config, configdata, configutils,
|
||||
configtypes)
|
||||
from qutebrowser.keyinput import keyutils
|
||||
from qutebrowser.utils import standarddir, utils, qtutils, log, urlmatch
|
||||
from qutebrowser.utils import standarddir, utils, qtutils, log, urlmatch, version
|
||||
|
||||
if TYPE_CHECKING:
|
||||
from qutebrowser.misc import savemanager
|
||||
|
|
@ -89,6 +89,7 @@ class StateConfig(configparser.ConfigParser):
|
|||
self.read(self._filename, encoding='utf-8')
|
||||
|
||||
self.qt_version_changed = False
|
||||
self.qtwe_version_changed = False
|
||||
self.qutebrowser_version_changed = VersionChange.unknown
|
||||
self._set_changed_attributes()
|
||||
|
||||
|
|
@ -123,6 +124,10 @@ class StateConfig(configparser.ConfigParser):
|
|||
old_qt_version = self['general'].get('qt_version', None)
|
||||
self.qt_version_changed = old_qt_version != qVersion()
|
||||
|
||||
old_qtwe_version = self['general'].get('qtwe_version', None)
|
||||
qtwe_version = str(version.qtwebengine_versions(avoid_init=True).webengine)
|
||||
self.qtwe_version_changed = old_qtwe_version != qtwe_version
|
||||
|
||||
old_qutebrowser_version = self['general'].get('version', None)
|
||||
if old_qutebrowser_version is None:
|
||||
# https://github.com/python/typeshed/issues/2093
|
||||
|
|
|
|||
|
|
@ -389,6 +389,7 @@ class _BackendProblemChecker:
|
|||
WORKAROUND for:
|
||||
https://bugreports.qt.io/browse/QTBUG-72532
|
||||
https://bugreports.qt.io/browse/QTBUG-82105
|
||||
https://bugreports.qt.io/browse/QTBUG-93744
|
||||
"""
|
||||
if ('serviceworker_workaround' not in configfiles.state['general'] and
|
||||
qtutils.version_check('5.14', compiled=False)):
|
||||
|
|
@ -398,6 +399,8 @@ class _BackendProblemChecker:
|
|||
reason = 'Qt 5.14'
|
||||
elif configfiles.state.qt_version_changed:
|
||||
reason = 'Qt version changed'
|
||||
elif configfiles.state.qtwe_version_changed:
|
||||
reason = 'QtWebEngine version changed'
|
||||
elif config.val.qt.workarounds.remove_service_workers:
|
||||
reason = 'Explicitly enabled'
|
||||
else:
|
||||
|
|
|
|||
|
|
@ -29,7 +29,7 @@ from PyQt5.QtCore import QSettings
|
|||
|
||||
from qutebrowser.config import (config, configfiles, configexc, configdata,
|
||||
configtypes)
|
||||
from qutebrowser.utils import utils, usertypes, urlmatch, standarddir
|
||||
from qutebrowser.utils import utils, usertypes, urlmatch, standarddir, version
|
||||
from qutebrowser.keyinput import keyutils
|
||||
|
||||
|
||||
|
|
@ -176,6 +176,32 @@ def test_qt_version_changed(state_writer, monkeypatch,
|
|||
assert state.qt_version_changed == changed
|
||||
|
||||
|
||||
@pytest.mark.parametrize('old_version, new_version, changed', [
|
||||
(None, '5.15.1', False),
|
||||
('5.15.1', '5.15.1', False),
|
||||
('5.15.1', '5.15.2', True),
|
||||
('5.14.0', '5.15.2', True),
|
||||
])
|
||||
def test_qtwe_version_changed(state_writer, monkeypatch,
|
||||
old_version, new_version, changed):
|
||||
monkeypatch.setattr(
|
||||
configfiles.version,
|
||||
'qtwebengine_versions',
|
||||
lambda avoid_init=False:
|
||||
version.WebEngineVersions(
|
||||
webengine=utils.VersionNumber.parse(new_version),
|
||||
chromium=None,
|
||||
source='test',
|
||||
)
|
||||
)
|
||||
|
||||
if old_version is not None:
|
||||
state_writer('qtwe_version', old_version)
|
||||
|
||||
state = configfiles.StateConfig()
|
||||
assert state.qtwe_version_changed == changed
|
||||
|
||||
|
||||
@pytest.mark.parametrize('old_version, new_version, expected', [
|
||||
(None, '2.0.0', configfiles.VersionChange.unknown),
|
||||
('1.14.1', '1.14.1', configfiles.VersionChange.equal),
|
||||
|
|
|
|||
Loading…
Reference in New Issue