TPE Necko/Projects/PBackground for HTTP channels in e10s: Difference between revisions

From MozillaWiki
Jump to navigation Jump to search
 
(28 intermediate revisions by 2 users not shown)
Line 1: Line 1:
= Team members =
= Team members =
* Engineering Manager
EM: Shian-Yow Wu
** '''Shian-Yow Wu'''
* Tech Lead
** '''Shih-Chiang Chien'''
* Test Lead
** '''Gary Chen'''
* Engineering Program Manager
** '''Aaron Wu'''


= Roadmap =
Tech Lead: Shih-Chiang Chien


* Milestone
Test Lead: Gary Chen
1. make HttpChannelParent thread-safe to deliver the content of HTTP channel
2. make HttpChannelChild thread-safe and re-enable thread-retargetability
3. move IPC message from main thread to PBackground thread in chrome process
4. move IPC message from main thread to Necko thread in content process


EPM: Francis Lee


= Roadmap =


** Testing Plan
{| class="wikitable"
|-
! Milestone !! Task !! Estimate Time in Weeks !! Actual Time in Weeks
|-
| M1 || Make HttpChannelParent + HttpChannelChild thread-safe || 4 || 4
|-
| M2 || Move IPC message in chrome process || 3 || 3
|-
| M3 || Move IPC message in content process || 5 ||
|-
|}


= Scope =


= Checkpoint =
* M1 - Firefox55 nightly
** make HttpChannelParent thread-safe to deliver the content of HTTP channel
** make HttpChannelChild thread-safe and re-enable thread-retargetability
* M2 - Firefox56 nightly
** move IPC message from main thread to PBackground thread in chrome process
* M3 - Firefox57 nightly
** move IPC message from main thread to Necko thread in content process


* Q1
= Risk & Mitigation plan =
** April 14th (Kickoff)
** April 28th
** May 12th
** May 26th (MozLondon Session)


* Q2
* NA
** Aug 19th
** Sep 2nd
** Sep 16th
** Sep 30th


= Status Tracking =
= Project Dashboard =
 
 
== [META] PBackground for HTTP channels in e10s ==


=== Meta Bugs ===
<bugzilla>
<bugzilla>
     {
     {
         "product":"Core",
         "id":["1338218"]
        "blocks":"1338218",
        "status":["UNCONFIRMED", "NEW", "ASSIGNED", "REOPENED"],
        "cf_blocking_b2g_type":"contains",
        "include_fields": "id, component, summary, status, resolution, assigned_to, depends_on, blocks, whiteboard, cf_blocking_b2g"
     }
     }
</bugzilla>
</bugzilla>


== Presentation API Dashboard [ETA by 9/2] ==


<bugzilla>
=== M1 bugs ===
    {
        "product":"Core",
        "status":["UNCONFIRMED", "NEW", "ASSIGNED", "REOPENED"],
        "whiteboard":"[ETA 9/2]",
        "cf_blocking_b2g_type":"contains",
        "include_fields": "id, component, summary, status, resolution, assigned_to, depends_on, blocks, whiteboard, cf_blocking_b2g"
    }
</bugzilla>
 
<bugzilla>
    {
        "product":"Firefox for Android",
        "status":["UNCONFIRMED", "NEW", "ASSIGNED", "REOPENED"],
        "whiteboard":"[ETA 9/2]",
        "cf_blocking_b2g_type":"contains",
        "include_fields": "id, component, summary, status, resolution, assigned_to, depends_on, blocks, whiteboard, cf_blocking_b2g"
    }
</bugzilla>
 
== Presentation API Dashboard [ETA by 9/16] ==


<bugzilla>
<bugzilla>
     {
     {
         "product":"Core",
         "product":"Core",
         "status":["UNCONFIRMED", "NEW", "ASSIGNED", "REOPENED"],  
         "status":["UNCONFIRMED", "NEW", "ASSIGNED", "REOPENED", "RESOLVED", "VERIFIED"],  
        "whiteboard":"[ETA 9/16]",
         "whiteboard":["[PBg-HTTP-M1]"],
        "cf_blocking_b2g_type":"contains",
         "include_fields": "id, summary, status, target_milestone, assigned_to, whiteboard"
         "include_fields": "id, component, summary, status, resolution, assigned_to, depends_on, blocks, whiteboard, cf_blocking_b2g"
    }
</bugzilla>
 
<bugzilla>
    {
        "product":"Firefox for Android",
        "status":["UNCONFIRMED", "NEW", "ASSIGNED", "REOPENED"],
        "whiteboard":"[ETA 9/16]",
        "cf_blocking_b2g_type":"contains",
         "include_fields": "id, component, summary, status, resolution, assigned_to, depends_on, blocks, whiteboard, cf_blocking_b2g"
     }
     }
