Crash when browsing Gmail with accessibility enabled on linux
Categories
(Core :: Disability Access APIs, defect, P2)
Tracking
()
| Tracking | Status | |
|---|---|---|
| firefox-esr60 | --- | unaffected |
| firefox65 | --- | wontfix |
| firefox66 | --- | fixed |
| firefox67 | --- | verified |
People
(Reporter: pvagner, Assigned: MarcoZ)
References
Details
(Keywords: crash, regression)
Crash Data
User Agent: Mozilla/5.0 (X11; Linux x86_64; rv:66.0) Gecko/20100101 Firefox/66.0
Steps to reproduce:
- Make sure Orca is running
- Start firefox, browse and login to gmail.com
- Expand a conversation
- Make sure orca is switched into browse mode by pressing insert+a
- Press ctrl+home to move to the top
- Press orca quick navigation keyboard shortcut h until orca presents sender of a first message in the conversation
- Now either press down arrow multiple times to browse over the toolbar buttons and translation options or press up arrow key multiple times to navigate out of the conversation.
Actual results:
Guessing from the reports it's happening for stable, beta and nightly channels.
I am using Firefox nightly and I need to arrow up in the last step of my steps to trigger the crash. Other users can reproduce this when pressing down arrow: https://mail.gnome.org/archives/orca-list/2019-January/msg00376.html
Expected results:
Firefox should not crash and it should be possible to continue browsing.
Comment 1•7 years ago
|
||
Adding more info to this bug. I see crashes in 66 nightly and 64, but none showing up in 65 or 67 yet.
| Reporter | ||
Comment 2•7 years ago
|
||
Firefox 65 Crashes:
https://crash-stats.mozilla.com/report/index/fb9a2e4f-3931-4482-af4b-aa3990190130
https://crash-stats.mozilla.com/report/index/bp-4f908ae7-da36-4e79-b10c-be1560190130
Firefox 63 crash:
https://crash-stats.mozilla.com/report/index/b1b64862-63bb-4ede-bd0c-2fa120190130
Firefox 62 crashes:
https://crash-stats.mozilla.com/report/index/bp-26a5a058-082e-4662-ab63-447180190130
https://crash-stats.mozilla.com/report/index/bp-b91e6200-fe32-417c-b9b1-4f9180190130
https://crash-stats.mozilla.com/report/index/545ab80d-2127-49f9-93b8-3ea3e0190130
https://crash-stats.mozilla.com/report/index/bp-199985d7-c487-4829-9d0a-95f0b0190130
https://crash-stats.mozilla.com/report/index/bp-8edb85fb-f137-4b5a-a65d-efdcf0190130
First build where I can reproduce the crash: https://ftp.mozilla.org/pub/firefox/nightly/2018/05/2018-05-08-23-17-37-mozilla-central/firefox-62.0a1.en-US.linux-x86_64.tar.bz2
This one and a few random older Firefox 62 and Firefox 61 builds are without this crash meaning that I can't reproduce it: https://ftp.mozilla.org/pub/firefox/nightly/2018/05/2018-05-08-10-01-05-mozilla-central/firefox-62.0a1.en-US.linux-x86_64.tar.bz2
| Assignee | ||
Comment 3•7 years ago
|
||
Regression range:
https://hg.mozilla.org/mozilla-central/pushloghtml?fromchange=59005ba3cd3e7b3f9e8804bea881bf4c3a755d7c&tochange=0cd106a2eb78aa04fd481785257e6f4f9b94707b
The only bug that stands out in this range is bug 1005271.
Comment 4•7 years ago
|
||
Peter, can you please confirm whether the following test case causes the crash?
data:text/html,<style>table, tbody, tr, td { display: block; }</style>before<table><tbody><tr><td>crash</td></tr></tbody></table>after
This is a distilled version of what occurs around the "Reply" and "More" buttons below the sender heading.
This is all kinds of messed up:
- The table reports row and column counts of 0.
- That in turn causes the table-cell-index attribute to report -1, etc. for the cells. This should never be negative.
- I'm not quite sure what happens from here because the ATK getRowAtIndexCB implementation explicitly checks for negative indexes and returns early with -1 if this happens. Maybe Orca is flipping the negative cell index? (Again, we shouldn't be giving it a negative index in the first place.) Our ATK implementation doesn't bounds check aside from < 0, so I guess passing a positive value would fail here. (In contrast, our ia2AccessibleTable::get_rowIndex does check the upper bound.)
- TableAccessible::RowIndexAt takes the cell index and just divides by the ColCount. Since ColCount is 0, we divide by 0 and crash.
As for a fix:
- Fixing bug 1461244 should fix this, since the table won't get a 0 ColCount.
- We really should protect against bugs like this, though. We should:
- Add better sanity checking in ARIAGridCellAccessible::NativeAttributes so that we never expose negative indexes for table-cell-index; and
- bounds check in the ATK getRowAtIndexCB implementation like we do in ia2AccessibleTable. Or perhaps we should move that check into the TableAccessible::RowIndexAt implementation.
Updated•7 years ago
|
| Reporter | ||
Comment 5•7 years ago
|
||
Jamie huge thanks for trying to make this work and for comprehensive comment explaining the whole situation.
Unfortunatelly I am unable to reproduce the crash with your test case.
I have even tried tweaking it a little by adding a div or a button or more rows into the table. Still I can't trigger the crash with the test case no matter what I'm doing.
As I am further playing with this, I have discovered that it is not crashing all the time on the gmail site either. My rough guess is that it's about 8 times from 10 I can make it crash on gmail. When it does not crash immediatelly moving up and down several times makes it crash.
Might it be related to the fact orca is controlling navigation trying to set focus on focusable controls inside the table?
| Assignee | ||
Comment 6•7 years ago
|
||
Peter, can you still reproduce the crash with this try build, which contains a proposed fix for bug 1461244:
https://queue.taskcluster.net/v1/task/Tt67jUi1SHya4O9Sgp7fSA/runs/0/artifacts/public/build/target.tar.bz2
| Reporter | ||
Comment 7•7 years ago
|
||
I can no longer reproduce the crash with this try build.
I tried a few times with different conversations opened in gmal.
| Assignee | ||
Comment 8•7 years ago
|
||
Thank you, Peter! Marking this bug as depending on the other one. It can be closed once that bug is fixed.
| Assignee | ||
Comment 9•7 years ago
|
||
(In reply to James Teh [:Jamie] from comment #4)
- We really should protect against bugs like this, though. We should:
- Add better sanity checking in ARIAGridCellAccessible::NativeAttributes so that we never expose negative indexes for table-cell-index; and
- bounds check in the ATK getRowAtIndexCB implementation like we do in ia2AccessibleTable. Or perhaps we should move that check into the TableAccessible::RowIndexAt implementation.
Filed Bug 1524919 for this and am working on it.
| Assignee | ||
Comment 10•7 years ago
|
||
Fixed by bug 1461244, which should be in the upcoming 2019-02-04 Nightly build.
Updated•7 years ago
|
Comment 11•7 years ago
|
||
I'd love to have this fixed in 66 as well, will follow up in bug 1461244.
Comment 12•7 years ago
|
||
Removing the regressionwindow-wanted keyword since the issue is already RESOLVED FIXED.
Updated•7 years ago
|
Updated•7 years ago
|
Comment 13•7 years ago
|
||
I’ve managed to reproduce the crash with Fx 67.0a1 (2019-01-30) on Ubuntu 18.04 x64.
Issue is no longer reproducible, using the same platform with Fx 68.0a1 (2019-05-09) and Fx 67.0b18.
Description
•