Closed Bug 1628531 (about:processes) Opened 5 years ago Closed 1 years ago

[meta] Add about:processes page

Categories

(Core :: DOM: Content Processes, task, P2)

task

Tracking

()

RESOLVED FIXED
Tracking Status
firefox-esr68 --- disabled
firefox75 --- disabled
firefox76 --- disabled
firefox77 --- disabled
firefox78 --- affected

People

(Reporter: cpeterson, Unassigned)

References

(Depends on 6 open bugs)

Details

(Keywords: meta)

Summary: Add about:processes page → [meta] Add about:processes page

The requestProcInfo call seems to be exactly what we need (thanks @tarek!) – it collects info on processes and threads without waking them up, which is great.

A few UX requirements:

  • we'll have hundreds of processes;
  • each process will have dozens if not hundreds of threads (not sure whether we'll show threads of all processes at once);
  • everything will be updated once every few seconds;
  • for each item, we'll have at least 5 pieces of info (tab name, either URL or <title>, pid, CPU usage and memory usage);
  • in future versions, we'll have additional data;
  • we'll want the ability to order at least by tab name, by CPU usage and by memory usage and keep it ordered;
  • we want to avoid saturating the parent process with this display.

So, I haven't been following our big xul/xbl replacement, but I wonder what's the best component to represent processes/threads here. Also, can we get the content of an about: page to be displayed in a content process rather than in the parent process?

Any ideas, Gijs, Florian?

Flags: needinfo?(gijskruitbosch+bugs)
Flags: needinfo?(florian)

The current about:performance is displayed using just HTML/CSS/JS, so you might want to fork it. It seems to be doing OK with hundreads of tabs.
A xul:tree would be more efficient, but I wasn't (and still am not) clear on whether the xul tree implementation would remain, or was planned for removal.

I think displaying an about: page in a content process is possible (https://searchfox.org/mozilla-central/rev/a4d62e09a4c46aef918667fa759bf9ae898dc258/netwerk/protocol/about/nsIAboutModule.idl#53-61).

Flags: needinfo?(florian)

(In reply to David Teller [:Yoric] (please use "needinfo") from comment #2)

So, I haven't been following our big xul/xbl replacement, but I wonder what's the best component to represent processes/threads here.

I don't think we have a good answer here. The answer used to be <tree>, I think we're trying to avoid adding new consumers of that UI. Other places use <richlistbox> (like the prefs) but they perform poorly with many entries (cf. bug 1629366), or tables/HTML (like about:config), which seem to perform slightly better but still not great.

Also, can we get the content of an about: page to be displayed in a content process rather than in the parent process?

Yes, but you should use the privileged about process because you're passing privileged information that normal content processes should ideally not have access to, and handing it to any old content process would be a security risk. See the registration of about:logins for an example.

Flags: needinfo?(gijskruitbosch+bugs)

Well, I guess I'm going to prototype this with <table>.

Component: General → DOM: Content Processes
Depends on: 1636283
Depends on: 1636561
Fission Milestone: M6a → M7
Depends on: 1654338
No longer depends on: 1654338
Blocks: 1652785
Depends on: 1661552
Depends on: 1664468
Assignee: D.O.Teller+bugspam → nobody
Depends on: 1675535

about:processes is already in place and we don't need to track this meta for Fission milestone for the remaining work.

Fission Milestone: M7 → ---

Florian, please triage this list of remaining work for about:processes and prioritize as you see best. Thanks!

Flags: needinfo?(florian)

Many thanks to everybody involved in making "about:processes" happen. I have been waiting for something like this ever since multi-process was introduced a few years ago. There are situations where it is really useful to be able to see which process is doing what. Again, many thanks!

Blocks: 1656383
Depends on: 1693293
Depends on: 1694728
Depends on: 1695025
Depends on: 1695184
Depends on: 1695223
Depends on: 1695258
Depends on: 1652591
Depends on: 1705827
Depends on: 1709811
Depends on: 1709878
Depends on: 1710441
Depends on: 1710470
Depends on: 1710478
Depends on: 1728354
Depends on: 1734597
Depends on: 1734899
Depends on: 1737439
Depends on: 1744264
Depends on: 1759443
Severity: normal → S3
Depends on: 1796096

(In reply to Neha Kochar [:neha] from comment #7)

Florian, please triage this list of remaining work for about:processes and prioritize as you see best. Thanks!

With bug 1777563 fixed, I think we can now close this bug, even if some dependencies are still open.

Status: NEW → RESOLVED
Closed: 1 years ago
Flags: needinfo?(florian)
Resolution: --- → FIXED
Duplicate of this bug: 515352
You need to log in before you can comment on or make changes to this bug.