Closed Bug 744874 Opened 12 years ago Closed 12 years ago

Google Earth plugin crashes immediately when Firefox operates in 32-bit mode, with some graphics hardware

Categories

(Core Graveyard :: Plug-ins, defect)

13 Branch
x86
macOS
defect
Not set
critical

Tracking

(Not tracked)

RESOLVED INVALID

People

(Reporter: nikos.bogdos, Unassigned)

References

()

Details

(Keywords: crash)

User Agent: Mozilla/5.0 (Macintosh; Intel Mac OS X 10.6; rv:13.0) Gecko/20120412 Firefox/13.0a2
Build ID: 20120412042009

Steps to reproduce:

1. Configured Firefox to open in 32-bit mode. (tested on FF versions 8 - 13)
2. Visited a page with a Google Earth plugin instance, i.e. http://www.google.com/earth/explore/products/plugin.html


Actual results:

Google Earth plugin crashed -almost- immediately with the classic message "There was a problem with the Google Earth Plugin. Please try reloading the page." 


Expected results:

I should have been able to browse the earth smoothly. Actually i dont have this problem on another Mac.
Can you provide the two crash IDs (browser and plugin sides) from about:crashes?
There is no crash ID corresponding to the GE plugin crash in about:crashes. Also Firefox doesn't crash just the GE plugin. Occasionally there's a dialog box for a crash report but it is sent to Google.
Severity: normal → critical
Status: UNCONFIRMED → NEW
Component: Untriaged → Plug-ins
Ever confirmed: true
Keywords: crash
Product: Firefox → Core
QA Contact: untriaged → plugins
My (completely without data) guess is that Google Earth might be assuming the default event model is Cocoa, which it is for 64-bit but not for 32-bit. The default 32-bit model is Carbon. If it did that it would incorrectly interpret the event data it received (badly cast the event) and likely crash soon after.
I can't reproduce this.

I tested with FF 11 and today's mozilla-central nightly, on both OS X 10.7.3 and 10.6.8.  I used the current version of the Google Earth plugin -- 6.2.1.6014.

If you're not using the most recent Google Earth plugin, try upgrading to it.

Also try with a fresh profile.  (But don't throw out the old profile.  If using a fresh profile makes a difference, we'd like to know which combination of extensions and/or plugins (or of customized settings) triggers the problem.)
> Actually i dont have this problem on another Mac.

It might also make a difference which graphics hardware you're using, or which system-wide settings you've changed.
I have the latest version of GE plugin also. I have tried the following with no luck:

1. re-intall Google Earth plugin
2. re-install Firefox
3. install future Firefox releases (beta, aurora, nightly)
4. configure a new user account with fresh Firefox and Google Earth plugin installations

I also tend to believe that graphics card may make the difference. My system is a Mac OS X 10.6.8 MacBook Pro 13" i5 2.3GHz 8GB RAM with the integrated Intel HD Graphics 3000. 

The other Mac that i was talking about -which doesn't have the problem- is an older white MacBook with the integrated nVidia graphics.
OK, the	graphics hardware does make a difference, and I'm now also
able to reproduce this bug.

One of my machines is almost identical to yours.  It's a MacBook Pro
8.2, 2.3 Ghz Intel Core I7, 15" display with two different kinds of
graphics hardware:  The "integrated" (i.e. built-in) hardware is Intel
HD Graphics 3000 (the same as yours).  The "discrete" hardware (on the
PCIe bus) is AMD Radeon HD 6750M. 

