When web inspecting iOS, or macOS with UI-side compositing enabled, the green "commit time" events in the timeline are always short. I think they only track the time in the fake CA commit triggers in RemoteLayerTreeDrawingArea::displayDidRefresh(), because they are registered like this: void RemoteLayerTreeDrawingArea::addCommitHandlers() { if (m_webPage.firstFlushAfterCommit()) return; [CATransaction addCommitHandler:[retainedPage = Ref { m_webPage }] { if (Page* corePage = retainedPage->corePage()) { if (Frame* coreFrame = retainedPage->mainFrame()) corePage->inspectorController().willComposite(*coreFrame); } } forPhase:kCATransactionPhasePreLayout]; [CATransaction addCommitHandler:[retainedPage = Ref { m_webPage }] { if (Page* corePage = retainedPage->corePage()) { if (Frame* coreFrame = retainedPage->mainFrame()) corePage->inspectorController().didComposite(*coreFrame); } retainedPage->setFirstFlushAfterCommit(false); } forPhase:kCATransactionPhasePostCommit]; m_webPage.setFirstFlushAfterCommit(true); } This is wrong because there are no CA Commits (other than this garbage-collection one) in the web process.
<rdar://problem/103608655>
Bug 249750 fixed this but see also bug 249796. *** This bug has been marked as a duplicate of bug 249750 ***