Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
The rack spec requires the header object to be an unfrozen hash. https://github.com/rack/rack/blob/c8e98221830a0b972b1dc19f3b6784f65197f444/SPEC.rdoc?plain=1#L240 Rack::ETag was buffering and making a copy of the response, so the freeze was not effective anyway. Plus we are freezing the hash too early, preventing middlewares from modifying it. It causes crash with gems like rack-livereload. I started having crashes on some pages (like the internal http://localhost:3000/rails/info/routes) because of rack-livereload hitting the frozen hash after the rack 3 upgrade. Also we're not consistent with the protection. We're not preventing users from adding cookies. The cookie jar is already flushed, therefore it doesn't try to change the headers and never triggers the frozen hash error.
- Loading branch information