Skip to content
  • yosin@chromium.org's avatar
    [Forms] Multiple fields datetime/datetime-local input UI · 4e5f0476
    yosin@chromium.org authored
    https://bugs.webkit.org/show_bug.cgi?id=97997
    
    Reviewed by Kent Tamura.
    
    Source/WebCore:
    
    This patch introduces multiple fields "datetime" and "datetime-local"
    input UI in DRT. We'll enable these features once we add tests.
    
    No new tests. To reduce size of this patch, other patches add tests
    for multiple fields datetime/datetime-local input UI.
    
    Note: Actual outputs of four tests
      - fast/forms/datetime/datetime-input-visible-string.html
      - fast/forms/datetime/datetime-stepup-stepdown-from-renderer.html
      - fast/forms/datetimelocal/datetimelocal-input-visible-string.html
      - fast/forms/datetimelocal/datetimelocal-stepup-stepdown-from-renderer.html
    are different.
    
    * bindings/generic/RuntimeEnabledFeatures.cpp:
    (WebCore):
    * css/html.css:
    (input::-webkit-datetime-edit-day-field): Added for field appearance.
    (input::-webkit-datetime-edit-day-field:focus):  Added to remove focus ring.
    * html/DateTimeInputType.cpp:
    (WebCore::DateTimeInputType::formatDateTimeFieldsState): Added to format numeric value to string value as specified in HTML5 specification.
    (WebCore::DateTimeInputType::setupLayoutParameters): Added to set layout of multiple fields.
    * html/DateTimeInputType.h: Changed to include BaseMultipleFieldsDateAndTimeInputType.h and introduce BaseDateTimeInputType typedef.
    (WebCore::DateTimeInputType::DateTimeInputType): Changed base class name to BaseDateTimeInputType.
    (DateTimeInputType): Changed to add declarations for formatDateTimeFieldsState() and setupLayoutParameters().
    * html/DateTimeLocalInputType.cpp:
    (WebCore::DateTimeLocalInputType::formatDateTimeFieldsState): Added to format numeric value to string value as specified in HTML5 specification.
    (WebCore::DateTimeLocalInputType::setupLayoutParameters):  Added to set layout of multiple fields.
    * html/DateTimeLocalInputType.h: Changed to include BaseMultipleFieldsDateAndTimeInputType.h and introduce BaseDateTimeLocalInputType typedef.
    (WebCore::DateTimeLocalInputType::DateTimeLocalInputType): Changed base class name to BaseDateTimeLocalInputType.
    (DateTimeLocalInputType): Changed to add declarations for formatDateTimeFieldsState() and setupLayoutParameters().
    * html/shadow/DateTimeEditElement.cpp:
    (DateTimeEditBuilder): Changed to add member variable m_placeholderForDay.
    (WebCore::DateTimeEditBuilder::DateTimeEditBuilder): Changed to initialize m_placeholderForDay.
    (WebCore::DateTimeEditBuilder::visitField): Changed to support week field.
    * html/shadow/DateTimeEditElement.h:
    (LayoutParameters): Changed to add placeholderForDay member variable.
    
    LayoutTests:
    
    This patch adds Chromium port specific expectations for "datetime" and
    "datetime-local" input type tests for multiple fields datetime input UI.
    
    * platform/chromium/fast/forms/datetime/datetime-input-visible-string-expected.txt: Added. Multiple fields datetime input UI doesn't have selection.
    * platform/chromium/fast/forms/datetime/datetime-stepup-stepdown-from-renderer-expected.txt: Added. On multiple fields datetime input UI, step down/up decrement/increment a field rather than whole value.
    * platform/chromium/fast/forms/datetimelocal/datetimelocal-input-visible-string-expected.txt: Added. Multiple fields datetime-local input UI doesn't have selection.
    * platform/chromium/fast/forms/datetimelocal/datetimelocal-stepup-stepdown-from-renderer-expected.txt: Added. On multiple fields datetime-local input UI, step down/up decrement/increment a field rather than whole value.
    
    git-svn-id: http://svn.webkit.org/repository/webkit/trunk@130147 268f45cc-cd09-0410-ab3c-d52691b4dbfc
    4e5f0476