WebKit Bugzilla
Attachment 359392 Details for
Bug 193478
: [Mac] Add a new quirk to HTMLFormControlElement::isMouseFocusable
Home
|
New
|
Browse
|
Search
|
[?]
|
Reports
|
Requests
|
Help
|
New Account
|
Log In
Remember
[x]
|
Forgot Password
Login:
[x]
[patch]
Patch for landing
bug-193478-20190117110829.patch (text/plain), 3.63 KB, created by
Jiewen Tan
on 2019-01-17 11:08:30 PST
(
hide
)
Description:
Patch for landing
Filename:
MIME Type:
Creator:
Jiewen Tan
Created:
2019-01-17 11:08:30 PST
Size:
3.63 KB
patch
obsolete
>Subversion Revision: 239958 >diff --git a/Source/WebCore/ChangeLog b/Source/WebCore/ChangeLog >index 9c036d9c15f0f041a0928f2ad6af3c8726d3e701..13c80be025fd822750dcf37b1ae8cfb244c3d3aa 100644 >--- a/Source/WebCore/ChangeLog >+++ b/Source/WebCore/ChangeLog >@@ -1,3 +1,25 @@ >+2019-01-15 Jiewen Tan <jiewen_tan@apple.com> >+ >+ [Mac] Add a new quirk to HTMLFormControlElement::isMouseFocusable >+ https://bugs.webkit.org/show_bug.cgi?id=193478 >+ <rdar://problem/34368591> >+ >+ Reviewed by Brent Fulgham. >+ >+ By default in macOS, submit buttons (controls) are not focusable. WebKit follows this system convention >+ as suggested by the spec: https://html.spec.whatwg.org/multipage/interaction.html#focusable-area. This >+ is also the convention Firefox respects. However, Chrome doesn't. ceac.state.gov is by far the only >+ website that assumes submit buttons are focusable, and will prohibit users from completing immigration >+ forms, such as DS160 if buttons are not. To help immigrations, we decide to add a new quirk to >+ HTMLFormControlElement::isMouseFocusable such that submit buttons are mouse focusable. >+ >+ This quirk is for ceac.state.gov specifically, and therefore no tests. >+ >+ * html/HTMLFormControlElement.cpp: >+ (WebCore::HTMLFormControlElement::isMouseFocusable const): >+ (WebCore::HTMLFormControlElement::needsSiteSpecificQuirks const): >+ * html/HTMLFormControlElement.h: >+ > 2019-01-14 Ryosuke Niwa <rniwa@webkit.org> > > Remove redundant check for alignAttr and hiddenAttr in various isPresentationAttribute overrides >diff --git a/Source/WebCore/html/HTMLFormControlElement.cpp b/Source/WebCore/html/HTMLFormControlElement.cpp >index 1d647efd6ec4ab8dde2aecc8fd78cdd862cffd5c..0d2b8ef9054a2f1a50797f0cca33bb0a8a62bf5e 100644 >--- a/Source/WebCore/html/HTMLFormControlElement.cpp >+++ b/Source/WebCore/html/HTMLFormControlElement.cpp >@@ -40,6 +40,7 @@ > #include "HTMLTextAreaElement.h" > #include "RenderBox.h" > #include "RenderTheme.h" >+#include "Settings.h" > #include "StyleTreeResolver.h" > #include "ValidationMessage.h" > #include <wtf/IsoMallocInlines.h> >@@ -372,6 +373,8 @@ bool HTMLFormControlElement::isMouseFocusable() const > #if PLATFORM(GTK) > return HTMLElement::isMouseFocusable(); > #else >+ if (needsMouseFocusableQuirk()) >+ return HTMLElement::isMouseFocusable(); > return false; > #endif > } >@@ -655,4 +658,18 @@ AutofillData HTMLFormControlElement::autofillData() const > return AutofillData::createFromHTMLFormControlElement(*this); > } > >+// FIXME: We should remove the quirk once <rdar://problem/47334655> is fixed. >+bool HTMLFormControlElement::needsMouseFocusableQuirk() const >+{ >+#if PLATFORM(MAC) >+ if (!document().settings().needsSiteSpecificQuirks()) >+ return false; >+ >+ auto host = document().url().host(); >+ return equalLettersIgnoringASCIICase(host, "ceac.state.gov") || host.endsWithIgnoringASCIICase(".ceac.state.gov"); >+#else >+ return false; >+#endif >+} >+ > } // namespace Webcore >diff --git a/Source/WebCore/html/HTMLFormControlElement.h b/Source/WebCore/html/HTMLFormControlElement.h >index d876573a298b2d6ceb7de9151a81ca2d45c45e6c..9a42e4eecf6dc29f4cbef2a4021bee81f6d9b376 100644 >--- a/Source/WebCore/html/HTMLFormControlElement.h >+++ b/Source/WebCore/html/HTMLFormControlElement.h >@@ -177,6 +177,8 @@ private: > const HTMLFormControlElement& asHTMLElement() const final { return *this; } > HTMLFormControlElement* asFormNamedItem() final { return this; } > >+ bool needsMouseFocusableQuirk() const; >+ > std::unique_ptr<ValidationMessage> m_validationMessage; > unsigned m_disabled : 1; > unsigned m_isReadOnly : 1;
You cannot view the attachment while viewing its details because your browser does not support IFRAMEs.
View the attachment on a separate page
.
View Attachment As Diff
View Attachment As Raw
Actions:
View
|
Formatted Diff
|
Diff
Attachments on
bug 193478
:
359238
|
359287
| 359392