Can't submit AR-11 form in egov.uscis.gov unless filling out optional fields

Add site-specific-quirk for egov.uscis.gov so that we ignore required="no".
We tried to contact the web master of egov.uscis.gov. But it didn't work well.

BUG=154611

Review URL: https://chromiumcodereview.appspot.com/17514010

git-svn-id: svn://svn.chromium.org/blink/trunk@152929 bbb929c8-8fbe-4397-9dbb-9b2b20218538
diff --git a/Source/core/html/TextFieldInputType.cpp b/Source/core/html/TextFieldInputType.cpp
index c5df696..d52e604 100644
--- a/Source/core/html/TextFieldInputType.cpp
+++ b/Source/core/html/TextFieldInputType.cpp
@@ -48,6 +48,7 @@
 #include "core/page/ChromeClient.h"
 #include "core/page/Frame.h"
 #include "core/page/Page.h"
+#include "core/page/Settings.h"
 #include "core/rendering/RenderLayer.h"
 #include "core/rendering/RenderTextControlSingleLine.h"
 #include "core/rendering/RenderTheme.h"
@@ -83,9 +84,18 @@
     return true;
 }
 
+static inline bool shouldIgnoreRequiredAttribute(const HTMLInputElement& input)
+{
+    if (!input.document()->settings() || !input.document()->settings()->needsSiteSpecificQuirks())
+        return false;
+    if (!equalIgnoringCase(input.document()->url().host(), "egov.uscis.gov"))
+        return false;
+    return input.fastGetAttribute(requiredAttr) == "no";
+}
+
 bool TextFieldInputType::valueMissing(const String& value) const
 {
-    return element()->isRequired() && value.isEmpty();
+    return !shouldIgnoreRequiredAttribute(*element()) && element()->isRequired() && value.isEmpty();
 }
 
 bool TextFieldInputType::canSetSuggestedValue()