Bug 99756
| Summary: | [Qt] fast/events/touch/touch-slider.html is failing | ||
|---|---|---|---|
| Product: | WebKit | Reporter: | Tony Chang <tony> |
| Component: | Tools / Tests | Assignee: | Nobody <webkit-unassigned> |
| Status: | RESOLVED INVALID | ||
| Severity: | Normal | CC: | allan.jensen, hausmann, rjkroege |
| Priority: | P2 | ||
| Version: | 528+ (Nightly build) | ||
| Hardware: | Unspecified | ||
| OS: | Unspecified | ||
Tony Chang
This started happening after I rewrote RenderSlider to use new flexbox. After debugging, this is due to a difference between how Chromium and Qt handle eventSender.touch* events.
The problem is that on Qt, calling a eventSender.touch* doesn't send a layout. This matters for fast/events/touch/touch-slider.html because the position of the thumb is set during layout. If I add document.body.offsetLeft between calls to eventSender.touch*, the test passes.
In Chromium's DRT, we explicitly do a layout before sending the touch event (see bug 49285). Should we do the same for Qt?
Note that Chromium and Qt are the only ports that have touch events enabled.
| Attachments | ||
|---|---|---|
| Add attachment proposed patch, testcase, etc. |
Simon Hausmann
(In reply to comment #0)
> This started happening after I rewrote RenderSlider to use new flexbox. After debugging, this is due to a difference between how Chromium and Qt handle eventSender.touch* events.
>
> The problem is that on Qt, calling a eventSender.touch* doesn't send a layout. This matters for fast/events/touch/touch-slider.html because the position of the thumb is set during layout. If I add document.body.offsetLeft between calls to eventSender.touch*, the test passes.
>
> In Chromium's DRT, we explicitly do a layout before sending the touch event (see bug 49285). Should we do the same for Qt?
Sounds like a good idea. Does this belong into the DRT or into cross-platform WebKit code? Where is it handled in Chromium?
Tony Chang
(In reply to comment #1)
> Does this belong into the DRT or into cross-platform WebKit code? Where is it handled in Chromium?
I think for DRT, this needs to happen in port specific code because ports don't share EventSender implementations.
For WTR, it might be possible to put layout calls in InjectedBundle/EventSendingController.cpp.
Here's the code in Chromium's DRT:
http://trac.webkit.org/browser/trunk/Tools/DumpRenderTree/chromium/TestRunner/src/EventSender.cpp#L1006
Jocelyn Turcotte
=== Bulk closing of Qt bugs ===
If you believe that this bug report is still relevant for a non-Qt port of webkit.org, please re-open it and remove [Qt] from the summary.
If you believe that this is still an important QtWebKit bug, please fill a new report at https://bugreports.qt-project.org and add a link to this issue. See http://qt-project.org/wiki/ReportingBugsInQt for additional guidelines.