lighthouse 13.2.0 → 13.4.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/cli/cli-flags.d.ts +8 -9
- package/cli/cli-flags.js +2 -2
- package/cli/test/smokehouse/config/exclusions.js +2 -0
- package/cli/test/smokehouse/lighthouse-runners/bundle.js +7 -3
- package/cli/test/smokehouse/lighthouse-runners/cli.js +5 -1
- package/cli/test/smokehouse/lighthouse-runners/devtools-mcp.js +7 -3
- package/cli/test/smokehouse/lighthouse-runners/devtools.js +4 -1
- package/cli/test/smokehouse/smokehouse.js +7 -2
- package/cli/test/smokehouse/version-check.d.ts +1 -1
- package/core/audits/accessibility/accesskeys.js +1 -1
- package/core/audits/accessibility/aria-allowed-attr.js +1 -1
- package/core/audits/accessibility/aria-allowed-role.js +1 -1
- package/core/audits/accessibility/aria-command-name.js +1 -1
- package/core/audits/accessibility/aria-conditional-attr.js +1 -1
- package/core/audits/accessibility/aria-deprecated-role.js +1 -1
- package/core/audits/accessibility/aria-dialog-name.js +1 -1
- package/core/audits/accessibility/aria-hidden-body.js +1 -1
- package/core/audits/accessibility/aria-hidden-focus.js +1 -1
- package/core/audits/accessibility/aria-input-field-name.js +1 -1
- package/core/audits/accessibility/aria-meter-name.js +1 -1
- package/core/audits/accessibility/aria-progressbar-name.js +1 -1
- package/core/audits/accessibility/aria-prohibited-attr.js +1 -1
- package/core/audits/accessibility/aria-required-attr.js +1 -1
- package/core/audits/accessibility/aria-required-children.js +1 -1
- package/core/audits/accessibility/aria-required-parent.js +1 -1
- package/core/audits/accessibility/aria-roles.js +1 -1
- package/core/audits/accessibility/aria-text.js +1 -1
- package/core/audits/accessibility/aria-toggle-field-name.js +1 -1
- package/core/audits/accessibility/aria-tooltip-name.js +1 -1
- package/core/audits/accessibility/aria-treeitem-name.js +1 -1
- package/core/audits/accessibility/aria-valid-attr-value.js +1 -1
- package/core/audits/accessibility/aria-valid-attr.js +1 -1
- package/core/audits/accessibility/autocomplete-valid.js +1 -1
- package/core/audits/accessibility/button-name.js +1 -1
- package/core/audits/accessibility/bypass.js +1 -1
- package/core/audits/accessibility/color-contrast.js +1 -1
- package/core/audits/accessibility/definition-list.js +1 -1
- package/core/audits/accessibility/dlitem.js +1 -1
- package/core/audits/accessibility/document-title.js +1 -1
- package/core/audits/accessibility/duplicate-id-aria.js +1 -1
- package/core/audits/accessibility/empty-heading.js +1 -1
- package/core/audits/accessibility/form-field-multiple-labels.js +1 -1
- package/core/audits/accessibility/frame-title.js +1 -1
- package/core/audits/accessibility/heading-order.js +1 -1
- package/core/audits/accessibility/html-has-lang.js +1 -1
- package/core/audits/accessibility/html-lang-valid.js +1 -1
- package/core/audits/accessibility/html-xml-lang-mismatch.js +1 -1
- package/core/audits/accessibility/identical-links-same-purpose.js +1 -1
- package/core/audits/accessibility/image-alt.js +1 -1
- package/core/audits/accessibility/image-redundant-alt.js +1 -1
- package/core/audits/accessibility/input-button-name.js +1 -1
- package/core/audits/accessibility/input-image-alt.js +1 -1
- package/core/audits/accessibility/label-content-name-mismatch.js +1 -1
- package/core/audits/accessibility/label.js +1 -1
- package/core/audits/accessibility/landmark-one-main.js +1 -1
- package/core/audits/accessibility/link-in-text-block.js +1 -1
- package/core/audits/accessibility/link-name.js +1 -1
- package/core/audits/accessibility/list.js +1 -1
- package/core/audits/accessibility/listitem.js +1 -1
- package/core/audits/accessibility/meta-refresh.js +1 -1
- package/core/audits/accessibility/meta-viewport.js +1 -1
- package/core/audits/accessibility/object-alt.js +1 -1
- package/core/audits/accessibility/presentation-role-conflict.js +1 -1
- package/core/audits/accessibility/select-name.js +1 -1
- package/core/audits/accessibility/skip-link.js +1 -1
- package/core/audits/accessibility/svg-img-alt.js +1 -1
- package/core/audits/accessibility/tabindex.js +1 -1
- package/core/audits/accessibility/table-duplicate-name.js +1 -1
- package/core/audits/accessibility/table-fake-caption.js +1 -1
- package/core/audits/accessibility/target-size.js +1 -1
- package/core/audits/accessibility/td-has-header.js +1 -1
- package/core/audits/accessibility/td-headers-attr.js +1 -1
- package/core/audits/accessibility/th-has-data-cells.js +1 -1
- package/core/audits/accessibility/valid-lang.js +1 -1
- package/core/audits/accessibility/video-caption.js +1 -1
- package/core/audits/agentic/agent-accessibility-tree.js +1 -1
- package/core/audits/agentic/llms-txt.js +10 -10
- package/core/audits/baseline.js +10 -12
- package/core/audits/dobetterweb/geolocation-on-start.js +2 -1
- package/core/audits/network-requests.js +2 -0
- package/core/audits/seo/canonical.js +19 -7
- package/core/audits/webmcp-form-coverage.js +2 -2
- package/core/audits/webmcp-registered-tools.js +1 -1
- package/core/audits/webmcp-schema-validity.js +1 -1
- package/core/computed/js-bundles.d.ts +1 -1
- package/core/computed/load-simulator.d.ts +1 -1
- package/core/computed/metrics/first-contentful-paint-all-frames.d.ts +1 -1
- package/core/computed/metrics/first-contentful-paint.d.ts +1 -1
- package/core/computed/metrics/interactive.d.ts +1 -1
- package/core/computed/metrics/lantern-metric.d.ts +6 -6
- package/core/computed/metrics/largest-contentful-paint-all-frames.d.ts +1 -1
- package/core/computed/metrics/largest-contentful-paint.d.ts +1 -1
- package/core/computed/metrics/max-potential-fid.d.ts +1 -1
- package/core/computed/metrics/speed-index.d.ts +1 -1
- package/core/computed/metrics/time-to-first-byte.d.ts +1 -1
- package/core/computed/metrics/total-blocking-time.d.ts +1 -1
- package/core/computed/module-duplication.d.ts +1 -1
- package/core/computed/page-dependency-graph.d.ts +1 -1
- package/core/computed/unused-css.d.ts +1 -1
- package/core/config/agentic-browsing-config.d.ts +1 -0
- package/core/config/agentic-browsing-config.js +3 -2
- package/core/config/config-helpers.d.ts +1 -0
- package/core/config/config-helpers.js +1 -1
- package/core/config/config-plugin.d.ts +1 -0
- package/core/config/config-plugin.js +1 -0
- package/core/config/config.d.ts +1 -0
- package/core/config/config.js +1 -0
- package/core/config/constants.d.ts +1 -0
- package/core/config/constants.js +1 -0
- package/core/config/default-config.js +45 -0
- package/core/config/experimental-config.d.ts +1 -9
- package/core/config/experimental-config.js +2 -0
- package/core/config/filters.d.ts +1 -0
- package/core/config/filters.js +1 -0
- package/core/config/full-config.d.ts +1 -5
- package/core/config/full-config.js +2 -0
- package/core/config/lr-desktop-config.d.ts +1 -0
- package/core/config/lr-desktop-config.js +1 -0
- package/core/config/lr-mobile-config.d.ts +1 -5
- package/core/config/lr-mobile-config.js +2 -0
- package/core/config/perf-config.d.ts +1 -5
- package/core/config/perf-config.js +2 -0
- package/core/config/validation.d.ts +1 -0
- package/core/config/validation.js +1 -0
- package/core/gather/driver/execution-context.d.ts +23 -0
- package/core/gather/driver/execution-context.js +86 -1
- package/core/gather/driver/storage.js +13 -0
- package/core/gather/driver.d.ts +1 -1
- package/core/gather/gatherers/accessibility.js +1 -0
- package/core/gather/gatherers/trace-elements.d.ts +4 -1
- package/core/gather/gatherers/trace-elements.js +24 -28
- package/core/gather/gatherers/webmcp-schema.js +9 -16
- package/core/gather/gatherers/webmcp.d.ts +5 -0
- package/core/gather/gatherers/webmcp.js +34 -27
- package/core/index.d.ts +0 -1
- package/core/index.js +0 -1
- package/core/lib/baseline/web-features-data.json +1177 -0
- package/core/lib/baseline/web-features-metadata.json +1 -1
- package/core/lib/deprecations-strings.d.ts +45 -23
- package/core/lib/deprecations-strings.js +23 -0
- package/core/lib/script-helpers.js +13 -1
- package/core/scoring.d.ts +58 -58
- package/dist/report/bundle.esm.js +4 -7
- package/dist/report/flow.js +6 -9
- package/dist/report/standalone.js +20 -12
- package/flow-report/types/flow-report.d.ts +2 -2
- package/package.json +23 -26
- package/report/assets/styles.css +1 -4
- package/report/renderer/components.js +1 -1
- package/report/renderer/details-renderer.d.ts +6 -1
- package/report/renderer/details-renderer.js +11 -3
- package/report/renderer/explodey-gauge.js +9 -7
- package/report/renderer/i18n-formatter.d.ts +1 -1
- package/report/renderer/logger.js +18 -4
- package/report/renderer/text-encoding.js +1 -1
- package/report/types/html-renderer.d.ts +2 -2
- package/shared/localization/locales/ar-XB.json +290 -65
- package/shared/localization/locales/ar.json +290 -65
- package/shared/localization/locales/bg.json +290 -65
- package/shared/localization/locales/ca.json +295 -70
- package/shared/localization/locales/cs.json +290 -65
- package/shared/localization/locales/da.json +294 -69
- package/shared/localization/locales/de.json +295 -70
- package/shared/localization/locales/el.json +290 -65
- package/shared/localization/locales/en-GB.json +290 -65
- package/shared/localization/locales/en-US.json +105 -75
- package/shared/localization/locales/en-XA.json +253 -64
- package/shared/localization/locales/en-XL.json +105 -75
- package/shared/localization/locales/es-419.json +290 -65
- package/shared/localization/locales/es.json +298 -73
- package/shared/localization/locales/fi.json +290 -65
- package/shared/localization/locales/fil.json +290 -65
- package/shared/localization/locales/fr.json +294 -69
- package/shared/localization/locales/he.json +293 -68
- package/shared/localization/locales/hi.json +291 -66
- package/shared/localization/locales/hr.json +290 -65
- package/shared/localization/locales/hu.json +290 -65
- package/shared/localization/locales/id.json +290 -65
- package/shared/localization/locales/it.json +294 -69
- package/shared/localization/locales/ja.json +290 -65
- package/shared/localization/locales/ko.json +290 -65
- package/shared/localization/locales/lt.json +290 -65
- package/shared/localization/locales/lv.json +290 -65
- package/shared/localization/locales/nl.json +290 -65
- package/shared/localization/locales/no.json +290 -65
- package/shared/localization/locales/pl.json +290 -65
- package/shared/localization/locales/pt-PT.json +291 -66
- package/shared/localization/locales/pt.json +290 -65
- package/shared/localization/locales/ro.json +290 -65
- package/shared/localization/locales/ru.json +301 -76
- package/shared/localization/locales/sk.json +291 -66
- package/shared/localization/locales/sl.json +290 -65
- package/shared/localization/locales/sr-Latn.json +290 -65
- package/shared/localization/locales/sr.json +290 -65
- package/shared/localization/locales/sv.json +297 -72
- package/shared/localization/locales/ta.json +291 -66
- package/shared/localization/locales/te.json +293 -68
- package/shared/localization/locales/th.json +291 -66
- package/shared/localization/locales/tr.json +290 -65
- package/shared/localization/locales/uk.json +290 -65
- package/shared/localization/locales/vi.json +291 -66
- package/shared/localization/locales/zh-HK.json +292 -67
- package/shared/localization/locales/zh-TW.json +291 -66
- package/shared/localization/locales/zh.json +291 -66
- package/shared/types/shared.d.ts +1 -1
- package/tsconfig-base.json +2 -1
- package/tsconfig.json +2 -0
- package/types/artifacts.d.ts +1 -1
- package/types/internal/rxjs.d.ts +1 -1
- package/types/internal/smokehouse.d.ts +8 -2
- package/types.d.ts +2 -0
- package/types.js +11 -0
|
@@ -20,7 +20,6 @@ import Trace from './trace.js';
|
|
|
20
20
|
import {ProcessedTrace} from '../../computed/processed-trace.js';
|
|
21
21
|
import {Responsiveness} from '../../computed/metrics/responsiveness.js';
|
|
22
22
|
import {CumulativeLayoutShift} from '../../computed/metrics/cumulative-layout-shift.js';
|
|
23
|
-
import {ExecutionContext} from '../driver/execution-context.js';
|
|
24
23
|
import {TraceEngineResult} from '../../computed/trace-engine-result.js';
|
|
25
24
|
import SourceMaps from './source-maps.js';
|
|
26
25
|
|
|
@@ -29,14 +28,14 @@ import SourceMaps from './source-maps.js';
|
|
|
29
28
|
const MAX_LAYOUT_SHIFTS = 15;
|
|
30
29
|
|
|
31
30
|
/**
|
|
32
|
-
* @
|
|
31
|
+
* @param {Element | ShadowRoot | Text} node
|
|
33
32
|
*/
|
|
34
33
|
/* c8 ignore start */
|
|
35
|
-
function getNodeDetailsData() {
|
|
36
|
-
/** @type {Element|null} */
|
|
37
|
-
let elem =
|
|
38
|
-
if (!elem &&
|
|
39
|
-
elem =
|
|
34
|
+
function getNodeDetailsData(node) {
|
|
35
|
+
/** @type {Element | ShadowRoot | Text | null} */
|
|
36
|
+
let elem = node.nodeType === document.ELEMENT_NODE ? node : node.parentElement;
|
|
37
|
+
if (!elem && node instanceof ShadowRoot) {
|
|
38
|
+
elem = node.host;
|
|
40
39
|
}
|
|
41
40
|
|
|
42
41
|
let traceElement;
|
|
@@ -292,26 +291,22 @@ class TraceElements extends BaseGatherer {
|
|
|
292
291
|
|
|
293
292
|
/**
|
|
294
293
|
* @param {LH.Gatherer.ProtocolSession} session
|
|
294
|
+
* @param {LH.Gatherer.Driver['executionContext']} executionContext
|
|
295
295
|
* @param {number} backendNodeId
|
|
296
296
|
*/
|
|
297
|
-
async getNodeDetails(session, backendNodeId) {
|
|
297
|
+
async getNodeDetails(session, executionContext, backendNodeId) {
|
|
298
298
|
try {
|
|
299
299
|
const objectId = await resolveNodeIdToObjectId(session, backendNodeId);
|
|
300
300
|
if (!objectId) return null;
|
|
301
301
|
|
|
302
|
-
|
|
303
|
-
pageFunctions.getNodeDetails,
|
|
302
|
+
return await executionContext.evaluateOnObject(
|
|
304
303
|
getNodeDetailsData,
|
|
305
|
-
|
|
306
|
-
|
|
307
|
-
|
|
308
|
-
|
|
309
|
-
|
|
310
|
-
|
|
311
|
-
}`,
|
|
312
|
-
returnByValue: true,
|
|
313
|
-
awaitPromise: true,
|
|
314
|
-
});
|
|
304
|
+
{
|
|
305
|
+
objectId,
|
|
306
|
+
args: [],
|
|
307
|
+
deps: [pageFunctions.getNodeDetails],
|
|
308
|
+
}
|
|
309
|
+
);
|
|
315
310
|
} catch (err) {
|
|
316
311
|
Sentry.captureException(err, {
|
|
317
312
|
tags: {gatherer: 'TraceElements'},
|
|
@@ -346,29 +341,30 @@ class TraceElements extends BaseGatherer {
|
|
|
346
341
|
trace, traceEngineResult, context);
|
|
347
342
|
const animatedElementData = await this.getAnimatedElements(mainThreadEvents);
|
|
348
343
|
|
|
349
|
-
/** @type {Map<
|
|
344
|
+
/** @type {Map<LH.Artifacts.TraceElement['traceEventType'], TraceElementData[]>} */
|
|
350
345
|
const backendNodeDataMap = new Map([
|
|
351
346
|
['trace-engine', traceEngineData],
|
|
352
347
|
['layout-shift', shiftsData],
|
|
353
348
|
['animation', animatedElementData],
|
|
354
349
|
]);
|
|
355
350
|
|
|
356
|
-
/** @type {Map<number, LH.
|
|
357
|
-
const
|
|
351
|
+
/** @type {Map<number, {node: LH.Artifacts.NodeDetails} | null>} */
|
|
352
|
+
const evaluateOnObjectCache = new Map();
|
|
358
353
|
/** @type {LH.Artifacts.TraceElement[]} */
|
|
359
354
|
const traceElements = [];
|
|
360
355
|
for (const [traceEventType, backendNodeData] of backendNodeDataMap) {
|
|
361
356
|
for (let i = 0; i < backendNodeData.length; i++) {
|
|
362
357
|
const backendNodeId = backendNodeData[i].nodeId;
|
|
363
|
-
let response =
|
|
358
|
+
let response = evaluateOnObjectCache.get(backendNodeId);
|
|
364
359
|
if (response === undefined) {
|
|
365
|
-
response = await this.getNodeDetails(
|
|
366
|
-
|
|
360
|
+
response = await this.getNodeDetails(
|
|
361
|
+
session, context.driver.executionContext, backendNodeId) || null;
|
|
362
|
+
evaluateOnObjectCache.set(backendNodeId, response);
|
|
367
363
|
}
|
|
368
364
|
|
|
369
|
-
if (response?.
|
|
365
|
+
if (response?.node) {
|
|
370
366
|
traceElements.push({
|
|
371
|
-
...response
|
|
367
|
+
...response,
|
|
372
368
|
traceEventType,
|
|
373
369
|
animations: backendNodeData[i].animations,
|
|
374
370
|
nodeId: backendNodeId,
|
|
@@ -7,7 +7,6 @@
|
|
|
7
7
|
import BaseGatherer from '../base-gatherer.js';
|
|
8
8
|
import {resolveNodeIdToObjectId} from '../driver/dom.js';
|
|
9
9
|
import {pageFunctions} from '../../lib/page-functions.js';
|
|
10
|
-
import {ExecutionContext} from '../driver/execution-context.js';
|
|
11
10
|
|
|
12
11
|
class WebMcpSchemaIssues extends BaseGatherer {
|
|
13
12
|
/** @type {LH.Gatherer.GathererMeta} */
|
|
@@ -68,27 +67,21 @@ class WebMcpSchemaIssues extends BaseGatherer {
|
|
|
68
67
|
async getArtifact(context) {
|
|
69
68
|
const session = context.driver.defaultSession;
|
|
70
69
|
|
|
71
|
-
const deps = ExecutionContext.serializeDeps([
|
|
72
|
-
pageFunctions.getNodeDetails,
|
|
73
|
-
]);
|
|
74
|
-
|
|
75
70
|
const promises = this._issues.map(async (issue) => {
|
|
76
71
|
const processedIssue = {...issue};
|
|
77
72
|
if (issue.violatingNodeId) {
|
|
78
73
|
try {
|
|
79
74
|
const objectId = await resolveNodeIdToObjectId(session, issue.violatingNodeId);
|
|
80
75
|
if (objectId) {
|
|
81
|
-
const
|
|
82
|
-
|
|
83
|
-
|
|
84
|
-
|
|
85
|
-
|
|
86
|
-
}
|
|
87
|
-
|
|
88
|
-
|
|
89
|
-
|
|
90
|
-
if (response && response.result && response.result.value) {
|
|
91
|
-
processedIssue.nodeDetails = response.result.value;
|
|
76
|
+
const nodeDetails = await context.driver.executionContext.evaluateOnObject(
|
|
77
|
+
pageFunctions.getNodeDetails,
|
|
78
|
+
{
|
|
79
|
+
objectId,
|
|
80
|
+
args: [],
|
|
81
|
+
}
|
|
82
|
+
);
|
|
83
|
+
if (nodeDetails) {
|
|
84
|
+
processedIssue.nodeDetails = nodeDetails;
|
|
92
85
|
}
|
|
93
86
|
}
|
|
94
87
|
} catch (err) {
|
|
@@ -48,6 +48,11 @@ declare class WebMCP extends BaseGatherer {
|
|
|
48
48
|
* @param {LH.Gatherer.Context} passContext
|
|
49
49
|
*/
|
|
50
50
|
stopInstrumentation(passContext: LH.Gatherer.Context): Promise<void>;
|
|
51
|
+
/**
|
|
52
|
+
* @param {LH.Gatherer.Context} context
|
|
53
|
+
* @param {WebMCPTool} tool
|
|
54
|
+
*/
|
|
55
|
+
_tryResolveToolNodeDetails(context: LH.Gatherer.Context, tool: WebMCPTool): Promise<void>;
|
|
51
56
|
/**
|
|
52
57
|
* @param {LH.Gatherer.Context} context
|
|
53
58
|
* @return {Promise<LH.Artifacts['WebMCP']>}
|
|
@@ -11,7 +11,6 @@
|
|
|
11
11
|
import BaseGatherer from '../base-gatherer.js';
|
|
12
12
|
import {resolveNodeIdToObjectId} from '../driver/dom.js';
|
|
13
13
|
import {pageFunctions} from '../../lib/page-functions.js';
|
|
14
|
-
import {ExecutionContext} from '../driver/execution-context.js';
|
|
15
14
|
|
|
16
15
|
/**
|
|
17
16
|
* @typedef {Object} WebMCPTool
|
|
@@ -99,6 +98,37 @@ class WebMCP extends BaseGatherer {
|
|
|
99
98
|
}
|
|
100
99
|
}
|
|
101
100
|
|
|
101
|
+
/**
|
|
102
|
+
* @param {LH.Gatherer.Context} context
|
|
103
|
+
* @param {WebMCPTool} tool
|
|
104
|
+
*/
|
|
105
|
+
async _tryResolveToolNodeDetails(context, tool) {
|
|
106
|
+
if (!tool.backendNodeId) {
|
|
107
|
+
return;
|
|
108
|
+
}
|
|
109
|
+
|
|
110
|
+
const session = context.driver.defaultSession;
|
|
111
|
+
|
|
112
|
+
try {
|
|
113
|
+
const objectId = await resolveNodeIdToObjectId(session, tool.backendNodeId);
|
|
114
|
+
if (!objectId) {
|
|
115
|
+
return;
|
|
116
|
+
}
|
|
117
|
+
|
|
118
|
+
const nodeDetails = await context.driver.executionContext.evaluateOnObject(
|
|
119
|
+
pageFunctions.getNodeDetails, {
|
|
120
|
+
objectId,
|
|
121
|
+
args: [],
|
|
122
|
+
}
|
|
123
|
+
);
|
|
124
|
+
if (nodeDetails) {
|
|
125
|
+
tool.nodeDetails = nodeDetails;
|
|
126
|
+
}
|
|
127
|
+
} catch (err) {
|
|
128
|
+
// Ignore error
|
|
129
|
+
}
|
|
130
|
+
}
|
|
131
|
+
|
|
102
132
|
/**
|
|
103
133
|
* @param {LH.Gatherer.Context} context
|
|
104
134
|
* @return {Promise<LH.Artifacts['WebMCP']>}
|
|
@@ -113,9 +143,8 @@ class WebMCP extends BaseGatherer {
|
|
|
113
143
|
return {isSupported: false, tools: []};
|
|
114
144
|
}
|
|
115
145
|
|
|
116
|
-
const session = context.driver.defaultSession;
|
|
117
|
-
|
|
118
146
|
// Remove duplicates based on name, keeping the latest occurrence.
|
|
147
|
+
/** @type {Map<string, WebMCPTool>} */
|
|
119
148
|
const toolMap = new Map();
|
|
120
149
|
for (const tool of this._tools) {
|
|
121
150
|
toolMap.set(tool.name, tool);
|
|
@@ -123,32 +152,10 @@ class WebMCP extends BaseGatherer {
|
|
|
123
152
|
|
|
124
153
|
const resolvedTools = [];
|
|
125
154
|
for (const tool of toolMap.values()) {
|
|
126
|
-
|
|
127
|
-
try {
|
|
128
|
-
const objectId = await resolveNodeIdToObjectId(session, tool.backendNodeId);
|
|
129
|
-
if (objectId) {
|
|
130
|
-
const deps = ExecutionContext.serializeDeps([
|
|
131
|
-
pageFunctions.getNodeDetails,
|
|
132
|
-
]);
|
|
133
|
-
const response = await session.sendCommand('Runtime.callFunctionOn', {
|
|
134
|
-
objectId,
|
|
135
|
-
functionDeclaration: `function () {
|
|
136
|
-
${deps}
|
|
137
|
-
return getNodeDetails(this);
|
|
138
|
-
}`,
|
|
139
|
-
returnByValue: true,
|
|
140
|
-
awaitPromise: true,
|
|
141
|
-
});
|
|
142
|
-
if (response && response.result && response.result.value) {
|
|
143
|
-
tool.nodeDetails = response.result.value;
|
|
144
|
-
}
|
|
145
|
-
}
|
|
146
|
-
} catch (err) {
|
|
147
|
-
// Ignore error
|
|
148
|
-
}
|
|
149
|
-
}
|
|
155
|
+
await this._tryResolveToolNodeDetails(context, tool);
|
|
150
156
|
resolvedTools.push(tool);
|
|
151
157
|
}
|
|
158
|
+
|
|
152
159
|
return {
|
|
153
160
|
isSupported: true,
|
|
154
161
|
tools: resolvedTools,
|
package/core/index.d.ts
CHANGED
|
@@ -4,7 +4,6 @@ export { default as Gatherer } from "./gather/base-gatherer.js";
|
|
|
4
4
|
export { NetworkRecords } from "./computed/network-records.js";
|
|
5
5
|
export { default as defaultConfig } from "./config/default-config.js";
|
|
6
6
|
export { default as desktopConfig } from "./config/desktop-config.js";
|
|
7
|
-
export { default as agenticBrowsingConfig } from "./config/agentic-browsing-config.js";
|
|
8
7
|
export * from "../types/lh.js";
|
|
9
8
|
/**
|
|
10
9
|
* Run Lighthouse.
|
package/core/index.js
CHANGED
|
@@ -121,7 +121,6 @@ export {default as Gatherer} from './gather/base-gatherer.js';
|
|
|
121
121
|
export {NetworkRecords} from './computed/network-records.js';
|
|
122
122
|
export {default as defaultConfig} from './config/default-config.js';
|
|
123
123
|
export {default as desktopConfig} from './config/desktop-config.js';
|
|
124
|
-
export {default as agenticBrowsingConfig} from './config/agentic-browsing-config.js';
|
|
125
124
|
export * from '../types/lh.js';
|
|
126
125
|
export {
|
|
127
126
|
startFlow,
|