* 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 importtags/8.12.0.alpha1
@@ -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() + ""); | |||
} | |||
} | |||
} |
@@ -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()); | |||
} |
@@ -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); | |||
} | |||
/** |
@@ -1409,23 +1409,8 @@ public class VFilterSelect extends Composite | |||
* @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() + ""); | |||
} | |||
// Stop the browser from showing its own suggestion popup. | |||
WidgetUtil.disableBrowserAutocomplete(this); | |||
} | |||
/** |
@@ -35,6 +35,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.SubPartAware; | |||
import com.vaadin.client.ui.aria.AriaHelper; | |||
import com.vaadin.client.ui.aria.HandlesAriaCaption; | |||
@@ -115,6 +116,8 @@ public class VTextualDate extends VDateField | |||
if (BrowserInfo.get().isIE()) { | |||
addDomHandler(this, KeyDownEvent.getType()); | |||
} | |||
// Stop the browser from showing its own suggestion popup. | |||
WidgetUtil.disableBrowserAutocomplete(text); | |||
add(text); | |||
} | |||