New issue
Advanced search Search tips

Issue 632561 link

Starred by 3 users

Issue metadata

Status: Verified
Owner:
Closed: Aug 2016
Cc:
Components:
EstimatedDays: ----
NextAction: ----
OS: Android
Pri: 1
Type: Bug-Regression



Sign in to add a comment

Drop down menus in apps don't work after update to 52.0.2743.91 Android System WebView

Reported by eric.sau...@gmail.com, Jul 29 2016

Issue description

Steps to reproduce the problem:
1. Update to version number above
2. Log in to "War of Legions" or "Dark Summoner"
3. Observe that clicking a multi choice selection box does not display any elements to select
4. Uninstall updates, observe correct behavior

What is the expected behavior?
A scrolling box with selectable choices should appear.

What went wrong?
No choices are visible, so the component is not usable.

Did this work before? Yes Prior to last update (10 hours so)

Chrome version: 51.0.2704.81  Channel: stable
OS Version: 
Flash Version:
 

Comment 1 by tkent@chromium.org, Jul 29 2016

Components: -UI Mobile>WebView
Labels: -Type-Bug -Pri-2 Pri-1 Type-Bug-Regression

Comment 2 by boliu@chromium.org, Jul 29 2016

Did version 51 work before?
Whatever the last stable released version was, that worked. I can't easily try version 51 because Android only has the option to "uninstall all patches".

Comment 4 by boliu@chromium.org, Jul 29 2016

what device are you using?

Comment 5 by boliu@chromium.org, Jul 29 2016

Cc: amin...@google.com

Comment 6 by boliu@chromium.org, Jul 29 2016

Can you attach screenshot of where the selection box occurs in the game? Not super obvious from that description. Maybe also a screenshot of how select is broken
Behaviour occurred on two tablet devices, a Google Nexus 9, and a Samsung S900.

Here is an illustrated step-by-step example.

1) In the game "War of Legions", from the home page, select "Battle".
2) Click the dropdown that says "Formation 1".

You should see some options (see WORKING screenshot). What you get instead is the box highlighted, but no menu to select from (BROKEN screenshot).
S900_war_of_legions_2016-07-29-09-51-38_WORKING.png
3.1 MB View Download
S900_war_of_legions_2016-07-29-09-51-38_BROKEN.png
3.4 MB View Download

Comment 8 by hush@chromium.org, Jul 29 2016

Owner: hush@chromium.org
Cc: satyavat...@chromium.org
Labels: Needs-Bisect
+satyavathir@, can we repro this, and if so can we please bisect it ASAP?

Comment 10 by hush@chromium.org, Jul 29 2016

Works on my pixel c.
What's your Android version?

Comment 11 by hush@chromium.org, Jul 29 2016

Works with 52.0.2743.91 on Nexus 9, Android M.
I realise I mispoke about my hardware. The screenshots are from a SM-P900 tablet.

Here are some OS details:

Android version: 5.0.2
Model number: SM-P900
Kernel version: 3.4.39-5574008

I have repro'd this on a Google Nexus 9 as well with a different game. I can get that information and screenshots if necessary once I'm home if that is helpful.
I should add that I can toggle the behaviour reliably on both my devices, by down-revving and up-revving Android System WebView (and changing nothing else).

Comment 14 by hush@chromium.org, Jul 29 2016

OK. Can you tell me how to reproduce on Nexus 9? What game? And steps to reproduce? I don't have the samsung tablet, and even if I do, I can't debug it.
Sure. I can get a detailed repro to you tonight PST (i.e. in 7 hours or so) when I am reunited with that device.
amineer@ we are working on bisecting.

Thanks!

Comment 17 by hush@chromium.org, Jul 29 2016

Okay... I got it reproduced on an L tablet (nexus 10) with m52 webview. Looking...

Comment 18 by hush@chromium.org, Jul 29 2016

It looks like the offending change is this:

