r125591 broke tests with SUBPIXEL_LAYOUT disabled
https://bugs.webkit.org/show_bug.cgi?id=94027

Reviewed by Eric Seidel.

The previous patch to fix block preferred widths for subpixel layout broke ports
without the flag enabled. This patch adds a static inline function --
adjustFloatForSubPixelLayout -- that truncates with sub-pixel layout disabled, and
ceil's to the nearest FractionalLayoutUnit when sub-pixel layout is enabled.

A block's max preferred width should be enough to layout the entire line without
wrapping. r125591 addressed a bug whereby converting floats to LayoutUnits with sub-
pixel layout enabled lost precision in certain cases, and could result in a line
being layed out to slightly over the max preferred width of the block.

This patch reverts the behavior when sub-pixel layout is disabled to truncating
sub-pixel values (such as those that originate in Length) when assigning them to
LayoutUnits, and ceiling the length of the entire line to the next largest integer.

Covered by existing tests.

* rendering/RenderBlock.cpp:
(WebCore):
(WebCore::adjustFloatForSubPixelLayout):
(WebCore::RenderBlock::computeInlinePreferredLogicalWidths):


git-svn-id: http://svn.webkit.org/repository/webkit/trunk@125632 268f45cc-cd09-0410-ab3c-d52691b4dbfc
Initial call to webkitRequestAnimationFrame returns 0, Spec indicates the handle should always be > 0
https://bugs.webkit.org/show_bug.cgi?id=85819

Reviewed by James Robinson.

Source/WebCore:

The callback id returned by requestAnimationFrame was beginning at zero, when the spec
says it should be above one. Use a pre-increment rather than a post-increment.

Test: fast/animation/request-animation-frame-callback-id.html

* dom/ScriptedAnimationController.cpp:
(WebCore::ScriptedAnimationController::registerCallback): Pre-increment rather than post-increment.

LayoutTests:

* fast/animation/request-animation-frame-callback-id-expected.txt: Added.
* fast/animation/request-animation-frame-callback-id.html: Added.

git-svn-id: http://svn.webkit.org/repository/webkit/trunk@125633 268f45cc-cd09-0410-ab3c-d52691b4dbfc
[Forms] Make input type "time" to use multiple field time input UI
https://bugs.webkit.org/show_bug.cgi?id=93929

Reviewed by Kent Tamura.

Source/WebCore:

This patch changes input type "time" UI to use multiple field time
input UI when build flag ENABLE_INPUT_TYPE_TIME_MULTIPLE_FIELDS
enabled.

No new tests. This patch doesn't change behavior for users, however,
this patch changes behavior on layout tests. Tests will be added
in another patch with runtime enabled feature flag is enabled.

Test expectations for following tests are updated:
 - fast/forms/time/time-input-visible-string.html
 - fast/forms/time/time-stepup-stepdown-from-renderer.html

* html/BaseDateAndTimeInputType.h:
(BaseDateAndTimeInputType): Exposed serialize() to derived classes.
* html/TimeInputType.cpp:
(WebCore::TimeInputType::DateTimeEditControlOwnerImpl::DateTimeEditControlOwnerImpl):
(WebCore::TimeInputType::DateTimeEditControlOwnerImpl::~DateTimeEditControlOwnerImpl):
(WebCore::TimeInputType::DateTimeEditControlOwnerImpl::editControlMouseFocus):
(WebCore::TimeInputType::DateTimeEditControlOwnerImpl::editControlValueChanged):
(WebCore::TimeInputType::DateTimeEditControlOwnerImpl::isEditControlOwnerDisabled):
(WebCore::TimeInputType::DateTimeEditControlOwnerImpl::isEditControlOwnerReadOnly):
(WebCore::TimeInputType::TimeInputType):
(WebCore::TimeInputType::~TimeInputType):
(WebCore::TimeInputType::createRenderer):
(WebCore::TimeInputType::createShadowSubtree):
(WebCore::TimeInputType::destroyShadowSubtree):
(WebCore::TimeInputType::forwardEvent):
(WebCore::TimeInputType::disabledAttributeChanged):
(WebCore::TimeInputType::handleKeydownEvent):
(WebCore::TimeInputType::handleDOMActivateEvent):
(WebCore::TimeInputType::isKeyboardFocusable):
(WebCore::TimeInputType::isMouseFocusable):
(WebCore::TimeInputType::minOrMaxAttributeChanged):
(WebCore::TimeInputType::readonlyAttributeChanged):
(WebCore::TimeInputType::isTextField):
(WebCore::TimeInputType::setValue):
(WebCore::TimeInputType::shouldUseInputMethod):
(WebCore::TimeInputType::stepAttributeChanged):
(WebCore::TimeInputType::updateEditElementLayout):
(WebCore::TimeInputType::updateInnerTextValue):
(WebCore::TimeInputType):
* html/TimeInputType.h:
(TimeInputType):
(DateTimeEditControlOwnerImpl):

LayoutTests:

This patch added test expectations for multiple fields time input UI
testing which are different behavior from single field time input UI
for Chromium which enables multiple fields time input UI.

* platform/chromium/fast/forms/time/time-input-visible-string-expected.txt: Select all in a field doesn't select text.
* platform/chromium/fast/forms/time/time-stepup-stepdown-from-renderer-expected.txt: Fields don't change value on Up/Down keyboard events when they don't have focus and Up/Down keyboard increment/decrement value on hour field rather than minute field.

git-svn-id: http://svn.webkit.org/repository/webkit/trunk@125634 268f45cc-cd09-0410-ab3c-d52691b4dbfc
Fix access to m_markupBox in WebCore::EllipsisBox::paint
https://bugs.webkit.org/show_bug.cgi?id=91138

Reviewed by Abhishek Arya.

Source/WebCore:

EllipsisBox would hold on to m_markupBox, which would then get destroyed during
the followup layoutIfNeeded in layoutVerticalBox. Instead, have EllipsisBox
dynamically grab to pointer to the markup box during paint since there's no
straightforward way to notify the EllipsisBox that the markupBox has been destroyed
and/or point it at the new markupBox.

Test: fast/overflow/line-clamp-and-columns.html

* rendering/EllipsisBox.cpp:
(WebCore::EllipsisBox::paint):
(WebCore):
(WebCore::EllipsisBox::paintMarkupBox):
* rendering/EllipsisBox.h:
(WebCore::EllipsisBox::EllipsisBox):
Just store a boolean that we have a markup box that needs painting.
* rendering/RenderDeprecatedFlexibleBox.cpp:
(WebCore::RenderDeprecatedFlexibleBox::applyLineClamp):
Clearing the override size right after setting it was incorrect because
there are cases where we'll do a followup layout in layoutVerticalBox, at which
point we'll still need the override size.
(WebCore::RenderDeprecatedFlexibleBox::clearLineClamp):
Clear the override size here to handle cases where line clamp is removed since
we don't call applyLineClamp in those cases.

LayoutTests:

* fast/overflow/line-clamp-and-columns-expected.html: Added.
* fast/overflow/line-clamp-and-columns.html: Added.


git-svn-id: http://svn.webkit.org/repository/webkit/trunk@125635 268f45cc-cd09-0410-ab3c-d52691b4dbfc
[Chromium] Unreviewed test expectation update. Address new flakiness
and slow tests.

* platform/chromium/TestExpectations:

git-svn-id: http://svn.webkit.org/repository/webkit/trunk@125636 268f45cc-cd09-0410-ab3c-d52691b4dbfc