class ActionDispatch::SSL

def initialize(app, redirect: {}, hsts: {}, secure_cookies: true, **options)

def initialize(app, redirect: {}, hsts: {}, secure_cookies: true, **options)
  @app = app
  if options[:host] || options[:port]
    ActiveSupport::Deprecation.warn <<-end_warning.strip_heredoc
      The `:host` and `:port` options are moving within `:redirect`:
      `config.ssl_options = { redirect: { host: …, port: … } }`.
    end_warning
    @redirect = options.slice(:host, :port)
  else
    @redirect = redirect
  end
  @exclude = @redirect && @redirect[:exclude] || proc { !@redirect }
  @secure_cookies = secure_cookies
  if hsts != true && hsts != false && hsts[:subdomains].nil?
    hsts[:subdomains] = false
    ActiveSupport::Deprecation.warn <<-end_warning.strip_heredoc
      In Rails 5.1, The `:subdomains` option of HSTS config will be treated as true if
      unspecified. Set `config.ssl_options = { hsts: { subdomains: false } }` to opt out
      of this behavior.
    end_warning
  end
  @hsts_header = build_hsts_header(normalize_hsts_options(hsts))
end