class SecureHeaders::ClearSiteData

Constants

ALL_TYPES
CACHE

Valid `types`

COOKIES
EXECUTION_CONTEXTS
HEADER_NAME
STORAGE

Public Class Methods

make_header(config = nil, user_agent = nil) click to toggle source

Public: make an Clear-Site-Data header name, value pair

Returns nil if not configured, returns header name and value if configured.

# File lib/secure_headers/headers/clear_site_data.rb, line 18
def make_header(config = nil, user_agent = nil)
  case config
  when nil, OPT_OUT, []
    # noop
  when Array
    [HEADER_NAME, make_header_value(config)]
  when true
    [HEADER_NAME, make_header_value(ALL_TYPES)]
  end
end
make_header_value(types) click to toggle source

Public: Transform a Clear-Site-Data config (an Array of Strings) into a String that can be used as the value for the Clear-Site-Data header.

types - An Array of String of types of data to clear.

Returns a String of quoted values that are comma separated.

# File lib/secure_headers/headers/clear_site_data.rb, line 48
def make_header_value(types)
  types.map { |t| %("#{t}") }.join(", ")
end
validate_config!(config) click to toggle source
# File lib/secure_headers/headers/clear_site_data.rb, line 29
def validate_config!(config)
  case config
  when nil, OPT_OUT, true
    # valid
  when Array
    unless config.all? { |t| t.is_a?(String) }
      raise ClearSiteDataConfigError.new("types must be Strings")
    end
  else
    raise ClearSiteDataConfigError.new("config must be an Array of Strings or `true`")
  end
end