ABCDEFGHIJKLMNOPQRSTUVWXYZAA
1
MBI Associated Interface Migration (domfarolino@)
2
This spreadsheet accompanies MBI Associated Interface Migration Design
3
Related: Prerendering Eng Plan
4
InterfaceDirectionRemote LocationReceiver LocationNeeds per-ASG MigrationProgressExpands AssociationAnalysisNotes
5
[1st degree] Associated interfaces via mojom::Channel::GetAssociatedInterface
6
chrome.mojom.CacheStatsRecorderR⇒B[cs][cs]NoNot startedNoAnalysis
CacheStatsRecorder is 1:1 with RPHI. The mojo method is called in ResourceDispatcher::OnRequestComplete(), which seems to be for every request. This interface is OK as-is because it is recording per-process data, and doesn't tamper with AgentSchedulingGroup state
7
chrome.mojom.PluginInfoHostR⇒B[cs][cs]Yes: Ship BetaNot startedNoAnalysis
At least by "Stable" experiment we should make this an unassociated interface, or at ASG granularity
8
chrome.mojom.RendererConfigurationB⇒R[cs] [cs][cs]Yes: Ship BetaNot startedNoAnalysis
Receiver is ChromeRenderThreadObserver, a subclass of RenderThreadObserver. This only sets "configuration settings" on process-global objects. Setting the settings should not impact the scheduling of ASG objects
9
weblayer.mojom.RendererConfigurationB⇒R[cs][cs]Yes: Ship BetaNot startedNoAnalysis
Receiver is WebLayerRenderThreadObserver, a subclass of RenderThreadObserver
10
content.mojom.RendererB⇒R[cs][cs]Yes: Ship BetaDoneYesAnalysis
Part of this needed to be modified for our initial implementation, which is done. The rest can wait for Beta
11
android_webview.mojom.RendererB⇒R[cs][cs]Yes: WebView-specificNot startedNo
Full analysis TODO
Receiver is AwRenderThreadObserver, a subclass of RenderThreadObserver
12
content.mojom.RendererHostR⇒B[cs][cs]Yes: Ship BetaNot startedNo
I don't think so, but would like verification
13
content.mojom.RenderMessageFilterR⇒B[cs] [test][cs] [test]Yes: Ship BetaNot startedNo
Full analysis TODO
RenderThreadImpl => RenderMessageFilter
14
android_webview.mojom.RenderMessageFilterR⇒B[cs][cs]Yes: WebView-specificNot startedNo
AwContentRenderClient => AwContentsMessageFilter
15
content.mojom.PepperIOHostR⇒B[cs][cs]Yes: Ship BetaDoneNo
Full analysis TODO
Not relevant for Android
16
content.mojom.RenderAccessibilityB⇒R[cs] [test][cs]Yes: Android CanaryDoneNoN/A
This interface must be associated with navigation-related messages. We get this for free from the earlier mojom::RouteProvider work.
17
content.mojom.RendererVariationsConfigurationB⇒R[cs] [cs][cs]Yes: Ship BetaNot startedNoAnalysis
There are currently no ordering AgentSchedulingGroup-specific ordering guarantees relied upon with this interface
18
content.mojom.RouteProviderR⇒B[cs][cs]Yes: Android CanaryDoneYesAnalysis
19
content.mojom.WebTestControlHostR⇒B[cs] [download] [cbc][set]Yes: Ship BetaNot startedNo
Not a priority as long as no tests failing because of this. Long-term it should be dealt with though
20
content.mojom.WebTestRenderFrameB⇒R[cs][cs]NoDoneNoN/A
21
content.mojom.WebTestRenderThreadB⇒R[cs][cs]Yes: Desktop CanaryNot startedNoAnalysis
Desktop-related tests fail with this
22
extensions.mojom.GuestViewR⇒B[cs][cs]Yes: Desktop CanaryNot startedNo
23
extensions.mojom.RendererB⇒R[a lot][cs]Yes: Desktop CanaryNot startedNo
24
search.mojom.SearchBouncerB⇒R[cs][cs]Yes: Android CanaryDoneNoAnalysis
Shouldn't affect scheduling of ASG objects
25
subresource_url.mojom.SubresourceFilterRulesetObserver
B⇒R[cs][cs]Yes: Ship BetaNot startedNo
Full analysis TODO
Minor correctness issues, but no stability problems
26
27
28
29
[2nd degree] Associated interfaces via content.mojom.RouteProvider
30
blink.mojom.AssociatedInterfaceProviderB⇔RYes: Android CanaryDoneYes
This expands degree of association, however we don't have to look at any of the expanded interfaces. As long as we migrate this one, we get the rest for free
This expands degree of association, however we don't have to look at any of the expanded interfaces. As long as we migrate this one, we get the rest for free
31
32
33
[2nd degree] Associated interfaces via content.mojom.Renderer
34
blink.mojom.FrameWidgetHostYes: Android CanaryDoneNo
35
blink.mojom.FrameWidgetYes: Android CanaryDoneNo
36
blink.mojom.WidgetHostYes: Android CanaryDoneNo
37
blink.mojom.WidgetYes: Android CanaryDoneNo
38
blink.mojom.PageBroadcastYes: Android CanaryDoneNo
39
40
41
[3nd degree] Associated interfaces via blink.mojom.AssociatedInterfaceProvider
42
printing.mojom.PrintRenderFrameB⇒R[cs], [cs], [cs], [cs][cs]NoN/AYes
43
44
45
46
47
[4th degree] Associated interfaces via printing.mojom.PrintRenderFrame
48
printing.mojom.PrintRendererR⇒B[cs][cs] (used only for arc)No
49
printing.mojom.PrintingManagerHostR⇒B[cs][cs]No
50
printing.mojom.PrintPreviewUIR⇒B[cs][cs]No
51
52
53