aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorwycats <wycats@gmail.com>2010-07-27 19:24:56 -0700
committerwycats <wycats@gmail.com>2010-07-27 19:25:07 -0700
commit123eb25fd12c5a5ec63e18082dcdda6318bc942e (patch)
tree122b95f6144520861bfd6b2142f5b239628f0f95
parente17e08efef68e9865cfbd5c0155b3d9734339192 (diff)
downloadrails-123eb25fd12c5a5ec63e18082dcdda6318bc942e.tar.gz
rails-123eb25fd12c5a5ec63e18082dcdda6318bc942e.tar.bz2
rails-123eb25fd12c5a5ec63e18082dcdda6318bc942e.zip
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.
-rw-r--r--actionpack/lib/action_dispatch.rb1
-rw-r--r--actionpack/lib/action_dispatch/railtie.rb3
-rw-r--r--railties/lib/rails/application.rb1
-rw-r--r--railties/lib/rails/commands.rb2
-rw-r--r--railties/lib/rails/engine/configuration.rb2
-rw-r--r--railties/test/application/routing_test.rb1
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