No matter what power settings I use, or whether or not I'm on AC or
battery, I never see this bug in ordinary circumstances (even in
32-bit mode).  But there's a nice little app called gfxCardStatus
(http://codykrieger.com/gfxCardStatus) which you can use to force your
machine to always use the "discrete" graphics hardware or always use
the "integrated" hardware.  (Beware that you should set this app to
"load gfxCardStatus at startup", and always restart your computer
whenever you change its settings.)

When I use gfxCardStatus to set my machine to always use the
"integrated" Intel HD Graphics 3000, I see the bug in 32-bit mode.

Interestingly, I don't see the bug even then if (in about:config) I
change gfx.canvas.azure.enabled from true (the default) to false.

I don't understand that part of the codebase very well.  Do you have
any ideas, Benoit, why turning off gfx.canvas.azure.enabled would
"fix" this bug?
By the way, all components of the Google Earth plugin are 32-bit-only.  So it always runs in 32-bit mode (and out-of-process), whether or not the browser runs in 64-bit mode.
I should note that I reproduced this bug on OS X 10.6.8 (using the STR from comment #7).  I haven't yet tried that STR on OS X 10.7.3.  I'll do so later (on the same machine).
(Following up comment #8)

> (and out-of-process)

Oops, this is wrong.  The Google Earth plugin runs in-process in 32-bit mode with the default settings (though it runs out-of-process in 64-bit mode, as it has to).

There's also a Google Earth For Plugin.app component of the Google Earth plugin that runs in its own process, but that's a peculiarity of the Google Earth plugin.
Another way to make this bug stop happening (even in 32-bit mode) is to make the Google Earth plugin run out-of-process (as it does in 64-bit mode).

To do this, add the following Boolean setting in about:config and make it true:

dom.ipc.plugins.enabled.i386.google earth web plug-in.plugin
(In reply to Steven Michaud from comment #10)

> Oops, this is wrong.  The Google Earth plugin runs in-process in 32-bit mode
> with the default settings (though it runs out-of-process in 64-bit mode, as
> it has to).

Correct. And this is the reason why i want to run FF in 32-bit mode. Because when GE plugin runs in-process the GE plugin is so much more responsive -in certain tasks- that you're not believing your eyes.
(In reply to Steven Michaud from comment #11)

> Another way to make this bug stop happening (even in 32-bit mode) is to make
> the Google Earth plugin run out-of-process (as it does in 64-bit mode).

Sorry, but running the GE plugin in-process is what i'm trying to achieve.
Nikos, have you tried setting gfx.canvas.azure.enabled to false?  Does that make the bug go away for you?

I'm not trying to get you to change your behavior.  I'm just trying to understand why this bug happens.
(In reply to Steven Michaud from comment #7)

> Interestingly, I don't see the bug even then if (in about:config) I
> change gfx.canvas.azure.enabled from true (the default) to false.

Not true for my system. GE plugin crashes the same way in 32-bit mode with gfx.canvas.azure.enabled set to false.
I just tried again with gfx.canvas.azure.enabled set to false, and this time I also crashed.  I must not have waited long enough the first time.

So sorry Benoit, false alarm.

I'll keep playing with other about:config settings, to see if I can find any others that make a difference.  Do you have any suggestions which ones I should try, Benoit?

(Note that you should always restart after having changed settings in about:config.  Many of them only take effect on restart.)
I just saw the same crash in Safari.  This is on OS X 10.6.8, with Safari 5.1.5 (which is the current version for that platform).

So this is starting to look like a Google Earth bug.

Of course I had gfxCardStatus running, with the display hardware forced to "integrated" (in my case Intel HD Graphics 3000).
OK, this is definitely a Google Earth bug.

It goes away if you set Firefox to use Chrome's user-agent string!

One way to do this is to create a String setting in about:config with the name "general.useragent.override" and the following value (no line break):

Mozilla/5.0 (Macintosh; Intel Mac OS X 10_6_8) AppleWebKit/535.19 (KHTML, like Gecko) Chrome/18.0.1025.162 Safari/535.19
Status: NEW → RESOLVED
Closed: 12 years ago
Resolution: --- → INVALID
Nikos, please report this bug to Google.

When you do, be sure to refer to the bug you've opened here.
As to the performance problems running Google Earth out-of-process, that's a separate (and unrelated) bug.

Please open a new bug on it if you haven't done so already.

When you do, you'll need to provide us examples of *measurable* performance differences running in-process (with Chrome's user-agent string) and out-of process (running with Chrome's or FF's user-agent string).  Also throw in comparisons with other browsers.

An example would be "operation x takes 5 seconds running in-process but 10 seconds running out-of-process", together with detailed instructions how to perform "operation x".
If your machine has more than one kind of graphics hardware, you'll also need to use gfxCardStatus to force it to use one or the other.
(In reply to Steven Michaud from comment #18)

> One way to do this is to create a String setting in about:config with the
> name "general.useragent.override" and the following value (no line break):
> 
> Mozilla/5.0 (Macintosh; Intel Mac OS X 10_6_8) AppleWebKit/535.19 (KHTML,
> like Gecko) Chrome/18.0.1025.162 Safari/535.19

I don't see any "general.useragent.override" setting in about:config.
Status: RESOLVED → REOPENED
Resolution: INVALID → ---
Running a plugin while forcing integrated isn't supported of course with the exception of Flash.

gfx.canvas.azure.enabled shouldn't have relationship with the crash, but it may be possible that if the browser process crashed it might be due to an azure interaction (while unlikely). Do we have a crash report of the plugin crash?

Does firefox crash when running in 64-bit with a 32-bit plugin process?
> I don't see any "general.useragent.override" setting in about:config.

There isn't one.  You have to add it (to "create" it).
Benoit:

When I retested I found that changing gfx.canvas.azure.enabled makes no difference.  See comment #16.

> Does firefox crash when running in 64-bit with a 32-bit plugin process?

It's the plugin that crashes, not the browser.
(In reply to Steven Michaud from comment #19)
> Nikos, please report this bug to Google.
> 
> When you do, be sure to refer to the bug you've opened here.

Done.

Please star my issue! :-)

http://code.google.com/p/earth-api-samples/issues/detail?id=782&thanks=782&ts=1334339826
So Nikos, you haven't told us if making FF use Chrome's user-agent string makes your crashes go away.
(In reply to Steven Michaud from comment #27)
> So Nikos, you haven't told us if making FF use Chrome's user-agent string
> makes your crashes go away.

Just checked and it seems to be working fine! Thanks.

This setting ruins the Gmail page though. But i can handle this.
Thanks for letting us know.

But what you said shows this bug is invalid.

If a plugin changes its behavior with different user-agent strings, and a particular bug only happens with some of them (or one of them), then that bug is the plugin's fault.

The plugin authors may have reasons for behaving differently in different browsers.  But if the plugin authors don't tell us the reasons we can't know them.  Only the plugin authors can fix this kind of problem.
Status: REOPENED → RESOLVED
Closed: 12 years ago12 years ago
Resolution: --- → INVALID
Summary: Google Earth plugin crashes immediately when Firefox operates in 32-bit mode → Google Earth plugin crashes immediately when Firefox operates in 32-bit mode, with some graphics hardware
Product: Core → Core Graveyard
You need to log in before you can comment on or make changes to this bug.