mirror of https://github.com/jumpserver/jumpserver
perf: 完善远程应用 chrome 启动方式
parent
b0b174bb2a
commit
ac3415d95c
|
@ -1,3 +1,5 @@
|
||||||
|
import os
|
||||||
|
import tempfile
|
||||||
import time
|
import time
|
||||||
from enum import Enum
|
from enum import Enum
|
||||||
from subprocess import CREATE_NO_WINDOW
|
from subprocess import CREATE_NO_WINDOW
|
||||||
|
@ -184,10 +186,16 @@ class WebAPP(object):
|
||||||
return True
|
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():
|
def default_chrome_driver_options():
|
||||||
options = webdriver.ChromeOptions()
|
options = webdriver.ChromeOptions()
|
||||||
options.add_argument("--start-maximized")
|
options.add_argument("--start-maximized")
|
||||||
options.add_argument("--new-window")
|
|
||||||
|
|
||||||
# 忽略证书错误相关
|
# 忽略证书错误相关
|
||||||
options.add_argument('--ignore-ssl-errors')
|
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('--ignore-certificate-errors-spki-list')
|
||||||
options.add_argument('--allow-running-insecure-content')
|
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")
|
options.add_argument("--disable-dev-tools")
|
||||||
# 禁用 密码管理器弹窗
|
# 禁用 密码管理器弹窗
|
||||||
|
@ -214,8 +226,10 @@ class AppletApplication(BaseApplication):
|
||||||
self.driver = None
|
self.driver = None
|
||||||
self.app = WebAPP(app_name=self.app_name, user=self.user,
|
self.app = WebAPP(app_name=self.app_name, user=self.user,
|
||||||
account=self.account, asset=self.asset, platform=self.platform)
|
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 = default_chrome_driver_options()
|
||||||
self._chrome_options.add_argument("--app={}".format(self.asset.address))
|
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):
|
def run(self):
|
||||||
service = Service()
|
service = Service()
|
||||||
|
@ -253,3 +267,7 @@ class AppletApplication(BaseApplication):
|
||||||
self.driver.quit()
|
self.driver.quit()
|
||||||
except Exception as e:
|
except Exception as e:
|
||||||
print(e)
|
print(e)
|
||||||
|
try:
|
||||||
|
self._tmp_user_dir.cleanup()
|
||||||
|
except Exception as e:
|
||||||
|
print(e)
|
||||||
|
|
|
@ -1,6 +1,6 @@
|
||||||
name: chrome
|
name: chrome
|
||||||
display_name: "{{ 'Chrome Browser' | trans }}"
|
display_name: "{{ 'Chrome Browser' | trans }}"
|
||||||
version: 0.2
|
version: 0.3
|
||||||
comment: "{{ 'Chrome Browser Open URL Page Address' | trans }}"
|
comment: "{{ 'Chrome Browser Open URL Page Address' | trans }}"
|
||||||
author: JumpServer Team
|
author: JumpServer Team
|
||||||
exec_type: python
|
exec_type: python
|
||||||
|
|
Loading…
Reference in New Issue