`InspectorTimelineAgent::internalStart` uses this mechanism to detect "frame end": m_frameStopObserver = makeUnique<RunLoopObserver>(static_cast<CFIndex>(RunLoopObserver::WellKnownRunLoopOrders::InspectorFrameEnd), [this]() { This doesn't work with UI-side compositing (i.e. iOS, and future macOS), because a "frame" can extend over multiple turns of the CFRunLoop while we wait for backing store flushing (see where RemoteLayerTreeDrawingArea calls didCompleteRenderingUpdateDisplay()).
<rdar://problem/103645351>
Currently on iOS, "frame end" will happen before "composite end" in some cases.
Pull request: https://github.com/WebKit/WebKit/pull/13661
Committed 263917@main (f11ea318b8fc): <https://commits.webkit.org/263917@main> Reviewed commits have been landed. Closing PR #13661 and removing active labels.