Bug 1315911 - Disable time picker UI by making it pref-off by default; r=mconley
MozReview-Commit-ID: 2kpzN27KzaB
--- a/modules/libpref/init/all.js
+++ b/modules/libpref/init/all.js
@@ -1182,16 +1182,19 @@ pref("dom.forms.number", true);
// Enable <input type=color> by default. It will be turned off for remaining
// platforms which don't have a color picker implemented yet.
pref("dom.forms.color", true);
// Support for input type=date, time, month, week and datetime-local. By
// default, disabled.
pref("dom.forms.datetime", false);
+// Enable time picker UI. By default, disabled.
+pref("dom.forms.datetime.timepicker", false);
+
// Support for new @autocomplete values
pref("dom.forms.autocomplete.experimental", false);
// Enables requestAutocomplete DOM API on forms.
pref("dom.forms.requestAutocomplete", false);
// Enable Directory API. By default, disabled.
pref("dom.input.dirpicker", false);
--- a/toolkit/content/browser-content.js
+++ b/toolkit/content/browser-content.js
@@ -1639,17 +1639,20 @@ let DateTimePickerListener = {
},
/**
* Helper function that returns the rect of the element, which is the position
* relative to the left/top of the content area.
*/
getBoundingContentRect: function(aElement) {
return BrowserUtils.getElementBoundingRect(aElement);
- // return BrowserUtils.getElementBoundingScreenRect(aElement);
+ },
+
+ getTimePickerPref: function() {
+ return Services.prefs.getBoolPref("dom.forms.datetime.timepicker");
},
/**
* nsIMessageListener.
*/
receiveMessage: function(aMessage) {
switch (aMessage.name) {
case "FormDateTime:PickerClosed": {
@@ -1667,17 +1670,19 @@ let DateTimePickerListener = {
/**
* nsIDOMEventListener, for chrome events sent by the input element and other
* DOM events.
*/
handleEvent: function(aEvent) {
switch (aEvent.type) {
case "MozOpenDateTimePicker": {
- if (!(aEvent.originalTarget instanceof content.HTMLInputElement)) {
+ // Time picker is disabled when preffed off
+ if (!(aEvent.originalTarget instanceof content.HTMLInputElement) ||
+ (aEvent.originalTarget.type == "time" && !this.getTimePickerPref())) {
return;
}
this._inputElement = aEvent.originalTarget;
this._inputElement.setDateTimePickerState(true);
this.addListeners();
let value = this._inputElement.getDateTimeInputBoxValue();
sendAsyncMessage("FormDateTime:OpenPicker", {