Specifically this code:
https://cs.chromium.org/chromium/src/third_party/blink/public/common/page/launching_process_state.h?rcl=b369d717da1996c2ead6fd86a1111e0d82260f32&l=15
So during a cross-process navigation, even if the tab is visible, the new renderer is initially throttled. This affects site isolation more than without site isolation.
This unfortunate behavior is because the cross-platform code uses the same condition and code paths to control both ChildProcessLauncher priority and the renderer throttling. And on android, the initial ChildProcessLauncher priority state is background, so we made the renderer side start in background as well, to ensure things are always consistent.
Easy fix is teach RPHI that these two things are separate.
However I think it might be worthwhile to be able to launch a process a process at a particular ChildProcessLauncher priority, at least on android. Although I need to investigate this a bit. Eg it might be worthwhile to launch the spare renderer at the lowest possible priority on android.
Comment 1 by ssid@chromium.org
, Aug 20