Closed Bug 1620594 Opened 5 years ago Closed 5 years ago

Completely remove TabGroup.

Categories

(Core :: DOM: Navigation, task)

task
Not set
normal

Tracking

()

RESOLVED FIXED
mozilla77
Fission Milestone M5b
Tracking Status
firefox77 --- fixed

People

(Reporter: farre, Assigned: farre)

References

(Blocks 1 open bug)

Details

Attachments

(8 files)

No description provided.
Blocks: 1561715

Added a separate bug for the final stages of TabGroup removal to separate it from the remaining work.

Assignee: nobody → afarre
No longer blocks: 1561715
Status: NEW → ASSIGNED

Removing TabGroup directly implies that there is now only one
SchedulerGroup, namely the SystemGroup. Because of this we can at
every point where TabGroup does a dispatch, gets and event target,
etc, switch to SystemGroup instead.

TabGroup never really made any difference in which thread something go
dispatched to. This was the intended use, but development of TabGroups
with abstract main threads never made it that far. The good thing is
that thish makes it safe to default to the SystemGroup.

Timers for setTimeout and workers were the sole users of wrapped and
throttled event targets, that those throttled queues have been moved
to the BrowsingContextGroup and are now accessed explicitly.

DocGroups have also been moved to BrowsingContextGroup.

Attachment #9131818 - Attachment description: Bug 1620594 - Remove TabGroup. r=nika!,baku!,mattwoodrow! → Bug 1620594 - Remove TabGroup and SystemGroup. r=nika!,baku!,mattwoodrow!

To be able to remove SystemGroup, NS_ReleaseOnMainThreadSystemGroup
needs to have its dependency on SystemGroup removed. Since all
releases using SystemGroup would've released on the main thread anyway
we can safely replace NS_ReleaseOnMainThreadSystemGroup with
NS_ReleaseOnMainThread.

Depends on D64390

This patch also tries to remove the event target entirely if it would
default to the main thread on a null event target.

Depends on D67634

Attachment #9131818 - Attachment description: Bug 1620594 - Remove TabGroup and SystemGroup. r=nika!,baku!,mattwoodrow! → Bug 1620594 - Part 7: Remove TabGroup and SystemGroup. r=nika!
Attachment #9134696 - Attachment description: Bug 1620594 - Part 6: Use SchedulerGroup::AbstractThread instead of SystemGroup::AbstractThread. r=nika! → Bug 1620594 - Part 6: Use AbstractThread::MainThread instead of SystemGroup::AbstractThread. r=nika!

This is sort of the same as bug 1561715, so setting same Fission milestone.

Fission Milestone: --- → M5b
Component: DOM: Core & HTML → DOM: Navigation

There was already an exception already for
mozilla::SchedulerGroup::CreateEventTargetFor, and this code has now
(re)moved to DocGroup as DocGroup::mEventTarget. DocGroup::mEventTarget
is created from DocGroup::Create, which is where the leak shows up now.

Depends on D65936

Attachment #9138869 - Attachment description: Bug 1620594 - Part 8: Add lsan exception for mozilla::DocGroup::Create. r=mccr8! → Bug 1620594 - Part 8: Add lsan exception for DocGroup::Create. r=mccr8!
Pushed by afarre@mozilla.com: https://hg.mozilla.org/integration/autoland/rev/4c58ef4b5ed0 Part 1: Rework NS_ReleaseOnMainThreadSystemGroup. r=nika https://hg.mozilla.org/integration/autoland/rev/672e860442c3 Part 2: Use SchedulerGroup::Dispatch instead of SystemGroup::Dispatch. r=nika https://hg.mozilla.org/integration/autoland/rev/7530afa936d5 Part 3: Use default target for timers using SystemGroup. r=nika https://hg.mozilla.org/integration/autoland/rev/22cac5d2d136 Part 4: Remove SetEventTargetForActor with SystemGroup target. r=nika https://hg.mozilla.org/integration/autoland/rev/de2dc6c4fe6f Part 5: Use GetMainThreadSerialEventTarget instead of SystemGroup::EventTargetFor. r=nika https://hg.mozilla.org/integration/autoland/rev/a5ad3b179c92 Part 6: Use AbstractThread::MainThread instead of SystemGroup::AbstractThread. r=nika https://hg.mozilla.org/integration/autoland/rev/36b0646e8649 Part 7: Remove TabGroup and SystemGroup. r=nika,bas https://hg.mozilla.org/integration/autoland/rev/9a9161243d00 Part 8: Add lsan exception for DocGroup::Create. r=mccr8
Pushed by geoff@darktrojan.net: https://hg.mozilla.org/comm-central/rev/25b29578a146 Port bug 1620594 part 1: Change NS_ReleaseOnMainThreadSystemGroup to NS_ReleaseOnMainThread. rs=bustage-fix
You need to log in before you can comment on or make changes to this bug.

Attachment

General

Created:
Updated:
Size: