Type annotate with CSS.StyleSheetId consistently
DISABLE_THIRD_PARTY_CHECK=disable
Bug: chromium:1226471
Change-Id: I1ad6cf3c9d21251b8719010319f6b4e1ba8f24f9
Reviewed-on: https://chromium-review.googlesource.com/c/devtools/devtools-frontend/+/3080313
Commit-Queue: Sigurd Schneider <[email protected]>
Reviewed-by: Tim van der Lippe <[email protected]>
diff --git a/front_end/core/sdk/CSSModel.ts b/front_end/core/sdk/CSSModel.ts
index 24d4357..9be74e8 100644
--- a/front_end/core/sdk/CSSModel.ts
+++ b/front_end/core/sdk/CSSModel.ts
@@ -58,8 +58,8 @@
agent: ProtocolProxyApi.CSSApi;
private readonly styleLoader: ComputedStyleLoader;
private readonly resourceTreeModel: ResourceTreeModel|null;
- private styleSheetIdToHeader: Map<string, CSSStyleSheetHeader>;
- private readonly styleSheetIdsForURL: Map<string, Map<string, Set<string>>>;
+ private styleSheetIdToHeader: Map<Protocol.CSS.StyleSheetId, CSSStyleSheetHeader>;
+ private readonly styleSheetIdsForURL: Map<string, Map<string, Set<Protocol.CSS.StyleSheetId>>>;
private readonly originalStyleSheetTextInternal: Map<CSSStyleSheetHeader, Promise<string|null>>;
private isRuleUsageTrackingEnabled: boolean;
private readonly fontFacesInternal: Map<string, CSSFontFace>;
@@ -171,8 +171,9 @@
return this.domModelInternal;
}
- async setStyleText(styleSheetId: string, range: TextUtils.TextRange.TextRange, text: string, majorChange: boolean):
- Promise<boolean> {
+ async setStyleText(
+ styleSheetId: Protocol.CSS.StyleSheetId, range: TextUtils.TextRange.TextRange, text: string,
+ majorChange: boolean): Promise<boolean> {
try {
await this.ensureOriginalStyleSheetText(styleSheetId);
@@ -191,7 +192,8 @@
}
}
- async setSelectorText(styleSheetId: string, range: TextUtils.TextRange.TextRange, text: string): Promise<boolean> {
+ async setSelectorText(styleSheetId: Protocol.CSS.StyleSheetId, range: TextUtils.TextRange.TextRange, text: string):
+ Promise<boolean> {
Host.userMetrics.actionTaken(Host.UserMetrics.Action.StyleRuleEdited);
try {
@@ -210,7 +212,8 @@
}
}
- async setKeyframeKey(styleSheetId: string, range: TextUtils.TextRange.TextRange, text: string): Promise<boolean> {
+ async setKeyframeKey(styleSheetId: Protocol.CSS.StyleSheetId, range: TextUtils.TextRange.TextRange, text: string):
+ Promise<boolean> {
Host.userMetrics.actionTaken(Host.UserMetrics.Action.StyleRuleEdited);
try {
@@ -291,7 +294,7 @@
response.cssKeyframesRules || []);
}
- async classNamesPromise(styleSheetId: string): Promise<string[]> {
+ async classNamesPromise(styleSheetId: Protocol.CSS.StyleSheetId): Promise<string[]> {
const {classNames} = await this.agent.invoke_collectClassNames({styleSheetId});
return classNames || [];
}
@@ -380,8 +383,9 @@
return node.marker(PseudoStateMarker) || [];
}
- async setMediaText(styleSheetId: string, range: TextUtils.TextRange.TextRange, newMediaText: string):
- Promise<boolean> {
+ async setMediaText(
+ styleSheetId: Protocol.CSS.StyleSheetId, range: TextUtils.TextRange.TextRange,
+ newMediaText: string): Promise<boolean> {
Host.userMetrics.actionTaken(Host.UserMetrics.Action.StyleRuleEdited);
try {
@@ -401,7 +405,8 @@
}
async setContainerQueryText(
- styleSheetId: string, range: TextUtils.TextRange.TextRange, newContainerQueryText: string): Promise<boolean> {
+ styleSheetId: Protocol.CSS.StyleSheetId, range: TextUtils.TextRange.TextRange,
+ newContainerQueryText: string): Promise<boolean> {
Host.userMetrics.actionTaken(Host.UserMetrics.Action.StyleRuleEdited);
try {
@@ -421,7 +426,7 @@
}
}
- async addRule(styleSheetId: string, ruleText: string, ruleLocation: TextUtils.TextRange.TextRange):
+ async addRule(styleSheetId: Protocol.CSS.StyleSheetId, ruleText: string, ruleLocation: TextUtils.TextRange.TextRange):
Promise<CSSStyleRule|null> {
try {
await this.ensureOriginalStyleSheetText(styleSheetId);
@@ -474,7 +479,7 @@
return [...this.fontFacesInternal.values()];
}
- styleSheetHeaderForId(id: string): CSSStyleSheetHeader|null {
+ styleSheetHeaderForId(id: Protocol.CSS.StyleSheetId): CSSStyleSheetHeader|null {
return this.styleSheetIdToHeader.get(id) || null;
}
@@ -482,14 +487,14 @@
return [...this.styleSheetIdToHeader.values()];
}
- fireStyleSheetChanged(styleSheetId: string, edit?: Edit): void {
+ fireStyleSheetChanged(styleSheetId: Protocol.CSS.StyleSheetId, edit?: Edit): void {
this.dispatchEventToListeners(Events.StyleSheetChanged, {styleSheetId: styleSheetId, edit: edit});
}
- private ensureOriginalStyleSheetText(styleSheetId: string): Promise<string|null> {
+ private ensureOriginalStyleSheetText(styleSheetId: Protocol.CSS.StyleSheetId): Promise<string|null> {
const header = this.styleSheetHeaderForId(styleSheetId);
if (!header) {
- return Promise.resolve((null as string | null));
+ return Promise.resolve(null);
}
let promise = this.originalStyleSheetTextInternal.get(header);
if (!promise) {
@@ -534,7 +539,7 @@
this.dispatchEventToListeners(Events.StyleSheetAdded, styleSheetHeader);
}
- styleSheetRemoved(id: string): void {
+ styleSheetRemoved(id: Protocol.CSS.StyleSheetId): void {
const header = this.styleSheetIdToHeader.get(id);
console.assert(Boolean(header));
if (!header) {
@@ -562,7 +567,7 @@
this.dispatchEventToListeners(Events.StyleSheetRemoved, header);
}
- getStyleSheetIdsForURL(url: string): string[] {
+ getStyleSheetIdsForURL(url: string): Protocol.CSS.StyleSheetId[] {
const frameIdToStyleSheetIds = this.styleSheetIdsForURL.get(url);
if (!frameIdToStyleSheetIds) {
return [];
@@ -575,9 +580,12 @@
return result;
}
- async setStyleSheetText(styleSheetId: string, newText: string, majorChange: boolean): Promise<string|null> {
- const header = (this.styleSheetIdToHeader.get(styleSheetId) as CSSStyleSheetHeader);
- console.assert(Boolean(header));
+ async setStyleSheetText(styleSheetId: Protocol.CSS.StyleSheetId, newText: string, majorChange: boolean):
+ Promise<string|null> {
+ const header = this.styleSheetIdToHeader.get(styleSheetId);
+ if (!header) {
+ return 'Unknown stylesheet in CSS.setStyleSheetText';
+ }
newText = CSSModel.trimSourceURL(newText);
if (header.hasSourceURL) {
newText += '\n/*# sourceURL=' + header.sourceURL + ' */';
@@ -598,7 +606,7 @@
return null;
}
- async getStyleSheetText(styleSheetId: string): Promise<string|null> {
+ async getStyleSheetText(styleSheetId: Protocol.CSS.StyleSheetId): Promise<string|null> {
try {
const {text} = await this.agent.invoke_getStyleSheetText({styleSheetId});
return text && CSSModel.trimSourceURL(text);
@@ -736,7 +744,7 @@
[Events.ModelWasEnabled]: void,
[Events.PseudoStateForced]: {node: DOMNode, pseudoClass: string, enable: boolean},
[Events.StyleSheetAdded]: CSSStyleSheetHeader,
- [Events.StyleSheetChanged]: {styleSheetId: string, edit?: Edit},
+ [Events.StyleSheetChanged]: {styleSheetId: Protocol.CSS.StyleSheetId, edit?: Edit},
[Events.StyleSheetRemoved]: CSSStyleSheetHeader,
};
@@ -759,7 +767,7 @@
export class CSSLocation {
private readonly cssModelInternal: CSSModel;
- styleSheetId: string;
+ styleSheetId: Protocol.CSS.StyleSheetId;
url: string;
lineNumber: number;
columnNumber: number;
diff --git a/front_end/core/sdk/CSSQuery.ts b/front_end/core/sdk/CSSQuery.ts
index 488cc88..59ff65e 100644
--- a/front_end/core/sdk/CSSQuery.ts
+++ b/front_end/core/sdk/CSSQuery.ts
@@ -14,7 +14,7 @@
export abstract class CSSQuery {
text = '';
range?: TextUtils.TextRange.TextRange|null;
- styleSheetId?: string;
+ styleSheetId?: Protocol.CSS.StyleSheetId;
protected cssModel: CSSModel;
constructor(cssModel: CSSModel) {
diff --git a/front_end/core/sdk/CSSRule.ts b/front_end/core/sdk/CSSRule.ts
index b4272b3..54a5e6b 100644
--- a/front_end/core/sdk/CSSRule.ts
+++ b/front_end/core/sdk/CSSRule.ts
@@ -14,13 +14,14 @@
export class CSSRule {
readonly cssModelInternal: CSSModel;
- styleSheetId: string|undefined;
+ styleSheetId: Protocol.CSS.StyleSheetId|undefined;
sourceURL: string|undefined;
origin: Protocol.CSS.StyleSheetOrigin;
style: CSSStyleDeclaration;
+
constructor(cssModel: CSSModel, payload: {
style: Protocol.CSS.CSSStyle,
- styleSheetId: (string|undefined),
+ styleSheetId: Protocol.CSS.StyleSheetId|undefined,
origin: Protocol.CSS.StyleSheetOrigin,
}) {
this.cssModelInternal = cssModel;
@@ -69,7 +70,7 @@
return this.cssModelInternal;
}
- getStyleSheetHeader(styleSheetId: string): CSSStyleSheetHeader {
+ getStyleSheetHeader(styleSheetId: Protocol.CSS.StyleSheetId): CSSStyleSheetHeader {
const styleSheetHeader = this.cssModelInternal.styleSheetHeaderForId(styleSheetId);
console.assert(styleSheetHeader !== null);
return /** @type {!CSSStyleSheetHeader} */ styleSheetHeader as CSSStyleSheetHeader;
@@ -117,7 +118,7 @@
selectors: [{text: selectorText, value: undefined}],
},
style: {
- styleSheetId: '0',
+ styleSheetId: '0' as Protocol.CSS.StyleSheetId,
range: new TextUtils.TextRange.TextRange(0, 0, 0, 0),
shorthandEntries: [],
cssProperties: [],
diff --git a/front_end/core/sdk/CSSStyleDeclaration.ts b/front_end/core/sdk/CSSStyleDeclaration.ts
index f33424e..efc9451 100644
--- a/front_end/core/sdk/CSSStyleDeclaration.ts
+++ b/front_end/core/sdk/CSSStyleDeclaration.ts
@@ -15,7 +15,7 @@
private readonly cssModelInternal: CSSModel;
parentRule: CSSRule|null;
private allPropertiesInternal!: CSSProperty[];
- styleSheetId!: string|undefined;
+ styleSheetId!: Protocol.CSS.StyleSheetId|undefined;
range!: TextUtils.TextRange.TextRange|null;
cssText!: string|undefined;
private shorthandValues!: Map<string, string>;
diff --git a/front_end/core/sdk/CSSStyleSheetHeader.ts b/front_end/core/sdk/CSSStyleSheetHeader.ts
index 9fb98662..a39f6d5 100644
--- a/front_end/core/sdk/CSSStyleSheetHeader.ts
+++ b/front_end/core/sdk/CSSStyleSheetHeader.ts
@@ -28,7 +28,7 @@
export class CSSStyleSheetHeader implements TextUtils.ContentProvider.ContentProvider, FrameAssociated {
private cssModelInternal: CSSModel;
- id: string;
+ id: Protocol.CSS.StyleSheetId;
frameId: string;
sourceURL: string;
hasSourceURL: boolean;
diff --git a/front_end/generated/protocol.d.ts b/front_end/generated/protocol.d.ts
index a8f362e..823b2e3 100644
--- a/front_end/generated/protocol.d.ts
+++ b/front_end/generated/protocol.d.ts
@@ -1675,7 +1675,7 @@
*/
export namespace CSS {
- export type StyleSheetId = string;
+ export type StyleSheetId = OpaqueIdentifier<string, 'Protocol.CSS.StyleSheetId'>;
/**
* Stylesheet type: "injected" for stylesheets injected via extension, "user-agent" for user-agent
diff --git a/front_end/models/bindings/ResourceMapping.ts b/front_end/models/bindings/ResourceMapping.ts
index e003a7a..95a3673 100644
--- a/front_end/models/bindings/ResourceMapping.ts
+++ b/front_end/models/bindings/ResourceMapping.ts
@@ -4,6 +4,7 @@
import * as Common from '../../core/common/common.js';
import * as SDK from '../../core/sdk/sdk.js';
+import type * as Protocol from '../../generated/protocol.js';
import * as TextUtils from '../text_utils/text_utils.js';
import * as Workspace from '../workspace/workspace.js';
@@ -190,7 +191,8 @@
}
private async styleSheetChanged(
- event: Common.EventTarget.EventTargetEvent<{styleSheetId: string, edit?: SDK.CSSModel.Edit}>): Promise<void> {
+ event: Common.EventTarget.EventTargetEvent<{styleSheetId: Protocol.CSS.StyleSheetId, edit?: SDK.CSSModel.Edit}>):
+ Promise<void> {
const header = this.cssModel.styleSheetHeaderForId(event.data.styleSheetId);
if (!header || !header.isInline || (header.isInline && header.isMutable)) {
return;
diff --git a/front_end/models/bindings/StylesSourceMapping.ts b/front_end/models/bindings/StylesSourceMapping.ts
index c1824f5..617bdda 100644
--- a/front_end/models/bindings/StylesSourceMapping.ts
+++ b/front_end/models/bindings/StylesSourceMapping.ts
@@ -30,6 +30,7 @@
import * as Common from '../../core/common/common.js';
import * as SDK from '../../core/sdk/sdk.js';
+import type * as Protocol from '../../generated/protocol.js';
import type * as TextUtils from '../text_utils/text_utils.js';
import * as Workspace from '../workspace/workspace.js';
@@ -152,7 +153,8 @@
}
private styleSheetChanged(
- event: Common.EventTarget.EventTargetEvent<{styleSheetId: string, edit?: SDK.CSSModel.Edit}>): void {
+ event: Common.EventTarget.EventTargetEvent<{styleSheetId: Protocol.CSS.StyleSheetId, edit?: SDK.CSSModel.Edit}>):
+ void {
const header = this.cssModel.styleSheetHeaderForId(event.data.styleSheetId);
if (!header || !this.acceptsHeader(header)) {
return;
diff --git a/front_end/panels/css_overview/CSSOverviewCompletedView.ts b/front_end/panels/css_overview/CSSOverviewCompletedView.ts
index d6185fc..4f13650 100644
--- a/front_end/panels/css_overview/CSSOverviewCompletedView.ts
+++ b/front_end/panels/css_overview/CSSOverviewCompletedView.ts
@@ -1142,8 +1142,8 @@
}
private linkifyRuleLocation(
- cssModel: SDK.CSSModel.CSSModel, linkifier: Components.Linkifier.Linkifier, styleSheetId: string,
- ruleLocation: TextUtils.TextRange.TextRange): Element|undefined {
+ cssModel: SDK.CSSModel.CSSModel, linkifier: Components.Linkifier.Linkifier,
+ styleSheetId: Protocol.CSS.StyleSheetId, ruleLocation: TextUtils.TextRange.TextRange): Element|undefined {
const styleSheetHeader = cssModel.styleSheetHeaderForId(styleSheetId);
if (!styleSheetHeader) {
return;
diff --git a/front_end/panels/elements/StylesSidebarPane.ts b/front_end/panels/elements/StylesSidebarPane.ts
index ce6a799..5927225 100644
--- a/front_end/panels/elements/StylesSidebarPane.ts
+++ b/front_end/panels/elements/StylesSidebarPane.ts
@@ -896,7 +896,7 @@
}
_addBlankSection(
- insertAfterSection: StylePropertiesSection, styleSheetId: string,
+ insertAfterSection: StylePropertiesSection, styleSheetId: Protocol.CSS.StyleSheetId,
ruleLocation: TextUtils.TextRange.TextRange): void {
const node = this.node();
const blankSection = new BlankStylePropertiesSection(
@@ -1441,14 +1441,14 @@
}
static _linkifyRuleLocation(
- cssModel: SDK.CSSModel.CSSModel, linkifier: Components.Linkifier.Linkifier, styleSheetId: string,
- ruleLocation: TextUtils.TextRange.TextRange): Node {
+ cssModel: SDK.CSSModel.CSSModel, linkifier: Components.Linkifier.Linkifier,
+ styleSheetId: Protocol.CSS.StyleSheetId, ruleLocation: TextUtils.TextRange.TextRange): Node {
const matchingSelectorLocation = this._getCSSSelectorLocation(cssModel, styleSheetId, ruleLocation);
return linkifier.linkifyCSSLocation(matchingSelectorLocation);
}
static _getCSSSelectorLocation(
- cssModel: SDK.CSSModel.CSSModel, styleSheetId: string,
+ cssModel: SDK.CSSModel.CSSModel, styleSheetId: Protocol.CSS.StyleSheetId,
ruleLocation: TextUtils.TextRange.TextRange): SDK.CSSModel.CSSLocation {
const styleSheetHeader =
(cssModel.styleSheetHeaderForId(styleSheetId) as SDK.CSSStyleSheetHeader.CSSStyleSheetHeader);
@@ -1703,12 +1703,12 @@
_onNewRuleClick(event: Common.EventTarget.EventTargetEvent): void {
event.data.consume();
const rule = this._style.parentRule;
- if (!rule || !rule.style.range) {
+ if (!rule || !rule.style.range || rule.styleSheetId === undefined) {
return;
}
const range =
TextUtils.TextRange.TextRange.createFromLocation(rule.style.range.endLine, rule.style.range.endColumn + 1);
- this._parentPane._addBlankSection(this, (rule.styleSheetId as string), range);
+ this._parentPane._addBlankSection(this, rule.styleSheetId, range);
}
_styleSheetEdited(edit: SDK.CSSModel.Edit): void {
@@ -2240,10 +2240,10 @@
return;
}
const rule = (this._style.parentRule as SDK.CSSRule.CSSStyleRule | null);
- if (!rule) {
+ if (!rule || rule.styleSheetId === undefined) {
return;
}
- const header = cssModel.styleSheetHeaderForId((rule.styleSheetId as string));
+ const header = cssModel.styleSheetHeaderForId(rule.styleSheetId);
if (!header) {
return;
}
@@ -2426,11 +2426,11 @@
export class BlankStylePropertiesSection extends StylePropertiesSection {
_normal: boolean;
_ruleLocation: TextUtils.TextRange.TextRange;
- _styleSheetId: string;
+ _styleSheetId: Protocol.CSS.StyleSheetId;
constructor(
stylesPane: StylesSidebarPane, matchedStyles: SDK.CSSMatchedStyles.CSSMatchedStyles, defaultSelectorText: string,
- styleSheetId: string, ruleLocation: TextUtils.TextRange.TextRange,
+ styleSheetId: Protocol.CSS.StyleSheetId, ruleLocation: TextUtils.TextRange.TextRange,
insertAfterStyle: SDK.CSSStyleDeclaration.CSSStyleDeclaration) {
const cssModel = (stylesPane.cssModel() as SDK.CSSModel.CSSModel);
const rule = SDK.CSSRule.CSSStyleRule.createDummyRule(cssModel, defaultSelectorText);
diff --git a/scripts/protocol_typescript/protocol_dts_generator.ts b/scripts/protocol_typescript/protocol_dts_generator.ts
index ea86a3f..f7734d3 100644
--- a/scripts/protocol_typescript/protocol_dts_generator.ts
+++ b/scripts/protocol_typescript/protocol_dts_generator.ts
@@ -219,25 +219,16 @@
// Please keep `knownIdentifierTypes` sorted.
const knownIdentifierTypes = [
- 'Accessibility.AXNodeId',
- 'Audits.IssueId',
- 'Browser.BrowserContextID',
- 'Browser.WindowID',
- 'CacheStorage.CacheId',
- 'DOM.BackendNodeId',
- 'DOM.NodeId',
- 'Fetch.RequestId',
- 'LayerTree.LayerId',
- 'Media.PlayerId',
- 'Network.InterceptionId',
- 'Network.LoaderId',
- 'Network.RequestId',
- 'Security.CertificateId',
- 'Target.SessionID',
- 'Target.TargetID',
- 'ServiceWorker.RegistrationID',
- 'WebAudio.GraphObjectId',
- 'WebAuthn.AuthenticatorId',
+ 'Accessibility.AXNodeId', 'Audits.IssueId',
+ 'Browser.BrowserContextID', 'Browser.WindowID',
+ 'CacheStorage.CacheId', 'CSS.StyleSheetId',
+ 'DOM.BackendNodeId', 'DOM.NodeId',
+ 'Fetch.RequestId', 'LayerTree.LayerId',
+ 'Media.PlayerId', 'Network.InterceptionId',
+ 'Network.LoaderId', 'Network.RequestId',
+ 'Security.CertificateId', 'Target.SessionID',
+ 'Target.TargetID', 'ServiceWorker.RegistrationID',
+ 'WebAudio.GraphObjectId', 'WebAuthn.AuthenticatorId',
];
const emitDomainType = (domain: Protocol.Domain, type: Protocol.DomainType) => {