Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(666)

Unified Diff: sdk/lib/html/dartium/html_dartium.dart

Issue 11696002: Filling in supported platforms for InputElement types. (Closed) Base URL: https://dart.googlecode.com/svn/branches/bleeding_edge/dart
Patch Set: Created 8 years ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View side-by-side diff with in-line comments
Download patch
Index: sdk/lib/html/dartium/html_dartium.dart
diff --git a/sdk/lib/html/dartium/html_dartium.dart b/sdk/lib/html/dartium/html_dartium.dart
index 8dc3e5e9c86772b6e32c91dfd8a29d317f7f6dab..0c3c5f64421687fa63c818b785805fb2dabee019 100644
--- a/sdk/lib/html/dartium/html_dartium.dart
+++ b/sdk/lib/html/dartium/html_dartium.dart
@@ -12602,15 +12602,21 @@ class InputElement extends _Element_Merged implements
ResetButtonInputElement,
ButtonInputElement
{
- InputElement.internal() : super.internal();
///@docsEditable true
factory InputElement({String type}) {
var e = document.$dom_createElement("input");
- if (type != null) e.type = type;
+ if (type != null) {
+ try {
+ // IE throws an exception for unknown types.
+ e.type = type;
+ } catch(_) {}
+ }
return e;
}
+ InputElement.internal() : super.internal();
+
/// @domName EventTarget.addEventListener, EventTarget.removeEventListener, EventTarget.dispatchEvent; @docsEditable true
InputElementEvents get on =>
new InputElementEvents(this);
@@ -13276,7 +13282,11 @@ abstract class RangeInputElementBase implements InputElementBase {
/**
* A date and time (year, month, day, hour, minute, second, fraction of a
* second) with the time zone set to UTC.
+ *
+ * Use [supported] to check if this is supported on the current platform.
*/
+@SupportedBrowser(SupportedBrowser.CHROME, '25')
+@Experimental()
abstract class DateTimeInputElement implements RangeInputElementBase {
factory DateTimeInputElement() => new InputElement(type: 'datetime');
@@ -13288,11 +13298,20 @@ abstract class DateTimeInputElement implements RangeInputElementBase {
/// @domName HTMLInputElement.required
bool required;
+
+ /// Returns true if this input type is supported on the current platform.
+ static bool get supported {
+ return (new InputElement(type: 'datetime')).type == 'datetime';
+ }
}
/**
* A date (year, month, day) with no time zone.
+ *
+ * Use [supported] to check if this is supported on the current platform.
*/
+@SupportedBrowser(SupportedBrowser.CHROME, '25')
+@Experimental()
abstract class DateInputElement implements RangeInputElementBase {
factory DateInputElement() => new InputElement(type: 'date');
@@ -13304,11 +13323,20 @@ abstract class DateInputElement implements RangeInputElementBase {
/// @domName HTMLInputElement.required
bool required;
+
+ /// Returns true if this input type is supported on the current platform.
+ static bool get supported {
Emily Fortuna 2012/12/28 01:42:33 parens not on getters. still gets me every time!
+ return (new InputElement(type: 'date')).type == 'date';
+ }
}
/**
* A date consisting of a year and a month with no time zone.
+ *
+ * Use [supported] to check if this is supported on the current platform.
*/
+@SupportedBrowser(SupportedBrowser.CHROME, '25')
+@Experimental()
abstract class MonthInputElement implements RangeInputElementBase {
factory MonthInputElement() => new InputElement(type: 'month');
@@ -13320,11 +13348,20 @@ abstract class MonthInputElement implements RangeInputElementBase {
/// @domName HTMLInputElement.required
bool required;
+
+ /// Returns true if this input type is supported on the current platform.
+ static bool get supported {
+ return (new InputElement(type: 'month')).type == 'month';
+ }
}
/**
* A date consisting of a week-year number and a week number with no time zone.
+ *
+ * Use [supported] to check if this is supported on the current platform.
*/
+@SupportedBrowser(SupportedBrowser.CHROME, '25')
+@Experimental()
abstract class WeekInputElement implements RangeInputElementBase {
factory WeekInputElement() => new InputElement(type: 'week');
@@ -13336,11 +13373,20 @@ abstract class WeekInputElement implements RangeInputElementBase {
/// @domName HTMLInputElement.required
bool required;
+
+ /// Returns true if this input type is supported on the current platform.
+ static bool get supported {
+ return (new InputElement(type: 'week')).type == 'week';
+ }
}
/**
* A time (hour, minute, seconds, fractional seconds) with no time zone.
+ *
+ * Use [supported] to check if this is supported on the current platform.
*/
+@SupportedBrowser(SupportedBrowser.CHROME)
+@Experimental()
abstract class TimeInputElement implements RangeInputElementBase {
factory TimeInputElement() => new InputElement(type: 'time');
@@ -13352,12 +13398,21 @@ abstract class TimeInputElement implements RangeInputElementBase {
/// @domName HTMLInputElement.required
bool required;
+
+ /// Returns true if this input type is supported on the current platform.
+ static bool get supported {
+ return (new InputElement(type: 'time')).type == 'time';
+ }
}
/**
* A date and time (year, month, day, hour, minute, second, fraction of a
* second) with no time zone.
+ *
+ * Use [supported] to check if this is supported on the current platform.
*/
+@SupportedBrowser(SupportedBrowser.CHROME, '25')
+@Experimental()
abstract class LocalDateTimeInputElement implements RangeInputElementBase {
factory LocalDateTimeInputElement() =>
new InputElement(type: 'datetime-local');
@@ -13367,11 +13422,20 @@ abstract class LocalDateTimeInputElement implements RangeInputElementBase {
/// @domName HTMLInputElement.required
bool required;
+
+ /// Returns true if this input type is supported on the current platform.
+ static bool get supported {
+ return (new InputElement(type: 'datetime-local')).type == 'datetime-local';
+ }
}
/**
* A numeric editor control.
*/
+@SupportedBrowser(SupportedBrowser.CHROME)
+@SupportedBrowser(SupportedBrowser.IE)
+@SupportedBrowser(SupportedBrowser.SAFARI)
+@Experimental()
abstract class NumberInputElement implements RangeInputElementBase {
factory NumberInputElement() => new InputElement(type: 'number');
@@ -13383,14 +13447,29 @@ abstract class NumberInputElement implements RangeInputElementBase {
/// @domName HTMLInputElement.required
bool required;
+
+ /// Returns true if this input type is supported on the current platform.
+ static bool get supported {
+ return (new InputElement(type: 'number')).type == 'number';
+ }
}
/**
* Similar to [NumberInputElement] but the browser may provide more optimal
* styling (such as a slider control).
+ *
+ * Use [supported] to check if this is supported on the current platform.
*/
+@SupportedBrowser(SupportedBrowser.CHROME)
+@SupportedBrowser(SupportedBrowser.IE, '10')
+@Experimental()
abstract class RangeInputElement implements RangeInputElementBase {
factory RangeInputElement() => new InputElement(type: 'range');
+
+ /// Returns true if this input type is supported on the current platform.
+ static bool get supported {
+ return (new InputElement(type: 'range')).type == 'range';
+ }
}
/**

Powered by Google App Engine
This is Rietveld 408576698