chrome-devtools-mcp 0.10.2 → 0.11.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/README.md +67 -9
- package/build/node_modules/chrome-devtools-frontend/front_end/core/common/common.js +1 -3
- package/build/node_modules/chrome-devtools-frontend/front_end/core/host/AidaClient.js +1 -1
- package/build/node_modules/chrome-devtools-frontend/front_end/core/host/InspectorFrontendHost.js +31 -449
- package/build/node_modules/chrome-devtools-frontend/front_end/core/host/InspectorFrontendHostStub.js +430 -0
- package/build/node_modules/chrome-devtools-frontend/front_end/core/host/ResourceLoader.js +10 -22
- package/build/node_modules/chrome-devtools-frontend/front_end/core/host/UserMetrics.js +2 -5
- package/build/node_modules/chrome-devtools-frontend/front_end/core/i18n/collect-ui-strings.js +1 -1
- package/build/node_modules/chrome-devtools-frontend/front_end/core/i18n/generate-locales-js.js +1 -1
- package/build/node_modules/chrome-devtools-frontend/front_end/core/platform/HostRuntime.js +19 -0
- package/build/node_modules/chrome-devtools-frontend/front_end/core/platform/StringUtilities.js +1 -1
- package/build/node_modules/chrome-devtools-frontend/front_end/core/platform/api/HostRuntime.js +4 -0
- package/build/node_modules/chrome-devtools-frontend/front_end/core/platform/api/api.js +5 -0
- package/build/node_modules/chrome-devtools-frontend/front_end/core/{common/Worker.js → platform/browser/HostRuntime.js} +18 -7
- package/build/node_modules/chrome-devtools-frontend/front_end/core/platform/browser/browser.js +5 -0
- package/build/node_modules/chrome-devtools-frontend/front_end/core/platform/node/HostRuntime.js +72 -0
- package/build/node_modules/chrome-devtools-frontend/front_end/core/platform/node/node.js +5 -0
- package/build/node_modules/chrome-devtools-frontend/front_end/core/platform/platform.js +2 -2
- package/build/node_modules/chrome-devtools-frontend/front_end/core/root/DevToolsContext.js +4 -0
- package/build/node_modules/chrome-devtools-frontend/front_end/core/root/Runtime.js +7 -0
- package/build/node_modules/chrome-devtools-frontend/front_end/core/sdk/AnimationModel.js +1 -1
- package/build/node_modules/chrome-devtools-frontend/front_end/core/sdk/CSSMatchedStyles.js +2 -2
- package/build/node_modules/chrome-devtools-frontend/front_end/core/sdk/CSSMetadata.js +17 -5
- package/build/node_modules/chrome-devtools-frontend/front_end/core/sdk/CSSModel.js +3 -3
- package/build/node_modules/chrome-devtools-frontend/front_end/core/sdk/CSSProperty.js +1 -1
- package/build/node_modules/chrome-devtools-frontend/front_end/core/sdk/CSSPropertyParserMatchers.js +10 -10
- package/build/node_modules/chrome-devtools-frontend/front_end/core/sdk/ConsoleModel.js +1 -1
- package/build/node_modules/chrome-devtools-frontend/front_end/core/sdk/Cookie.js +1 -1
- package/build/node_modules/chrome-devtools-frontend/front_end/core/sdk/DOMModel.js +5 -2
- package/build/node_modules/chrome-devtools-frontend/front_end/core/sdk/DebuggerModel.js +1 -1
- package/build/node_modules/chrome-devtools-frontend/front_end/core/sdk/NetworkManager.js +46 -34
- package/build/node_modules/chrome-devtools-frontend/front_end/core/sdk/NetworkRequest.js +3 -0
- package/build/node_modules/chrome-devtools-frontend/front_end/core/sdk/PageResourceLoader.js +43 -33
- package/build/node_modules/chrome-devtools-frontend/front_end/core/sdk/PreloadingModel.js +1 -1
- package/build/node_modules/chrome-devtools-frontend/front_end/core/sdk/RemoteObject.js +1 -1
- package/build/node_modules/chrome-devtools-frontend/front_end/core/sdk/ResourceTreeModel.js +1 -1
- package/build/node_modules/chrome-devtools-frontend/front_end/core/sdk/Script.js +26 -1
- package/build/node_modules/chrome-devtools-frontend/front_end/core/sdk/SourceMap.js +4 -0
- package/build/node_modules/chrome-devtools-frontend/front_end/core/sdk/SourceMapCache.js +16 -0
- package/build/node_modules/chrome-devtools-frontend/front_end/core/sdk/SourceMapManager.js +11 -5
- package/build/node_modules/chrome-devtools-frontend/front_end/core/sdk/SourceMapScopesInfo.js +129 -20
- package/build/node_modules/chrome-devtools-frontend/front_end/core/sdk/Target.js +4 -13
- package/build/node_modules/chrome-devtools-frontend/front_end/core/sdk/TargetManager.js +35 -4
- package/build/node_modules/chrome-devtools-frontend/front_end/core/sdk/sdk-meta.js +72 -0
- package/build/node_modules/chrome-devtools-frontend/front_end/foundation/Universe.js +5 -1
- package/build/node_modules/chrome-devtools-frontend/front_end/generated/Deprecation.js +48 -4
- package/build/node_modules/chrome-devtools-frontend/front_end/generated/InspectorBackendCommands.js +45 -42
- package/build/node_modules/chrome-devtools-frontend/front_end/generated/SupportedCSSProperties.js +56 -77
- package/build/node_modules/chrome-devtools-frontend/front_end/models/ai_assistance/data_formatters/PerformanceTraceFormatter.js +21 -6
- package/build/node_modules/chrome-devtools-frontend/front_end/models/ai_assistance/performance/AICallTree.js +9 -3
- package/build/node_modules/chrome-devtools-frontend/front_end/models/bindings/CSSWorkspaceBinding.js +4 -3
- package/build/node_modules/chrome-devtools-frontend/front_end/models/bindings/CompilerScriptMapping.js +34 -0
- package/build/node_modules/chrome-devtools-frontend/front_end/models/bindings/DebuggerWorkspaceBinding.js +15 -0
- package/build/node_modules/chrome-devtools-frontend/front_end/models/bindings/ResourceMapping.js +59 -0
- package/build/node_modules/chrome-devtools-frontend/front_end/models/bindings/ResourceScriptMapping.js +38 -0
- package/build/node_modules/chrome-devtools-frontend/front_end/models/bindings/SASSSourceMapping.js +5 -4
- package/build/node_modules/chrome-devtools-frontend/front_end/models/cpu_profile/CPUProfileDataModel.js +9 -7
- package/build/node_modules/chrome-devtools-frontend/front_end/models/crux-manager/CrUXManager.js +5 -3
- package/build/node_modules/chrome-devtools-frontend/front_end/models/formatter/FormatterWorkerPool.js +2 -2
- package/build/node_modules/chrome-devtools-frontend/front_end/models/issues_manager/AttributionReportingIssue.js +5 -6
- package/build/node_modules/chrome-devtools-frontend/front_end/models/issues_manager/BounceTrackingIssue.js +3 -11
- package/build/node_modules/chrome-devtools-frontend/front_end/models/issues_manager/ClientHintIssue.js +4 -9
- package/build/node_modules/chrome-devtools-frontend/front_end/models/issues_manager/ContentSecurityPolicyIssue.js +4 -9
- package/build/node_modules/chrome-devtools-frontend/front_end/models/issues_manager/ContrastCheckTrigger.js +1 -1
- package/build/node_modules/chrome-devtools-frontend/front_end/models/issues_manager/CookieDeprecationMetadataIssue.js +5 -11
- package/build/node_modules/chrome-devtools-frontend/front_end/models/issues_manager/CookieIssue.js +26 -25
- package/build/node_modules/chrome-devtools-frontend/front_end/models/issues_manager/CorsIssue.js +7 -14
- package/build/node_modules/chrome-devtools-frontend/front_end/models/issues_manager/CrossOriginEmbedderPolicyIssue.js +4 -6
- package/build/node_modules/chrome-devtools-frontend/front_end/models/issues_manager/DeprecationIssue.js +6 -11
- package/build/node_modules/chrome-devtools-frontend/front_end/models/issues_manager/ElementAccessibilityIssue.js +6 -11
- package/build/node_modules/chrome-devtools-frontend/front_end/models/issues_manager/FederatedAuthRequestIssue.js +3 -8
- package/build/node_modules/chrome-devtools-frontend/front_end/models/issues_manager/FederatedAuthUserInfoRequestIssue.js +3 -8
- package/build/node_modules/chrome-devtools-frontend/front_end/models/issues_manager/GenericIssue.js +36 -21
- package/build/node_modules/chrome-devtools-frontend/front_end/models/issues_manager/HeavyAdIssue.js +3 -8
- package/build/node_modules/chrome-devtools-frontend/front_end/models/issues_manager/Issue.js +6 -1
- package/build/node_modules/chrome-devtools-frontend/front_end/models/issues_manager/IssueAggregator.js +6 -1
- package/build/node_modules/chrome-devtools-frontend/front_end/models/issues_manager/LowTextContrastIssue.js +2 -7
- package/build/node_modules/chrome-devtools-frontend/front_end/models/issues_manager/MixedContentIssue.js +6 -10
- package/build/node_modules/chrome-devtools-frontend/front_end/models/issues_manager/PartitioningBlobURLIssue.js +3 -8
- package/build/node_modules/chrome-devtools-frontend/front_end/models/issues_manager/PropertyRuleIssue.js +5 -10
- package/build/node_modules/chrome-devtools-frontend/front_end/models/issues_manager/QuirksModeIssue.js +2 -7
- package/build/node_modules/chrome-devtools-frontend/front_end/models/issues_manager/SRIMessageSignatureIssue.js +6 -10
- package/build/node_modules/chrome-devtools-frontend/front_end/models/issues_manager/SharedArrayBufferIssue.js +3 -8
- package/build/node_modules/chrome-devtools-frontend/front_end/models/issues_manager/SharedDictionaryIssue.js +5 -10
- package/build/node_modules/chrome-devtools-frontend/front_end/models/issues_manager/StylesheetLoadingIssue.js +7 -11
- package/build/node_modules/chrome-devtools-frontend/front_end/models/issues_manager/UnencodedDigestIssue.js +1 -6
- package/build/node_modules/chrome-devtools-frontend/front_end/models/issues_manager/descriptions/genericNavigationEntryMarkedSkippable.md +7 -0
- package/build/node_modules/chrome-devtools-frontend/front_end/models/source_map_scopes/FunctionCodeResolver.js +192 -0
- package/build/node_modules/chrome-devtools-frontend/front_end/models/source_map_scopes/source_map_scopes.js +2 -1
- package/build/node_modules/chrome-devtools-frontend/front_end/models/trace/handlers/SamplesHandler.js +3 -0
- package/build/node_modules/chrome-devtools-frontend/front_end/models/trace/helpers/Trace.js +10 -0
- package/build/node_modules/chrome-devtools-frontend/front_end/models/trace_source_maps_resolver/SourceMapsResolver.js +23 -0
- package/build/node_modules/chrome-devtools-frontend/front_end/models/workspace/IgnoreListManager.js +1 -1
- package/build/node_modules/chrome-devtools-frontend/front_end/models/workspace/UISourceCode.js +38 -0
- package/build/node_modules/chrome-devtools-frontend/mcp/HostBindings.js +222 -0
- package/build/node_modules/chrome-devtools-frontend/mcp/mcp.js +15 -1
- package/build/src/DevToolsConnectionAdapter.js +56 -19
- package/build/src/DevtoolsUtils.js +143 -1
- package/build/src/McpContext.js +33 -11
- package/build/src/McpResponse.js +18 -26
- package/build/src/PageCollector.js +4 -11
- package/build/src/browser.js +4 -0
- package/build/src/cli.js +11 -3
- package/build/src/formatters/consoleFormatter.js +81 -3
- package/build/src/formatters/snapshotFormatter.js +18 -4
- package/build/src/issue-descriptions.js +4 -0
- package/build/src/main.js +20 -49
- package/build/src/third_party/THIRD_PARTY_NOTICES +1973 -27
- package/build/src/third_party/index.js +58356 -18839
- package/build/src/tools/console.js +0 -4
- package/build/src/tools/emulation.js +29 -6
- package/build/src/tools/screenshot.js +4 -2
- package/build/src/tools/snapshot.js +1 -1
- package/build/src/tools/tools.js +29 -0
- package/build/src/utils/keyboard.js +5 -0
- package/package.json +7 -7
- package/build/node_modules/chrome-devtools-frontend/front_end/core/common/Linkifier.js +0 -34
- package/build/node_modules/chrome-devtools-frontend/front_end/core/platform/DOMUtilities.js +0 -122
- package/build/src/features.js +0 -14
- /package/build/node_modules/chrome-devtools-frontend/front_end/models/issues_manager/descriptions/{genericFormAriaLabelledByToNonExistingId.md → genericFormAriaLabelledByToNonExistingIdError.md} +0 -0
- /package/build/node_modules/chrome-devtools-frontend/front_end/models/issues_manager/descriptions/{genericFormLabelHasNeitherForNorNestedInput.md → genericFormLabelHasNeitherForNorNestedInputError.md} +0 -0
|
@@ -3,7 +3,6 @@
|
|
|
3
3
|
* Copyright 2025 Google LLC
|
|
4
4
|
* SPDX-License-Identifier: Apache-2.0
|
|
5
5
|
*/
|
|
6
|
-
import { features } from '../features.js';
|
|
7
6
|
import { zod } from '../third_party/index.js';
|
|
8
7
|
import { ToolCategory } from './categories.js';
|
|
9
8
|
import { defineTool } from './ToolDefinition.js';
|
|
@@ -29,9 +28,6 @@ const FILTERABLE_MESSAGE_TYPES = [
|
|
|
29
28
|
'verbose',
|
|
30
29
|
'issue',
|
|
31
30
|
];
|
|
32
|
-
if (features.issues) {
|
|
33
|
-
FILTERABLE_MESSAGE_TYPES.push('issue');
|
|
34
|
-
}
|
|
35
31
|
export const listConsoleMessages = defineTool({
|
|
36
32
|
name: 'list_console_messages',
|
|
37
33
|
description: 'List all console messages for the currently selected page since the last navigation.',
|
|
@@ -29,18 +29,32 @@ export const emulate = defineTool({
|
|
|
29
29
|
.max(20)
|
|
30
30
|
.optional()
|
|
31
31
|
.describe('Represents the CPU slowdown factor. Set the rate to 1 to disable throttling. If omitted, throttling remains unchanged.'),
|
|
32
|
+
geolocation: zod
|
|
33
|
+
.object({
|
|
34
|
+
latitude: zod
|
|
35
|
+
.number()
|
|
36
|
+
.min(-90)
|
|
37
|
+
.max(90)
|
|
38
|
+
.describe('Latitude between -90 and 90.'),
|
|
39
|
+
longitude: zod
|
|
40
|
+
.number()
|
|
41
|
+
.min(-180)
|
|
42
|
+
.max(180)
|
|
43
|
+
.describe('Longitude between -180 and 180.'),
|
|
44
|
+
})
|
|
45
|
+
.nullable()
|
|
46
|
+
.optional()
|
|
47
|
+
.describe('Geolocation to emulate. Set to null to clear the geolocation override.'),
|
|
32
48
|
},
|
|
33
49
|
handler: async (request, _response, context) => {
|
|
34
50
|
const page = context.getSelectedPage();
|
|
35
|
-
const networkConditions = request.params
|
|
36
|
-
const cpuThrottlingRate = request.params.cpuThrottlingRate;
|
|
51
|
+
const { networkConditions, cpuThrottlingRate, geolocation } = request.params;
|
|
37
52
|
if (networkConditions) {
|
|
38
53
|
if (networkConditions === 'No emulation') {
|
|
39
54
|
await page.emulateNetworkConditions(null);
|
|
40
55
|
context.setNetworkConditions(null);
|
|
41
|
-
return;
|
|
42
56
|
}
|
|
43
|
-
if (networkConditions === 'Offline') {
|
|
57
|
+
else if (networkConditions === 'Offline') {
|
|
44
58
|
await page.emulateNetworkConditions({
|
|
45
59
|
offline: true,
|
|
46
60
|
download: 0,
|
|
@@ -48,9 +62,8 @@ export const emulate = defineTool({
|
|
|
48
62
|
latency: 0,
|
|
49
63
|
});
|
|
50
64
|
context.setNetworkConditions('Offline');
|
|
51
|
-
return;
|
|
52
65
|
}
|
|
53
|
-
if (networkConditions in PredefinedNetworkConditions) {
|
|
66
|
+
else if (networkConditions in PredefinedNetworkConditions) {
|
|
54
67
|
const networkCondition = PredefinedNetworkConditions[networkConditions];
|
|
55
68
|
await page.emulateNetworkConditions(networkCondition);
|
|
56
69
|
context.setNetworkConditions(networkConditions);
|
|
@@ -60,5 +73,15 @@ export const emulate = defineTool({
|
|
|
60
73
|
await page.emulateCPUThrottling(cpuThrottlingRate);
|
|
61
74
|
context.setCpuThrottlingRate(cpuThrottlingRate);
|
|
62
75
|
}
|
|
76
|
+
if (geolocation !== undefined) {
|
|
77
|
+
if (geolocation === null) {
|
|
78
|
+
await page.setGeolocation({ latitude: 0, longitude: 0 });
|
|
79
|
+
context.setGeolocation(null);
|
|
80
|
+
}
|
|
81
|
+
else {
|
|
82
|
+
await page.setGeolocation(geolocation);
|
|
83
|
+
context.setGeolocation(geolocation);
|
|
84
|
+
}
|
|
85
|
+
}
|
|
63
86
|
},
|
|
64
87
|
});
|
|
@@ -49,10 +49,12 @@ export const screenshot = defineTool({
|
|
|
49
49
|
else {
|
|
50
50
|
pageOrHandle = context.getSelectedPage();
|
|
51
51
|
}
|
|
52
|
+
const format = request.params.format;
|
|
53
|
+
const quality = format === 'png' ? undefined : request.params.quality;
|
|
52
54
|
const screenshot = await pageOrHandle.screenshot({
|
|
53
|
-
type:
|
|
55
|
+
type: format,
|
|
54
56
|
fullPage: request.params.fullPage,
|
|
55
|
-
quality
|
|
57
|
+
quality,
|
|
56
58
|
optimizeForSpeed: true, // Bonus: optimize encoding for speed
|
|
57
59
|
});
|
|
58
60
|
if (request.params.uid) {
|
|
@@ -45,7 +45,7 @@ export const waitFor = defineTool({
|
|
|
45
45
|
...timeoutSchema,
|
|
46
46
|
},
|
|
47
47
|
handler: async (request, response, context) => {
|
|
48
|
-
await context.waitForTextOnPage(request.params);
|
|
48
|
+
await context.waitForTextOnPage(request.params.text, request.params.timeout);
|
|
49
49
|
response.appendResponseLine(`Element with text "${request.params.text}" found.`);
|
|
50
50
|
response.includeSnapshot();
|
|
51
51
|
},
|
|
@@ -0,0 +1,29 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* @license
|
|
3
|
+
* Copyright 2025 Google LLC
|
|
4
|
+
* SPDX-License-Identifier: Apache-2.0
|
|
5
|
+
*/
|
|
6
|
+
import * as consoleTools from './console.js';
|
|
7
|
+
import * as emulationTools from './emulation.js';
|
|
8
|
+
import * as inputTools from './input.js';
|
|
9
|
+
import * as networkTools from './network.js';
|
|
10
|
+
import * as pagesTools from './pages.js';
|
|
11
|
+
import * as performanceTools from './performance.js';
|
|
12
|
+
import * as screenshotTools from './screenshot.js';
|
|
13
|
+
import * as scriptTools from './script.js';
|
|
14
|
+
import * as snapshotTools from './snapshot.js';
|
|
15
|
+
const tools = [
|
|
16
|
+
...Object.values(consoleTools),
|
|
17
|
+
...Object.values(emulationTools),
|
|
18
|
+
...Object.values(inputTools),
|
|
19
|
+
...Object.values(networkTools),
|
|
20
|
+
...Object.values(pagesTools),
|
|
21
|
+
...Object.values(performanceTools),
|
|
22
|
+
...Object.values(screenshotTools),
|
|
23
|
+
...Object.values(scriptTools),
|
|
24
|
+
...Object.values(snapshotTools),
|
|
25
|
+
];
|
|
26
|
+
tools.sort((a, b) => {
|
|
27
|
+
return a.name.localeCompare(b.name);
|
|
28
|
+
});
|
|
29
|
+
export { tools };
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "chrome-devtools-mcp",
|
|
3
|
-
"version": "0.
|
|
3
|
+
"version": "0.11.0",
|
|
4
4
|
"description": "MCP server for Chrome DevTools",
|
|
5
5
|
"type": "module",
|
|
6
6
|
"bin": "./build/src/index.js",
|
|
@@ -40,7 +40,7 @@
|
|
|
40
40
|
"mcpName": "io.github.ChromeDevTools/chrome-devtools-mcp",
|
|
41
41
|
"devDependencies": {
|
|
42
42
|
"@eslint/js": "^9.35.0",
|
|
43
|
-
"@modelcontextprotocol/sdk": "1.
|
|
43
|
+
"@modelcontextprotocol/sdk": "1.24.1",
|
|
44
44
|
"@rollup/plugin-commonjs": "^29.0.0",
|
|
45
45
|
"@rollup/plugin-json": "^6.1.0",
|
|
46
46
|
"@rollup/plugin-node-resolve": "^16.0.3",
|
|
@@ -48,20 +48,20 @@
|
|
|
48
48
|
"@types/debug": "^4.1.12",
|
|
49
49
|
"@types/filesystem": "^0.0.36",
|
|
50
50
|
"@types/node": "^24.3.3",
|
|
51
|
-
"@types/sinon": "^
|
|
51
|
+
"@types/sinon": "^21.0.0",
|
|
52
52
|
"@types/yargs": "^17.0.33",
|
|
53
53
|
"@typescript-eslint/eslint-plugin": "^8.43.0",
|
|
54
54
|
"@typescript-eslint/parser": "^8.43.0",
|
|
55
|
-
"chrome-devtools-frontend": "1.0.
|
|
56
|
-
"core-js": "3.
|
|
55
|
+
"chrome-devtools-frontend": "1.0.1550444",
|
|
56
|
+
"core-js": "3.47.0",
|
|
57
57
|
"debug": "4.4.3",
|
|
58
58
|
"eslint": "^9.35.0",
|
|
59
59
|
"eslint-import-resolver-typescript": "^4.4.4",
|
|
60
60
|
"eslint-plugin-import": "^2.32.0",
|
|
61
61
|
"globals": "^16.4.0",
|
|
62
62
|
"prettier": "^3.6.2",
|
|
63
|
-
"puppeteer": "24.
|
|
64
|
-
"rollup": "4.53.
|
|
63
|
+
"puppeteer": "24.32.0",
|
|
64
|
+
"rollup": "4.53.3",
|
|
65
65
|
"rollup-plugin-cleanup": "^3.2.1",
|
|
66
66
|
"rollup-plugin-license": "^3.6.0",
|
|
67
67
|
"sinon": "^21.0.0",
|
|
@@ -1,34 +0,0 @@
|
|
|
1
|
-
// Copyright 2019 The Chromium Authors
|
|
2
|
-
// Use of this source code is governed by a BSD-style license that can be
|
|
3
|
-
// found in the LICENSE file.
|
|
4
|
-
export class Linkifier {
|
|
5
|
-
static async linkify(object, options) {
|
|
6
|
-
if (!object) {
|
|
7
|
-
throw new Error('Can\'t linkify ' + object);
|
|
8
|
-
}
|
|
9
|
-
const linkifierRegistration = getApplicableRegisteredlinkifiers(object)[0];
|
|
10
|
-
if (!linkifierRegistration) {
|
|
11
|
-
throw new Error('No linkifiers registered for object ' + object);
|
|
12
|
-
}
|
|
13
|
-
const linkifier = await linkifierRegistration.loadLinkifier();
|
|
14
|
-
return linkifier.linkify(object, options);
|
|
15
|
-
}
|
|
16
|
-
}
|
|
17
|
-
const registeredLinkifiers = [];
|
|
18
|
-
export function registerLinkifier(registration) {
|
|
19
|
-
registeredLinkifiers.push(registration);
|
|
20
|
-
}
|
|
21
|
-
export function getApplicableRegisteredlinkifiers(object) {
|
|
22
|
-
return registeredLinkifiers.filter(isLinkifierApplicableToContextTypes);
|
|
23
|
-
function isLinkifierApplicableToContextTypes(linkifierRegistration) {
|
|
24
|
-
if (!linkifierRegistration.contextTypes) {
|
|
25
|
-
return true;
|
|
26
|
-
}
|
|
27
|
-
for (const contextType of linkifierRegistration.contextTypes()) {
|
|
28
|
-
if (object instanceof contextType) {
|
|
29
|
-
return true;
|
|
30
|
-
}
|
|
31
|
-
}
|
|
32
|
-
return false;
|
|
33
|
-
}
|
|
34
|
-
}
|
|
@@ -1,122 +0,0 @@
|
|
|
1
|
-
// Copyright 2022 The Chromium Authors
|
|
2
|
-
// Use of this source code is governed by a BSD-style license that can be
|
|
3
|
-
// found in the LICENSE file.
|
|
4
|
-
/**
|
|
5
|
-
* `document.activeElement` will not enter shadow roots to find the element
|
|
6
|
-
* that has focus; use this method if you need to traverse through any shadow
|
|
7
|
-
* roots to find the actual, specific focused element.
|
|
8
|
-
*/
|
|
9
|
-
export function deepActiveElement(doc) {
|
|
10
|
-
let activeElement = doc.activeElement;
|
|
11
|
-
while (activeElement?.shadowRoot?.activeElement) {
|
|
12
|
-
activeElement = activeElement.shadowRoot.activeElement;
|
|
13
|
-
}
|
|
14
|
-
return activeElement;
|
|
15
|
-
}
|
|
16
|
-
export function getEnclosingShadowRootForNode(node) {
|
|
17
|
-
let parentNode = node.parentNodeOrShadowHost();
|
|
18
|
-
while (parentNode) {
|
|
19
|
-
if (parentNode instanceof ShadowRoot) {
|
|
20
|
-
return parentNode;
|
|
21
|
-
}
|
|
22
|
-
parentNode = parentNode.parentNodeOrShadowHost();
|
|
23
|
-
}
|
|
24
|
-
return null;
|
|
25
|
-
}
|
|
26
|
-
export function rangeOfWord(rootNode, offset, stopCharacters, stayWithinNode, direction) {
|
|
27
|
-
let startNode;
|
|
28
|
-
let startOffset = 0;
|
|
29
|
-
let endNode;
|
|
30
|
-
let endOffset = 0;
|
|
31
|
-
if (!stayWithinNode) {
|
|
32
|
-
stayWithinNode = rootNode;
|
|
33
|
-
}
|
|
34
|
-
if (!direction || direction === 'backward' || direction === 'both') {
|
|
35
|
-
let node = rootNode;
|
|
36
|
-
while (node) {
|
|
37
|
-
if (node === stayWithinNode) {
|
|
38
|
-
if (!startNode) {
|
|
39
|
-
startNode = stayWithinNode;
|
|
40
|
-
}
|
|
41
|
-
break;
|
|
42
|
-
}
|
|
43
|
-
if (node.nodeType === Node.TEXT_NODE && node.nodeValue !== null) {
|
|
44
|
-
const start = (node === rootNode ? (offset - 1) : (node.nodeValue.length - 1));
|
|
45
|
-
for (let i = start; i >= 0; --i) {
|
|
46
|
-
if (stopCharacters.indexOf(node.nodeValue[i]) !== -1) {
|
|
47
|
-
startNode = node;
|
|
48
|
-
startOffset = i + 1;
|
|
49
|
-
break;
|
|
50
|
-
}
|
|
51
|
-
}
|
|
52
|
-
}
|
|
53
|
-
if (startNode) {
|
|
54
|
-
break;
|
|
55
|
-
}
|
|
56
|
-
node = node.traversePreviousNode(stayWithinNode);
|
|
57
|
-
}
|
|
58
|
-
if (!startNode) {
|
|
59
|
-
startNode = stayWithinNode;
|
|
60
|
-
startOffset = 0;
|
|
61
|
-
}
|
|
62
|
-
}
|
|
63
|
-
else {
|
|
64
|
-
startNode = rootNode;
|
|
65
|
-
startOffset = offset;
|
|
66
|
-
}
|
|
67
|
-
if (!direction || direction === 'forward' || direction === 'both') {
|
|
68
|
-
let node = rootNode;
|
|
69
|
-
while (node) {
|
|
70
|
-
if (node === stayWithinNode) {
|
|
71
|
-
if (!endNode) {
|
|
72
|
-
endNode = stayWithinNode;
|
|
73
|
-
}
|
|
74
|
-
break;
|
|
75
|
-
}
|
|
76
|
-
if (node.nodeType === Node.TEXT_NODE && node.nodeValue !== null) {
|
|
77
|
-
const start = (node === rootNode ? offset : 0);
|
|
78
|
-
for (let i = start; i < node.nodeValue.length; ++i) {
|
|
79
|
-
if (stopCharacters.indexOf(node.nodeValue[i]) !== -1) {
|
|
80
|
-
endNode = node;
|
|
81
|
-
endOffset = i;
|
|
82
|
-
break;
|
|
83
|
-
}
|
|
84
|
-
}
|
|
85
|
-
}
|
|
86
|
-
if (endNode) {
|
|
87
|
-
break;
|
|
88
|
-
}
|
|
89
|
-
node = node.traverseNextNode(stayWithinNode);
|
|
90
|
-
}
|
|
91
|
-
if (!endNode) {
|
|
92
|
-
endNode = stayWithinNode;
|
|
93
|
-
endOffset = stayWithinNode.nodeType === Node.TEXT_NODE ? stayWithinNode.nodeValue?.length || 0 :
|
|
94
|
-
stayWithinNode.childNodes.length;
|
|
95
|
-
}
|
|
96
|
-
}
|
|
97
|
-
else {
|
|
98
|
-
endNode = rootNode;
|
|
99
|
-
endOffset = offset;
|
|
100
|
-
}
|
|
101
|
-
if (!rootNode.ownerDocument) {
|
|
102
|
-
throw new Error('No `ownerDocument` found for rootNode');
|
|
103
|
-
}
|
|
104
|
-
const result = rootNode.ownerDocument.createRange();
|
|
105
|
-
result.setStart(startNode, startOffset);
|
|
106
|
-
result.setEnd(endNode, endOffset);
|
|
107
|
-
return result;
|
|
108
|
-
}
|
|
109
|
-
/**
|
|
110
|
-
* Appends the list of `styles` as individual `<style>` elements to the
|
|
111
|
-
* given `node`.
|
|
112
|
-
*
|
|
113
|
-
* @param node the `Node` to append the `<style>` elements to.
|
|
114
|
-
* @param styles an optional list of styles to append to the `node`.
|
|
115
|
-
*/
|
|
116
|
-
export function appendStyle(node, ...styles) {
|
|
117
|
-
for (const cssText of styles) {
|
|
118
|
-
const style = (node.ownerDocument ?? document).createElement('style');
|
|
119
|
-
style.textContent = cssText;
|
|
120
|
-
node.appendChild(style);
|
|
121
|
-
}
|
|
122
|
-
}
|
package/build/src/features.js
DELETED
|
@@ -1,14 +0,0 @@
|
|
|
1
|
-
/**
|
|
2
|
-
* @license
|
|
3
|
-
* Copyright 2025 Google LLC
|
|
4
|
-
* SPDX-License-Identifier: Apache-2.0
|
|
5
|
-
*/
|
|
6
|
-
let issuesEnabled = false;
|
|
7
|
-
export const features = {
|
|
8
|
-
get issues() {
|
|
9
|
-
return issuesEnabled;
|
|
10
|
-
},
|
|
11
|
-
};
|
|
12
|
-
export function setIssuesEnabled(value) {
|
|
13
|
-
issuesEnabled = value;
|
|
14
|
-
}
|
|
File without changes
|