Chromium Code Reviews| 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'; |
| + } |
| } |
| /** |