I think there are roughly 20 callees left that call GetRoutingID and I believe we can move them to some of them to blink::LocalFrameToken if we want.
What do you think about conditionally supporting Legacy IPC/GetRoutingID behind a compilation flag? I imagine something BUILDFLAG(CONTENT_LEGACY_IPC_SUPPORT).
--
You received this message because you are subscribed to the Google Groups "platform-architecture-dev" group.
To unsubscribe from this group and stop receiving emails from it, send an email to platform-architect...@chromium.org.
To view this discussion on the web visit https://groups.google.com/a/chromium.org/d/msgid/platform-architecture-dev/CAHgVhZURHO_m8TCQwbKZmUSX%3DL283GRupL%2BNJtTwW0UXPJqjYQ%40mail.gmail.com.
I think there are roughly 20 callees left that call GetRoutingID and I believe we can move them to some of them to blink::LocalFrameToken if we want.We are (slowly) moving in the direction of replacing the routing ID with a frame token, so +1 to this change.What do you think about conditionally supporting Legacy IPC/GetRoutingID behind a compilation flag? I imagine something BUILDFLAG(CONTENT_LEGACY_IPC_SUPPORT).I love this idea!This is a moment -- thank you very much for removing the legacy IPC finally. You have been doing heroic work leading Igalia TVCs and then working on the remaining ones yourself :)On Thu, Nov 9, 2023 at 11:11 PM Dave Tapuska <dtap...@chromium.org> wrote:I've been working on removing legacy IPC (extensions has had the new mojo channel for about a week now in Canary) and Android/Android WebView started a finch trial today.I've been thinking about the RenderFrame::GetRoutingID and the sync IPC call GenerateFrameRoutingIDI think there are roughly 20 callees left that call GetRoutingID and I believe we can move them to some of them to blink::LocalFrameToken if we want.Roughly 10 of them are NaCl/PPAPI related (as it is the only real remaining legacy IPC channel now). We will have to support NaCl/PPAPI until Jan 2025 for ChromeOS still.What do you think about conditionally supporting Legacy IPC/GetRoutingID behind a compilation flag? I imagine something BUILDFLAG(CONTENT_LEGACY_IPC_SUPPORT).
If we no longer support the GetRoutingID we can actually move iframe creation to be entirely async but that does mean we would have a slightly different flow.
----I also feel that we'd likely be able to disable legacy IPC between the renderer and the browser with this flag once we've found appropriate replacements for RenderThread::GetChannel and RenderThreadObserver::RegisterMojoInterfaces which inherently are also problematic for MBI.dave.
You received this message because you are subscribed to the Google Groups "platform-architecture-dev" group.
To unsubscribe from this group and stop receiving emails from it, send an email to platform-architect...@chromium.org.
To view this discussion on the web visit https://groups.google.com/a/chromium.org/d/msgid/platform-architecture-dev/CAHgVhZURHO_m8TCQwbKZmUSX%3DL283GRupL%2BNJtTwW0UXPJqjYQ%40mail.gmail.com.
--Kentaro Hara, Tokyo
You received this message because you are subscribed to the Google Groups "platform-architecture-dev" group.
To unsubscribe from this group and stop receiving emails from it, send an email to platform-architect...@chromium.org.
To view this discussion on the web visit https://groups.google.com/a/chromium.org/d/msgid/platform-architecture-dev/CABg10jxatqoLL4dMekaYW6woBXKPU_5%2BxHPbf0rtwRfF0H_r1g%40mail.gmail.com.
So to move iframe creation to be async, we'd need to pass the LocalFrameToken in from the renderer and validate it somehow in the browser. The frame token needs to be present at the time of creation of the WebLocalFrame, so an async response from the browser I don't think would work.Thinking about how to validate I'd love some ideas.We want to make sure that we didn't receive a FrameToken for frame that previously existed in the renderer. (We store the RenderProcessHost::ID in the GlobalRenderFrameHostToken so it's uniqueness per RenderProcessHost should be good). But what we want to prevent is someone storing a GlobalRenderFrameHostToken somewhere, and then the RenderFrame getting deleted and then a new one getting created with the exact same FrameToken from a compromised renderer.The sync IPC design for the routing ID prevents this because the CreateChildFrame (which takes a routing_id) ensures that the handled out routing_id is in a table of pending routing_idsSome ideas I thought of:1) Store every encountered LocalFrameToken (unbounded memory) on a RenderProcessHost table.2) Store the routing_id in GlobalRenderFrameHostFrameToken as well. Don't allow creation of GlobalRenderFrameHostFrameToken without a routing_id but do allow lookup of a RenderFrameHost from a process ID and frame token. This still seems problematic if people store the process ID and frame token separately, they could get the wrong frame again. So I don't care for this idea.
3) Other ideas?
You received this message because you are subscribed to the Google Groups "navigation-dev" group.
To unsubscribe from this group and stop receiving emails from it, send an email to navigation-de...@chromium.org.
To view this discussion on the web visit https://groups.google.com/a/chromium.org/d/msgid/navigation-dev/CAHgVhZX1r16TksgXNphJeM1%2BzjN1R9OD1L-ubf-qczFC%3DdnO7Q%40mail.gmail.com.
Can we require and enforce that the renderer-provided tokens are monotonically increasing? E.g. the token can include 2 parts:
1. renderer-process-specific-part (to prevent developers from stashing the token and accidentally using it with another process_id)
2. renderer-provided-monotonically-increasing-part (to prevent the renderer from being able to reissue the token; I assume that the browser can remember the highest monotonically-increasing-part it has so far received from the given RenderProcessHost)
?
The frame token needs to be present at the time of creation of the WebLocalFrame, so an async response from the browser I don't think would work.
To view this discussion on the web visit https://groups.google.com/a/chromium.org/d/msgid/navigation-dev/CAHgVhZVxii0jMTPVUkygXf_WVkm4q2UqrZypMi%2B%2BECZ-ww-Vaw%40mail.gmail.com.
To view this discussion on the web visit https://groups.google.com/a/chromium.org/d/msgid/navigation-dev/CABg10jwRHeFfCm3PFC7YvsqTXXnJ3Uou-ssJXbsOjDpp4tS-Ew%40mail.gmail.com.