# Copyright (c) 2010, Diaspora Inc. This file is # licensed under the Affero General Public License version 3 or later. See # the COPYRIGHT file. module Rack class ChromeFrame def initialize(app, options={}) @app = app @options = options end def call(env) if env['HTTP_USER_AGENT'] =~ /MSIE/ if env['HTTP_USER_AGENT'] =~ /chromeframe/ status, headers, response = @app.call(env) new_body = insert_tag(build_response_body(response)) new_headers = recalculate_body_length(headers, new_body) return [status, new_headers, new_body] elsif @options[:minimum].nil? or ie_version(env['HTTP_USER_AGENT']) < @options[:minimum] html = <<-HTML