develop #1
| @@ -6,7 +6,7 @@ import sys | ||||
| # Lib imports | ||||
|  | ||||
| # Application imports | ||||
| from libs.db import DB | ||||
| # from libs.db import DB | ||||
| from libs.event_system import EventSystem | ||||
| from libs.endpoint_registry import EndpointRegistry | ||||
| from libs.keybindings import Keybindings | ||||
| @@ -41,7 +41,7 @@ builtins.keybindings       = Keybindings() | ||||
| builtins.event_system      = EventSystem() | ||||
| builtins.endpoint_registry = EndpointRegistry() | ||||
| builtins.settings_manager  = SettingsManager() | ||||
| builtins.db                = DB() | ||||
| # builtins.db                = DB() | ||||
|  | ||||
| settings_manager.load_settings() | ||||
|  | ||||
|   | ||||
| @@ -7,8 +7,8 @@ gi.require_version('Gtk', '3.0') | ||||
| from gi.repository import Gtk | ||||
|  | ||||
| # Application imports | ||||
| from ..mixins.signals_mixins import SignalsMixins | ||||
| from ..mixins.dummy_mixin import DummyMixin | ||||
| from libs.mixins.ipc_signals_mixin import IPCSignalsMixin | ||||
| from libs.mixins.keyboard_signals_mixin import KeyboardSignalsMixin | ||||
|  | ||||
| from ..containers.base_container import BaseContainer | ||||
|  | ||||
| @@ -17,7 +17,7 @@ from .bridge_controller import BridgeController | ||||
|  | ||||
|  | ||||
|  | ||||
| class BaseController(DummyMixin, SignalsMixins, BaseControllerData): | ||||
| class BaseController(IPCSignalsMixin, KeyboardSignalsMixin, BaseControllerData): | ||||
|     def __init__(self, args, unknownargs): | ||||
|         self.setup_controller_data() | ||||
|  | ||||
| @@ -26,8 +26,6 @@ class BaseController(DummyMixin, SignalsMixins, BaseControllerData): | ||||
|         self._subscribe_to_events() | ||||
|         self._load_controllers() | ||||
|  | ||||
|         self.print_hello_world() # A mixin method from the DummyMixin file | ||||
|  | ||||
|         if args.no_plugins == "false": | ||||
|             self.plugins.launch_plugins() | ||||
|  | ||||
|   | ||||
| @@ -1,3 +0,0 @@ | ||||
| """ | ||||
|     Generic Mixins Module | ||||
| """ | ||||
| @@ -1,13 +0,0 @@ | ||||
| # Python imports | ||||
|  | ||||
| # Lib imports | ||||
|  | ||||
| # Application imports | ||||
|  | ||||
|  | ||||
|  | ||||
| class DummyMixin: | ||||
|     """ DummyMixin is an example of how mixins are used and structured in a project. """ | ||||
|  | ||||
|     def print_hello_world(self) -> None: | ||||
|         logger.debug("Hello, World!") | ||||
| @@ -1,3 +0,0 @@ | ||||
| """ | ||||
|     Signals module | ||||
| """ | ||||
| @@ -1,13 +0,0 @@ | ||||
| # Python imports | ||||
|  | ||||
| # Lib imports | ||||
|  | ||||
| # Application imports | ||||
| from .signals.ipc_signals_mixin import IPCSignalsMixin | ||||
| from .signals.keyboard_signals_mixin import KeyboardSignalsMixin | ||||
|  | ||||
|  | ||||
|  | ||||
|  | ||||
| class SignalsMixins(KeyboardSignalsMixin, IPCSignalsMixin): | ||||
|     ... | ||||
| @@ -1,5 +1,3 @@ | ||||
|  | ||||
|  | ||||
| # Python imports | ||||
|  | ||||
| # Lib imports | ||||
| @@ -10,7 +8,7 @@ from gi.repository import Gdk | ||||
| from gi.repository import WebKit2 | ||||
|  | ||||
| # Application imports | ||||
|  | ||||
| from libs.settings_manager.other.webkit_ui_settings import WebkitUISettings | ||||
|  | ||||
|  | ||||
| class WebkitUI(WebKit2.WebView): | ||||
| @@ -45,11 +43,6 @@ class WebkitUI(WebKit2.WebView): | ||||
|  | ||||
|         self.load_html(content = data, base_uri = f"file://{path}/") | ||||
|  | ||||
|     # def _load_view(self): | ||||
|     #     path = settings_manager.get_context_path() | ||||
|     #     data = settings_manager.wrap_html_to_body("") | ||||
|     #     self.load_html(content = data, base_uri = f"file://{path}/") | ||||
|  | ||||
|     def _setup_content_manager(self): | ||||
|         content_manager = self.get_user_content_manager() | ||||
|         content_manager.connect("script-message-received", self._process_js_message) | ||||
| @@ -61,7 +54,7 @@ class WebkitUI(WebKit2.WebView): | ||||
|  | ||||
|         try: | ||||
|             event = Event( **json.loads(message) ) | ||||
|             # event_system.emit("handle_bridge_event", (event,)) | ||||
|             event_system.emit("handle_bridge_event", (event,)) | ||||
|         except Exception as e: | ||||
|             logger.info(e) | ||||
|  | ||||
| @@ -69,36 +62,3 @@ class WebkitUI(WebKit2.WebView): | ||||
|         command = f"displayMessage('{message}', '{mtype}', '3')" | ||||
|         self.run_javascript(command, None, None) | ||||
|  | ||||
|  | ||||
| class WebkitUISettings(WebKit2.Settings): | ||||
|     def __init__(self): | ||||
|         super(WebkitUISettings, self).__init__() | ||||
|          | ||||
|         self._set_default_settings() | ||||
|  | ||||
|  | ||||
|     # Note: Highly insecure setup but most "app" like setup I could think of. | ||||
|     #       Audit heavily any scripts/links ran/clicked under this setup!  | ||||
|     def _set_default_settings(self): | ||||
|         self.set_enable_xss_auditor(True) | ||||
|         self.set_enable_hyperlink_auditing(True) | ||||
|         # self.set_enable_xss_auditor(False) | ||||
|         # self.set_enable_hyperlink_auditing(False) | ||||
|         self.set_allow_file_access_from_file_urls(True) | ||||
|         self.set_allow_universal_access_from_file_urls(True) | ||||
|  | ||||
|         self.set_enable_page_cache(False) | ||||
|         self.set_enable_offline_web_application_cache(False) | ||||
|         self.set_enable_html5_local_storage(False) | ||||
|         self.set_enable_html5_database(False) | ||||
|  | ||||
|         self.set_enable_fullscreen(False) | ||||
|         self.set_print_backgrounds(False) | ||||
|         self.set_enable_tabs_to_links(False) | ||||
|         self.set_enable_developer_extras(True) | ||||
|         self.set_enable_webrtc(True) | ||||
|         self.set_enable_webaudio(True) | ||||
|         self.set_enable_accelerated_2d_canvas(True) | ||||
|  | ||||
|         self.set_user_agent(f"{app_name}") | ||||
|  | ||||
|   | ||||
							
								
								
									
										3
									
								
								src/libs/settings_manager/other/__init__.py
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										3
									
								
								src/libs/settings_manager/other/__init__.py
									
									
									
									
									
										Normal file
									
								
							| @@ -0,0 +1,3 @@ | ||||
