diff --git a/config/gni/devtools_grd_files.gni b/config/gni/devtools_grd_files.gni index 4d8f800c0a..509b28e0a1 100644 --- a/config/gni/devtools_grd_files.gni +++ b/config/gni/devtools_grd_files.gni @@ -756,6 +756,7 @@ grd_files_debug_sources = [ "front_end/models/issues_manager/SharedArrayBufferIssue.js", "front_end/models/issues_manager/SourceFrameIssuesManager.js", "front_end/models/issues_manager/TrustedWebActivityIssue.js", + "front_end/models/javascript_metadata/DOMPinnedProperties.js", "front_end/models/javascript_metadata/JavaScriptMetadata.js", "front_end/models/javascript_metadata/NativeFunctions.js", "front_end/models/logs/LogManager.js", diff --git a/front_end/core/common/JavaScriptMetaData.ts b/front_end/core/common/JavaScriptMetaData.ts index 880df25891..f70f133f49 100644 --- a/front_end/core/common/JavaScriptMetaData.ts +++ b/front_end/core/common/JavaScriptMetaData.ts @@ -2,6 +2,26 @@ // Use of this source code is governed by a BSD-style license that can be // found in the LICENSE file. +export interface DOMPinnedWebIDLProp { + global?: boolean; + specs?: number; + rules?: Array; +} + +export interface DOMPinnedWebIDLType { + inheritance?: string; + includes?: Array; + props?: { + [PropName: string]: DOMPinnedWebIDLProp, + }; + rules?: Array; +} + +export interface DOMPinnedWebIDLRule { + when: string; + is: string; +} + export interface JavaScriptMetaData { signaturesForNativeFunction(name: string): string[][]|null; diff --git a/front_end/models/javascript_metadata/BUILD.gn b/front_end/models/javascript_metadata/BUILD.gn index 8d99d5f5b6..009262f89b 100644 --- a/front_end/models/javascript_metadata/BUILD.gn +++ b/front_end/models/javascript_metadata/BUILD.gn @@ -8,6 +8,7 @@ import("../visibility.gni") devtools_module("javascript_metadata") { sources = [ + "DOMPinnedProperties.ts", "JavaScriptMetadata.ts", "NativeFunctions.js", ] diff --git a/front_end/models/javascript_metadata/JavaScriptMetadata.ts b/front_end/models/javascript_metadata/JavaScriptMetadata.ts index deca542c5e..9e4ef5c0ef 100644 --- a/front_end/models/javascript_metadata/JavaScriptMetadata.ts +++ b/front_end/models/javascript_metadata/JavaScriptMetadata.ts @@ -5,10 +5,13 @@ import type * as Common from '../../core/common/common.js'; import {NativeFunctions} from './NativeFunctions.js'; +import * as DOMPinnedProperties from './DOMPinnedProperties.js'; let javaScriptMetadataInstance: JavaScriptMetadataImpl; export class JavaScriptMetadataImpl implements Common.JavaScriptMetaData.JavaScriptMetaData { + static readonly domPinnedProperties = DOMPinnedProperties; + private readonly uniqueFunctions: Map; private readonly receiverMethods: Map>; static instance(opts: { diff --git a/front_end/models/javascript_metadata/javascript_metadata.ts b/front_end/models/javascript_metadata/javascript_metadata.ts index a13c9f9980..f0e09d0476 100644 --- a/front_end/models/javascript_metadata/javascript_metadata.ts +++ b/front_end/models/javascript_metadata/javascript_metadata.ts @@ -3,12 +3,15 @@ // found in the LICENSE file. import './NativeFunctions.js'; +import './DOMPinnedProperties.js'; import './JavaScriptMetadata.js'; +import * as DOMPinnedProperties from './DOMPinnedProperties.js'; import * as JavaScriptMetadata from './JavaScriptMetadata.js'; import * as NativeFunctions from './NativeFunctions.js'; export { + DOMPinnedProperties, JavaScriptMetadata, NativeFunctions, };