Title: [141866] trunk
Revision
141866
Author
[email protected]
Date
2013-02-05 00:31:34 -0800 (Tue, 05 Feb 2013)

Log Message

INPUT_MULTIPLE_FIELDS_UI: Use disabled attribute internally instead of readonly attribute
https://bugs.webkit.org/show_bug.cgi?id=108911

Reviewed by Kentaro Hara.

Source/WebCore:

Use 'disabled' attribute for shadow elements for <input> with
multiple-fields UI instead of 'readonly' attribute because 'readonly'
attribute represents focusable-but-non-editable state in HTML though
we'd like to represent non-focusable-and-non-editable state.

The summary of changes:
- Use 'disabled' attribute instead of 'readonly' attribute for DateTimeFieldElement,
- Rename C++ functions for it,
- Call isFocusable instead of isReadOnly to check focusable state.

No new tests. This doesn't make user-visible behavior changes.

* css/html.css:
Replace [readonly] with [disabled] for sub-fields.
* html/shadow/DateTimeEditElement.cpp:
(DateTimeEditBuilder):
(WebCore::DateTimeEditBuilder::visitField):
(WebCore::DateTimeEditBuilder::shouldDayOfMonthFieldDisabled):
(WebCore::DateTimeEditBuilder::shouldHourFieldDisabled):
(WebCore::DateTimeEditBuilder::shouldMillisecondFieldDisabled):
(WebCore::DateTimeEditBuilder::shouldMinuteFieldDisabled):
(WebCore::DateTimeEditBuilder::shouldSecondFieldDisabled):
(WebCore::DateTimeEditBuilder::shouldYearFieldDisabled):
(WebCore::DateTimeEditElement::anyEditableFieldsHaveValues):
(WebCore::DateTimeEditElement::focusOnNextField): Use isFocusable.
(WebCore::DateTimeEditElement::focusOnPreviousField): Use isFocusable.
* html/shadow/DateTimeFieldElement.cpp:
(WebCore::DateTimeFieldElement::isFocusable):
(WebCore::DateTimeFieldElement::isDisabled):
(WebCore::DateTimeFieldElement::setDisabled):
* html/shadow/DateTimeFieldElement.h:
(DateTimeFieldElement): Make isFocusable public in order that
DateTimeEditElement can call it.
* html/shadow/DateTimeNumericFieldElement.cpp:
(WebCore::DateTimeNumericFieldElement::handleKeyboardEvent):
(WebCore::DateTimeNumericFieldElement::setEmptyValue):
* html/shadow/DateTimeSymbolicFieldElement.cpp:
(WebCore::DateTimeSymbolicFieldElement::setEmptyValue):

LayoutTests:

* fast/forms/date-multiple-fields/date-multiple-fields-readonly-subfield.html:
* fast/forms/datetimelocal-multiple-fields/datetimelocal-multiple-fields-readonly-subfield.html:
* fast/forms/month-multiple-fields/month-multiple-fields-readonly-subfield.html:
* fast/forms/time-multiple-fields/time-multiple-fields-readonly-subfield.html:
* fast/forms/week-multiple-fields/week-multiple-fields-readonly-subfield.html:

Modified Paths

Diff

Modified: trunk/LayoutTests/ChangeLog (141865 => 141866)


--- trunk/LayoutTests/ChangeLog	2013-02-05 08:20:28 UTC (rev 141865)
+++ trunk/LayoutTests/ChangeLog	2013-02-05 08:31:34 UTC (rev 141866)
@@ -1,3 +1,16 @@
+2013-02-05  Kent Tamura  <[email protected]>
+
+        INPUT_MULTIPLE_FIELDS_UI: Use disabled attribute internally instead of readonly attribute
+        https://bugs.webkit.org/show_bug.cgi?id=108911
+
+        Reviewed by Kentaro Hara.
+
+        * fast/forms/date-multiple-fields/date-multiple-fields-readonly-subfield.html:
+        * fast/forms/datetimelocal-multiple-fields/datetimelocal-multiple-fields-readonly-subfield.html:
+        * fast/forms/month-multiple-fields/month-multiple-fields-readonly-subfield.html:
+        * fast/forms/time-multiple-fields/time-multiple-fields-readonly-subfield.html:
+        * fast/forms/week-multiple-fields/week-multiple-fields-readonly-subfield.html:
+
 2013-02-04  Dean Jackson  <[email protected]>
 
         [Mac] Captions menu should indicate language and type of track

