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()