class Ferrum::Headers

Public Class Methods

new(page) click to toggle source
# File lib/ferrum/headers.rb, line 5
def initialize(page)
  @page = page
  @headers = {}
end

Public Instance Methods

add(headers, permanent: true) click to toggle source
# File lib/ferrum/headers.rb, line 24
def add(headers, permanent: true)
  if headers["Referer"]
    @page.referrer = headers["Referer"]
    headers.delete("Referer") unless permanent
  end

  @headers.merge!(headers)
  user_agent = @headers["User-Agent"]
  accept_language = @headers["Accept-Language"]

  set_overrides(user_agent: user_agent, accept_language: accept_language)
  @page.command("Network.setExtraHTTPHeaders", headers: @headers)
  true
end
clear() click to toggle source
# File lib/ferrum/headers.rb, line 19
def clear
  @headers = {}
  true
end
get() click to toggle source
# File lib/ferrum/headers.rb, line 10
def get
  @headers
end
set(headers) click to toggle source
# File lib/ferrum/headers.rb, line 14
def set(headers)
  clear
  add(headers)
end

Private Instance Methods

set_overrides(user_agent: nil, accept_language: nil, platform: nil) click to toggle source
# File lib/ferrum/headers.rb, line 41
def set_overrides(user_agent: nil, accept_language: nil, platform: nil)
  options = Hash.new
  options[:userAgent] = user_agent || @page.browser.default_user_agent
  options[:acceptLanguage] = accept_language if accept_language
  options[:platform] if platform

  @page.command("Network.setUserAgentOverride", **options) if !options.empty?
end