commit	b82a8a7a80fa77005f996f93f60e4f32c8882651	
author	tkent <tkent@chromium.org>	Sat May 07 03:17:59 2016
committer	Commit bot <commit-bot@chromium.org>	Sat May 07 03:20:05 2016
Do not open SELECT popup if the SELECT element is not in the viewport.

New behavior is compatible with IE and Firefox.
The main parts of this CL are:
  - HTMLSelectElement.cpp, and
  - menulist-popup-outside-viewport.html
Changes in other files are just adjustment for the new behavior.
  - ExternalPopupMenuTest.cpp: The viewport size was too small.
  - popup-menu-key-operations.html: PASS messages moved out a SELECT element
  - popup-menu-position.html: Anchor rectangle is clipped.

BUG=90515,  565760 

Review-Url: https://codereview.chromium.org/1959583002
Cr-Commit-Position: refs/heads/master@{#392240}
third_party/WebKit/LayoutTests/TestExpectations[diff]
third_party/WebKit/LayoutTests/fast/forms/select-popup/popup-menu-key-operations.html[diff]
third_party/WebKit/LayoutTests/fast/forms/select-popup/popup-menu-position.html[diff]
third_party/WebKit/LayoutTests/fast/forms/select/menulist-popup-outside-viewport.html[Added - diff]
third_party/WebKit/LayoutTests/platform/win/fast/forms/select-popup/popup-menu-position-expected.txt[diff]
third_party/WebKit/Source/core/html/HTMLSelectElement.cpp[diff]
third_party/WebKit/Source/web/ExternalPopupMenuTest.cpp[diff]

Comment 19 by hush@chromium.org, Jul 29 2016

Labels: M-52
Owner: tkent@chromium.org
Status: Assigned (was: Unconfirmed)
tkent:
I reverted the above change locally and it fixed the issue.
Somehow the code thinks the select element is not in viewport.

Comment 20 by hush@chromium.org, Jul 29 2016

Alex?
can we also add a test case for the breaking change to prevent it happening again? 

Comment 22 by hush@chromium.org, Jul 30 2016

These are the (x, y, width, height) of the rects:
 document().view()->convertToRootFrame(document().view()->boundsRect());
is  (0, 0, 321,430)
And document().view()->contentsToViewport(roundedIntRect(layoutObject()->absoluteBoundingBoxFloatRect())) is:
(398, 251, 350, 51)
tkent@, we're looking to go to stable @ 100% for Clank / WebView on Monday and this bug is breaking an Android app, so figuring out the impact of this bug is very urgent - PTAL ASAP.

1) Is there an easy fix we can apply to keep the CL but unbreak the app?
2) If not, can we revert this from M52 branch without security implication / without causing risk elsewhere?

Comment 24 Deleted

Comment 25 Deleted

DEVICE Tested : 
Nexus 10/5.1.1 tablet (LMY47V)
Bisect Information :
https://chromium.googlesource.com/chromium/src/+log/52.0.2727.0..52.0.2728.0?pretty=fuller&n=10000

52.0.2705.0 - Pass
52.0.2718.0 - Pass
52.0.2720.0 - Pass
52.0.2721.0 - App crashes on launch
52.0.2722.0 - App Crashes on launch 
52.0.2723.0 - Pass
52.0.2726.2 - Pass
52.0.2727.0 - Pass ( Last good build)
52.0.2728.0 - Fail ( First Breaking build)
52.0.2734.3 - Fail
52.0.2743.91- Fail

Labels: -Needs-Bisect
Not sure if this is still needed, but here is the Nexus 10 repro, on a different game.

Device: Google Nexus 10
Android version: 5.1.1

1) In the game "Dark Summoner", select Monsters->Sacrifice->Enhance.
2) Click the drop-down menu to the right of "Filter".

