RESOLVED FIXED 66514
[Qt] editing/selection/caret-at-bidi-boundary.html fails
https://bugs.webkit.org/show_bug.cgi?id=66514
Summary [Qt] editing/selection/caret-at-bidi-boundary.html fails
Ryosuke Niwa
Reported 2011-08-18 17:00:54 PDT
The test added by http://trac.webkit.org/changeset/93369 is failing on Qt. Unfortunately, I can't see the diff on http://build.webkit.org/results/Qt%20Linux%20Release/r93369%20(36616)/results.html. Could either one of you run the test locally tell me what the diff is?
Attachments
Patch (1.12 KB, patch)
2012-10-08 14:27 PDT, Tullio Lucena
no flags
Csaba Osztrogonác
Comment 1 2011-08-19 01:42:18 PDT
Because this test times out.
Csaba Osztrogonác
Comment 2 2011-08-19 01:43:19 PDT
Zoltan Horvath
Comment 3 2011-08-19 04:38:30 PDT
Ryosuke Niwa
Comment 4 2011-08-19 09:50:53 PDT
Also see the bug 66551.
Ryosuke Niwa
Comment 5 2011-08-19 09:52:54 PDT
Does the test still time out if you commented out all but the first dt and dd?
Ryosuke Niwa
Comment 6 2011-08-19 18:49:20 PDT
Ah, so this is caused by Qt's DRT actually sleeping for the amount of time leapForward is called upon. This is not how other ports implement leapForward (except Windows port which apparently has the same behavior). The point of leapForward is so that you can call it as many time as you want with any delay as you wish without actually delaying or sleeping DRT.
Martin Robinson
Comment 8 2011-08-21 09:56:44 PDT
(In reply to comment #6) > Ah, so this is caused by Qt's DRT actually sleeping for the amount of time leapForward is called upon. This is not how other ports implement leapForward (except Windows port which apparently has the same behavior). The point of leapForward is so that you can call it as many time as you want with any delay as you wish without actually delaying or sleeping DRT. I tried in vain to remove the actual sleep from the GTK+ DRT. GTK+ internals didn't allow it though -- it broke drag and drop completely. Does this test really need to leap forward one entire second for each loop iteration? Why not just reduce the amount of time for now, since fixing all of these platforms is non-trivial?
Ryosuke Niwa
Comment 9 2011-08-21 12:16:03 PDT
(In reply to comment #8) > I tried in vain to remove the actual sleep from the GTK+ DRT. GTK+ internals didn't allow it though -- it broke drag and drop completely. Does this test really need to leap forward one entire second for each loop iteration? Why not just reduce the amount of time for now, since fixing all of these platforms is non-trivial? So if I reduce the amount of time, to say 100ms, then the test still time outs because my test clicks on every pixel on a text run to verify that the caret is placed on the correct location for several test cases. Even if the text was only 50 pixels long, it'll take 5 seconds at minimum. On the other hand, if I reduce the waiting time too much (even 100ms is too small), then DRT thinks I'm double/triple clicking and fail. We might be able to get away with this problem if we had a way to clear click count in EventHandler.
Martin Robinson
Comment 10 2011-08-22 08:43:10 PDT
(In reply to comment #9) > We might be able to get away with this problem if we had a way to clear click count in EventHandler. Another possible solution to avoid leaping forward is to click once at enough distance from the original clicks to reset the internal click counter. This is at least how Windows and GTK+ work. I'm not sure about Mac, Qt and Chromium.
Ryosuke Niwa
Comment 11 2011-08-22 11:02:54 PDT
(In reply to comment #10) > (In reply to comment #9) > > > We might be able to get away with this problem if we had a way to clear click count in EventHandler. > > Another possible solution to avoid leaping forward is to click once at enough distance from the original clicks to reset the internal click counter. This is at least how Windows and GTK+ work. I'm not sure about Mac, Qt and Chromium. That IS an brilliant idea! It works on Windows at least. Let me make a patch.
Martin Robinson
Comment 12 2011-08-22 11:12:39 PDT
(In reply to comment #11) > That IS an brilliant idea! It works on Windows at least. Let me make a patch. I think a long term solution might be to have some EventSender hooks for sending a specific number of clicks. Something like eventSender.doubleClick or eventSender.click(2). That way if there are platform-specific ways to enforce click counts, we can push that to port code.
Ryosuke Niwa
Comment 13 2011-08-22 11:46:38 PDT
(In reply to comment #12) > (In reply to comment #11) > > > That IS an brilliant idea! It works on Windows at least. Let me make a patch. > > I think a long term solution might be to have some EventSender hooks for sending a specific number of clicks. Something like eventSender.doubleClick or eventSender.click(2). That way if there are platform-specific ways to enforce click counts, we can push that to port code. I uploaded a patch on the bug 66551 per your suggestion.
Ryosuke Niwa
Comment 14 2011-08-22 15:03:26 PDT
Apparently, there's some Qt-specific bug here. Skipped again in http://trac.webkit.org/changeset/93549.
Rafael Brandao
Comment 15 2012-01-24 14:31:34 PST
Jesus patch for bug #76821 seems to fix this one. Marking this bug as dependent of it.
Balazs Kelemen
Comment 16 2012-01-26 07:22:06 PST
Tullio Lucena
Comment 17 2012-10-08 14:27:45 PDT
Created attachment 167608 [details] Patch Unskipping test. The changes in testfonts solved this bug.
Yuta Kitamura
Comment 18 2012-10-09 01:57:13 PDT
Comment on attachment 167608 [details] Patch OK.
WebKit Review Bot
Comment 19 2012-10-09 02:04:47 PDT
Comment on attachment 167608 [details] Patch Clearing flags on attachment: 167608 Committed r130740: <http://trac.webkit.org/changeset/130740>
WebKit Review Bot
Comment 20 2012-10-09 02:04:52 PDT
All reviewed patches have been landed. Closing bug.
Note You need to log in before you can comment on or make changes to this bug.