Bug 88807 - Input elements with type=range do not have default touch handlers.
Summary: Input elements with type=range do not have default touch handlers.
Status: RESOLVED FIXED
Alias: None
Product: WebKit
Classification: Unclassified
Component: WebCore Misc. (show other bugs)
Version: 528+ (Nightly build)
Hardware: Unspecified Unspecified
: P2 Normal
Assignee: Kevin Ellis
URL:
Keywords:
Depends on: 89304
Blocks:
  Show dependency treegraph
 
Reported: 2012-06-11 14:24 PDT by Kevin Ellis
Modified: 2012-07-27 01:14 PDT (History)
16 users (show)

See Also:


Attachments
Patch (11.08 KB, patch)
2012-06-11 14:32 PDT, Kevin Ellis
no flags Details | Formatted Diff | Diff
Patch (15.39 KB, patch)
2012-06-13 08:27 PDT, Kevin Ellis
no flags Details | Formatted Diff | Diff
Patch (15.32 KB, patch)
2012-06-13 11:13 PDT, Kevin Ellis
no flags Details | Formatted Diff | Diff
Patch (15.34 KB, patch)
2012-06-18 13:26 PDT, Kevin Ellis
no flags Details | Formatted Diff | Diff
Patch (17.04 KB, patch)
2012-06-19 11:33 PDT, Kevin Ellis
no flags Details | Formatted Diff | Diff
Patch (16.98 KB, patch)
2012-06-26 08:47 PDT, Kevin Ellis
no flags Details | Formatted Diff | Diff
Patch (23.66 KB, patch)
2012-06-29 06:52 PDT, Kevin Ellis
no flags Details | Formatted Diff | Diff
Patch (23.70 KB, patch)
2012-06-29 07:27 PDT, Kevin Ellis
no flags Details | Formatted Diff | Diff
Patch (25.10 KB, patch)
2012-07-09 14:15 PDT, Kevin Ellis
no flags Details | Formatted Diff | Diff
Patch (28.08 KB, patch)
2012-07-10 09:59 PDT, Kevin Ellis
no flags Details | Formatted Diff | Diff
Patch (27.70 KB, patch)
2012-07-10 15:01 PDT, Kevin Ellis
no flags Details | Formatted Diff | Diff

Note You need to log in before you can comment on or make changes to this bug.
Description Kevin Ellis 2012-06-11 14:24:24 PDT
Input elements with type=range do not have default touch handlers.  Cannot manipulate a slider on a touch screen.
Comment 1 Kevin Ellis 2012-06-11 14:32:57 PDT
Created attachment 146912 [details]
Patch
Comment 2 WebKit Review Bot 2012-06-11 14:39:39 PDT
Attachment 146912 [details] did not pass style-queue:

Failed to run "['Tools/Scripts/check-webkit-style', '--diff-files', u'Source/WebCore/ChangeLog', u'Source/WebCor..." exit_code: 1
Source/WebCore/ChangeLog:8:  You should remove the 'No new tests' and either add and list tests, or explain why no new tests were possible.  [changelog/nonewtests] [5]
Total errors found: 1 in 13 files


If any of these errors are false positives, please file a bug against check-webkit-style.
Comment 3 Build Bot 2012-06-11 14:58:39 PDT
Comment on attachment 146912 [details]
Patch

Attachment 146912 [details] did not pass mac-ews (mac):
Output: http://queues.webkit.org/results/12943352
Comment 4 Build Bot 2012-06-11 15:24:40 PDT
Comment on attachment 146912 [details]
Patch

Attachment 146912 [details] did not pass win-ews (win):
Output: http://queues.webkit.org/results/12935821
Comment 5 Robert Kroeger 2012-06-12 11:22:29 PDT
Comment on attachment 146912 [details]
Patch

View in context: https://bugs.webkit.org/attachment.cgi?id=146912&action=review

>> Source/WebCore/ChangeLog:8
>> +        No new tests. (OOPS!)
> 
> You should remove the 'No new tests' and either add and list tests, or explain why no new tests were possible.  [changelog/nonewtests] [5]

You need to update this or it will get bounced from the commit queue.

Also, a longer more detailed ChangeLog is necessary.