Modified: trunk/LayoutTests/fast/forms/date-multiple-fields/date-multiple-fields-readonly-subfield.html (141865 => 141866)


--- trunk/LayoutTests/fast/forms/date-multiple-fields/date-multiple-fields-readonly-subfield.html	2013-02-05 08:20:28 UTC (rev 141865)
+++ trunk/LayoutTests/fast/forms/date-multiple-fields/date-multiple-fields-readonly-subfield.html	2013-02-05 08:31:34 UTC (rev 141866)
@@ -14,11 +14,12 @@
     return input;
 }
 
+// FIXME: Rename this function and the test file.
 function isReadOnlyField(input, pseudo) {
     var node = internals.youngestShadowRoot(input).querySelector('*[pseudo="' + pseudo + '"]');
     if (!node)
         testFailed('Requested node is missing.');
-    return node && node.hasAttribute('readonly');
+    return node && node.hasAttribute('disabled');
 }
 
 var pseudoDay = '-webkit-datetime-edit-day-field';

Modified: trunk/LayoutTests/fast/forms/datetimelocal-multiple-fields/datetimelocal-multiple-fields-readonly-subfield.html (141865 => 141866)


--- trunk/LayoutTests/fast/forms/datetimelocal-multiple-fields/datetimelocal-multiple-fields-readonly-subfield.html	2013-02-05 08:20:28 UTC (rev 141865)
+++ trunk/LayoutTests/fast/forms/datetimelocal-multiple-fields/datetimelocal-multiple-fields-readonly-subfield.html	2013-02-05 08:31:34 UTC (rev 141866)
@@ -16,11 +16,12 @@
     return input;
 }
 
+// FIXME: Rename this function and the test file.
 function isReadOnlyField(input, pseudo) {
     var node = internals.youngestShadowRoot(input).querySelector('*[pseudo="' + pseudo + '"]');
     if (!node)
         testFailed('Requested node is missing.');
-    return node && node.hasAttribute('readonly');
+    return node && node.hasAttribute('disabled');
 }
 
 var pseudoMinute = '-webkit-datetime-edit-minute-field';

Modified: trunk/LayoutTests/fast/forms/month-multiple-fields/month-multiple-fields-readonly-subfield.html (141865 => 141866)


--- trunk/LayoutTests/fast/forms/month-multiple-fields/month-multiple-fields-readonly-subfield.html	2013-02-05 08:20:28 UTC (rev 141865)
+++ trunk/LayoutTests/fast/forms/month-multiple-fields/month-multiple-fields-readonly-subfield.html	2013-02-05 08:31:34 UTC (rev 141866)
@@ -14,11 +14,12 @@
     return input;
 }
 
+// FIXME: Rename this function and the test file.
 function isReadOnlyField(input, pseudo) {
     var node = internals.youngestShadowRoot(input).querySelector('*[pseudo="' + pseudo + '"]');
     if (!node)
         testFailed('Requested node is missing.');
-    return node && node.hasAttribute('readonly');
+    return node && node.hasAttribute('disabled');
 }
 
 var pseudoMonth = '-webkit-datetime-edit-month-field';

Modified: trunk/LayoutTests/fast/forms/time-multiple-fields/time-multiple-fields-readonly-subfield.html (141865 => 141866)


--- trunk/LayoutTests/fast/forms/time-multiple-fields/time-multiple-fields-readonly-subfield.html	2013-02-05 08:20:28 UTC (rev 141865)
+++ trunk/LayoutTests/fast/forms/time-multiple-fields/time-multiple-fields-readonly-subfield.html	2013-02-05 08:31:34 UTC (rev 141866)
@@ -12,11 +12,12 @@
     return input;
 }
 
