Skip to content

Commit 2f836b8

Browse files
committed
Fix disable_csp=True in CDP Mode
1 parent d7c4af5 commit 2f836b8

File tree

2 files changed

+17
-0
lines changed

2 files changed

+17
-0
lines changed

seleniumbase/undetected/cdp_driver/browser.py

Lines changed: 9 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -321,6 +321,7 @@ async def get(
321321
_cdp_user_agent = ""
322322
_cdp_locale = None
323323
_cdp_platform = None
324+
_cdp_disable_csp = None
324325
_cdp_geolocation = None
325326
_cdp_recorder = None
326327
_cdp_ad_block = None
@@ -365,13 +366,19 @@ async def get(
365366
_cdp_platform = kwargs["platform"]
366367
elif "plat" in kwargs:
367368
_cdp_platform = kwargs["plat"]
369+
if "disable_csp" in kwargs:
370+
_cdp_disable_csp = kwargs["disable_csp"]
371+
elif hasattr(sb_config, "disable_csp"):
372+
_cdp_disable_csp = sb_config.disable_csp
368373
if "geolocation" in kwargs:
369374
_cdp_geolocation = kwargs["geolocation"]
370375
elif "geoloc" in kwargs:
371376
_cdp_geolocation = kwargs["geoloc"]
372377
if "recorder" in kwargs:
373378
_cdp_recorder = kwargs["recorder"]
379+
await connection.sleep(0.01)
374380
await connection.send(cdp.network.enable())
381+
await connection.sleep(0.01)
375382
if _cdp_timezone:
376383
await connection.set_timezone(_cdp_timezone)
377384
if _cdp_locale:
@@ -420,6 +427,8 @@ async def get(
420427
))
421428
if _cdp_geolocation:
422429
await connection.set_geolocation(_cdp_geolocation)
430+
if _cdp_disable_csp:
431+
await connection.send(cdp.page.set_bypass_csp(enabled=True))
423432
# (The code below is for the Chrome 142 extension fix)
424433
if (
425434
hasattr(sb_config, "_cdp_proxy")

seleniumbase/undetected/cdp_driver/cdp_util.py

Lines changed: 8 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -281,6 +281,7 @@ async def start(
281281
proxy: Optional[str] = None, # "host:port" or "user:pass@host:port"
282282
tzone: Optional[str] = None, # Eg "America/New_York", "Asia/Kolkata"
283283
geoloc: Optional[list | tuple] = None, # Eg (48.87645, 2.26340)
284+
disable_csp: Optional[str] = None, # Disable content security policy
284285
extension_dir: Optional[str] = None, # Chrome extension directory
285286
**kwargs: Optional[dict],
286287
) -> Browser:
@@ -357,6 +358,11 @@ async def start(
357358
ad_block = True
358359
else:
359360
ad_block = False
361+
if disable_csp is None:
362+
if "--disable-csp" in sys_argv or "--disable_csp" in sys_argv:
363+
disable_csp = True
364+
else:
365+
disable_csp = False
360366
if xvfb_metrics is None and "--xvfb-metrics" in arg_join:
361367
x_m = xvfb_metrics
362368
count = 0
@@ -556,6 +562,8 @@ async def start(
556562
ad_block_dir = os.path.join(DOWNLOADS_FOLDER, "ad_block")
557563
__unzip_to_new_folder(ad_block_zip, ad_block_dir)
558564
extension_dir = __add_chrome_ext_dir(extension_dir, ad_block_dir)
565+
if disable_csp:
566+
sb_config.disable_csp = True
559567
if "binary_location" in kwargs and not browser_executable_path:
560568
browser_executable_path = kwargs["binary_location"]
561569
if not browser_executable_path:

0 commit comments

Comments
 (0)