Bug 154422 - Google Maps "Earth" mode stops getting new data until safari restarts
Summary: Google Maps "Earth" mode stops getting new data until safari restarts
Alias: None
Product: WebKit
Classification: Unclassified
Component: WebKit2 (show other bugs)
Version: Safari 9
Hardware: Macintosh OS X 10.11
: P2 Normal
Assignee: Nobody
Keywords: InRadar
Depends on:
Reported: 2016-02-18 15:42 PST by Ryan Sturgell
Modified: 2016-12-20 13:04 PST (History)
9 users (show)

See Also:

Screenshot of repro (earth mode not getting new data) (4.32 MB, image/png)
2016-02-18 15:42 PST, Ryan Sturgell
no flags Details

Note You need to log in before you can comment on or make changes to this bug.
Description Ryan Sturgell 2016-02-18 15:42:56 PST
Created attachment 271705 [details]
Screenshot of repro (earth mode not getting new data)

Google Maps 3d satellite mode (Earth mode) is very broken on safari right now.

Repro steps:

1. Navigate to google.com/maps in safari (or webkit nightly)
2. Switch to earth mode (icon in lower left corner)
3. Look at some stuff (I zoomed in and out a few times into different areas of my default viewport of seattle and trigger this very consistently)
4. After a minute or two, it stops showing new data. You can still see all the old stuff, interaction is still working and smooth.
5. Close the window (but not the safari application)
6. Open a new window and go to google.com/maps
7. Switch to earth mode
8. Black window, no data at all is rendered. It seems you need to entirely exit and restart safari to get globe to work again!

The fact that a new window doesn't "fix it" but restarting safari DOES leads me to assume this is a safari bug.

We will probably disable Earth mode in safari shortly, but you should be able to use the chrome useragent to force it back on for testing. Let me know if you are unable to see or force earth mode, we'll figure something out so you can repro.

Filed in JavaScriptCore since the timing makes this feel like jit kicked in and didn't work (possibly related to https://bugs.webkit.org/show_bug.cgi?id=153431), but I'm not at all certain about that.
Comment 1 Geoffrey Garen 2016-02-19 09:16:43 PST
If opening a new window doesn't fix the bug, it can't be a JavaScript bug. Most likely, this bug has to do with networking and the network process -- or perhaps storage and the storage process -- which are the only things that survive across new windows.
Comment 2 Radar WebKit Bug Importer 2016-02-19 09:17:44 PST
Comment 3 Ryan Sturgell 2016-03-03 10:45:17 PST
Earth mode is now disabled for safari users. To repro you'll need to:

1. set chrome as the useragent
2. force webgl mode: https://google.com/maps?force=webgl

Please let me know if you have any trouble reproducing, of if there are any testing I can do that would be helpful to track this down.
Comment 4 zalan 2016-03-03 16:19:23 PST
While in the state of not updating the map tiles with new data
1. while panning around in the original tab, webinspector still shows network activity (the pattern of the requests indicate tile data)
2. opening a new tab and going to maps shows black page and while I can trigger network traffic by initiating map searches, panning/zooming shows no activity at all.
Comment 5 zalan 2016-03-03 18:24:57 PST
However it seems that most of the XHR requests are either pending or come back with some error code. Terminating the network process fixes the problem.
Comment 6 Brian Burg 2016-12-19 16:39:32 PST
Does this issue still manifest on macOS Sierra?
Comment 7 Travis Heppe 2016-12-19 17:35:46 PST
I upgraded my corp laptop to sierra, and after about 5 min of playing with it I wasn't able to reproduce. If we want to narrow the scope of for whom we turn off Earth view, should we select based on OS, or is Safari version sufficient?  If the former, is that even possible from within javascript?
Comment 8 Alexey Proskuryakov 2016-12-20 09:16:20 PST
The fix was in a system library below WebKit (so marking this WebKit bug as INVALID), and shipped with macOS Sierra and iOS 10.

The OS version is part of user agent string, so it can be checked from JavaScript (navigator.appVersion), or even from HTTP request header.

Disabling HTTP/2 server side may be a workaround for older OS versions.
Comment 9 Travis Heppe 2016-12-20 13:04:23 PST
Falling back to 2d is fine for the gradually dwindling base of Pre-Sierra safari users.  We'll roll out a fix to re-enable for Sierra+ users that should hit in the mid-January time frame.  Thanks for the info!