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, 15 insertions, 9 deletions
diff --git a/qutebrowser/misc/pakjoy.py b/qutebrowser/misc/pakjoy.py
index 016fc2b8e..6c681eb65 100644
--- a/qutebrowser/misc/pakjoy.py
+++ b/qutebrowser/misc/pakjoy.py
@@ -143,7 +143,7 @@ class PakParser:
raise binparsing.ParseError("Couldn't find hangouts manifest")
-def copy_webengine_resources() -> pathlib.Path:
+def copy_webengine_resources() -> Optional[pathlib.Path]:
"""Copy qtwebengine resources to local dir for patching."""
resources_dir = qtutils.library_path(qtutils.LibraryPath.data)
if utils.is_mac:
@@ -156,15 +156,20 @@ def copy_webengine_resources() -> pathlib.Path:
resources_dir /= "resources"
work_dir = pathlib.Path(standarddir.cache()) / "webengine_resources_pak_quirk"
+ if work_dir.exists():
+ log.misc.debug(f"Removing existing {work_dir}")
+ shutil.rmtree(work_dir)
+
+ versions = version.qtwebengine_versions(avoid_init=True)
+ if versions.webengine != utils.VersionNumber(6, 6):
+ # No patching needed
+ return None
+
log.misc.debug(
"Copying webengine resources for quirk patching: "
f"{resources_dir} -> {work_dir}"
)
- if work_dir.exists():
- # TODO: make backup?
- shutil.rmtree(work_dir)
-
shutil.copytree(resources_dir, work_dir)
os.environ["QTWEBENGINE_RESOURCES_PATH"] = str(work_dir)
@@ -194,14 +199,15 @@ def _patch(file_to_patch: pathlib.Path) -> None:
def patch_webengine() -> None:
"""Apply any patches to webengine resource pak files."""
- versions = version.qtwebengine_versions(avoid_init=True)
- if versions.webengine != utils.VersionNumber(6, 6):
- return
-
try:
+ # Still calling this on Qt != 6.6 so that the directory is cleaned up
+ # when not needed anymore.
webengine_resources_path = copy_webengine_resources()
except OSError:
log.misc.exception("Failed to copy webengine resources, not applying quirk")
return
+ if webengine_resources_path is None:
+ return
+
_patch(webengine_resources_path / "qtwebengine_resources.pak")