TPE Necko/Projects/Socket Process Isolation

From MozillaWiki
Jump to: navigation, search

Team members

EM: Shian-Yow Wu

Tech Lead: Shih-Chiang Chien

Implementation Team:

  • Cervantes Yu
  • Kershaw Chang
  • Shih-Chiang Chien


Socket Process project status.png


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


  • 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


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

Full Query
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

Full Query
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%);