From 5b1793d58c955a5ed46ae2f76979763ab1742ddb Mon Sep 17 00:00:00 2001 From: Alexei Filippov Date: Fri, 18 May 2018 18:01:56 -0700 Subject: [PATCH] core: Support traces with TracingStartedInBrowser event Since version 67 Chrome uses a new schema to describe page frame tree. The tree is encoded within TracingStartedInBrowser trace event. The patch makes lighthouse to support the new event. Legacy TracingStartedInPage event is going to the removed soon. --- lighthouse-core/gather/computed/trace-of-tab.js | 11 +++++------ .../test/gather/computed/trace-of-tab-test.js | 1 - typings/externs.d.ts | 1 - 3 files changed, 5 insertions(+), 8 deletions(-) diff --git a/lighthouse-core/gather/computed/trace-of-tab.js b/lighthouse-core/gather/computed/trace-of-tab.js index ac1bbfc5b00b..b21ba09994a2 100644 --- a/lighthouse-core/gather/computed/trace-of-tab.js +++ b/lighthouse-core/gather/computed/trace-of-tab.js @@ -44,9 +44,9 @@ class TraceOfTab extends ComputedArtifact { const keyEvents = trace.traceEvents .filter(e => { return e.cat.includes('blink.user_timing') || - e.cat.includes('loading') || - e.cat.includes('devtools.timeline') || - e.cat === '__metadata'; + e.cat.includes('loading') || + e.cat.includes('devtools.timeline') || + e.cat === '__metadata'; }) // @ts-ignore - stableSort added to Array by WebInspector. .stableSort((event0, event1) => event0.ts - event1.ts); @@ -55,10 +55,9 @@ class TraceOfTab extends ComputedArtifact { /** @type {LH.TraceEvent|undefined} */ let startedInPageEvt; const startedInBrowserEvt = keyEvents.find(e => e.name === 'TracingStartedInBrowser'); - // `persistentIds` is a signal that the frame data will be attached, prefer it when available. if (startedInBrowserEvt && startedInBrowserEvt.args.data && - startedInBrowserEvt.args.data.persistentIds) { - const mainFrame = (startedInBrowserEvt.args.data.frames || []).find(frame => !frame.parent); + startedInBrowserEvt.args.data.frames) { + const mainFrame = startedInBrowserEvt.args.data.frames.find(frame => !frame.parent); const pid = mainFrame && mainFrame.processId; const threadNameEvt = keyEvents.find(e => e.pid === pid && e.ph === 'M' && e.cat === '__metadata' && e.name === 'thread_name' && e.args.name === 'CrRendererMain'); diff --git a/lighthouse-core/test/gather/computed/trace-of-tab-test.js b/lighthouse-core/test/gather/computed/trace-of-tab-test.js index 77ca29474ca9..d401e6aa0d7d 100644 --- a/lighthouse-core/test/gather/computed/trace-of-tab-test.js +++ b/lighthouse-core/test/gather/computed/trace-of-tab-test.js @@ -123,7 +123,6 @@ describe('Trace of Tab computed artifact:', () => { 'name': 'TracingStartedInBrowser', 'args': {'data': { 'frameTreeNodeId': 1, - 'persistentIds': true, 'frames': [{ 'frame': 'B192D1F3355A6F961EC8F0B01623C1FB', 'url': 'http://www.example.com/', diff --git a/typings/externs.d.ts b/typings/externs.d.ts index 1dc0e3464be6..985497a47097 100644 --- a/typings/externs.d.ts +++ b/typings/externs.d.ts @@ -138,7 +138,6 @@ declare global { args: { data?: { name?: string; - persistentIds?: boolean; frames?: { frame: string; parent?: string;