</bugzilla>
</bugzilla>


== Presentation API Dashboard [ETA by 9/30] ==
=== M2 bugs ===


<bugzilla>
<bugzilla>
     {
     {
         "product":"Core",
         "product":"Core",
         "status":["UNCONFIRMED", "NEW", "ASSIGNED", "REOPENED"],  
         "status":["UNCONFIRMED", "NEW", "ASSIGNED", "REOPENED", "RESOLVED", "VERIFIED"],  
        "whiteboard":"[ETA 9/30]",
         "whiteboard":["[PBg-HTTP-M2]"],
        "cf_blocking_b2g_type":"contains",
         "include_fields": "id, summary, status, target_milestone, assigned_to, whiteboard"
         "include_fields": "id, component, summary, status, resolution, assigned_to, depends_on, blocks, whiteboard, cf_blocking_b2g"
    }
</bugzilla>
 
<bugzilla>
    {
        "product":"Firefox for Android",
        "status":["UNCONFIRMED", "NEW", "ASSIGNED", "REOPENED"],
        "whiteboard":"[ETA 9/30]",
        "cf_blocking_b2g_type":"contains",
         "include_fields": "id, component, summary, status, resolution, assigned_to, depends_on, blocks, whiteboard, cf_blocking_b2g"
     }
     }
</bugzilla>
</bugzilla>


 
=== M3 bugs ===
== Presentation API Dashboard [ETA FX52] ==


<bugzilla>
<bugzilla>
     {
     {
         "product":"Core",
         "product":"Core",
         "status":["UNCONFIRMED", "NEW", "ASSIGNED", "REOPENED"],  
         "status":["UNCONFIRMED", "NEW", "ASSIGNED", "REOPENED", "RESOLVED", "VERIFIED"],  
        "whiteboard":"[ETA FX52]",
         "whiteboard":["[PBg-HTTP-M3]"],
         "cf_blocking_b2g_type":"contains",
         "include_fields": "id, summary, status, target_milestone, assigned_to, whiteboard"
         "include_fields": "id, component, summary, status, resolution, assigned_to, depends_on, blocks, whiteboard, cf_blocking_b2g"
     }
     }
</bugzilla>
</bugzilla>




== Presentation API Dashboard [ETA FX53] ==
=== M4 bugs ===


<bugzilla>
<bugzilla>
     {
     {
         "product":"Core",
         "product":"Core",
         "status":["UNCONFIRMED", "NEW", "ASSIGNED", "REOPENED"],  
         "status":["UNCONFIRMED", "NEW", "ASSIGNED", "REOPENED", "RESOLVED", "VERIFIED"],  
        "whiteboard":"[ETA FX53]",
         "whiteboard":["[PBg-HTTP-M4]"],
         "cf_blocking_b2g_type":"contains",
         "include_fields": "id, summary, status, target_milestone, assigned_to, whiteboard"
         "include_fields": "id, component, summary, status, resolution, assigned_to, depends_on, blocks, whiteboard, cf_blocking_b2g"
     }
     }
</bugzilla>
</bugzilla>
<bugzilla>
    {
        "product":"Firefox for Android",
        "status":["UNCONFIRMED", "NEW", "ASSIGNED", "REOPENED"],
        "whiteboard":"[ETA FX53]",
        "cf_blocking_b2g_type":"contains",
        "include_fields": "id, component, summary, status, resolution, assigned_to, depends_on, blocks, whiteboard, cf_blocking_b2g"
    }
</bugzilla>
== Presentation API Dashboard [Backlog] ==
<bugzilla>
    {
        "product":"Core",
        "status":["UNCONFIRMED", "NEW", "ASSIGNED", "REOPENED"],
        "whiteboard":"[Backlog]",
        "cf_blocking_b2g_type":"contains",
        "include_fields": "id, component, summary, status, resolution, assigned_to, depends_on, blocks, whiteboard, cf_blocking_b2g"
    }
</bugzilla>
<bugzilla>
    {
        "product":"Firefox for Android",
        "status":["UNCONFIRMED", "NEW", "ASSIGNED", "REOPENED"],
        "whiteboard":"[Backlog]",
        "cf_blocking_b2g_type":"contains",
        "include_fields": "id, component, summary, status, resolution, assigned_to, depends_on, blocks, whiteboard, cf_blocking_b2g"
    }
</bugzilla>
== Presentation API 2.6+ Dashboard  ==
<bugzilla>
    {
        "product":"Core",
        "component":["DOM", "General", "Networking"],
        "status":["UNCONFIRMED", "NEW", "ASSIGNED", "REOPENED"],
        "cf_blocking_b2g":"2.6+",
        "cf_blocking_b2g_type":"contains",
        "include_fields": "id, component, summary, status, resolution, assigned_to, depends_on, blocks, whiteboard, cf_blocking_b2g"
    }
</bugzilla>
== Presentation API 2.6? Dashboard  ==
<bugzilla>
    {
        "product":"Core",
        "component":["DOM", "General", "Networking"],
        "cf_blocking_b2g":"2.6?",
        "cf_blocking_b2g_type":"contains",
        "include_fields": "id, component, summary, status, resolution, assigned_to, depends_on, blocks, whiteboard, cf_blocking_b2g"
    }
</bugzilla>
== 1-UA support for Presentation API ==
<bugzilla>
    {
        "blocks":"1184036",
        "status":["RESLOVE FIXED", "NEW", "ASSIGNED", "REOPENED"],
        "include_fields": "id, summary, product, component, resolution, assigned_to, depends_on, blocks, whiteboard, cf_blocking_b2g, cf_feature_b2g, target_milestone"
    }
</bugzilla>
== 2-UA support for Presentation API ==
<bugzilla>
    {
        "blocks":"1184073",
        "status":["RESOLVED FIXED", "NEW", "ASSIGNED", "REOPENED"],
        "include_fields": "id, summary, product, component, resolution, assigned_to, depends_on, blocks, whiteboard, cf_blocking_b2g, cf_feature_b2g, target_milestone"
    }
