We've seen some regressions in heartbeat metrics related to tab loading times with OOP-D enabled. In particular Startup.FirstWebContents.NonEmptyPaint2 and NewTabPage.LoadTime seem to have a 1-2% regression consistently.
For Startup.FirstWebContents.NonEmptyPaint2 there is an IPC sent from renderer to browser process after the first non-empty paint in [1]. That IPC is only delivered when the RenderWidgetHostImpl gets the appropriate frame token.
Without OOP-D OnFrameToken() will get called immediately when the CompositorFrame for that frame token activates. With OOP-D there is an IPC between when the CompositorFrame activates and when the browser process gets the OnFrameToken() message. As a result, we should expect Startup.FirstWebContents.NonEmptyPaint2 to be higher with OOP-D even if there is no actual regression. Using the actual frame activation time, or better yet the frame presentation time, would fix this reporting problem.
I'm not sure if NewTabPage.LoadTime has the same root cause. There is an IPC sent from renderer to browser again, although a different IPC and it's triggered by JavaScript at [2]. It looks like that event is triggered when the Javascript load event handler has triggered for everything on the new tab page. The metric is again not linked to the frame presentation time.
[1] https://cs.chromium.org/chromium/src/content/renderer/render_widget.cc?l=1465&rcl=f15ffdffd25adccf60f38a74da72ae67bd2b9a9f
[2] https://cs.chromium.org/chromium/src/chrome/browser/resources/local_ntp/most_visited_single.js?l=266&rcl=484a185167ad7b93dde4613e4d883fc7504c6787
Comment 1 by kylec...@chromium.org
, Oct 15Components: Internals>Services>Viz