Disable the Content Security Policy of websites by default
This commit is contained in:
parent
8deb6a1f03
commit
a1e6686a29
|
@ -67,6 +67,11 @@ HIGHLIGHTS = 4
|
||||||
# Messenger notifications appear when reaching assert statements in Demo Mode.
|
# Messenger notifications appear when reaching assert statements in Demo Mode.
|
||||||
DEFAULT_MESSAGE_DURATION = 2.55
|
DEFAULT_MESSAGE_DURATION = 2.55
|
||||||
|
|
||||||
|
# If True, the Content Security Policy will be disabled on Chrome and Firefox.
|
||||||
|
# If False, each website's default Content Security Policy will be used.
|
||||||
|
# (A website's CSP may prevent SeleniumBase from loading custom JavaScript.)
|
||||||
|
DISABLE_CONTENT_SECURITY_POLICY = True
|
||||||
|
|
||||||
# If True, an Exception is raised immediately for invalid proxy string syntax.
|
# If True, an Exception is raised immediately for invalid proxy string syntax.
|
||||||
# If False, a Warning will appear after the test, with no proxy server used.
|
# If False, a Warning will appear after the test, with no proxy server used.
|
||||||
# (This applies when using --proxy=[PROXY_STRING] for using a proxy server.)
|
# (This applies when using --proxy=[PROXY_STRING] for using a proxy server.)
|
||||||
|
|
|
@ -16,7 +16,10 @@ from seleniumbase.core import capabilities_parser
|
||||||
from seleniumbase.fixtures import constants
|
from seleniumbase.fixtures import constants
|
||||||
from seleniumbase.fixtures import page_utils
|
from seleniumbase.fixtures import page_utils
|
||||||
from seleniumbase import drivers # webdriver storage folder for SeleniumBase
|
from seleniumbase import drivers # webdriver storage folder for SeleniumBase
|
||||||
|
from seleniumbase import extensions # browser extensions storage folder
|
||||||
DRIVER_DIR = os.path.dirname(os.path.realpath(drivers.__file__))
|
DRIVER_DIR = os.path.dirname(os.path.realpath(drivers.__file__))
|
||||||
|
EXTENSIONS_DIR = os.path.dirname(os.path.realpath(extensions.__file__))
|
||||||
|
DISABLE_CSP_ZIP_PATH = "%s/%s" % (EXTENSIONS_DIR, "disable_csp.zip")
|
||||||
PROXY_ZIP_PATH = proxy_helper.PROXY_ZIP_PATH
|
PROXY_ZIP_PATH = proxy_helper.PROXY_ZIP_PATH
|
||||||
PROXY_ZIP_PATH_2 = proxy_helper.PROXY_ZIP_PATH_2
|
PROXY_ZIP_PATH_2 = proxy_helper.PROXY_ZIP_PATH_2
|
||||||
PLATFORM = sys.platform
|
PLATFORM = sys.platform
|
||||||
|
@ -82,6 +85,14 @@ def _add_chrome_proxy_extension(
|
||||||
return chrome_options
|
return chrome_options
|
||||||
|
|
||||||
|
|
||||||
|
def _add_chrome_disable_csp_extension(chrome_options):
|
||||||
|
""" Disable Chrome's Content-Security-Policy with a browser extension.
|
||||||
|
See https://github.com/PhilGrayson/chrome-csp-disable for details. """
|
||||||
|
disable_csp_zip = DISABLE_CSP_ZIP_PATH
|
||||||
|
chrome_options.add_extension(disable_csp_zip)
|
||||||
|
return chrome_options
|
||||||
|
|
||||||
|
|
||||||
def _set_chrome_options(
|
def _set_chrome_options(
|
||||||
downloads_path, proxy_string, proxy_auth,
|
downloads_path, proxy_string, proxy_auth,
|
||||||
proxy_user, proxy_pass, user_agent):
|
proxy_user, proxy_pass, user_agent):
|
||||||
|
@ -108,6 +119,8 @@ def _set_chrome_options(
|
||||||
chrome_options.add_argument("--disable-single-click-autofill")
|
chrome_options.add_argument("--disable-single-click-autofill")
|
||||||
chrome_options.add_argument("--disable-translate")
|
chrome_options.add_argument("--disable-translate")
|
||||||
chrome_options.add_argument("--disable-web-security")
|
chrome_options.add_argument("--disable-web-security")
|
||||||
|
if settings.DISABLE_CONTENT_SECURITY_POLICY:
|
||||||
|
chrome_options = _add_chrome_disable_csp_extension(chrome_options)
|
||||||
if proxy_string:
|
if proxy_string:
|
||||||
if proxy_auth:
|
if proxy_auth:
|
||||||
chrome_options = _add_chrome_proxy_extension(
|
chrome_options = _add_chrome_proxy_extension(
|
||||||
|
@ -135,7 +148,8 @@ def _create_firefox_profile(downloads_path, proxy_string, user_agent):
|
||||||
profile.set_preference("general.useragent.override", user_agent)
|
profile.set_preference("general.useragent.override", user_agent)
|
||||||
profile.set_preference(
|
profile.set_preference(
|
||||||
"security.mixed_content.block_active_content", False)
|
"security.mixed_content.block_active_content", False)
|
||||||
profile.set_preference("security.csp.enable", False)
|
if settings.DISABLE_CONTENT_SECURITY_POLICY:
|
||||||
|
profile.set_preference("security.csp.enable", False)
|
||||||
profile.set_preference(
|
profile.set_preference(
|
||||||
"browser.download.manager.showAlertOnComplete", False)
|
"browser.download.manager.showAlertOnComplete", False)
|
||||||
profile.set_preference("browser.privatebrowsing.autostart", True)
|
profile.set_preference("browser.privatebrowsing.autostart", True)
|
||||||
|
|
Loading…
Reference in New Issue