> Source/WebCore/dom/Touch.cpp:76
> +{

you will need to test your slider inside a transform. Like rotated.

> Source/WebCore/dom/Touch.h:69
> +    RefPtr<Frame> m_frame;

this seems wrong to me. How do other events deal with this?

> Source/WebCore/dom/TouchEvent.h:72
> +    virtual bool isTouchEvent() const OVERRIDE;

afaik WebCore doesn't use the OVERRIDE macro

> Source/WebCore/html/RangeInputType.cpp:37
> +#include "Frame.h"

i expect that you should avoid this.

> Source/WebCore/html/RangeInputType.cpp:155
> +        event->preventDefault();

you are the default handler? do you need to call this?

> Source/WebCore/html/RangeInputType.h:54
> +    virtual void handleTouchEvent(TouchEvent*) OVERRIDE;

ok... maybe I was wrong about the OVERRIDE. :-)
Comment 6 Kevin Ellis 2012-06-13 08:27:08 PDT
Created attachment 147321 [details]
Patch

(In reply to comment #5)
> (From update of attachment 146912 [details])
> View in context: https://bugs.webkit.org/attachment.cgi?id=146912&action=review
> 
> >> Source/WebCore/ChangeLog:8
> >> +        No new tests. (OOPS!)
> > 
> > You should remove the 'No new tests' and either add and list tests, or explain why no new tests were possible.  [changelog/nonewtests] [5]
> 
> You need to update this or it will get bounced from the commit queue.
> 
> Also, a longer more detailed ChangeLog is necessary.
> 
Added touch slider test, and more detail in the Change Log.

> > Source/WebCore/dom/Touch.cpp:76
> > +{
> 
> you will need to test your slider inside a transform. Like rotated.
> 
> > Source/WebCore/dom/Touch.h:69
> > +    RefPtr<Frame> m_frame;
> 
> this seems wrong to me. How do other events deal with this?
> 
Removed keeping a reference to the frame.  The thumb scroll element relies on absolute page position and not adjusted page position.  The logic for correcting the page scale and zoom is consistent with MouseRelatedEvent.

> > Source/WebCore/dom/TouchEvent.h:72
> > +    virtual bool isTouchEvent() const OVERRIDE;
> 
> afaik WebCore doesn't use the OVERRIDE macro
> 
> > Source/WebCore/html/RangeInputType.cpp:37
> > +#include "Frame.h"
> 
> i expect that you should avoid this.
> 
> > Source/WebCore/html/RangeInputType.cpp:155
> > +        event->preventDefault();
> 
> you are the default handler? do you need to call this?
> 
Unless preventDefault is called, the gesture recognizer can still scroll the page while trying to drag the slider.

> > Source/WebCore/html/RangeInputType.h:54
> > +    virtual void handleTouchEvent(TouchEvent*) OVERRIDE;
> 
> ok... maybe I was wrong about the OVERRIDE. :-)
Comment 7 Build Bot 2012-06-13 08:57:59 PDT
Comment on attachment 147321 [details]
Patch

Attachment 147321 [details] did not pass win-ews (win):
Output: http://queues.webkit.org/results/12945896
Comment 8 Build Bot 2012-06-13 09:04:46 PDT
Comment on attachment 147321 [details]
Patch

Attachment 147321 [details] did not pass mac-ews (mac):
Output: http://queues.webkit.org/results/12948818
Comment 9 Kevin Ellis 2012-06-13 11:13:28 PDT
Created attachment 147365 [details]
Patch

Fix to conditionally add touch support.
Comment 10 Kent Tamura 2012-06-13 21:42:42 PDT
Comment on attachment 147365 [details]
Patch

View in context: https://bugs.webkit.org/attachment.cgi?id=147365&action=review

> Source/WebCore/html/RangeInputType.cpp:156
> +    if (event->type() == eventNames().touchendEvent)
> +        return;
> +
> +    if (element()->disabled() || element()->readOnly())
> +        return;
> +
> +    TouchList* touches = event->targetTouches();
> +    if (touches->length() == 1) {
> +        Touch* touch = touches->item(0);
> +        SliderThumbElement* thumb = sliderThumbElementOf(element());
> +        thumb->setPositionFromPoint(touch->absoluteLocation());

So, we don't start dragging the thumb unlike mousedown.  Is it intentional?  Is ti compatible with synthetic mouse events?

> Source/WebCore/html/RangeInputType.cpp:158
> +        event->preventDefault();

preventDefault is not needed.
Comment 11 Kevin Ellis 2012-06-14 13:52:00 PDT
Comment on attachment 147365 [details]
Patch

View in context: https://bugs.webkit.org/attachment.cgi?id=147365&action=review

>> Source/WebCore/html/RangeInputType.cpp:156
>> +        thumb->setPositionFromPoint(touch->absoluteLocation());
> 
> So, we don't start dragging the thumb unlike mousedown.  Is it intentional?  Is ti compatible with synthetic mouse events?

Yes, not triggering drag on the thumb element is deliberate.  For mouse handling, there is extra work to be done to start and stop mouse capture on the thumb element.  For touch events, subsequent moves are delivered to the same target as the touch start, so no additional capture control is needed.  Handling touch moves inside of the thumb element would still require forwarding the event from the input element.  Implementing a simple snap-to directly from the range input type seemed like a reasonable solution.

>> Source/WebCore/html/RangeInputType.cpp:158
>> +        event->preventDefault();
> 
> preventDefault is not needed.

Without preventDefault, the gesture recognizer in Chrome can trigger scrolling.  Tested with and without preventDefault using a slider inside of a div with width="200%".
Comment 12 Robert Kroeger 2012-06-15 16:46:54 PDT
Comment on attachment 147365 [details]
Patch

View in context: https://bugs.webkit.org/attachment.cgi?id=147365&action=review

>>> Source/WebCore/html/RangeInputType.cpp:158
>>> +        event->preventDefault();
>> 
>> preventDefault is not needed.
> 
> Without preventDefault, the gesture recognizer in Chrome can trigger scrolling.  Tested with and without preventDefault using a slider inside of a div with width="200%".

This might be so but I concur with tkent@ that it is probably not right.

I believe that this patch is the first time that we introduce a default action on touch events that do not involve punting off to the gesture recognizer. Since there are *no* other touch default actions, setDefaultHandled probably does not have the right consequence in EventHandler::handleTouchEvent

Note how mouse events compute the boolean that is returned to the embedder: http://code.google.com/codesearch#OAMlx_jo-ck/src/third_party/WebKit/Source/WebCore/dom/MouseEvent.cpp&exact_package=chromium&q=MouseEventDispatchMediator&type=cs&l=208

where swallowEvent = event()->defaultHandled() || event()->defaultPrevented();

I think that http://code.google.com/codesearch#OAMlx_jo-ck/src/third_party/WebKit/Source/WebCore/page/EventHandler.cpp&exact_package=chromium&q=handleTouchEvent&type=cs&l=3617

needs to be altered to:

defaultPrevented = defaultPrevented || touchEvent->defaultPrevented() || touchEvent->defaultHandled();

btw: this means that defaultPrevented should be renamed to swallowEvent in EventHandler::handleTouchEvent.
Comment 13 Kevin Ellis 2012-06-18 13:26:33 PDT
Created attachment 148160 [details]
Patch
Comment 14 Kevin Ellis 2012-06-18 13:30:10 PDT
Comment on attachment 147365 [details]
Patch

View in context: https://bugs.webkit.org/attachment.cgi?id=147365&action=review

>>>> Source/WebCore/html/RangeInputType.cpp:158
>>>> +        event->preventDefault();
>>> 
>>> preventDefault is not needed.
>> 
>> Without preventDefault, the gesture recognizer in Chrome can trigger scrolling.  Tested with and without preventDefault using a slider inside of a div with width="200%".
> 
> This might be so but I concur with tkent@ that it is probably not right.
> 
> I believe that this patch is the first time that we introduce a default action on touch events that do not involve punting off to the gesture recognizer. Since there are *no* other touch default actions, setDefaultHandled probably does not have the right consequence in EventHandler::handleTouchEvent
> 
> Note how mouse events compute the boolean that is returned to the embedder: http://code.google.com/codesearch#OAMlx_jo-ck/src/third_party/WebKit/Source/WebCore/dom/MouseEvent.cpp&exact_package=chromium&q=MouseEventDispatchMediator&type=cs&l=208
> 
> where swallowEvent = event()->defaultHandled() || event()->defaultPrevented();
> 
> I think that http://code.google.com/codesearch#OAMlx_jo-ck/src/third_party/WebKit/Source/WebCore/page/EventHandler.cpp&exact_package=chromium&q=handleTouchEvent&type=cs&l=3617
> 
> needs to be altered to:
> 
> defaultPrevented = defaultPrevented || touchEvent->defaultPrevented() || touchEvent->defaultHandled();
> 
> btw: this means that defaultPrevented should be renamed to swallowEvent in EventHandler::handleTouchEvent.

Confirmed that preventDefault is no longer needed with Rob's patch.  Removed.
Comment 15 Robert Kroeger 2012-06-18 14:11:09 PDT
Comment on attachment 148160 [details]
Patch

View in context: https://bugs.webkit.org/attachment.cgi?id=148160&action=review

> LayoutTests/fast/events/touch/script-tests/touch-slider.js:6
> +slider.style.height = "30px";

please add a test where the slider is CSS transformed (scale, rotation) to be sure that things work correctly.
Comment 16 Robert Kroeger 2012-06-18 14:11:54 PDT
fwiw: this looks reasonable to me. Just add an additional test.
Comment 17 Kent Tamura 2012-06-18 17:52:53 PDT
Comment on attachment 148160 [details]
Patch

View in context: https://bugs.webkit.org/attachment.cgi?id=148160&action=review

Changes in WebCore/html/ looks ok.
I'm not sure WebCore/dom/ changes.

> LayoutTests/fast/events/touch/script-tests/touch-slider.js:63
> +    eventSender.addTouchPoint(x + w/2, y);
> +    eventSender.touchStart();
> +
> +    eventSender.updateTouchPoint(0, x, y);
> +    eventSender.touchMove();
> +
> +    eventSender.updateTouchPoint(0, x + w, y);
> +    eventSender.touchMove();
> +
> +    eventSender.updateTouchPoint(0, x + w/2, y);

Let's move y position too.
Comment 18 Kevin Ellis 2012-06-19 11:33:54 PDT
Created attachment 148371 [details]
Patch
Comment 19 Kevin Ellis 2012-06-19 11:35:58 PDT
Comment on attachment 148160 [details]
Patch

View in context: https://bugs.webkit.org/attachment.cgi?id=148160&action=review

>> LayoutTests/fast/events/touch/script-tests/touch-slider.js:6
>> +slider.style.height = "30px";
> 
> please add a test where the slider is CSS transformed (scale, rotation) to be sure that things work correctly.

Added rotated slider and slider with "-webkit-appearance: slider-vertical".

>> LayoutTests/fast/events/touch/script-tests/touch-slider.js:63
>> +    eventSender.updateTouchPoint(0, x + w/2, y);
> 
> Let's move y position too.

Done
Comment 20 Ben Murdoch 2012-06-25 07:21:56 PDT
Comment on attachment 148371 [details]
Patch

View in context: https://bugs.webkit.org/attachment.cgi?id=148371&action=review

> Source/WebCore/html/RangeInputType.cpp:146
> +    if (event->type() == eventNames().touchendEvent)

should we also set default handled in this case?
Comment 21 Robert Kroeger 2012-06-25 07:33:08 PDT
Comment on attachment 148371 [details]
Patch

View in context: https://bugs.webkit.org/attachment.cgi?id=148371&action=review

>> Source/WebCore/html/RangeInputType.cpp:146
>> +    if (event->type() == eventNames().touchendEvent)
> 
> should we also set default handled in this case?

good catch. This makes sense.
Comment 22 Kevin Ellis 2012-06-26 08:47:57 PDT
Created attachment 149538 [details]
Patch
Comment 23 Kevin Ellis 2012-06-26 08:49:03 PDT
Comment on attachment 148371 [details]
Patch

View in context: https://bugs.webkit.org/attachment.cgi?id=148371&action=review

>>> Source/WebCore/html/RangeInputType.cpp:146
>>> +    if (event->type() == eventNames().touchendEvent)
>> 
>> should we also set default handled in this case?
> 
> good catch. This makes sense.

Done.
Comment 24 Adam Barth 2012-06-26 10:58:00 PDT
Comment on attachment 149538 [details]
Patch

View in context: https://bugs.webkit.org/attachment.cgi?id=149538&action=review

> Source/WebCore/dom/Touch.cpp:74
> +    float scaleFactor = frame->pageZoomFactor() * frame->frameScaleFactor();
> +    float x = pageX * scaleFactor;
> +    float y = pageY * scaleFactor;

I'm not sure whether this is the right idiom.  Should we be using FrameView::mapFromCSSToLayoutUnits instead?
Comment 25 Adam Barth 2012-06-26 10:58:40 PDT
@tkent: Are you interested in reviewing this patch?
Comment 26 Antonio Gomes 2012-06-26 13:03:58 PDT
some questions: does chromium dor android do any touch-to-mouse conversion?

In the way we did for the BlackBerry port, in the case of a input slide, the touch move event is not handled, but the mouse move event converted from the touch move is

It was basically one-line of code (to be upstreamed):

270 void SliderThumbElement::defaultEventHandler(Event* event)
271 {
272     if (!event->isMouseEvent()) {
273         HTMLDivElement::defaultEventHandler(event);
274         return;
275     }
...
292     // mouse events.
293     if (eventType == eventNames().mousedownEvent && isLeftButton) {
294         startDragging();
295         return;
296     } else if (eventType == eventNames().mouseupEvent && isLeftButton) {
297         stopDragging();
298         return;
299     } else if (eventType == eventNames().mousemoveEvent) {
300         if (m_inDragMode)
301             setPositionFromPoint(mouseEvent->absoluteLocation());
302 #if PLATFORM(BLACKBERRY)
303         // On Playbook ENABLE(DRAG_SUPPORT) is false, so consume event here
304         event->setDefaultHandled();
305 #endif
306         return;
Comment 27 Kevin Ellis 2012-06-26 13:18:55 PDT
(In reply to comment #26)
> some questions: does chromium dor android do any touch-to-mouse conversion?
> 
> In the way we did for the BlackBerry port, in the case of a input slide, the touch move event is not handled, but the mouse move event converted from the touch move is
> 
> It was basically one-line of code (to be upstreamed):
> 
> 270 void SliderThumbElement::defaultEventHandler(Event* event)
> 271 {
> 272     if (!event->isMouseEvent()) {
> 273         HTMLDivElement::defaultEventHandler(event);
> 274         return;
> 275     }
> ...
> 292     // mouse events.
> 293     if (eventType == eventNames().mousedownEvent && isLeftButton) {
> 294         startDragging();
> 295         return;
> 296     } else if (eventType == eventNames().mouseupEvent && isLeftButton) {
> 297         stopDragging();
> 298         return;
> 299     } else if (eventType == eventNames().mousemoveEvent) {
> 300         if (m_inDragMode)
> 301             setPositionFromPoint(mouseEvent->absoluteLocation());
> 302 #if PLATFORM(BLACKBERRY)
> 303         // On Playbook ENABLE(DRAG_SUPPORT) is false, so consume event here
> 304         event->setDefaultHandled();
> 305 #endif
> 306         return;

In Chromium, only tap and scroll gestures are converted to synthetic mouse events.  For the input slider, no synthetic mouse events are generated for a drag operation.
Comment 28 Antonio Gomes 2012-06-26 13:29:41 PDT
(In reply to comment #27)
> (In reply to comment #26)
> > some questions: does chromium dor android do any touch-to-mouse conversion?
> > 
> > In the way we did for the BlackBerry port, in the case of a input slide, > 
> In Chromium, only tap and scroll gestures are converted to synthetic mouse events.  For the input slider, no synthetic mouse events are generated for a drag operation.

Ok, for BlackBerry that could also need some other bits to be plumbed in to make use of it

4027 bool WebPage::touchEvent(const Platform::TouchEvent& event)
4028 {
...
4086     bool handled = false;
4087 
4088     if (d->m_needTouchEvents && !event.hasGesture(Platform::Gesture::Injected))
4089         handled = d->m_mainFrame->eventHandler()->handleTouchEvent(PlatformTouchEvent(&tEvent))

the first condition in the IF allows us to skip submitting Touch events to WebCore if there is not touch listeners attached to the page.

See also Document.cpp

4040 void Document::addListenerTypeIfNeeded(const AtomicString& eventType)
4041 {
...
4068 #if ENABLE(TOUCH_EVENTS)
4069     else if (eventType == eventNames().touchstartEvent
4070              || eventType == eventNames().touchmoveEvent
4071              || eventType == eventNames().touchendEvent
4072              || eventType == eventNames().touchcancelEvent) {
4073         addListenerType(TOUCH_LISTENER);
4074         if (Page* page = this->page())
4075             page->chrome()->client()->needTouchEvents(true);
4076     }
4077 #endif
Comment 29 Kevin Ellis 2012-06-29 06:52:01 PDT
Created attachment 150168 [details]
Patch
Comment 30 Kevin Ellis 2012-06-29 07:05:51 PDT
Comment on attachment 149538 [details]
Patch

View in context: https://bugs.webkit.org/attachment.cgi?id=149538&action=review

>> Source/WebCore/dom/Touch.cpp:74
>> +    float y = pageY * scaleFactor;
> 
> I'm not sure whether this is the right idiom.  Should we be using FrameView::mapFromCSSToLayoutUnits instead?

Consistent with approach used in MouseReleatedEvent.cpp and EventHandler.cpp for handling scaling.
Comment 31 Kevin Ellis 2012-06-29 07:08:03 PDT
(In reply to comment #28)
> (In reply to comment #27)
> > (In reply to comment #26)
> > > some questions: does chromium dor android do any touch-to-mouse conversion?
> > > 
> > > In the way we did for the BlackBerry port, in the case of a input slide, > 
> > In Chromium, only tap and scroll gestures are converted to synthetic mouse events.  For the input slider, no synthetic mouse events are generated for a drag operation.
> 
> Ok, for BlackBerry that could also need some other bits to be plumbed in to make use of it
> 
> 4027 bool WebPage::touchEvent(const Platform::TouchEvent& event)
> 4028 {
> ...
> 4086     bool handled = false;
> 4087 
> 4088     if (d->m_needTouchEvents && !event.hasGesture(Platform::Gesture::Injected))
> 4089         handled = d->m_mainFrame->eventHandler()->handleTouchEvent(PlatformTouchEvent(&tEvent))
> 
> the first condition in the IF allows us to skip submitting Touch events to WebCore if there is not touch listeners attached to the page.
> 
> See also Document.cpp
> 
> 4040 void Document::addListenerTypeIfNeeded(const AtomicString& eventType)
> 4041 {
> ...
> 4068 #if ENABLE(TOUCH_EVENTS)
> 4069     else if (eventType == eventNames().touchstartEvent
> 4070              || eventType == eventNames().touchmoveEvent
> 4071              || eventType == eventNames().touchendEvent
> 4072              || eventType == eventNames().touchcancelEvent) {
> 4073         addListenerType(TOUCH_LISTENER);
> 4074         if (Page* page = this->page())
> 4075             page->chrome()->client()->needTouchEvents(true);
> 4076     }
> 4077 #endif

Added mechanism to add/remove the touch handler.
Comment 32 Build Bot 2012-06-29 07:14:59 PDT
Comment on attachment 150168 [details]
Patch

Attachment 150168 [details] did not pass win-ews (win):
Output: http://queues.webkit.org/results/13117314
Comment 33 Kevin Ellis 2012-06-29 07:27:54 PDT
Created attachment 150172 [details]
Patch
Comment 34 Antonio Gomes 2012-07-09 08:17:05 PDT
I think the patch looks fine, but I would like a way to opt-out it (maybe a USE macro is an overkill?), so BlackBerry port have time to adjust to the implications of this change.

I.e., we will certainly make use of it, and it will save us lots of special cases we handle, but as is it will break other cases.

Does it sound reasonable?
Comment 35 Antonio Gomes 2012-07-09 09:15:22 PDT
Comment on attachment 150172 [details]
Patch

View in context: https://bugs.webkit.org/attachment.cgi?id=150172&action=review

> Source/WebCore/html/InputType.cpp:887
> +bool InputType::hasTouchEventHandler()
> +{
> +    return false;
> +}
> +#endif

const

> Source/WebCore/html/RangeInputType.h:56
> +    virtual bool hasTouchEventHandler() OVERRIDE;

const
Comment 36 Antonio Gomes 2012-07-09 09:16:32 PDT
(In reply to comment #34)
> I think the patch looks fine, but I would like a way to opt-out it (maybe a USE macro is an overkill?), so BlackBerry port have time to adjust to the implications of this change.
> 
> I.e., we will certainly make use of it, and it will save us lots of special cases we handle, but as is it will break other cases.
> 
> Does it sound reasonable?

At this point, my main concern is about media (video and audio) timeline elements working with it...
Comment 37 Kevin Ellis 2012-07-09 14:15:28 PDT
Created attachment 151317 [details]
Patch
Comment 38 Kevin Ellis 2012-07-09 14:18:23 PDT
Comment on attachment 150172 [details]
Patch

View in context: https://bugs.webkit.org/attachment.cgi?id=150172&action=review

>> Source/WebCore/html/InputType.cpp:887
>> +#endif
> 
> const

Done.

>> Source/WebCore/html/RangeInputType.h:56
>> +    virtual bool hasTouchEventHandler() OVERRIDE;
> 
> const

Done.
Comment 39 Kevin Ellis 2012-07-09 14:40:35 PDT
(In reply to comment #36)
> (In reply to comment #34)
> > I think the patch looks fine, but I would like a way to opt-out it (maybe a USE macro is an overkill?), so BlackBerry port have time to adjust to the implications of this change.
> > 
> > I.e., we will certainly make use of it, and it will save us lots of special cases we handle, but as is it will break other cases.
> > 
> > Does it sound reasonable?
> 
> At this point, my main concern is about media (video and audio) timeline elements working with it...

Added ENABLE(TOUCH_SLIDER) for conditional support.  Currently enabled for Chromium only.  

Tested on video and audio tags, and fix for <input type="range"> works for the other tags as well.
Comment 40 Antonio Gomes 2012-07-10 06:55:49 PDT
Comment on attachment 151317 [details]
Patch

thanks!
Comment 41 Kevin Ellis 2012-07-10 09:59:27 PDT
Created attachment 151473 [details]
Patch
Comment 42 Kevin Ellis 2012-07-10 10:01:00 PDT
Added conditional expectations.  Tests are expected to fail unless ENABLE_TOUCH_SLIDER is set, which is currently only enabled for Chromium.
Comment 43 WebKit Review Bot 2012-07-10 14:08:11 PDT
Comment on attachment 151473 [details]
Patch

Rejecting attachment 151473 [details] from commit-queue.

Failed to run "['/mnt/git/webkit-commit-queue/Tools/Scripts/webkit-patch', '--status-host=queues.webkit.org', '-..." exit_code: 2

Last 500 characters of output:
t/git/webkit-commit-queue/Source/WebKit/chromium/v8 --revision 11988 --non-interactive --force --accept theirs-conflict --ignore-externals' in '/mnt/git/webkit-commit-queue/Source/WebKit/chromium'
47>At revision 11988.

________ running '/usr/bin/python tools/clang/scripts/update.py --mac-only' in '/mnt/git/webkit-commit-queue/Source/WebKit/chromium'

________ running '/usr/bin/python gyp_webkit' in '/mnt/git/webkit-commit-queue/Source/WebKit/chromium'
Updating webkit projects from gyp files...

Full output: http://queues.webkit.org/results/13198090
Comment 44 Adam Barth 2012-07-10 14:11:04 PDT
    The following ChangeLog files contain OOPS:

        trunk/LayoutTests/ChangeLog
        trunk/Source/WebCore/ChangeLog
        trunk/Source/WebKit/chromium/ChangeLog
Comment 45 Kevin Ellis 2012-07-10 15:01:31 PDT
Created attachment 151533 [details]
Patch
Comment 46 WebKit Review Bot 2012-07-10 18:48:18 PDT
Comment on attachment 151533 [details]
Patch

Clearing flags on attachment: 151533

Committed r122286: <http://trac.webkit.org/changeset/122286>
Comment 47 WebKit Review Bot 2012-07-10 18:48:29 PDT
All reviewed patches have been landed.  Closing bug.
Comment 48 Adam Barth 2012-07-27 01:13:36 PDT
Comment on attachment 148371 [details]
Patch

Cleared review? from obsolete attachment 148371 [details] so that this bug does not appear in http://webkit.org/pending-review.  If you would like this patch reviewed, please attach it to a new bug (or re-open this bug before marking it for review again).
Comment 49 Adam Barth 2012-07-27 01:13:54 PDT
Comment on attachment 149538 [details]
Patch

Cleared review? from obsolete attachment 149538 [details] so that this bug does not appear in http://webkit.org/pending-review.  If you would like this patch reviewed, please attach it to a new bug (or re-open this bug before marking it for review again).
Comment 50 Adam Barth 2012-07-27 01:14:33 PDT
Comment on attachment 150172 [details]
Patch

Cleared review? from obsolete attachment 150172 [details] so that this bug does not appear in http://webkit.org/pending-review.  If you would like this patch reviewed, please attach it to a new bug (or re-open this bug before marking it for review again).