New issue
Advanced search Search tips
Note: Color blocks (like or ) mean that a user may not be available. Tooltip shows the reason.

Issue 812415 link

Starred by 1 user

Issue metadata

Status: WontFix
Owner:
Closed: Feb 2018
Cc:
Components:
EstimatedDays: ----
NextAction: ----
OS: Android
Pri: 2
Type: Bug



Sign in to add a comment

Cannot change "time range" on "Clear browsing data" screen when immersive mode is enabled.

Reported by alexusa2...@gmail.com, Feb 14 2018

Issue description

Steps to reproduce the problem:
1. Enable Immersive mode system wide on android. Example: settings put global policy_control immersive.navigation=*
2.Press menu on Chrome
3.Press History
4.Press CLEAR BROWSING DATA...
5.Press Last hour in order to change Time range
6.Issue appears

What is the expected behavior?

What went wrong?
The navigation bar quickly comes on and then disappears causing the time range menu to disappear. 

Did this work before? No 

Chrome version: 64.0.3282.137  Channel: stable
OS Version: 8.0.0
Flash Version: 

Watch the video attached in order to see problem.
 
2018_02_13_20_30_14_trim.mp4
1.4 MB View Download
Labels: Needs-triage-Mobile
Cc: sandeepkumars@chromium.org
Labels: Triaged-Mobile Needs-Feedback
Tested the issue in Android and couldn't reproduce the issue.

Steps Followed:
1. Enabled Immersive mode
2. Launched Browser
3. Navigated to history
4. Clicked on Browsing history
5. Clicked on timings dropdown
6. Able to change the time range

Chrome versions tested:
64.0.3282.137

OS:
Android 8

Android Devices
Pixel XL

@alexus: Could you please help us with the details of your device for further triaging?

Thanks!!
Yes, what details do you need? Thanks!
Some basic details
Pixel XL 128GB
Stock Room, rooted
Android 8.0.0
Project Member

Comment 4 by sheriffbot@chromium.org, Feb 15 2018

Labels: -Needs-Feedback
Thank you for providing more feedback. Adding requester "sandeepkumars@chromium.org" to the cc list and removing "Needs-Feedback" label.

For more details visit https://www.chromium.org/issue-tracking/autotriage - Your friendly Sheriffbot
I disabled the Nav bar auto hide, by issuing "settings put global policy_control immersive.navigation=" in a terminal app with SU. Then I tried to change the timing drop down, and it worked as expected. Next, I enabled the nav bar auto hide by issuing "settings put global policy_control immersive.navigation=*" the issue as shown in the video happens. 

Thank you!
Cc: twelling...@chromium.org
Components: -UI UI>Browser>History
CC'ing related dev and adding appropriate component for further triage.

@twellington: Could you please take a look at this and confirm

Thanks!!
Cc: msramek@chromium.org
Components: -UI>Browser>History Privacy UI>Browser>Mobile>Settings
Owner: dullweber@chromium.org
Labels: android-fe-triaged
Status: Available (was: Unconfirmed)
I guess setting the immersive.navigation setting is only possible on rooted phones?

But I am able to reproduce this issue by adding "getWindow().getDecorView().setSystemUiVisibility(View.SYSTEM_UI_FLAG_HIDE_NAVIGATION | SYSTEM_UI_FLAG_IMMERSIVE);" to Preferences::onCreate. It only happens the first time you select the time period though, afterwards the system UI is back.

I noticed that when I click the spinner, SpinnerPreference::onCreateView is called if the UI is in immersive mode.

The autofill preferences have some spinners as well (e.g. month/year selectors when adding a credit card). Could you try that and see if they work for you?

Yes, you have to be rooted in order to change immersive.navigation.

I tried using the dropdown menus in the "Add card" under autofill and payments, and it worked without any issues.

When the issue happens, logcat issues the following log: SurfaceFlinger
Failed to find layer (PopupWindow:8edcdea#0) in layer parent (no-parent).

It also shows that log when using the dropdown under "Add card", but it works as expected with the Popupwindow id being different.

Thanks!
 


Could it be the "CLEAR DATA" button that's causing the issue? When you press the drop-down menu it brings the navbar up, and the the "CLEAR DATA" button doesn't redraw at the new height. 



https://cs.chromium.org/chromium/src/chrome/android/java/res/layout/history_clear_browsing_data_header.xml?dr=C

Thank you!
The clear browsing data screen is also accessible by opening the Chrome app menu, going to settings > privacy > clear browsing data. If it's possible to reproduce through that flow, then we can rule out the button on the history page.
By going to settings > privacy > Clear browsing data, it still gives the same "Clear browsing data" screen. The "CLEAR DATA" button still shows at the bottom of the screen. Here's an example of the button, it turns blue when one of the check boxes is selected. 
2018_02_17_14_49_52_2.mp4
2.2 MB View Download
I thought you were referring to the button in step 4 on the original bug report, sorry.
The xml file you linked is only used for the history page. The CBD dialog is using [1] and the listview is populated with [2].

[1] https://cs.chromium.org/chromium/src/chrome/android/java/res/layout/clear_browsing_data_tab_content.xml
[2] https://cs.chromium.org/chromium/src/chrome/android/java/res/xml/clear_browsing_data_preferences_tab.xml

There seems to be a general Android issue that immersive mode gets disabled when the spinner is opened.
The preferences being redrawn due to the layout change sounds like a possible issue, I will look into that. 
Maybe it can be fixed by marking the UI as View.SYSTEM_UI_FLAG_LAYOUT_STABLE? 

Status: Assigned (was: Available)
Let me know if you guys need me to test anything. Thanks!
I reduced the listview size so it won't be touched by the navbar and it fixed this issue. But not having a full height listview is not a good solution ;)

SYSTEM_UI_FLAG_LAYOUT_STABLE seems to help as well (https://crrev.com/c/923988 ) but I'm not sure how to
properly test that it doesn't have any other side effects on Chrome as it is a global change. 
Maybe we could just set this flag when CBD is entered and restore the previous state when it is exited?



If this is only reproducible when a phone is rooted and commands are issue through adb, then I think we can close this is a "WontFix". In general, we try to prevent Chrome from crashing when developer options are flipped but we don't optimize for that use case.

If this is reproducible through other means, then we should look for a solution that's easily scalable to other spinners in Chrome. I'm not familiar with SYSTEM_UI_FLAG_LAYOUT_STABLE so I'm not sure what unintended side effects it will have. We could reach out to Android chatty to ask for guidance.
You can enabled immersive mode without root or adb using apps such as
https://play.google.com/store/apps/details?id=com.gmd.immersive&hl=en&referrer=utm_source%3Dgoogle%26utm_medium%3Dorganic%26utm_term%3Dgmd+immersive&pcampaignid=APPU_1_HW6MWvySFtK1ggfhnIuIBw

I tested with that app, the bug happens the first time you press the
dropdown. The second time it works.
Status: WontFix (was: Assigned)
There is an Android bug about this issue, sadly no responses from the Android team at all: 
https://code.google.com/p/android/issues/detail?id=68031

The behavior with the app seems to be the same as enabling immersive mode in Chrome. Clicking on the spinner disables it.

I guess we can only close this as WontFix unless someone finds a proper solution without possible side effects on the rest of Chrome.

Sign in to add a comment