mirror of
https://github.com/jumpserver/jumpserver.git
synced 2025-09-06 18:00:57 +00:00
perf: 完善远程应用 chrome 启动方式
This commit is contained in:
@@ -1,3 +1,5 @@
|
||||
import os
|
||||
import tempfile
|
||||
import time
|
||||
from enum import Enum
|
||||
from subprocess import CREATE_NO_WINDOW
|
||||
@@ -184,10 +186,16 @@ class WebAPP(object):
|
||||
return True
|
||||
|
||||
|
||||
def load_extensions():
|
||||
extensions_root = os.path.join(os.path.dirname(os.path.abspath(__file__)), 'extensions')
|
||||
extension_names = os.listdir(extensions_root)
|
||||
extension_paths = [os.path.join(extensions_root, name) for name in extension_names]
|
||||
return extension_paths
|
||||
|
||||
|
||||
def default_chrome_driver_options():
|
||||
options = webdriver.ChromeOptions()
|
||||
options.add_argument("--start-maximized")
|
||||
options.add_argument("--new-window")
|
||||
|
||||
# 忽略证书错误相关
|
||||
options.add_argument('--ignore-ssl-errors')
|
||||
@@ -195,6 +203,10 @@ def default_chrome_driver_options():
|
||||
options.add_argument('--ignore-certificate-errors-spki-list')
|
||||
options.add_argument('--allow-running-insecure-content')
|
||||
|
||||
# 加载 extensions
|
||||
extension_paths = load_extensions()
|
||||
for extension_path in extension_paths:
|
||||
options.add_argument('--load-extension={}'.format(extension_path))
|
||||
# 禁用开发者工具
|
||||
options.add_argument("--disable-dev-tools")
|
||||
# 禁用 密码管理器弹窗
|
||||
@@ -214,8 +226,10 @@ class AppletApplication(BaseApplication):
|
||||
self.driver = None
|
||||
self.app = WebAPP(app_name=self.app_name, user=self.user,
|
||||
account=self.account, asset=self.asset, platform=self.platform)
|
||||
self._tmp_user_dir = tempfile.TemporaryDirectory()
|
||||
self._chrome_options = default_chrome_driver_options()
|
||||
self._chrome_options.add_argument("--app={}".format(self.asset.address))
|
||||
self._chrome_options.add_argument("--user-data-dir={}".format(self._tmp_user_dir.name))
|
||||
|
||||
def run(self):
|
||||
service = Service()
|
||||
@@ -253,3 +267,7 @@ class AppletApplication(BaseApplication):
|
||||
self.driver.quit()
|
||||
except Exception as e:
|
||||
print(e)
|
||||
try:
|
||||
self._tmp_user_dir.cleanup()
|
||||
except Exception as e:
|
||||
print(e)
|
||||
|
Reference in New Issue
Block a user