class Rack::FlocBlock

Constants

PERMISSIONS_POLICY
VERSION

Public Class Methods

new(app) click to toggle source
# File lib/rack/floc_block.rb, line 8
def initialize(app)
  @app = app
end

Public Instance Methods

call(env) click to toggle source
# File lib/rack/floc_block.rb, line 12
def call(env)
  status, headers, body = @app.call(env)
  headers = Rack::Utils::HeaderHash[headers]

  permissions_policy = headers[PERMISSIONS_POLICY] || ""

  if !permissions_policy.match?(/interest\-cohort/)
    policies = permissions_policy.split(",").map(&:strip)
    policies << "interest-cohort=()"
    headers[PERMISSIONS_POLICY] = policies.join(", ")
  end

  [status, headers, body]
end