+// FIXME: Rename this function and the test file.
 function isReadOnlyField(input, pseudo) {
     var node = internals.youngestShadowRoot(input).querySelector('*[pseudo="' + pseudo + '"]');
     if (!node)
         testFailed('Requested node is missing.');
-    return node && node.hasAttribute('readonly');
+    return node && node.hasAttribute('disabled');
 }
 
 var pseudoMillisecond = '-webkit-datetime-edit-millisecond-field';

Modified: trunk/LayoutTests/fast/forms/week-multiple-fields/week-multiple-fields-readonly-subfield.html (141865 => 141866)


--- trunk/LayoutTests/fast/forms/week-multiple-fields/week-multiple-fields-readonly-subfield.html	2013-02-05 08:20:28 UTC (rev 141865)
+++ trunk/LayoutTests/fast/forms/week-multiple-fields/week-multiple-fields-readonly-subfield.html	2013-02-05 08:31:34 UTC (rev 141866)
@@ -14,11 +14,12 @@
     return input;
 }
 
+// FIXME: Rename this function and the test file.
 function isReadOnlyField(input, pseudo) {
     var node = internals.youngestShadowRoot(input).querySelector('*[pseudo="' + pseudo + '"]');
     if (!node)
         testFailed('Requested node is missing.');
-    return node && node.hasAttribute('readonly');
+    return node && node.hasAttribute('disabled');
 }
 
 var pseudoWeek = '-webkit-datetime-edit-week-field';

Modified: trunk/Source/WebCore/ChangeLog (141865 => 141866)


--- trunk/Source/WebCore/ChangeLog	2013-02-05 08:20:28 UTC (rev 141865)
+++ trunk/Source/WebCore/ChangeLog	2013-02-05 08:31:34 UTC (rev 141866)
@@ -1,3 +1,49 @@
+2013-02-05  Kent Tamura  <[email protected]>
+
+        INPUT_MULTIPLE_FIELDS_UI: Use disabled attribute internally instead of readonly attribute
+        https://bugs.webkit.org/show_bug.cgi?id=108911
+
+        Reviewed by Kentaro Hara.
+
+        Use 'disabled' attribute for shadow elements for <input> with
+        multiple-fields UI instead of 'readonly' attribute because 'readonly'
+        attribute represents focusable-but-non-editable state in HTML though
+        we'd like to represent non-focusable-and-non-editable state.
+
+        The summary of changes:
+        - Use 'disabled' attribute instead of 'readonly' attribute for DateTimeFieldElement,
+        - Rename C++ functions for it,
+        - Call isFocusable instead of isReadOnly to check focusable state.
+
+        No new tests. This doesn't make user-visible behavior changes.
+
+        * css/html.css:
+        Replace [readonly] with [disabled] for sub-fields.
+        * html/shadow/DateTimeEditElement.cpp:
+        (DateTimeEditBuilder):
+        (WebCore::DateTimeEditBuilder::visitField):
+        (WebCore::DateTimeEditBuilder::shouldDayOfMonthFieldDisabled):
+        (WebCore::DateTimeEditBuilder::shouldHourFieldDisabled):
+        (WebCore::DateTimeEditBuilder::shouldMillisecondFieldDisabled):
+        (WebCore::DateTimeEditBuilder::shouldMinuteFieldDisabled):
+        (WebCore::DateTimeEditBuilder::shouldSecondFieldDisabled):
+        (WebCore::DateTimeEditBuilder::shouldYearFieldDisabled):
+        (WebCore::DateTimeEditElement::anyEditableFieldsHaveValues):
+        (WebCore::DateTimeEditElement::focusOnNextField): Use isFocusable.
+        (WebCore::DateTimeEditElement::focusOnPreviousField): Use isFocusable.
+        * html/shadow/DateTimeFieldElement.cpp:
+        (WebCore::DateTimeFieldElement::isFocusable):
+        (WebCore::DateTimeFieldElement::isDisabled):
+        (WebCore::DateTimeFieldElement::setDisabled):
+        * html/shadow/DateTimeFieldElement.h:
+        (DateTimeFieldElement): Make isFocusable public in order that
+        DateTimeEditElement can call it.
+        * html/shadow/DateTimeNumericFieldElement.cpp:
+        (WebCore::DateTimeNumericFieldElement::handleKeyboardEvent):
+        (WebCore::DateTimeNumericFieldElement::setEmptyValue):
+        * html/shadow/DateTimeSymbolicFieldElement.cpp:
+        (WebCore::DateTimeSymbolicFieldElement::setEmptyValue):
+
 2013-02-05  Kentaro Hara  <[email protected]>
 
         [V8] Reduce usage of deprecatedString() and deprecatedInteger()

