Bug 249736

Summary: "Commit time" data is wrong with UI-side compositing
Product: WebKit Reporter: Simon Fraser (smfr) <simon.fraser>
Component: Web InspectorAssignee: Nobody <webkit-unassigned>
Status: RESOLVED DUPLICATE    
Severity: Normal CC: inspector-bugzilla-changes, pangle, simon.fraser, thorton, webkit-bug-importer
Priority: P2 Keywords: InRadar
Version: WebKit Nightly Build   
Hardware: Unspecified   
OS: Unspecified   
See Also: https://bugs.webkit.org/show_bug.cgi?id=249750
https://bugs.webkit.org/show_bug.cgi?id=249796

Description Simon Fraser (smfr) 2022-12-21 12:01:51 PST
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.
Comment 1 Radar WebKit Bug Importer 2022-12-21 12:02:17 PST
<rdar://problem/103608655>
Comment 2 Simon Fraser (smfr) 2022-12-22 11:44:37 PST
Bug 249750 fixed this but see also bug 249796.

*** This bug has been marked as a duplicate of bug 249750 ***