[10.10] FF crashes using behind-window vibrancy on Yosemite in 32-bit mode

VERIFIED FIXED in Firefox 34

Status

()

defect
--
critical
VERIFIED FIXED
5 years ago
5 years ago

People

(Reporter: smichaud, Assigned: mstange)

Tracking

({crash, topcrash-mac})

Trunk
mozilla36
x86
macOS
Points:
---
Dependency tree / graph
Bug Flags:
qe-verify +

Firefox Tracking Flags

(firefox33 wontfix, firefox34+ verified, firefox35+ verified, firefox36 verified)

Details

(crash signature)

Attachments

(2 attachments)

When run in 32-bit mode, Firefox (34 branch and up) always crashes on Yosemite whenever behind-window vibrancy is used.  You can make this happen by viewing the bookmarks or history sidebar.

I tested in today's mozilla-central nightly, and haven't yet confirmed the regression range.  But I'm almost certain about it.

STR:

1) Ctrl-click (or right-click) on the Firefox distro and choose Get Info.
2) Make sure Open in 32-bit mode is checked.
3) Run Firefox
3) Choose View : Sidebar : Bookmarks or View : Sidebar : History.
4) Crash.
Crash Signature: [@ libobjc.A.dylib@0x50df ]
Do you want this, Markus, or shall I take it?
After this line:
> Class EffectViewClass = objc_allocateClassPair(NSVisualEffectViewClass, "EffectView", 0);
sending any message to EffectViewClass (like "alloc") results in a crash. This seems to happen regardless of whether we subclass NSVisualEffectView or any other class. In fact, these two lines alone cause a crash in 32 bit mode:

> Class CreatedClass = objc_allocateClassPair([NSObject class], "MyClassName", 0);
> [CreatedClass alloc];

It looks like objc_allocateClassPair just doesn't work on 32 bit. A web search didn't turn up any useful information about this problem, apart from this:
https://github.com/CodaFi/C-Macs/issues/1 which doesn't really help.
And we can't use class_createInstance because that doesn't allow us to subclass NSVisualEffectView.
So let's just turn off vibrancy in 32 bit mode.
Assignee: nobody → mstange
Status: NEW → ASSIGNED
Attachment #8508704 - Flags: review?(smichaud)
Comment on attachment 8508704 [details] [diff] [review]
disable vibrancy in 32 bit mode

This is fine with me.

The only thing we still really need 32-bit mode for is some 32-bit only plugins (notably Silverlight).  Otherwise we don't want it to crash, of course.  But I don't think non-plugin 32-bit mode deserves the same level of support as non-plugin 64-bit mode -- especially if it would require a lot of work, as here.
Attachment #8508704 - Flags: review?(smichaud) → review+
Comment on attachment 8508704 [details] [diff] [review]
disable vibrancy in 32 bit mode

Markus, are you going to land this? :-)
Comment on attachment 8508704 [details] [diff] [review]
disable vibrancy in 32 bit mode

Approval Request Comment
[Feature/regressing bug #]: bug 1051522
[User impact if declined]: crash on 10.10 in 32-bit mode
[Describe test coverage new/current, TBPL]: none, running the browser in 32-bit mode is not really a supported configuration
[Risks and why]: very low risk, safe patch
[String/UUID change made/needed]: none
Attachment #8508704 - Flags: approval-mozilla-beta?
Attachment #8508704 - Flags: approval-mozilla-aurora?
https://hg.mozilla.org/mozilla-central/rev/8380f4b99047
Status: ASSIGNED → RESOLVED
Last Resolved: 5 years ago
Resolution: --- → FIXED
Target Milestone: --- → mozilla36
Comment on attachment 8508704 [details] [diff] [review]
disable vibrancy in 32 bit mode

Beta+
Aurora+
Attachment #8508704 - Flags: approval-mozilla-beta?
Attachment #8508704 - Flags: approval-mozilla-beta+
Attachment #8508704 - Flags: approval-mozilla-aurora?
Attachment #8508704 - Flags: approval-mozilla-aurora+
Flags: qe-verify+
QA Contact: catalin.varga
Verified as fixed using:

FF 34.04
FF 35 Aurora Build Id: 20141028004002
FF 36 Nightly Build Id: 20141028030204
OS: Mac Os X 10.10
You need to log in before you can comment on or make changes to this bug.