Modified: trunk/Source/WebCore/css/html.css (141865 => 141866)


--- trunk/Source/WebCore/css/html.css	2013-02-05 08:20:28 UTC (rev 141865)
+++ trunk/Source/WebCore/css/html.css	2013-02-05 08:31:34 UTC (rev 141866)
@@ -593,15 +593,15 @@
     outline: none;
 }
 
-input::-webkit-datetime-edit-year-field[readonly],
-input::-webkit-datetime-edit-month-field[readonly],
-input::-webkit-datetime-edit-week-field[readonly],
-input::-webkit-datetime-edit-day-field[readonly],
-input::-webkit-datetime-edit-ampm-field[readonly],
-input::-webkit-datetime-edit-hour-field[readonly],
-input::-webkit-datetime-edit-millisecond-field[readonly],
-input::-webkit-datetime-edit-minute-field[readonly],
-input::-webkit-datetime-edit-second-field[readonly] {
+input::-webkit-datetime-edit-year-field[disabled],
+input::-webkit-datetime-edit-month-field[disabled],
+input::-webkit-datetime-edit-week-field[disabled],
+input::-webkit-datetime-edit-day-field[disabled],
+input::-webkit-datetime-edit-ampm-field[disabled],
+input::-webkit-datetime-edit-hour-field[disabled],
+input::-webkit-datetime-edit-millisecond-field[disabled],
+input::-webkit-datetime-edit-minute-field[disabled],
+input::-webkit-datetime-edit-second-field[disabled] {
     color: GrayText;
 }
 

Modified: trunk/Source/WebCore/html/shadow/DateTimeEditElement.cpp (141865 => 141866)


--- trunk/Source/WebCore/html/shadow/DateTimeEditElement.cpp	2013-02-05 08:20:28 UTC (rev 141865)
+++ trunk/Source/WebCore/html/shadow/DateTimeEditElement.cpp	2013-02-05 08:31:34 UTC (rev 141866)
@@ -61,12 +61,12 @@
 private:
     void getRangeOfDayOfMonthField(int& minDay, int& maxDay) const;
     bool needMillisecondField() const;
-    bool shouldDayOfMonthFieldReadOnly(int minDay, int maxDay) const;
-    bool shouldHourFieldReadOnly() const;
-    bool shouldMillisecondFieldReadOnly() const;
-    bool shouldMinuteFieldReadOnly() const;
-    bool shouldSecondFieldReadOnly() const;
-    bool shouldYearFieldReadOnly() const;
+    bool shouldDayOfMonthFieldDisabled(int minDay, int maxDay) const;
+    bool shouldHourFieldDisabled() const;
+    bool shouldMillisecondFieldDisabled() const;
+    bool shouldMinuteFieldDisabled() const;
+    bool shouldSecondFieldDisabled() const;
+    bool shouldYearFieldDisabled() const;
     inline const StepRange& stepRange() const { return m_parameters.stepRange; }
     DateTimeNumericFieldElement::Parameters createNumericFieldParameters(const Decimal& msPerFieldUnit, const Decimal& msPerFieldSize) const;
 
@@ -126,9 +126,9 @@
         getRangeOfDayOfMonthField(minDay, maxDay);
         RefPtr<DateTimeFieldElement> field = DateTimeDayFieldElement::create(document, m_editElement, m_parameters.placeholderForDay, minDay, maxDay);
         m_editElement.addField(field);
-        if (shouldDayOfMonthFieldReadOnly(minDay, maxDay)) {
+        if (shouldDayOfMonthFieldDisabled(minDay, maxDay)) {
             field->setValueAsDate(m_dateValue);
-            field->setReadOnly();
+            field->setDisabled();
         }
         return;
     }
@@ -137,9 +137,9 @@
         DateTimeNumericFieldElement::Parameters parameters = createNumericFieldParameters(static_cast<int>(msPerHour), static_cast<int>(msPerHour * 12));
         RefPtr<DateTimeFieldElement> field = DateTimeHourFieldElement::create(document, m_editElement, 0, 11, parameters);
         m_editElement.addField(field);
-        if (shouldHourFieldReadOnly()) {
+        if (shouldHourFieldDisabled()) {
             field->setValueAsDate(m_dateValue);
-            field->setReadOnly();
+            field->setDisabled();
         }
         return;
     }
@@ -148,9 +148,9 @@
         DateTimeNumericFieldElement::Parameters parameters = createNumericFieldParameters(static_cast<int>(msPerHour), static_cast<int>(msPerHour * 12));
         RefPtr<DateTimeFieldElement> field = DateTimeHourFieldElement::create(document, m_editElement, 1, 12, parameters);
         m_editElement.addField(field);
-        if (shouldHourFieldReadOnly()) {
+        if (shouldHourFieldDisabled()) {
             field->setValueAsDate(m_dateValue);
-            field->setReadOnly();
+            field->setDisabled();
         }
         return;
     }
@@ -159,9 +159,9 @@
         DateTimeNumericFieldElement::Parameters parameters = createNumericFieldParameters(static_cast<int>(msPerHour), static_cast<int>(msPerDay));
         RefPtr<DateTimeFieldElement> field = DateTimeHourFieldElement::create(document, m_editElement, 0, 23, parameters);
         m_editElement.addField(field);
-        if (shouldHourFieldReadOnly()) {
+        if (shouldHourFieldDisabled()) {
             field->setValueAsDate(m_dateValue);
-            field->setReadOnly();
+            field->setDisabled();
         }
         return;
     }
@@ -170,9 +170,9 @@
         DateTimeNumericFieldElement::Parameters parameters = createNumericFieldParameters(static_cast<int>(msPerHour), static_cast<int>(msPerDay));
         RefPtr<DateTimeFieldElement> field = DateTimeHourFieldElement::create(document, m_editElement, 1, 24, parameters);
         m_editElement.addField(field);
-        if (shouldHourFieldReadOnly()) {
+        if (shouldHourFieldDisabled()) {
             field->setValueAsDate(m_dateValue);
-            field->setReadOnly();
+            field->setDisabled();
         }
         return;
     }
@@ -181,9 +181,9 @@
         DateTimeNumericFieldElement::Parameters parameters = createNumericFieldParameters(static_cast<int>(msPerMinute), static_cast<int>(msPerHour));
         RefPtr<DateTimeNumericFieldElement> field = DateTimeMinuteFieldElement::create(document, m_editElement, parameters);
         m_editElement.addField(field);
-        if (shouldMinuteFieldReadOnly()) {
+        if (shouldMinuteFieldDisabled()) {
             field->setValueAsDate(m_dateValue);
-            field->setReadOnly();
+            field->setDisabled();
         }
         return;
     }
@@ -214,7 +214,7 @@
         m_editElement.addField(field);
         if (minMonth == maxMonth && minMonth == m_dateValue.month() && m_dateValue.type() != DateComponents::Month) {
             field->setValueAsDate(m_dateValue);
-            field->setReadOnly();
+            field->setDisabled();
         }
         return;
     }
