diff options
author | Tatu Lund <tatu@vaadin.com> | 2020-05-25 10:52:56 +0300 |
---|---|---|
committer | GitHub <noreply@github.com> | 2020-05-25 10:52:56 +0300 |
commit | 06947c6f90e3a4d9f85f399f383e21da4f6e12d4 (patch) | |
tree | 31fc13ef334141462b40fc48fc60f5fc1ac25062 /client | |
parent | 4014f806a139b3bf00f9fc3e807817ac35ba9501 (diff) | |
download | vaadin-framework-06947c6f90e3a4d9f85f399f383e21da4f6e12d4.tar.gz vaadin-framework-06947c6f90e3a4d9f85f399f383e21da4f6e12d4.zip |
Moving disableBrowserAutocomplete to WidgetUtil and change widgets to use it (#12020)
* Add autocomplete prevention to DateField
Autocomplete popup will interfere DateField's own popup
* Adding disableBrowserAutocomplete(..) in WidgetUtil
* Change VComboBox to use WidgetUtil.disableBrowserAutocomplete(..)
* Change to use WidgetUtil.disableBrowserAutocomplete(..)
* Change VFilterSelect to use WidgetUtil.disableBrowserAutocomplete(..)
* Adding WidgetUtil.disableBrowserAutocomplete to VTextualDate
* Adding missing import
* Adding missing import
Diffstat (limited to 'client')
3 files changed, 26 insertions, 18 deletions
diff --git a/client/src/main/java/com/vaadin/client/WidgetUtil.java b/client/src/main/java/com/vaadin/client/WidgetUtil.java index 6906f5fa5e..7a268a0a8a 100644 --- a/client/src/main/java/com/vaadin/client/WidgetUtil.java +++ b/client/src/main/java/com/vaadin/client/WidgetUtil.java @@ -42,6 +42,7 @@ import com.google.gwt.user.client.Event; import com.google.gwt.user.client.EventListener; import com.google.gwt.user.client.Window; import com.google.gwt.user.client.ui.RootPanel; +import com.google.gwt.user.client.ui.TextBox; import com.google.gwt.user.client.ui.Widget; import com.vaadin.shared.ui.ErrorLevel; import com.vaadin.shared.util.SharedUtil; @@ -1962,4 +1963,25 @@ public class WidgetUtil { return indicator; } } + + public static void disableBrowserAutocomplete(TextBox textBox) { + /*- + * Stop the browser from showing its own suggestion popup. + * + * Using an invalid value instead of "off" as suggested by + * https://developer.mozilla.org/en-US/docs/Web/Security/Securing_your_site/Turning_off_form_autocompletion + * + * Leaving the non-standard Safari options autocapitalize and + * autocorrect untouched since those do not interfere in the same + * way, and they might be useful in a combo box where new items are + * allowed. + */ + if (BrowserInfo.get().isChrome()) { + // Chrome supports "off" and random number does not work with + // Chrome + textBox.getElement().setAttribute("autocomplete", "off"); + } else { + textBox.getElement().setAttribute("autocomplete", Math.random() + ""); + } + } } diff --git a/client/src/main/java/com/vaadin/client/ui/VAbstractTextualDate.java b/client/src/main/java/com/vaadin/client/ui/VAbstractTextualDate.java index bf79fec545..5fd4fe6c55 100644 --- a/client/src/main/java/com/vaadin/client/ui/VAbstractTextualDate.java +++ b/client/src/main/java/com/vaadin/client/ui/VAbstractTextualDate.java @@ -36,6 +36,7 @@ import com.vaadin.client.BrowserInfo; import com.vaadin.client.Focusable; import com.vaadin.client.LocaleNotLoadedException; import com.vaadin.client.LocaleService; +import com.vaadin.client.WidgetUtil; import com.vaadin.client.ui.aria.AriaHelper; import com.vaadin.client.ui.aria.HandlesAriaCaption; import com.vaadin.client.ui.aria.HandlesAriaInvalid; @@ -90,6 +91,8 @@ public abstract class VAbstractTextualDate<R extends Enum<R>> if (BrowserInfo.get().isIE()) { addDomHandler(this, KeyDownEvent.getType()); } + // Stop the browser from showing its own suggestion popup. + WidgetUtil.disableBrowserAutocomplete(text); add(text); publishJSHelpers(getElement()); } diff --git a/client/src/main/java/com/vaadin/client/ui/VComboBox.java b/client/src/main/java/com/vaadin/client/ui/VComboBox.java index cf06e06b2d..08c57f888a 100644 --- a/client/src/main/java/com/vaadin/client/ui/VComboBox.java +++ b/client/src/main/java/com/vaadin/client/ui/VComboBox.java @@ -1438,24 +1438,7 @@ public class VComboBox extends Composite implements Field, KeyDownHandler, * @since 7.6.4 */ public FilterSelectTextBox() { - /*- - * Stop the browser from showing its own suggestion popup. - * - * Using an invalid value instead of "off" as suggested by - * https://developer.mozilla.org/en-US/docs/Web/Security/Securing_your_site/Turning_off_form_autocompletion - * - * Leaving the non-standard Safari options autocapitalize and - * autocorrect untouched since those do not interfere in the same - * way, and they might be useful in a combo box where new items are - * allowed. - */ - if (BrowserInfo.get().isChrome()) { - // Chrome supports "off" and random number does not work with - // Chrome - getElement().setAttribute("autocomplete", "off"); - } else { - getElement().setAttribute("autocomplete", Math.random() + ""); - } + WidgetUtil.disableBrowserAutocomplete(this); } /** |