Closed Bug 346936 Opened 19 years ago Closed 19 years ago

crashes [@ nsAccessibilityService::CreateRootAccessible]

Categories

(Core :: Disability Access APIs, defect)

1.8 Branch
defect
Not set
critical

Tracking

()

RESOLVED FIXED

People

(Reporter: dbaron, Assigned: aaronlev)

References

Details

(Keywords: crash, fixed1.8.1, topcrash, Whiteboard: Double fix (null check and no longer using pageshow events which disturbingly are coming with a document that has no docshell). See comment 2.)

Crash Data

Attachments

(2 files, 1 obsolete file)

The #3 unfixed topcrash on the 1.8 branch is crashes at nsAccessibilityService::CreateRootAccessible . These are occurring on both Windows and Linux. A few of the comments refer to hitting the back button.
Flags: blocking1.8.1?
Flags: blocking1.8.1? → blocking1.8.1+
From the stack trace, I can see that by far the most likely reason for this is because of fastback. A pageshow event is fired very early, before the document owns a docshell. The accesssibility event handling code gets the pageshow event and tries to create an accessible for the document, which crashes because of the null docshell. It turns out that we should not even be listening for pageshow. We have 2 methods for tracking page loads. We use: 1) DOMContentLoaded which results in TryFireEarlyLoadEvent() 2) WebProgressListener which is for the fallback case where there was a framed page or something that doesn't work well if you fire an early load event So this is a double fix. With this patch, we will ignore the pageshow event. It also adds a null check so that accessibles are not created if for documents with no docshell. I have tested with this patch on Windows, and we still fire the page load events even when alt+left is pressed during another page load.
Attachment #231870 - Flags: review?(ginn.chen)
Attachment #231871 - Flags: review?(ginn.chen) → review+
Attachment #231871 - Flags: superreview?(dbaron)
Comment on attachment 231871 [details] [diff] [review] 1) Fail to return an accessible if document has no container, 2) Don't use pageshow to fire doc loaded events, we don't need it sr=dbaron, assuming you've tested fastback restoration cases carefully
Attachment #231871 - Flags: superreview?(dbaron) → superreview+
Status: NEW → RESOLVED
Closed: 19 years ago
Resolution: --- → FIXED
Attachment #231871 - Flags: approval1.8.1?
Whiteboard: Double fix (null check and no longer using pageshow events which disturbingly are coming with a document that has no docshell). See comment 2.
Comment on attachment 231871 [details] [diff] [review] 1) Fail to return an accessible if document has no container, 2) Don't use pageshow to fire doc loaded events, we don't need it a=schrep for drivers.
Attachment #231871 - Flags: approval1.8.1? → approval1.8.1+
Keywords: fixed1.8.1
This caused a new (topcrash?) crash on trunk. Apparently target is occasionally nsnull http://lxr.mozilla.org/seamonkey/source/accessible/src/base/nsRootAccessible.cpp#321
Should this get also fixed on 1.8.0.x ? On 1.5.0.7 it's crash #44 with 583 crashes.
Flags: blocking1.8.0.8?
1.8.0.8 is almost exclusively for security-fix parity with 1.8.1, the next "stability" release is 1.8.0.9 and we can consider this then. I'm also concerned about the new crash mentioned in comment 6 -- has a bug been filed? Do we need to include that fix as well? I guess that's the bug 352709 dependency bug (In general please mention this sort of thing in comments so we can recontruct that info if the dependency field is ever botched).
Flags: blocking1.8.0.9?
Flags: blocking1.8.0.8?
Flags: blocking1.8.0.8-
Flags: blocking1.8.0.9? → blocking1.8.0.9+
We'll leave this one alone on the 1.8.0 branch, we can live with #44 since people who are bothered by it can upgrade.
Flags: blocking1.8.0.9+ → blocking1.8.0.9-
Crash Signature: [@ nsAccessibilityService::CreateRootAccessible]
You need to log in before you can comment on or make changes to this bug.

Attachment

General

Created:
Updated:
Size: