Bug 147047

Summary: [iOS] Menu drop down such as on nike.com does not stay
Product: WebKit Reporter: zalan <zalan>
Component: Layout and RenderingAssignee: zalan <zalan>
Status: REOPENED ---    
Severity: Normal CC: benjamin, commit-queue, simon.fraser
Priority: P2 Keywords: InRadar
Version: 528+ (Nightly build)   
Hardware: Unspecified   
OS: Unspecified   
Bug Depends on: 147839    
Bug Blocks:    
Attachments:
Description Flags
Patch
none
Patch
none
Patch none

Description zalan 2015-07-17 13:54:40 PDT
1. Navigate to nike.com
2. Tap on the top menu bar: Men, Women, Boys etc..
3. The pull down menu does not stay.
Comment 1 zalan 2015-07-17 13:55:12 PDT
rdar://problem/21046961
Comment 2 zalan 2015-07-17 19:17:42 PDT
Created attachment 257014 [details]
Patch
Comment 3 zalan 2015-07-17 19:18:26 PDT
Created attachment 257015 [details]
Patch
Comment 4 Simon Fraser (smfr) 2015-07-17 20:13:02 PDT
Comment on attachment 257015 [details]
Patch

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

> Source/WebKit2/UIProcess/API/Cocoa/WKWebView.mm:969
> +            if (!oldUnobscuredContentRect.isEmpty() && oldUnobscuredContentRect.y() < 1) {

oldUnobscuredContentRect.y() < 1 is true for RTL pages. Please test one.
Comment 5 zalan 2015-07-18 21:33:40 PDT
(In reply to comment #4)
> Comment on attachment 257015 [details]
> Patch
> 
> View in context:
> https://bugs.webkit.org/attachment.cgi?id=257015&action=review
> 
> > Source/WebKit2/UIProcess/API/Cocoa/WKWebView.mm:969
> > +            if (!oldUnobscuredContentRect.isEmpty() && oldUnobscuredContentRect.y() < 1) {
> 
> oldUnobscuredContentRect.y() < 1 is true for RTL pages. Please test one.

Works fine on nike.com with body dir=rtl
Comment 6 Benjamin Poulain 2015-07-20 13:11:40 PDT
Comment on attachment 257015 [details]
Patch

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

> Source/WebKit2/UIProcess/API/Cocoa/WKWebView.mm:967
> +            // FIXME: We need to support programmatic scroll-after-viewport update.

I think this is no longer true. In RemoteLayerTreeDrawingAreaProxy::commitLayerTree(), didCommitLayerTree() is before requestScroll().

> Source/WebKit2/UIProcess/API/Cocoa/WKWebView.mm:974
> +                [_scrollView zoomToRect: { newTopLeft, rectToZoomSize } animated:NO];

Can you double check that the zoom rect used here does not depend on the ContentInset of UIScrollView?

Here we are only using the bounds.
Comment 7 zalan 2015-07-21 14:20:56 PDT
Created attachment 257202 [details]
Patch
Comment 8 zalan 2015-07-21 14:21:34 PDT
(In reply to comment #6)
> Comment on attachment 257015 [details]
> Patch
> 
> View in context:
> https://bugs.webkit.org/attachment.cgi?id=257015&action=review
> 
> > Source/WebKit2/UIProcess/API/Cocoa/WKWebView.mm:967
> > +            // FIXME: We need to support programmatic scroll-after-viewport update.
> 
> I think this is no longer true. In
> RemoteLayerTreeDrawingAreaProxy::commitLayerTree(), didCommitLayerTree() is
> before requestScroll().
> 
> > Source/WebKit2/UIProcess/API/Cocoa/WKWebView.mm:974
> > +                [_scrollView zoomToRect: { newTopLeft, rectToZoomSize } animated:NO];
> 
> Can you double check that the zoom rect used here does not depend on the
> ContentInset of UIScrollView?
> 
> Here we are only using the bounds.
Tested with landscape mode with the sidebar open.
Comment 9 WebKit Commit Bot 2015-07-21 15:37:16 PDT
Comment on attachment 257202 [details]
Patch

Clearing flags on attachment: 257202

Committed r187131: <http://trac.webkit.org/changeset/187131>
Comment 10 WebKit Commit Bot 2015-07-21 15:37:19 PDT
All reviewed patches have been landed.  Closing bug.
Comment 11 WebKit Commit Bot 2015-08-10 13:32:47 PDT
Re-opened since this is blocked by bug 147839