From 123eb25fd12c5a5ec63e18082dcdda6318bc942e Mon Sep 17 00:00:00 2001 From: wycats Date: Tue, 27 Jul 2010 19:24:56 -0700 Subject: Add a header that tells Internet Explorer (all versions) to use the best available standards support. This ensures that IE doesn't go into quirks mode because it has been blacklisted by too many users pressing the incompatible button. It also tells IE to use the ChromeFrame renderer, if the user has installed the plugin. This guarantees that the best available standards support will be used on the client. --- actionpack/lib/action_dispatch.rb | 1 + actionpack/lib/action_dispatch/railtie.rb | 3 ++- railties/lib/rails/application.rb | 1 + railties/lib/rails/commands.rb | 2 +- railties/lib/rails/engine/configuration.rb | 2 +- railties/test/application/routing_test.rb | 1 + 6 files changed, 7 insertions(+), 3 deletions(-) diff --git a/actionpack/lib/action_dispatch.rb b/actionpack/lib/action_dispatch.rb index 50d8e91c47..aeec934be8 100644 --- a/actionpack/lib/action_dispatch.rb +++ b/actionpack/lib/action_dispatch.rb @@ -47,6 +47,7 @@ module ActionDispatch end autoload_under 'middleware' do + autoload :BestStandardsSupport autoload :Callbacks autoload :Cookies autoload :Flash diff --git a/actionpack/lib/action_dispatch/railtie.rb b/actionpack/lib/action_dispatch/railtie.rb index ed93211255..a3af37947a 100644 --- a/actionpack/lib/action_dispatch/railtie.rb +++ b/actionpack/lib/action_dispatch/railtie.rb @@ -7,10 +7,11 @@ module ActionDispatch config.action_dispatch.x_sendfile_header = "" config.action_dispatch.ip_spoofing_check = true config.action_dispatch.show_exceptions = true + config.action_dispatch.best_standards_support = true # Prepare dispatcher callbacks and run 'prepare' callbacks initializer "action_dispatch.prepare_dispatcher" do |app| ActionDispatch::Callbacks.to_prepare { app.routes_reloader.execute_if_updated } end end -end \ No newline at end of file +end diff --git a/railties/lib/rails/application.rb b/railties/lib/rails/application.rb index 3f9bca0bd6..6622cfdd2f 100644 --- a/railties/lib/rails/application.rb +++ b/railties/lib/rails/application.rb @@ -205,6 +205,7 @@ module Rails middleware.use ::ActionDispatch::ParamsParser middleware.use ::Rack::MethodOverride middleware.use ::ActionDispatch::Head + middleware.use ::ActionDispatch::BestStandardsSupport if config.action_dispatch.best_standards_support end end diff --git a/railties/lib/rails/commands.rb b/railties/lib/rails/commands.rb index b9353ba336..60a93c9848 100644 --- a/railties/lib/rails/commands.rb +++ b/railties/lib/rails/commands.rb @@ -70,4 +70,4 @@ In addition to those, there are: All commands can be run with -h for more information. EOT -end \ No newline at end of file +end diff --git a/railties/lib/rails/engine/configuration.rb b/railties/lib/rails/engine/configuration.rb index 2f465670cf..521ed95447 100644 --- a/railties/lib/rails/engine/configuration.rb +++ b/railties/lib/rails/engine/configuration.rb @@ -50,4 +50,4 @@ module Rails end end end -end \ No newline at end of file +end diff --git a/railties/test/application/routing_test.rb b/railties/test/application/routing_test.rb index f0268164d0..a10a39ef40 100644 --- a/railties/test/application/routing_test.rb +++ b/railties/test/application/routing_test.rb @@ -40,6 +40,7 @@ module ApplicationTests get '/foo' assert_equal 'foo', last_response.body + assert_equal "IE=Edge,chrome=1", last_response.headers["X-UA-Compatible"] end test "simple controller with helper" do -- cgit v1.2.3