@@ -222,9 +222,9 @@
     case DateTimeFormat::FieldTypePeriod: {
         RefPtr<DateTimeFieldElement> field = DateTimeAMPMFieldElement::create(document, m_editElement, m_parameters.locale.timeAMPMLabels());
         m_editElement.addField(field);
-        if (shouldHourFieldReadOnly()) {
+        if (shouldHourFieldDisabled()) {
             field->setValueAsDate(m_dateValue);
-            field->setReadOnly();
+            field->setDisabled();
         }
         return;
     }
@@ -233,9 +233,9 @@
         DateTimeNumericFieldElement::Parameters parameters = createNumericFieldParameters(static_cast<int>(msPerSecond), static_cast<int>(msPerMinute));
         RefPtr<DateTimeNumericFieldElement> field = DateTimeSecondFieldElement::create(document, m_editElement, parameters);
         m_editElement.addField(field);
-        if (shouldSecondFieldReadOnly()) {
+        if (shouldSecondFieldDisabled()) {
             field->setValueAsDate(m_dateValue);
-            field->setReadOnly();
+            field->setDisabled();
         }
 
         if (needMillisecondField()) {
@@ -249,9 +249,9 @@
         DateTimeNumericFieldElement::Parameters parameters = createNumericFieldParameters(1, static_cast<int>(msPerSecond));
         RefPtr<DateTimeNumericFieldElement> field = DateTimeMillisecondFieldElement::create(document, m_editElement, parameters);
         m_editElement.addField(field);
-        if (shouldMillisecondFieldReadOnly()) {
+        if (shouldMillisecondFieldDisabled()) {
             field->setValueAsDate(m_dateValue);
-            field->setReadOnly();
+            field->setDisabled();
         }
         return;
     }
@@ -293,9 +293,9 @@
         yearParams.placeholder = m_parameters.placeholderForYear;
         RefPtr<DateTimeFieldElement> field = DateTimeYearFieldElement::create(document, m_editElement, yearParams);
         m_editElement.addField(field);
-        if (shouldYearFieldReadOnly()) {
+        if (shouldYearFieldDisabled()) {
             field->setValueAsDate(m_dateValue);
-            field->setReadOnly();
+            field->setDisabled();
         }
         return;
     }
@@ -305,19 +305,19 @@
     }
 }
 
-bool DateTimeEditBuilder::shouldDayOfMonthFieldReadOnly(int minDay, int maxDay) const
+bool DateTimeEditBuilder::shouldDayOfMonthFieldDisabled(int minDay, int maxDay) const
 {
     return minDay == maxDay && minDay == m_dateValue.monthDay() && m_dateValue.type() != DateComponents::Date;
 }
 
-bool DateTimeEditBuilder::shouldHourFieldReadOnly() const
+bool DateTimeEditBuilder::shouldHourFieldDisabled() const
 {
     if (m_dateValue.type() == DateComponents::Time)
         return false;
     ASSERT(m_dateValue.type() == DateComponents::DateTimeLocal || m_dateValue.type() == DateComponents::DateTime);
     int minDay, maxDay;
     getRangeOfDayOfMonthField(minDay, maxDay);
-    if (shouldDayOfMonthFieldReadOnly(minDay, maxDay)) {
+    if (shouldDayOfMonthFieldDisabled(minDay, maxDay)) {
         ASSERT(m_parameters.minimum.fullYear() == m_parameters.maximum.fullYear());
         ASSERT(m_parameters.minimum.month() == m_parameters.maximum.month());
         return false;
@@ -328,27 +328,27 @@
     return hourPartOfMinimum == m_dateValue.hour() && stepRange().step().remainder(decimalMsPerDay).isZero();
 }
 
-bool DateTimeEditBuilder::shouldMillisecondFieldReadOnly() const
+bool DateTimeEditBuilder::shouldMillisecondFieldDisabled() const
 {
     const Decimal decimalMsPerSecond(static_cast<int>(msPerSecond));
     return stepRange().minimum().abs().remainder(decimalMsPerSecond) == m_dateValue.millisecond() && stepRange().step().remainder(decimalMsPerSecond).isZero();
 }
 
-bool DateTimeEditBuilder::shouldMinuteFieldReadOnly() const
+bool DateTimeEditBuilder::shouldMinuteFieldDisabled() const
 {
     const Decimal decimalMsPerHour(static_cast<int>(msPerHour));
     Decimal minutePartOfMinimum = (stepRange().minimum().abs().remainder(decimalMsPerHour) / static_cast<int>(msPerMinute)).floor();
     return minutePartOfMinimum == m_dateValue.minute() && stepRange().step().remainder(decimalMsPerHour).isZero();
 }
 
-bool DateTimeEditBuilder::shouldSecondFieldReadOnly() const
+bool DateTimeEditBuilder::shouldSecondFieldDisabled() const
 {
     const Decimal decimalMsPerMinute(static_cast<int>(msPerMinute));
     Decimal secondPartOfMinimum = (stepRange().minimum().abs().remainder(decimalMsPerMinute) / static_cast<int>(msPerSecond)).floor();
     return secondPartOfMinimum == m_dateValue.second() && stepRange().step().remainder(decimalMsPerMinute).isZero();
 }
 
-bool DateTimeEditBuilder::shouldYearFieldReadOnly() const
+bool DateTimeEditBuilder::shouldYearFieldDisabled() const
 {
     return m_parameters.minimum.type() != DateComponents::Invalid
         && m_parameters.maximum.type() != DateComponents::Invalid
@@ -428,7 +428,7 @@
 bool DateTimeEditElement::anyEditableFieldsHaveValues() const
 {
     for (size_t fieldIndex = 0; fieldIndex < m_fields.size(); ++fieldIndex) {
-        if (!m_fields[fieldIndex]->isReadOnly() && m_fields[fieldIndex]->hasValue())
+        if (!m_fields[fieldIndex]->isDisabled() && m_fields[fieldIndex]->hasValue())
             return true;
     }
     return false;
@@ -544,7 +544,7 @@
     if (startFieldIndex == invalidFieldIndex)
         return false;
     for (size_t fieldIndex = startFieldIndex + 1; fieldIndex < m_fields.size(); ++fieldIndex) {
-        if (!m_fields[fieldIndex]->isReadOnly()) {
+        if (m_fields[fieldIndex]->isFocusable()) {
             m_fields[fieldIndex]->focus();
             return true;
         }
@@ -560,7 +560,7 @@
     size_t fieldIndex = startFieldIndex;
     while (fieldIndex > 0) {
         --fieldIndex;
-        if (!m_fields[fieldIndex]->isReadOnly()) {
+        if (m_fields[fieldIndex]->isFocusable()) {
             m_fields[fieldIndex]->focus();
             return true;
         }

Modified: trunk/Source/WebCore/html/shadow/DateTimeFieldElement.cpp (141865 => 141866)


--- trunk/Source/WebCore/html/shadow/DateTimeFieldElement.cpp	2013-02-05 08:20:28 UTC (rev 141865)
+++ trunk/Source/WebCore/html/shadow/DateTimeFieldElement.cpp	2013-02-05 08:31:34 UTC (rev 141866)
@@ -157,16 +157,16 @@
 
 bool DateTimeFieldElement::isFocusable() const
 {
-    if (isReadOnly())
+    if (isDisabled())
         return false;
     if (m_fieldOwner && m_fieldOwner->isFieldOwnerDisabledOrReadOnly())
         return false;
     return HTMLElement::isFocusable();
 }
 
-bool DateTimeFieldElement::isReadOnly() const
+bool DateTimeFieldElement::isDisabled() const
 {
-    return fastHasAttribute(readonlyAttr);
+    return fastHasAttribute(disabledAttr);
 }
 
 Locale& DateTimeFieldElement::localeForOwner() const
@@ -185,10 +185,10 @@
     return paddingLeftAndRight;
 }
 
-void DateTimeFieldElement::setReadOnly()
+void DateTimeFieldElement::setDisabled()
 {
-    // Set HTML attribute readonly to change apperance.
-    setBooleanAttribute(readonlyAttr, true);
+    // Set HTML attribute disabled to change apperance.
+    setBooleanAttribute(disabledAttr, true);
     setNeedsStyleRecalc();
 }
 

Modified: trunk/Source/WebCore/html/shadow/DateTimeFieldElement.h (141865 => 141866)


--- trunk/Source/WebCore/html/shadow/DateTimeFieldElement.h	2013-02-05 08:20:28 UTC (rev 141865)
+++ trunk/Source/WebCore/html/shadow/DateTimeFieldElement.h	2013-02-05 08:31:34 UTC (rev 141866)
@@ -62,11 +62,12 @@
 
     virtual void defaultEventHandler(Event*) OVERRIDE;
     virtual bool hasValue() const = 0;
-    bool isReadOnly() const;
+    bool isDisabled() const;
+    virtual bool isFocusable() const OVERRIDE FINAL;
     virtual float maximumWidth(const Font&);
     virtual void populateDateTimeFieldsState(DateTimeFieldsState&) = 0;
     void removeEventHandler() { m_fieldOwner = 0; }
-    void setReadOnly();
+    void setDisabled();
     virtual void setEmptyValue(EventBehavior = DispatchNoEvent) = 0;
     virtual void setValueAsDate(const DateComponents&) = 0;
     virtual void setValueAsDateTimeFieldsState(const DateTimeFieldsState&) = 0;
@@ -92,7 +93,6 @@
 private:
     void defaultKeyboardEventHandler(KeyboardEvent*);
     virtual bool isDateTimeFieldElement() const OVERRIDE;
-    virtual bool isFocusable() const OVERRIDE FINAL;
     virtual bool supportsFocus() const OVERRIDE FINAL;
 
     FieldOwner* m_fieldOwner;

Modified: trunk/Source/WebCore/html/shadow/DateTimeNumericFieldElement.cpp (141865 => 141866)


--- trunk/Source/WebCore/html/shadow/DateTimeNumericFieldElement.cpp	2013-02-05 08:20:28 UTC (rev 141865)
+++ trunk/Source/WebCore/html/shadow/DateTimeNumericFieldElement.cpp	2013-02-05 08:31:34 UTC (rev 141866)
@@ -126,7 +126,7 @@
 
 void DateTimeNumericFieldElement::handleKeyboardEvent(KeyboardEvent* keyboardEvent)
 {
-    if (isReadOnly())
+    if (isDisabled())
         return;
 
     if (keyboardEvent->type() != eventNames().keypressEvent)
@@ -174,7 +174,7 @@
 
 void DateTimeNumericFieldElement::setEmptyValue(EventBehavior eventBehavior)
 {
-    if (isReadOnly())
+    if (isDisabled())
         return;
 
     m_hasValue = false;

Modified: trunk/Source/WebCore/html/shadow/DateTimeSymbolicFieldElement.cpp (141865 => 141866)


--- trunk/Source/WebCore/html/shadow/DateTimeSymbolicFieldElement.cpp	2013-02-05 08:20:28 UTC (rev 141865)
+++ trunk/Source/WebCore/html/shadow/DateTimeSymbolicFieldElement.cpp	2013-02-05 08:31:34 UTC (rev 141866)
@@ -102,7 +102,7 @@
 
 void DateTimeSymbolicFieldElement::setEmptyValue(EventBehavior eventBehavior)
 {
-    if (isReadOnly())
+    if (isDisabled())
         return;
     m_selectedIndex = invalidIndex;
     updateVisibleValue(eventBehavior);
_______________________________________________
webkit-changes mailing list
[email protected]
https://lists.webkit.org/mailman/listinfo/webkit-changes

Reply via email to