From 5191556dcd4bdd3771da7b3c77cad42df9b31e9f Mon Sep 17 00:00:00 2001 From: deeplow Date: Tue, 20 Jun 2023 19:52:01 +0300 Subject: [PATCH] Use the Qubes isolation provider from CLI/GUI Autodetect in the CLI/GUI if we should run the conversion in disposable qubes. --- dangerzone/cli.py | 4 ++++ dangerzone/gui/__init__.py | 5 +++++ dangerzone/gui/main_window.py | 7 +++++-- 3 files changed, 14 insertions(+), 2 deletions(-) diff --git a/dangerzone/cli.py b/dangerzone/cli.py index 6092693..1d31c05 100644 --- a/dangerzone/cli.py +++ b/dangerzone/cli.py @@ -6,9 +6,11 @@ import click from colorama import Back, Fore, Style from . import args, errors +from .conversion.common import running_on_qubes from .document import ARCHIVE_SUBDIR, SAFE_EXTENSION from .isolation_provider.container import Container from .isolation_provider.dummy import Dummy +from .isolation_provider.qubes import Qubes from .logic import DangerzoneCore from .util import get_version @@ -63,6 +65,8 @@ def cli_main( if getattr(sys, "dangerzone_dev", False) and dummy_conversion: dangerzone = DangerzoneCore(Dummy()) + elif running_on_qubes(): + dangerzone = DangerzoneCore(Qubes()) else: dangerzone = DangerzoneCore(Container(enable_timeouts=enable_timeouts)) diff --git a/dangerzone/gui/__init__.py b/dangerzone/gui/__init__.py index a40a7e4..255f119 100644 --- a/dangerzone/gui/__init__.py +++ b/dangerzone/gui/__init__.py @@ -21,9 +21,11 @@ else: from PySide2 import QtCore, QtGui, QtWidgets from .. import args, errors +from ..conversion.common import running_on_qubes from ..document import Document from ..isolation_provider.container import Container from ..isolation_provider.dummy import Dummy +from ..isolation_provider.qubes import Qubes from ..util import get_resource_path, get_version from .logic import DangerzoneGui from .main_window import MainWindow @@ -100,6 +102,9 @@ def gui_main( if getattr(sys, "dangerzone_dev", False) and dummy_conversion: dummy = Dummy() dangerzone = DangerzoneGui(app, isolation_provider=dummy) + elif running_on_qubes(): + qubes = Qubes() + dangerzone = DangerzoneGui(app, isolation_provider=qubes) else: container = Container(enable_timeouts=enable_timeouts) dangerzone = DangerzoneGui(app, isolation_provider=container) diff --git a/dangerzone/gui/main_window.py b/dangerzone/gui/main_window.py index 101f32d..a4b1786 100644 --- a/dangerzone/gui/main_window.py +++ b/dangerzone/gui/main_window.py @@ -24,6 +24,7 @@ from .. import errors from ..document import SAFE_EXTENSION, Document from ..isolation_provider.container import Container, NoContainerTechException from ..isolation_provider.dummy import Dummy +from ..isolation_provider.qubes import Qubes from ..util import get_resource_path, get_subprocess_startupinfo, get_version from .logic import Alert, DangerzoneGui @@ -71,8 +72,10 @@ class MainWindow(QtWidgets.QMainWindow): self.waiting_widget: WaitingWidget = WaitingWidgetContainer(self.dangerzone) self.waiting_widget.finished.connect(self.waiting_finished) - elif isinstance(self.dangerzone.isolation_provider, Dummy): - # Don't wait with dummy converter + elif isinstance(self.dangerzone.isolation_provider, Dummy) or isinstance( + self.dangerzone.isolation_provider, Qubes + ): + # Don't wait with dummy converter and on Qubes. self.waiting_widget = WaitingWidget() self.dangerzone.is_waiting_finished = True