module Playwright::Utils::PrepareBrowserContextOptions

def prepare_browser_context_options(params)

Other tags:
    See: https://github.com/microsoft/playwright/blob/5a2cfdbd47ed3c3deff77bb73e5fac34241f649d/src/client/browserContext.ts#L265 -
def prepare_browser_context_options(params)
ams[:noViewport] == 0
ms.delete(:noViewport)
ms[:noDefaultViewport] = true
ams[:extraHTTPHeaders]
ms[:extraHTTPHeaders] = ::Playwright::HttpHeaders.new(params[:extraHTTPHeaders]).as_serialized
ams[:record_har_path]
ms[:recordHar] = prepare_record_har_options(params)
ams[:record_video_dir]
ms[:recordVideo] = {
r: params.delete(:record_video_dir)
arams[:record_video_size]
rams[:recordVideo][:size] = params.delete(:record_video_size)
ams[:storageState].is_a?(String)
ms[:storageState] = JSON.parse(File.read(params[:storageState]))
orScheme reducedMotion forcedColors].each do |key|
arams[key] == 'null'
rams[key] = 'no-override'
ams[:acceptDownloads] || params[:acceptDownloads] == false
ms[:acceptDownloads] = params[:acceptDownloads] ? 'accept' : 'deny'

def prepare_record_har_options(params)

def prepare_record_har_options(params)
rams = {
: params.delete(:record_har_path)
ams[:record_har_url_filter]
= params.delete(:record_har_url_filter)
pt.is_a?(Regexp)
gex = ::Playwright::JavaScript::Regex.new(opt)
t_params[:urlRegexSource] = regex.source
t_params[:urlRegexFlags] = regex.flag
f opt.is_a?(String)
t_params[:urlGlob] = opt
ams[:record_har_mode]
params[:mode] = params.delete(:record_har_mode)
ams[:record_har_content]
params[:content] = params.delete(:record_har_content)
ams[:record_har_omit_content]
api_omit_content = params.delete(:record_har_omit_content)
ld_api_omit_content
t_params[:content] ||= 'omit'
rams