diff --git a/app/helpers/application_helper.rb b/app/helpers/application_helper.rb
index 1b259b44b..db4b3efb4 100644
--- a/app/helpers/application_helper.rb
+++ b/app/helpers/application_helper.rb
@@ -1306,6 +1306,13 @@ module ApplicationHelper
fields_for(*args, &proc)
end
+ def form_tag_html(html_options)
+ # Set a randomized name attribute on all form fields by default
+ # as a workaround to https://bugzilla.mozilla.org/show_bug.cgi?id=1279253
+ html_options['name'] ||= "#{html_options['id'] || 'form'}-#{SecureRandom.hex(4)}"
+ super
+ end
+
# Render the error messages for the given objects
def error_messages_for(*objects)
objects = objects.map {|o| o.is_a?(String) ? instance_variable_get("@#{o}") : o}.compact
diff --git a/test/helpers/application_helper_test.rb b/test/helpers/application_helper_test.rb
index f46720120..9abf47fa7 100644
--- a/test/helpers/application_helper_test.rb
+++ b/test/helpers/application_helper_test.rb
@@ -1807,6 +1807,15 @@ RAW
assert_equal '0.75', html_hours('0.75')
end
+ def test_form_for_includes_name_attribute
+ assert_match(/name="new_issue-[a-z0-9]{8}"/, form_for(Issue.new){})
+ end
+
+ def test_labelled_form_for_includes_name_attribute
+ assert_match(/name="new_issue-[a-z0-9]{8}"/, labelled_form_for(Issue.new){})
+ end
+
+
private
def wiki_links_with_special_characters