Use the Qubes isolation provider from CLI/GUI

Autodetect in the CLI/GUI if we should run the conversion in disposable
qubes.
This commit is contained in:
deeplow 2023-06-20 19:52:01 +03:00 committed by Alex Pyrgiotis
parent baeab9d7eb
commit 5191556dcd
No known key found for this signature in database
GPG key ID: B6C15EBA0357C9AA
3 changed files with 14 additions and 2 deletions

View file

@ -6,9 +6,11 @@ import click
from colorama import Back, Fore, Style from colorama import Back, Fore, Style
from . import args, errors from . import args, errors
from .conversion.common import running_on_qubes
from .document import ARCHIVE_SUBDIR, SAFE_EXTENSION from .document import ARCHIVE_SUBDIR, SAFE_EXTENSION
from .isolation_provider.container import Container from .isolation_provider.container import Container
from .isolation_provider.dummy import Dummy from .isolation_provider.dummy import Dummy
from .isolation_provider.qubes import Qubes
from .logic import DangerzoneCore from .logic import DangerzoneCore
from .util import get_version from .util import get_version
@ -63,6 +65,8 @@ def cli_main(
if getattr(sys, "dangerzone_dev", False) and dummy_conversion: if getattr(sys, "dangerzone_dev", False) and dummy_conversion:
dangerzone = DangerzoneCore(Dummy()) dangerzone = DangerzoneCore(Dummy())
elif running_on_qubes():
dangerzone = DangerzoneCore(Qubes())
else: else:
dangerzone = DangerzoneCore(Container(enable_timeouts=enable_timeouts)) dangerzone = DangerzoneCore(Container(enable_timeouts=enable_timeouts))

View file

@ -21,9 +21,11 @@ else:
from PySide2 import QtCore, QtGui, QtWidgets from PySide2 import QtCore, QtGui, QtWidgets
from .. import args, errors from .. import args, errors
from ..conversion.common import running_on_qubes
from ..document import Document from ..document import Document
from ..isolation_provider.container import Container from ..isolation_provider.container import Container
from ..isolation_provider.dummy import Dummy from ..isolation_provider.dummy import Dummy
from ..isolation_provider.qubes import Qubes
from ..util import get_resource_path, get_version from ..util import get_resource_path, get_version
from .logic import DangerzoneGui from .logic import DangerzoneGui
from .main_window import MainWindow from .main_window import MainWindow
@ -100,6 +102,9 @@ def gui_main(
if getattr(sys, "dangerzone_dev", False) and dummy_conversion: if getattr(sys, "dangerzone_dev", False) and dummy_conversion:
dummy = Dummy() dummy = Dummy()
dangerzone = DangerzoneGui(app, isolation_provider=dummy) dangerzone = DangerzoneGui(app, isolation_provider=dummy)
elif running_on_qubes():
qubes = Qubes()
dangerzone = DangerzoneGui(app, isolation_provider=qubes)
else: else:
container = Container(enable_timeouts=enable_timeouts) container = Container(enable_timeouts=enable_timeouts)
dangerzone = DangerzoneGui(app, isolation_provider=container) dangerzone = DangerzoneGui(app, isolation_provider=container)

View file

@ -24,6 +24,7 @@ from .. import errors
from ..document import SAFE_EXTENSION, Document from ..document import SAFE_EXTENSION, Document
from ..isolation_provider.container import Container, NoContainerTechException from ..isolation_provider.container import Container, NoContainerTechException
from ..isolation_provider.dummy import Dummy from ..isolation_provider.dummy import Dummy
from ..isolation_provider.qubes import Qubes
from ..util import get_resource_path, get_subprocess_startupinfo, get_version from ..util import get_resource_path, get_subprocess_startupinfo, get_version
from .logic import Alert, DangerzoneGui from .logic import Alert, DangerzoneGui
@ -71,8 +72,10 @@ class MainWindow(QtWidgets.QMainWindow):
self.waiting_widget: WaitingWidget = WaitingWidgetContainer(self.dangerzone) self.waiting_widget: WaitingWidget = WaitingWidgetContainer(self.dangerzone)
self.waiting_widget.finished.connect(self.waiting_finished) self.waiting_widget.finished.connect(self.waiting_finished)
elif isinstance(self.dangerzone.isolation_provider, Dummy): elif isinstance(self.dangerzone.isolation_provider, Dummy) or isinstance(
# Don't wait with dummy converter self.dangerzone.isolation_provider, Qubes
):
# Don't wait with dummy converter and on Qubes.
self.waiting_widget = WaitingWidget() self.waiting_widget = WaitingWidget()
self.dangerzone.is_waiting_finished = True self.dangerzone.is_waiting_finished = True