module Playwright::Utils::PrepareBrowserContextOptions
def prepare_browser_context_options(params)
- 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_video_dir] ms[:recordVideo] = { r: params.delete(:record_video_dir) arams[:record_video_size] rams[:recordVideo][:size] = params.delete(:record_video_size) arams[:record_video_show_actions] rams[:recordVideo][:showActions] = params.delete(:record_video_show_actions) ams[:storageState].is_a?(String) ms[:storageState] = JSON.parse(File.read(params[:storageState])) orScheme reducedMotion forcedColors contrast].each do |key| arams[key] == 'null' rams[key] = 'no-override' ams[:acceptDownloads] || params[:acceptDownloads] == false ms[:acceptDownloads] = params[:acceptDownloads] ? 'accept' : 'deny' ams[:clientCertificates].is_a?(Array) ms[:clientCertificates] = params[:clientCertificates].filter_map do |item| t_record = { origin: item[:origin], passphrase: item[:passphrase], pfxPath: 'pfx', certPath: 'cert', keyPath: 'key' }.each do |key, out_key| if (filepath = item[key]) out_record[out_key] = Base64.encode64(File.read(filepath)) rescue '' elsif (value = item[out_key.to_sym]) out_record[out_key] = value end d t_record.compact! xt nil if out_record.empty? t_record