</bugzilla>
= Reference =
** [https://docs.google.com/presentation/d/1Xlclnw19sUvFWL_SOsP_KTy13rRbwB1GPBxlFkLtes8/edit#slide=id.g129a3c0f85_0_28 Presentation API Roadmap]
** [https://wiki.mozilla.org/WebAPI/PresentationAPI Presentation API Wiki]
** [https://docs.google.com/a/mozilla.com/document/d/1bgYVcBlpwzpI83anMCd9lp9xEupYwwApm05LPetVzHQ/edit?usp=drive_web Flyweb Roadmap]
= Weekly Sync-up =
* Weekly Meeting
** Every Thursday @11am
* Weekly Note
** [https://docs.google.com/document/d/1uSiSaSKTV8qZ6q5HQX26i3Obh53vQuoGKK6ePp03rTo/edit Weekly Note and Status update]
*** PLEASE update status before weekly meeting

Latest revision as of 06:43, 17 July 2017

Team members

EM: Shian-Yow Wu

Tech Lead: Shih-Chiang Chien

Test Lead: Gary Chen

EPM: Francis Lee

Roadmap

Milestone Task Estimate Time in Weeks Actual Time in Weeks
M1 Make HttpChannelParent + HttpChannelChild thread-safe 4 4
M2 Move IPC message in chrome process 3 3
M3 Move IPC message in content process 5

Scope

  • M1 - Firefox55 nightly
    • make HttpChannelParent thread-safe to deliver the content of HTTP channel
    • make HttpChannelChild thread-safe and re-enable thread-retargetability
  • M2 - Firefox56 nightly
    • move IPC message from main thread to PBackground thread in chrome process
  • M3 - Firefox57 nightly
    • move IPC message from main thread to Necko thread in content process

Risk & Mitigation plan

  • NA

Project Dashboard

Meta Bugs

Full Query
ID Summary Priority Status
1338218 [META] PBackground for HTTP channels in e10s P1 RESOLVED

1 Total; 0 Open (0%); 1 Resolved (100%); 0 Verified (0%);


M1 bugs

Full Query
ID Summary Status Target milestone Assigned to Whiteboard
1320744 HttpChannelChild should implement nsIThreadRetargetableRequest RESOLVED mozilla55 Shih-Chiang Chien [:schien] (UTC+8) (use ni? plz) [necko-active][PBg-HTTP-M1]
1325915 remove invocation order dependency on OnProgress and OnDataAvailable in HttpChannelParent RESOLVED mozilla54 Shih-Chiang Chien [:schien] (UTC+8) (use ni? plz) [necko-active][PBg-HTTP-M1]
1334068 make nsHttpChannel/HttpBaseChannel dtor thread safe RESOLVED mozilla54 Shih-Chiang Chien [:schien] (UTC+8) (use ni? plz) [necko-active][PBg-HTTP-M1]
1351558 Crash in mozalloc_abort | NS_DebugBreak | mozilla::ipc::LogicError | mozilla::net::PHttpChannel::Transition RESOLVED mozilla55 Shih-Chiang Chien [:schien] (UTC+8) (use ni? plz) [clouseau][necko-active][PBg-HTTP-M1]

4 Total; 0 Open (0%); 4 Resolved (100%); 0 Verified (0%);


M2 bugs

Full Query
ID Summary Status Target milestone Assigned to Whiteboard
1015466 Sending HTTP OnDataAvailable over PBackground IPC RESOLVED mozilla55 Shih-Chiang Chien [:schien] (UTC+8) (use ni? plz) [necko-active][necko-quantum][PBg-HTTP-M2]
1102439 [PBackground] should close child-side PBackground before thread shutdown RESOLVED mozilla37 Shih-Chiang Chien [:schien] (UTC+8) (use ni? plz) [PBg-HTTP-M2]
1206665 make nsHttpChannel::OnDataAvailable thread-safe RESOLVED --- [necko-backlog][PBg-HTTP-M2]

3 Total; 0 Open (0%); 3 Resolved (100%); 0 Verified (0%);


M3 bugs

Full Query
ID Summary Status Target milestone Assigned to Whiteboard
1338493 move HttpChannel IPC from main thread to STS thread in content process RESOLVED mozilla56 Shih-Chiang Chien [:schien] (UTC+8) (use ni? plz) [necko-active][PBg-HTTP-M3]
1354455 Intermittent Assertion failure: mEventQueue.IsEmpty() || (needResumeOnOtherThread || mSuspended || !!mForcedCount), at ChannelEventQueue.cpp:91 RESOLVED mozilla55 Shih-Chiang Chien [:schien] (UTC+8) (use ni? plz) [necko-active][PBg-HTTP-M3]
1357682 Get telemetry for off-main-thread delivery success/fail RESOLVED mozilla56 Shih-Chiang Chien [:schien] (UTC+8) (use ni? plz) [necko-active][PBg-HTTP-M3]
1377471 Intermittent TEST-UNEXPECTED-FAIL | LeakSanitizer | leak at mozilla::net::HttpChannelChild::ConnectParent, mozilla::net::HttpChannelChild::Redirect1Begin, mozilla::net::Redirect1Event::Run RESOLVED mozilla56 Shih-Chiang Chien [:schien] (UTC+8) (use ni? plz) [necko-active][PBg-HTTP-M3] [stockwell fixed:product]
1381311 Intermittent Assertion failure: NS_IsMainThread(), at c:/builds/moz2_slave/m-cen-w32-d-000000000000000000/build/src/netwerk/protocol/http/HttpBackgroundChannelChild.cpp:455 RESOLVED mozilla56 Shih-Chiang Chien [:schien] (UTC+8) (use ni? plz) [necko-active][PBg-HTTP-M3]

5 Total; 0 Open (0%); 5 Resolved (100%); 0 Verified (0%);


M4 bugs

Full Query
ID Summary Status Target milestone Assigned to Whiteboard
1353829 8% Are we slim yet regression found on autoland march 28th from revision e2a697abd5d3 RESOLVED --- Shih-Chiang Chien [:schien] (UTC+8) (use ni? plz) [necko-active][PBg-HTTP-M4]
1357689 Implement nsIThreadRetargetableStreamListener in HttpChannelParent and HttpChannelParentListener RESOLVED --- Shih-Chiang Chien [:schien] (UTC+8) (use ni? plz) [PBg-HTTP-M4][necko-triaged]
1369632 2.93% Quantum_1 (windows7-32) regression on push 12783b5a0fca4162a36a61b45f7b2a5bc2b452d1 (Thu Jun 1 2017) RESOLVED --- Shih-Chiang Chien [:schien] (UTC+8) (use ni? plz) [PBg-HTTP-M4][necko-triaged]
1387285 Intermittent /fetch/api/redirect/redirect-schemes.html,/XMLHttpRequest/send-redirect-bogus.htm | application crashed [@ MOZ_CrashOOL] RESOLVED mozilla57 Shih-Chiang Chien [:schien] (UTC+8) (use ni? plz) [necko-active][PBg-HTTP-M4]

4 Total; 0 Open (0%); 4 Resolved (100%); 0 Verified (0%);