Source code for fortrace.utility.applications.web_browsers.web_browser_factory

from time import sleep

from fortrace.core.qemu_monitor import QEMUMonitorSession
from fortrace.utility.applications.application import ParentNotifier
from fortrace.utility.applications.web_browsers.edge import Edge
from fortrace.utility.applications.web_browsers.firefox import Firefox
from fortrace.utility.applications.web_browsers.web_browser import GenericWebBrowser


[docs] def get_web_browser( name: str, qs: QEMUMonitorSession, parent_notifier: ParentNotifier ) -> GenericWebBrowser: """Factory to create a specific web browser application object. Args: name: name of the application (if not included ValueError is thrown) qs: handle to QEMUMonitor parent_notifier: attribute of desktop environment to handle changes in windows Returns: Application handle to opened web browser """ sleep(2) # give browsers some time to start match name: case "Firefox" | "Firefox ESR": return Firefox(qs, parent_notifier) case "Edge" | "Microsoft Edge": return Edge(qs, parent_notifier) case _: raise ValueError(f"Browser {name} not known")