Closed
Bug 1334966
Opened 8 years ago
Closed 8 years ago
Crash in mozilla::dom::TabParent::GetTopLevelDocAccessible
Categories
(Core :: Disability Access APIs, defect)
Tracking
()
VERIFIED
FIXED
mozilla54
Tracking | Status | |
---|---|---|
firefox52 | --- | unaffected |
firefox53 | --- | unaffected |
firefox54 | --- | verified |
People
(Reporter: MarcoZ, Assigned: tbsaunde)
Details
(Keywords: crash, Whiteboard: aes+)
Crash Data
Attachments
(1 file)
1.21 KB,
patch
|
eeejay
:
review+
|
Details | Diff | Splinter Review |
This bug was filed from the Socorro interface and is
report bp-f5ab4b55-be44-432e-b642-e86222170130.
=============================================================
This bug has actually morphed from what was in bug 1334059. The steps are the same. With NVDA running and E10S enabled:
1. Visit https://taz.de/Politik/Deutschland/!p4616/
2. Focus the link "Gesellschaft" in the big list of categories and sub categories.
3. Press Ctrl+Enter to open that in a new tab.
4. Crash.
There's also a followup crash that gets submitted along with the above one:
https://crash-stats.mozilla.com/report/index/4a98417a-502b-48cf-ae17-01a072170130
The signature seems to be identical, but this is a separate report that gets submitted alongside the first.
Flags: needinfo?(yzenevich)
Flags: needinfo?(tbsaunde+mozbugs)
Assignee | ||
Comment 1•8 years ago
|
||
There can be cases where a non top level document currently has no parent
document, for example when a child doc has been unbound from its parent but
not yet reattached to a new outer doc.
Attachment #8831602 -
Flags: review?(eitan)
Updated•8 years ago
|
Assignee: nobody → tbsaunde+mozbugs
Updated•8 years ago
|
Flags: needinfo?(yzenevich)
Comment 2•8 years ago
|
||
Comment on attachment 8831602 [details] [diff] [review]
make TabParent::GetTopLevelDocAccessible() only return documents that are top level
Review of attachment 8831602 [details] [diff] [review]:
-----------------------------------------------------------------
::: dom/ipc/TabParent.cpp
@@ +969,5 @@
> // document accessible.
> const ManagedContainer<PDocAccessibleParent>& docs = ManagedPDocAccessibleParent();
> for (auto iter = docs.ConstIter(); !iter.Done(); iter.Next()) {
> auto doc = static_cast<a11y::DocAccessibleParent*>(iter.Get()->GetKey());
> + if (doc->IsTopLevel()) {
If we change this method, shouldn't we also change GetProxiedAccessibleInSubtree?
Instead of the if block with aDoc->IsTopLevel() and a recursive call, you can simply get the TabParent, and call GetTopLevelDocAccessible().
Attachment #8831602 -
Flags: review?(eitan)
Assignee | ||
Comment 3•8 years ago
|
||
(In reply to Eitan Isaacson [:eeejay] from comment #2)
> Comment on attachment 8831602 [details] [diff] [review]
> make TabParent::GetTopLevelDocAccessible() only return documents that are
> top level
>
> Review of attachment 8831602 [details] [diff] [review]:
> -----------------------------------------------------------------
>
> ::: dom/ipc/TabParent.cpp
> @@ +969,5 @@
> > // document accessible.
> > const ManagedContainer<PDocAccessibleParent>& docs = ManagedPDocAccessibleParent();
> > for (auto iter = docs.ConstIter(); !iter.Done(); iter.Next()) {
> > auto doc = static_cast<a11y::DocAccessibleParent*>(iter.Get()->GetKey());
> > + if (doc->IsTopLevel()) {
>
> If we change this method, shouldn't we also change
> GetProxiedAccessibleInSubtree?
>
> Instead of the if block with aDoc->IsTopLevel() and a recursive call, you
> can simply get the TabParent, and call GetTopLevelDocAccessible().
That would have been a correct implementation before this too, but I suspect a fast path may be worth while since iterating over a hash table to find something you already have is pretty silly.
Flags: needinfo?(tbsaunde+mozbugs)
Comment 4•8 years ago
|
||
Comment on attachment 8831602 [details] [diff] [review]
make TabParent::GetTopLevelDocAccessible() only return documents that are top level
Review of attachment 8831602 [details] [diff] [review]:
-----------------------------------------------------------------
I guess I would have written that method a bit differently without the recursion. But its not wrong.
Attachment #8831602 -
Flags: review+
Updated•8 years ago
|
Whiteboard: aes+
Pushed by tsaunders@mozilla.com:
https://hg.mozilla.org/integration/mozilla-inbound/rev/2467b35c59b2
make TabParent::GetTopLevelDocAccessible() only return documents that are top level r=eeejay
Comment 6•8 years ago
|
||
bugherder |
Status: NEW → RESOLVED
Closed: 8 years ago
status-firefox54:
--- → fixed
Resolution: --- → FIXED
Target Milestone: --- → mozilla54
Updated•8 years ago
|
status-firefox52:
--- → unaffected
status-firefox53:
--- → unaffected
Updated•8 years ago
|
Flags: qe-verify+
Comment 7•8 years ago
|
||
I'm not able to reproduce the initial issue on 54.0a1 (2017-01-30) Win 10, but I think we're safe to mark this as verified since there are no crashes in Socorro on builds newer than 2017-01-31.
You need to log in
before you can comment on or make changes to this bug.
Description
•