Google Maps interfering with other DIV's scrolling (on Chrome not on Firefox)
Reported by
mahe...@googlemail.com,
Sep 18 2017
|
||||||||
Issue descriptionSteps to reproduce the problem: Bug occurs on Android Chrome, Opera, and Samsung Browser. Firefox works as expected with no DIV scrolling conflict. All source files and aaa_readme.txt available here: - https://drive.google.com/open?id=0B7Rmd3Rn8_hDNW1zSWRoXzBTclU 1. Browse to the Web App https://hypocampus.applications.uwa.edu.au/travelmanager.html then save to the homescreen for convenience. 2. This is a Trip Tracking example so Location services must be enabled and permitted and you must have at least 1 position update before pressing "Arrive" so move around a bit :-) 3. Notice how the black DOM logWindow DIV element scrolls freely left to right and (if you have sufficiently long trip) up and down. 4. Press the Arrive button once you have had enough GPS updates and the "Trip Summary" screen will be scrolled up. 5. Press Map Trip and your journey will be replayed on Google Maps. 6. Scroll back up to the logWindow and you will see that scrolling has been disabled for unknown reasons. 7. Change the phone orientation to landscape or portrait and notice logWindow scrolling is enabled again. 8. Zooming the map can also enable and sometimes subsequently disable logWindow scrolling. 9. 2 finger panning of the map can sometimes also disable scrolling. 10. Note also that when the summary DIV was displayed via mainDiv.scrollTop = summary.offsetTop; scrolling was also disabled. 11. NB: If the scrolling is not disabled after you've pressed "Map Trip", press "Replay" and the erroneous behaviour should be evident. What is the expected behavior? No interference with logWindow's scolling capability What went wrong? Zooming and Panning of my Google Map intermittently disables scrolling of separate DIV. Did this work before? N/A Does this work in other browsers? Yes Chrome version: 60.0.3112.116 Channel: n/a OS Version: 7.0 Flash Version: What have I tried: - 1. Not using "cooperative" gesture handling 2. Not turning the scrollwheel off. 3. Setting zoom to the current zoom after altering scrollTop 4. Clutching at straws Perhaps Relevant: 1. DIV encasing 3 DIV/pages are governed by display: flex 2. The map DIV is originally positioned absolute top: 0px instead of display: none so that the DIV has size and the tiles load.
,
Sep 19 2017
Hi Sandeep, Thanks for looking at this. It's a Samsung Galaxy S7, Android 7.0, kernel 3.18.14-11104523, Chrome 60.0.3112.116. It may seem hard to reproduce but please persist as the problem is intermittent but reliable. Please try "Replay several times, or Zoom using the +/- buttons or pinch zoom (after each time scroll up and try again). Also try 2 finger swipe the map right/left then scroll back up to try logWindow scroll. I can't give you exact gesture sequence as it varies but it WILL happen. Cheers Richard
,
Sep 19 2017
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
,
Sep 20 2017
Able to reproduce the issue in Android. Unable to scroll on the Div after zooming and panning the Google maps as per the steps mentioned in comment #0. This seems to be a Non-Regression issue as same behavior is seen since M52 in Samsung Galaxy S7 Chrome versions tested 60.0.3112.116 63.0.3218.0 OS Android 6.0.1, Android Devices Samsung Galaxy S7, 6.0.1: SM-G930F Build/MMB29K Issue is seen in M63 as well Unable to provide the logs and videos as issue is reproducible intermittently. Thanks!!
,
Sep 20 2017
Thanks for sticking with it! Please let me know if I can provide any further information or assistance. Once again, does not occur on Firefox. Cheers.
,
Sep 25 2017
,
Sep 28 2017
Hi maherrj@, Could you provide a reduced test case? I'm having a hard time generating enough location points. That or provide a way to inject some "fake locations" into the page. Thanks.
,
Sep 29 2017
If you're still having trouble I can provide a version with some hard-coded locations but please try this first: - Note: You only need one additional, and different, location apart from the Start, and that step in the journey must be sans-loiter. (Can't have been standing for 50secs). When you press "Arrive" the current location is retrieved and, even if you haven't moved, can be several meters from the start location reading. Finally you only need one journey to reproduce the bug. Once you have that just don't close the App and you can hit "Replay" as many times as you want. So: - 1) Start the app by tapping the Ginger Bread house 2) Wait about 20secs and then press end. 3) If you get the error "You need to get out more" turn off the wi-fi network and try again Or go near a window. and go back to (1) 4) If the Trip Summary displays, note that the scrolling of the previous DIV is already disabled. 5) Press "Map Trip" If scrolling is not disabled try a) Press "Replay" and check again b) Zoom out and check again c) Two finger swipe the Hat off the map and check scrolling again The (a) to (c) varies in combination but some small number and type of map interactions will alternately disable and re-enable scrolling on the original Trip Log logWindow. HTH Let me know if still no good. Cheesr
,
Sep 29 2017
Another alternative is that Chrome lets you go Dev Tools...->More Tools->Sensors->Location->Custom location and set the location that way. Make it Berlin if you want, the trip doesn't matter in this case. But at least you can reproduce it on the desktop for easy debugging?
,
Sep 29 2017
Ok, thanks, managed to repro using dev tools. I'll dig into it a bit more...
,
Sep 29 2017
Ok, it looks like the #logWindow Element gets composited when we first click "Arrive". The reason is it may overlap another composited Element. But it looks like it scrolls on the main thread. When we do successfully scroll it it's scrolls on main. (I think main-thread scrolling is forced by box-shadow). From Dev Tools it seems like it doesn't have a main-thread scrolling reason though. A trace showed that we do call into LayerTreeHostImpl::ScrollBy when we try to scroll it (and it then fails). After a resize, the scrolls go to the main thread. This looks like a case where we're not correctly propagating a MainThreadScrollingReason in CC. I imagine we're probably hitting a DCHECK somewhere, unfortunately I can't get there as we hit other DCHECKs on load :( flackr@, mind triaging this further?
,
Oct 3 2017
Really appreciate the progress on this. If a work-around becomes clear (such as turn off box-shadow) before a resolution that would be good also. Can I please also beg everyone on the recipient list to look at my Backgrounf-Geolocation POC example as developers? Do you not agree that that the ServiceWorker pattern is the most appropriate and efficient architecture delivery mechanism for background geolocation? You people familiar with the UA code must agree that the TravelManagerPolyfill would be very easy to implement?
,
Oct 16 2017
maherrj@, yeah, I think turning off box-shadow and or border-radius should help but I can't try this myself to verify. that said, that's a bit sad and it seems like we have an edge case where Chrome is breaking down so we should definitely fix it on our end. As to your ideas on geolocation, you're unlikely to get much input here. You'd be better off filing a new bug at crbug.com/new with a feature request or taking the discussion to a more public facing group like https://discourse.wicg.io/
,
Oct 16 2017
,
Oct 17 2017
@bokan you're right! It was the redundant border-radius on #logWindow .log /* border-radius: 1.0em; */ box-shadow did not seem to play a part. #logScroll already had a border radius set so no loss of functionality. I'm happy if you want to just close this ticket. If you do wish to pursue it, don't forget that all you have to do is copy the files from here https://drive.google.com/open?id=0B7Rmd3Rn8_hDNW1zSWRoXzBTclU to your own server and it works. Thanks for your help!
,
Oct 24 2017
FWIW, on Android Browser the corners of #logWindow orginally honour the border-radius setting but revert to pointy/square corners when a log entry is added and scrollTop is set. Chrome, FF, and Opera all preserve the border-radius.
,
Jan 3
Any update on this? Do we want to close it as WAI? |
||||||||
►
Sign in to add a comment |
||||||||
Comment 1 by sandeepkumars@chromium.org
, Sep 19 2017Labels: Needs-triage-Mobile Triaged-Mobile Needs-Feedback