You should see some options (see WORKING screenshot). What you get instead is the box highlighted, but no menu to select from (BROKEN screenshot).
Nexus10_dark_summoner_WORKING.png
1.4 MB View Download
Nexus10_dark_summoner_BROKEN.png
2.0 MB View Download

Comment 29 by tkent@chromium.org, Jul 31 2016

Labels: ReleaseBlock-Stable
> 1) Is there an easy fix we can apply to keep the CL but unbreak the app?
> 2) If not, can we revert this from M52 branch without security implication / without causing risk elsewhere?

The CL was security-related. So we can't revert it.  However the security issue doesn't affect Android, I'll disable the behavior change of my CL by wrapping |#if OS(ANDROID)| as a short-term fix.


Anyway, does this issue affect only specific applications, or all of <select> elements?  Does it affect only tablets, not phones? Does it affect Google Chrome on Android?

Status: Started (was: Assigned)
Project Member

Comment 31 by bugdroid1@chromium.org, Aug 1 2016

The following revision refers to this bug:
  https://chromium.googlesource.com/chromium/src.git/+/ae36669618d5cb79d22efee333034ed719066f9d

commit ae36669618d5cb79d22efee333034ed719066f9d
Author: tkent <tkent@chromium.org>
Date: Mon Aug 01 03:10:44 2016

SELECT popup: Tentative fix for an issue on Android WebView.

Disable element visibility check only on Android.

BUG= 632561 

