RESOLVED FIXED 132239
REGRESSION (r164702): Double tap doesn't stay under the new element once the animation finishes
https://bugs.webkit.org/show_bug.cgi?id=132239
Summary REGRESSION (r164702): Double tap doesn't stay under the new element once the ...
Tim Horton
Reported 2014-04-27 15:20:23 PDT
The early return added to WebPage::scalePage is wrong because the origin can be different (and it only checks the scale), and also because it doesn't consult the PluginView's page scale. <rdar://problem/16192842>
Attachments
patch (1.99 KB, patch)
2014-04-27 15:24 PDT, Tim Horton
sam: review+
followup (2.34 KB, patch)
2014-04-27 20:54 PDT, Tim Horton
darin: review+
Tim Horton
Comment 1 2014-04-27 15:24:23 PDT
Tim Horton
Comment 2 2014-04-27 15:48:31 PDT
Benjamin Poulain
Comment 3 2014-04-27 18:44:31 PDT
This fixes OS X but breaks iOS. :(
Benjamin Poulain
Comment 4 2014-04-27 18:54:08 PDT
Ok, this breaks animated resize and the initial scale logic on iOS. The patch is okay for OS X, we should split this for iOS IMHO.
Tim Horton
Comment 5 2014-04-27 19:34:33 PDT
(In reply to comment #4) > Ok, this breaks animated resize and the initial scale logic on iOS. > > The patch is okay for OS X, we should split this for iOS IMHO. What kind of split are you proposing? Also, does iOS just disregard the origin parameter? Do we need to just additionally not do the dynamic size update/scaleFactorWasSetFromUIProcess bits if the scale doesn't change?
Benjamin Poulain
Comment 6 2014-04-27 20:00:47 PDT
(In reply to comment #5) > (In reply to comment #4) > > Ok, this breaks animated resize and the initial scale logic on iOS. > > > > The patch is okay for OS X, we should split this for iOS IMHO. > > What kind of split are you proposing? See https://bugs.webkit.org/show_bug.cgi?id=126022 It looks like WebPage::scalePage() and Page::setPageScaleFactor() do not work well when the scroll position is not handled by the ScrollView. > Also, does iOS just disregard the origin parameter? Yep, iOS uses delegateScrolling(), and Page::setPageScaleFactor() must ignore the scroll position or we will re-enter WebPage. Simon fixed that a while ago. > Do we need to just additionally not do the dynamic size update/scaleFactorWasSetFromUIProcess bits if the scale doesn't change? Yep, short term we should do that to unbreak iOS. Longer term we should look into having a single coherent path for setting the scroll position from WebCore, in the same way that we have the coherent path for scale+scroll update from the UIProcess.
Tim Horton
Comment 7 2014-04-27 20:48:04 PDT
(In reply to comment #6) > (In reply to comment #5) > > (In reply to comment #4) > > > Ok, this breaks animated resize and the initial scale logic on iOS. > > > > > > The patch is okay for OS X, we should split this for iOS IMHO. > > > > What kind of split are you proposing? > > See https://bugs.webkit.org/show_bug.cgi?id=126022 > It looks like WebPage::scalePage() and Page::setPageScaleFactor() do not work well when the scroll position is not handled by the ScrollView. Hmmpfh. Ok. > > Also, does iOS just disregard the origin parameter? > > Yep, iOS uses delegateScrolling(), and Page::setPageScaleFactor() must ignore the scroll position or we will re-enter WebPage. Simon fixed that a while ago. > > > Do we need to just additionally not do the dynamic size update/scaleFactorWasSetFromUIProcess bits if the scale doesn't change? > > Yep, short term we should do that to unbreak iOS. > Longer term we should look into having a single coherent path for setting the scroll position from WebCore, in the same way that we have the coherent path for scale+scroll update from the UIProcess. OK, I'll post a patch to just do that to unbreak iOS, for now. Reopening for that.
Tim Horton
Comment 8 2014-04-27 20:54:57 PDT
Created attachment 230277 [details] followup
Tim Horton
Comment 9 2014-04-27 21:08:13 PDT
Benjamin Poulain
Comment 10 2014-04-27 22:40:01 PDT
Thanks!
Note You need to log in before you can comment on or make changes to this bug.