[Webkit-unassigned] [Bug 200003] New pages don't account for device orientation.
bugzilla-daemon at webkit.org
bugzilla-daemon at webkit.org
Mon Jul 22 13:40:11 PDT 2019
https://bugs.webkit.org/show_bug.cgi?id=200003
--- Comment #6 from Alfred <zienag at gmail.com> ---
Comment on attachment 374607
--> https://bugs.webkit.org/attachment.cgi?id=374607
Save viewport size in dynamicViewportSizeUpdate
View in context: https://bugs.webkit.org/attachment.cgi?id=374607&action=review
>> Source/WebKit/ChangeLog:3
>> + New pages don't account for device orientation.
>
> "deviceOrientation" is one of the /other/ parameters to dynamicViewportSizeUpdate, so this title is quite confusing; this is really about the layout size
Yes, you are right, it is confusing from implementation point of view, but from user's perspective this is what actually happens.
I tried to name the bug from the user's perspective, but I didn't know that bug title should be included in changelog file. Do you think that I should rename title to something like "New pages don't account for layout size after rotation"?
>> Source/WebKit/ChangeLog:13
>> + if it is not changed. So, it is blocking new updates to pass to
>
> _lastSentViewLayoutSize is reset upon process swap or crash, so I don't quite get this part
(1) One of the possible workarounds is to trigger layout size update just after rotation via `_overrideLayoutParametersWithMinimumLayoutSize:maximumUnobscuredSizeOverride:` -> `_setViewLayoutSizeOverride` -> `_dispatchSetViewLayoutSize` -> `setViewportConfigurationViewLayoutSize`, but it early exits in `_dispatchSetViewLayoutSize` because `_lastSentViewLayoutSize` didn't change. Of course, it will reset when actual process swap occurs, but new page will be created with wrong values at this point.
(2) In `_didCompleteAnimatedResize` there is call to `_dispatchSetViewLayoutSize`, but it wrapped in `newViewLayoutSize != _lastSentViewLayoutSize.value()` condition.
>> Source/WebKit/UIProcess/ios/WebPageProxyIOS.mm:298
>> + m_viewportConfigurationViewLayoutSize = viewLayoutSize;
>
> It seems surprising that we'd only need to save one of the parameters (what happens to e.g. maximumUnobscuredSize?). I wonder if it's missing from elsewhere instead of needing to be added here?
Firstly I tried to save `maximumUnobscuredSize` also, but I couldn't observe any effect off this. Unfortunately, I din't figure out a way how to initialize new page with correct knowledge about unobscured size/obscured insets yet, so now it initializes with default zero values (You can observe this by rotating to landscape and navigating to webpage from favorites on iPhone X).
--
You are receiving this mail because:
You are the assignee for the bug.
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.webkit.org/pipermail/webkit-unassigned/attachments/20190722/cc576d7f/attachment.html>
More information about the webkit-unassigned
mailing list