Review-Url: https://codereview.chromium.org/2201703002
Cr-Commit-Position: refs/heads/master@{#408903}

[modify] https://crrev.com/ae36669618d5cb79d22efee333034ed719066f9d/third_party/WebKit/Source/core/html/HTMLSelectElement.cpp

Labels: Merge-Request-52 Merge-Request-53
Status: Fixed (was: Started)
Can anyone verify the fix with ToT?

Comment 33 by dimu@chromium.org, Aug 1 2016

Labels: -Merge-Request-52 Merge-Review-52 Hotlist-Merge-Review
[Automated comment] Request affecting a post-stable build (M52), manual review required.

Comment 34 by dimu@chromium.org, Aug 1 2016

Labels: -Merge-Request-53 Merge-Approved-53 Hotlist-Merge-Approved
Your change meets the bar and is auto-approved for M53 (branch: 2785)

Comment 35 by dimu@chromium.org, Aug 1 2016

Labels: -Merge-Request-52 Merge-Review-52 Hotlist-Merge-Review
[Automated comment] Request affecting a post-stable build (M52), manual review required.
Labels: -Merge-Review-52 Merge-Approved-52
Merge approved for M52 branch 2743.
Could we please file a bug for the long-term fix?
Project Member

Comment 38 by bugdroid1@chromium.org, Aug 1 2016

Labels: -merge-approved-52 merge-merged-2743
The following revision refers to this bug:
  https://chromium.googlesource.com/chromium/src.git/+/e41f38c2fa6e87990c817994c1cee385af7d0dbd

commit e41f38c2fa6e87990c817994c1cee385af7d0dbd
Author: Kent Tamura <tkent@chromium.org>
Date: Mon Aug 01 03:43:38 2016

Merge "SELECT popup: Tentative fix for an issue on Android WebView." to M52.

Disable element visibility check only on Android.

BUG= 632561 

Review-Url: https://codereview.chromium.org/2201703002
Cr-Commit-Position: refs/heads/master@{#408903}
(cherry picked from commit ae36669618d5cb79d22efee333034ed719066f9d)

Review URL: https://codereview.chromium.org/2197033002 .

Cr-Commit-Position: refs/branch-heads/2743@{#717}
Cr-Branched-From: 2b3ae3b8090361f8af5a611712fc1a5ab2de53cb-refs/heads/master@{#394939}

[modify] https://crrev.com/e41f38c2fa6e87990c817994c1cee385af7d0dbd/third_party/WebKit/Source/core/html/HTMLSelectElement.cpp

Project Member

Comment 39 by bugdroid1@chromium.org, Aug 1 2016

Labels: -merge-approved-53 merge-merged-2785
The following revision refers to this bug:
  https://chromium.googlesource.com/chromium/src.git/+/44e98415580666eb6dab2140cc0b0929db7150fe

commit 44e98415580666eb6dab2140cc0b0929db7150fe
Author: Kent Tamura <tkent@chromium.org>
Date: Mon Aug 01 03:55:01 2016

Merge "SELECT popup: Tentative fix for an issue on Android WebView." to M53.

Disable element visibility check only on Android.

BUG= 632561 

Review-Url: https://codereview.chromium.org/2201703002
Cr-Commit-Position: refs/heads/master@{#408903}
(cherry picked from commit ae36669618d5cb79d22efee333034ed719066f9d)

Review URL: https://codereview.chromium.org/2197043002 .

Cr-Commit-Position: refs/branch-heads/2785@{#424}
Cr-Branched-From: 68623971be0cfc492a2cb0427d7f478e7b214c24-refs/heads/master@{#403382}

[modify] https://crrev.com/44e98415580666eb6dab2140cc0b0929db7150fe/third_party/WebKit/Source/core/html/HTMLSelectElement.cpp

Comment 40 by hush@chromium.org, Aug 1 2016

> Anyway, does this issue affect only specific applications, or all of <select> elements?  Does it affect only tablets, not phones? Does it affect Google Chrome on Android?

It affects some applications but not all <select> elements. So far I have only seen it on tablets on some webview apps. I haven't seen problems on Google Chrome on Android yet.
But I doubt this is webview specific or tablet specific.
Project Member

Comment 41 by bugdroid1@chromium.org, Aug 1 2016

Labels: merge-merged-2743_91
The following revision refers to this bug:
  https://chromium.googlesource.com/chromium/src.git/+/6e67e3c2f1021ad1a52fc23f79a7e8f9034a485b

commit 6e67e3c2f1021ad1a52fc23f79a7e8f9034a485b
Author: Alex Mineer <amineer@google.com>
Date: Mon Aug 01 19:17:08 2016

SELECT popup: Tentative fix for an issue on Android WebView.

Disable element visibility check only on Android.

BUG= 632561 

Review-Url: https://codereview.chromium.org/2201703002
Cr-Commit-Position: refs/heads/master@{#408903}
(cherry picked from commit ae36669618d5cb79d22efee333034ed719066f9d)

Review URL: https://codereview.chromium.org/2200583003 .

Cr-Commit-Position: refs/branch-heads/2743_91@{#10}
Cr-Branched-From: 0a96508ae56b27a40bca65322c9feb81e0f3fb49-refs/branch-heads/2743@{#700}
Cr-Branched-From: 2b3ae3b8090361f8af5a611712fc1a5ab2de53cb-refs/heads/master@{#394939}

[modify] https://crrev.com/6e67e3c2f1021ad1a52fc23f79a7e8f9034a485b/third_party/WebKit/Source/core/html/HTMLSelectElement.cpp

Comment 42 by hush@chromium.org, Aug 1 2016

Status: Assigned (was: Fixed)
Can we leave this open? 
The fix is just a band-aid solution to be able to push m52. We haven't understood what's really going on yet.

Comment 43 by hush@chromium.org, Aug 1 2016

I also verified that ToT is fixed.
I'd prefer to file a new bug for follow-up; that way we can mark this as fixed, it can be verified, and if it fails later and someone re-opens it it crops back up as a release block bug.  The alternative is un-marking this RB-Stable and that risks letting something slip through the cracks.

tkent@ can you please file the follow up bug and mark it RB-Stable for M53?
Status: Verified (was: Assigned)
Filed  Issue 633457 .

Comment 46 Deleted

Comment 47 Deleted

Verified the fix on latest M52 and M53 on Nexus 10/5.1.1
I confirm my original problem is now resolved. Thanks!

Sign in to add a comment