Firefox can't display imagery

I’ve run into an odd problem and haven’t been able to find any discussion of it so far. I have a Cesium-based website obtaining imagery from GeoServer. I have a proxy configured in Apache to communicate between my site and GeoServer. On my local installation, everything works fine. When I set up the site on a server we’ll be using for demos, the imagery does not load, but only when using Firefox. It works in IE and Chrome.

I’ve used the Network tab in the FF debugger to inspect the calls to GeoServer. They are returning normally (200). If I navigate to the WMS URL directly, the imagery loads. But the Cesium globe is showing as a blue ball, and the information in the network tab does not display the image. It says “Can’t load image.”

At first I thought it might be CORS issue, but as I understand it, using the proxy should avoid that problem, and (again) it only fails in Firefox. Does anyone have any thoughts or suggestions as to what I should be looking at? Thank you.

–Dale

As far as I know (after searching the code base) ‘Can’t load image’ is not a Cesium error message, so it’s the browser that’s having problems. Do the Cesium demos on our website (like Cesium Viewer) show the issue?

If yes, the problem is specific to your application and will be hard for us to help you debug without working sample code. Is the server imagery server public?

If no:

  1. What version of Cesium are you using?

  2. What version of Firefox?

  3. What operating system?

  4. Are you running the latest drivers for your video card?

Thanks

Matthew,

Thank you for the reply. I think the problem is most likely some quirk of Firefox and the way the servers are configured. I was just hoping maybe someone had run across something like it or had some ideas where to look. Because of the security configuration, I can’t access your demos from the server where I’m having the issue. However, I stripped out all of my application code except the call to instantiate Cesium.Viewer to make sure it wasn’t an issue with custom code. It still doesn’t work in FireFox. I’m using the following:

Cesium 1.9
Firefox 39.0.3
Windows 8.1

The server is Linux. I’m using Apache 2.4, configured with a virtual host for GeoServer. I’m accessing the website through an SSH tunnel. As I mentioned before, the site renders correctly in IE and Chrome, but I get no imagery displayed in FireFox. However, if I navigate to the URL for an image tile, then that tile does display in FireFox. Very strange . . .

Thank you again.

–Dale

This definitely sounds like something specific to either your Firefox configuration or your server. The only possible thought I have is that IE and Chrome both pull from the standard windows certificate store in order to use secure connections, while Firefox does not. If you have any special certs installed on your system, you can try installing them inside of the Firefox specifically. Other than that shot in the dark, it’s impossible to debug the issue on our end without knowing the full details.

I can confirm that Cesium 1.9 works fine in Windows 8.1 with Firefox 39.0.3. We host all Cesium releases on our website, so you if you have a similar set up on a machine with internet access, you can confirm this yourself here: http://cesiumjs.org/releases/1.9/index.html

Sorry I can’t be of more help.

Matthew,

No problem. It was worth a try, anyway. Thanks.

–Dale

Matthew,

In case it helps the cause any, I just discovered that Firefox is logging a bunch of error messages along the lines of:

An error occurred in “N”: Failed to obtain image tile X: 1 Y: 0 Level: 0.

The log entry references Cesium.js:420:26832. Thanks.

–Dale

This definitely sounds like something specific to you Firefox/Network configuration. Have you tried other imagery sources in Firefox? Like the Natural Earth II that ships with Cesium?

Matthew,

I haven’t tried other sources because in the environment we’re using we have to run disconnected. The only imagery provider will be the one installed on the same server as our website.

Matthew,

Addendum: I got it working. It was a convoluted CORS issue resulting from connecting to the site via an SSH tunnel. I still don’t fully understand it, but it’s a bit clearer now.

Glad to hear you got it working!