TPE Necko/Projects/Socket Process Isolation
From MozillaWiki
Contents
Team members
EM: Shian-Yow Wu
Tech Lead: Shih-Chiang Chien
Implementation Team:
- Cervantes Yu
- Kershaw Chang
- Shih-Chiang Chien
Status
Roadmap
Milestone | Task | Estimate Time in Weeks | Actual Time in Weeks |
---|---|---|---|
M0 | Evaluation & Prototyping | 6 | |
M1 | Socket process basic implementation | 7 | |
M2 | HTTP/HTTPS adaption | 8 | |
M3 | Telemetry for HTTP/HTTPS adaption | 8 | |
M4 | Bugfix on Nightly 63 & Shell study on Beta 62 | 8 |
Scope
- M0 - Evaluation & Prototyping
- Prototyping with UDPSocket
- Performance study on the additional process
- Architecture design for HTTP/HTTPS adaption
- M1 - Firefox60 Nightly
- Prepare and land socket process behind a pref, default off
- Prepare and land telemetry for the socket process shield study
- M2 - Firefox61 Nightly
- Shield study on the socket process overhead on Beta 60
- Prepare and land HTTP/HTTPS modification behind a pref
- Default enable socket process on Nightly 61
- M3 - Firefox62 Nightly
- Continue landing HTTP/HTTPS modification and bugfix
- Prepare and land telemetry for the HTTP/HTTPS shield study
- M4 - Firefox63 Nightly
- Shield study on the performance of the new HTTP/HTTPS architecture on Beta 62
- Default enable new HTTP/HTTPS architecture on Nightly 63
Evaluation
Sandboxing TCP/UDP socket in a separate process
Risk & Mitigation plan
Socket process isolation will be landed behind a pref, therefore:
- Shield study will be employed on a proportion of Firefox users before to gather performance/stability data without affecting all users at once.
- Go Faster add-on can be used to disable the feature on designated channel immediately when major regression happen after default on.
Project Dashboard
Meta Bugs
ID | Summary | Priority | Status |
---|---|---|---|
1322426 | [meta] Move all TCP/UDP network operations into a dedicated process | P2 | NEW |
1 Total; 1 Open (100%); 0 Resolved (0%); 0 Verified (0%);
M1 bugs
ID | Summary | Status | Target milestone | Assigned to | Whiteboard |
---|---|---|---|---|---|
1416623 | Create SocketProcessHost and corresponding IPC interfaces | RESOLVED | --- | Kershaw Chang [:kershaw] | [necko-triaged] [SOCK-PROC-M1] |
1430041 | Setup crash reporter on socket process | RESOLVED | --- | Kershaw Chang [:kershaw] | [necko-triaged][SOCK-PROC-M1] |
1430042 | Setup memory reporter on socket process | RESOLVED | --- | Kershaw Chang [:kershaw] | [necko-triaged][SOCK-PROC-M1] |
1430045 | Create NetworkPrefs for synchronizing important preference to socket process | RESOLVED | --- | Cervantes Yu [:cyu] [:cervantes] | [necko-triaged][SOCK-PROC-M1] |
1430047 | initialize SocketTransportService on socket process | RESOLVED | --- | Kershaw Chang [:kershaw] | [necko-triaged][SOCK-PROC-M1] |
1430048 | update online/offline status to socket process | RESOLVED | --- | Kershaw Chang [:kershaw] | [necko-triaged][SOCK-PROC-M1] |
1430050 | IPC to the socket process for DNS resolution | RESOLVED | --- | Kershaw Chang [:kershaw] | [necko-triaged][SOCK-PROC-M1] |
1430538 | Setup Gecko profiler on socket process | RESOLVED | --- | Dragana Damjanovic [:dragana] | [necko-triaged][SOCK-PROC-M1] |
1430684 | Setup telemetry on socket process | RESOLVED | --- | Cervantes Yu [:cyu] [:cervantes] | [necko-triaged][SOCK-PROC-M1] |
1430695 | add telemetry to monitor performance metrics/overhead of creating socket process | NEW | --- | [necko-triaged][SOCK-PROC-M1] |
10 Total; 1 Open (10%); 9 Resolved (90%); 0 Verified (0%);