Assertion failure: ipcDoc, at /src/accessible/generic/Accessible.cpp:861
Categories
(Core :: Disability Access APIs, defect)
Tracking
()
People
(Reporter: tsmith, Assigned: Jamie)
References
(Blocks 1 open bug)
Details
(Keywords: assertion, testcase, Whiteboard: [a11y:crash-ipc][fuzzblocker])
Attachments
(2 files, 3 obsolete files)
Updated•7 years ago
|
Reporter | ||
Comment 2•5 years ago
|
||
Reporter | ||
Comment 3•5 years ago
|
||
Test case requires dom.disable_open_during_load=false
Reporter | ||
Updated•5 years ago
|
Reporter | ||
Comment 4•5 years ago
|
||
A Pernosco session is available here: https://pernos.co/debug/H9WBcXCMME-l-g541m-mCg/index.html
Reporter | ||
Comment 5•5 years ago
|
||
This is another issue that the fuzzers are frequently tripping over. Marking as fuzzblocker. Jamie can you please find someone to have a look if possible? Thank you.
[1] https://firefox-source-docs.mozilla.org/tools/fuzzing/index.html#fuzz-blockers
Reporter | ||
Comment 6•5 years ago
|
||
Simple, reliable testcase.
Assignee | ||
Comment 7•5 years ago
|
||
I guess we're trying to fire a reload event before DoInitialUpdate has been called (and thus the DocAccessibleChild hasn't been created yet)? That's... intriguing. But we probably just shouldn't do it...?
Assignee | ||
Comment 8•5 years ago
|
||
So the test case in comment 6 is actually for a scrolling event, but the stack in comment 0 is for a reload event. Both will trigger this assertion, but they take different code paths to get there.
The underlying issue is that we're trying to fire events on a DocAccessible whose tree isn't built yet; i.e. DoInitialUpdate hasn't been called yet. For remote documents, because the DocAccessibleChild hasn't been created yet, these events can never be delivered. To be consistent, it probably doesn't make sense to deliver them for local documents either.
The reload event is an interesting case because the following scenario might be possible:
- User loads a document.
- Before the a11y tree is built, the user reloads the document.
In that case, an a11y client will never know about the reload because we couldn't fire the event. I think that's an edge case which probably isn't worth worrying about, but I thought it worth noting here.
Assignee | ||
Comment 9•5 years ago
|
||
For remote documents, the DocAccessibleChild isn't created until the tree is constructed.
This means we can't send events to the parent process and thus to the client.
We shouldn't fire these events in the first place, since this makes events inconsistent for local and remote documents.
Updated•5 years ago
|
Comment 10•5 years ago
|
||
Comment 11•5 years ago
|
||
bugherder |
Comment 12•5 years ago
|
||
Doesn't seem like this needs uplift, but feel free to scream if you disagree.
Description
•