summaryrefslogtreecommitdiff
path: root/qutebrowser/misc/pakjoy.py
diff options
context:
space:
mode:
Diffstat (limited to 'qutebrowser/misc/pakjoy.py')
-rw-r--r--qutebrowser/misc/pakjoy.py24
1 files changed, 19 insertions, 5 deletions
diff --git a/qutebrowser/misc/pakjoy.py b/qutebrowser/misc/pakjoy.py
index a511034a2..2bcde7ce9 100644
--- a/qutebrowser/misc/pakjoy.py
+++ b/qutebrowser/misc/pakjoy.py
@@ -32,11 +32,15 @@ import dataclasses
import contextlib
from typing import ClassVar, IO, Optional, Dict, Tuple, Iterator
+from qutebrowser.config import config
from qutebrowser.misc import binparsing, objects
from qutebrowser.utils import qtutils, standarddir, version, utils, log
HANGOUTS_MARKER = b"// Extension ID: nkeimhogjdpnpccoofpliimaahmaaome"
-HANGOUTS_ID = 36197 # as found by toofar
+HANGOUTS_IDS = [
+ 36197, # QtWebEngine 6.5, as found by toofar
+ 34897, # QtWebEngine 6.4
+]
PAK_VERSION = 5
RESOURCES_ENV_VAR = "QTWEBENGINE_RESOURCES_PATH"
DISABLE_ENV_VAR = "QUTE_DISABLE_PAKJOY"
@@ -136,9 +140,10 @@ class PakParser:
def _find_manifest(self, entries: Dict[int, PakEntry]) -> Tuple[PakEntry, bytes]:
to_check = list(entries.values())
- if HANGOUTS_ID in entries:
- # Most likely candidate, based on previous known ID
- to_check.insert(0, entries[HANGOUTS_ID])
+ for hangouts_id in HANGOUTS_IDS:
+ if hangouts_id in entries:
+ # Most likely candidate, based on previous known ID
+ to_check.insert(0, entries[hangouts_id])
for entry in to_check:
manifest = self._maybe_get_hangouts_manifest(entry)
@@ -192,7 +197,16 @@ def copy_webengine_resources() -> Optional[pathlib.Path]:
shutil.rmtree(work_dir)
versions = version.qtwebengine_versions(avoid_init=True)
- if versions.webengine != utils.VersionNumber(6, 6):
+ if not (
+ # https://bugreports.qt.io/browse/QTBUG-118157
+ versions.webengine == utils.VersionNumber(6, 6)
+ # https://bugreports.qt.io/browse/QTBUG-113369
+ or (
+ versions.webengine >= utils.VersionNumber(6, 5)
+ and versions.webengine < utils.VersionNumber(6, 5, 3)
+ and config.val.colors.webpage.darkmode.enabled
+ )
+ ):
# No patching needed
return None