| """ | ||||
|     Settings Other module | ||||
| """ | ||||
							
								
								
									
										42
									
								
								src/libs/settings_manager/other/webkit_ui_settings.py
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										42
									
								
								src/libs/settings_manager/other/webkit_ui_settings.py
									
									
									
									
									
										Normal file
									
								
							| @@ -0,0 +1,42 @@ | ||||
| # Python imports | ||||
|  | ||||
| # Lib imports | ||||
| import gi | ||||
| gi.require_version('WebKit2', '4.0') | ||||
| from gi.repository import WebKit2 | ||||
|  | ||||
| # Application imports | ||||
|  | ||||
|  | ||||
|  | ||||
| class WebkitUISettings(WebKit2.Settings): | ||||
|     def __init__(self): | ||||
|         super(WebkitUISettings, self).__init__() | ||||
|          | ||||
|         self._set_default_settings() | ||||
|  | ||||
|  | ||||
|     # Note: Highly insecure setup but most "app" like setup I could think of. | ||||
|     #       Audit heavily any scripts/links ran/clicked under this setup!  | ||||
|     def _set_default_settings(self): | ||||
|         self.set_enable_xss_auditor(True) | ||||
|         self.set_enable_hyperlink_auditing(True) | ||||
|         # self.set_enable_xss_auditor(False) | ||||
|         # self.set_enable_hyperlink_auditing(False) | ||||
|         self.set_allow_file_access_from_file_urls(True) | ||||
|         self.set_allow_universal_access_from_file_urls(True) | ||||
|  | ||||
|         self.set_enable_page_cache(False) | ||||
|         self.set_enable_offline_web_application_cache(False) | ||||
|         self.set_enable_html5_local_storage(False) | ||||
|         self.set_enable_html5_database(False) | ||||
|  | ||||
|         self.set_enable_fullscreen(False) | ||||
|         self.set_print_backgrounds(False) | ||||
|         self.set_enable_tabs_to_links(False) | ||||
|         self.set_enable_developer_extras(True) | ||||
|         self.set_enable_webrtc(True) | ||||
|         self.set_enable_webaudio(True) | ||||
|         self.set_enable_accelerated_2d_canvas(True) | ||||
|  | ||||
|         self.set_user_agent(f"{app_name}") | ||||
		Reference in New Issue
	
	Block a user