Add and use an adapter for web component where legacy UI Widget is expected.
Bug: none
Change-Id: Ifa968722c294c0efe0bcaa207ca66526cd36b2f6
Reviewed-on: https://chromium-review.googlesource.com/c/devtools/devtools-frontend/+/4539084
Reviewed-by: Simon Zünd <[email protected]>
Commit-Queue: Danil Somsikov <[email protected]>
diff --git a/front_end/panels/network/components/RequestHeadersView.ts b/front_end/panels/network/components/RequestHeadersView.ts
index 13bc192..65c0f10 100644
--- a/front_end/panels/network/components/RequestHeadersView.ts
+++ b/front_end/panels/network/components/RequestHeadersView.ts
@@ -15,6 +15,7 @@
import * as ComponentHelpers from '../../../ui/components/helpers/helpers.js';
import * as IconButton from '../../../ui/components/icon_button/icon_button.js';
import * as Input from '../../../ui/components/input/input.js';
+import * as LegacyWrapper from '../../../ui/components/legacy_wrapper/legacy_wrapper.js';
import * as UI from '../../../ui/legacy/legacy.js';
import * as LitHtml from '../../../ui/lit-html/lit-html.js';
import * as Sources from '../../sources/sources.js';
@@ -109,14 +110,20 @@
const str_ = i18n.i18n.registerUIStrings('panels/network/components/RequestHeadersView.ts', UIStrings);
const i18nString = i18n.i18n.getLocalizedString.bind(undefined, str_);
-export class RequestHeadersView extends UI.Widget.VBox {
- readonly #requestHeadersComponent = new RequestHeadersComponent();
- readonly #request: SDK.NetworkRequest.NetworkRequest;
+export class RequestHeadersView extends LegacyWrapper.LegacyWrapper.WrappableComponent {
+ #request: Readonly<SDK.NetworkRequest.NetworkRequest>;
+ static readonly litTagName = LitHtml.literal`devtools-request-headers`;
+ readonly #shadow = this.attachShadow({mode: 'open'});
+ #showResponseHeadersText = false;
+ #showRequestHeadersText = false;
+ #showResponseHeadersTextFull = false;
+ #showRequestHeadersTextFull = false;
+ #toReveal?: {section: NetworkForward.UIRequestLocation.UIHeaderSection, header?: string} = undefined;
+ readonly #workspace = Workspace.Workspace.WorkspaceImpl.instance();
constructor(request: SDK.NetworkRequest.NetworkRequest) {
super();
this.#request = request;
- this.contentElement.appendChild(this.#requestHeadersComponent);
}
override wasShown(): void {
@@ -138,45 +145,16 @@
#resetAndRefreshHeadersView(): void {
this.#request.deleteAssociatedData(RESPONSE_HEADER_SECTION_DATA_KEY);
- this.#requestHeadersComponent.data = {
- request: this.#request,
- };
+ void this.render();
}
#refreshHeadersView(): void {
- this.#requestHeadersComponent.data = {
- request: this.#request,
- };
+ void this.render();
}
revealHeader(section: NetworkForward.UIRequestLocation.UIHeaderSection, header?: string): void {
- this.#requestHeadersComponent.data = {
- request: this.#request,
- toReveal: {section, header: header},
- };
- }
-}
-
-export interface RequestHeadersComponentData {
- request: SDK.NetworkRequest.NetworkRequest;
- toReveal?: {section: NetworkForward.UIRequestLocation.UIHeaderSection, header?: string};
-}
-
-export class RequestHeadersComponent extends HTMLElement {
- static readonly litTagName = LitHtml.literal`devtools-request-headers`;
- readonly #shadow = this.attachShadow({mode: 'open'});
- #request?: Readonly<SDK.NetworkRequest.NetworkRequest>;
- #showResponseHeadersText = false;
- #showRequestHeadersText = false;
- #showResponseHeadersTextFull = false;
- #showRequestHeadersTextFull = false;
- #toReveal?: {section: NetworkForward.UIRequestLocation.UIHeaderSection, header?: string} = undefined;
- readonly #workspace = Workspace.Workspace.WorkspaceImpl.instance();
-
- set data(data: RequestHeadersComponentData) {
- this.#request = data.request;
- this.#toReveal = data.toReveal;
- this.#render();
+ this.#toReveal = {section, header};
+ void this.render();
}
connectedCallback(): void {
@@ -187,7 +165,7 @@
Workspace.Workspace.Events.UISourceCodeRemoved, this.#uiSourceCodeAddedOrRemoved, this);
Common.Settings.Settings.instance()
.moduleSetting('persistenceNetworkOverridesEnabled')
- .addChangeListener(this.#render, this);
+ .addChangeListener(this.render, this);
}
disconnectedCallback(): void {
@@ -197,16 +175,16 @@
Workspace.Workspace.Events.UISourceCodeRemoved, this.#uiSourceCodeAddedOrRemoved, this);
Common.Settings.Settings.instance()
.moduleSetting('persistenceNetworkOverridesEnabled')
- .removeChangeListener(this.#render, this);
+ .removeChangeListener(this.render, this);
}
#uiSourceCodeAddedOrRemoved(event: Common.EventTarget.EventTargetEvent<Workspace.UISourceCode.UISourceCode>): void {
if (this.#getHeaderOverridesFileUrl() === event.data.url()) {
- this.#render();
+ void this.render();
}
}
- #render(): void {
+ override async render(): Promise<void> {
if (!this.#request) {
return;
}
@@ -228,7 +206,7 @@
const toggleShowRaw = (): void => {
this.#showResponseHeadersText = !this.#showResponseHeadersText;
- this.#render();
+ void this.render();
};
// Disabled until https://crbug.com/1079231 is fixed.
@@ -324,7 +302,7 @@
const toggleShowRaw = (): void => {
this.#showRequestHeadersText = !this.#showRequestHeadersText;
- this.#render();
+ void this.render();
};
// Disabled until https://crbug.com/1079231 is fixed.
@@ -364,7 +342,7 @@
} else {
this.#showRequestHeadersTextFull = true;
}
- this.#render();
+ void this.render();
};
const onContextMenuOpen = (event: Event): void => {
@@ -565,13 +543,13 @@
}
}
-ComponentHelpers.CustomElements.defineComponent('devtools-request-headers', RequestHeadersComponent);
+ComponentHelpers.CustomElements.defineComponent('devtools-request-headers', RequestHeadersView);
ComponentHelpers.CustomElements.defineComponent('devtools-request-headers-category', Category);
declare global {
// eslint-disable-next-line @typescript-eslint/no-unused-vars
interface HTMLElementTagNameMap {
- 'devtools-request-headers': RequestHeadersComponent;
+ 'devtools-request-headers': RequestHeadersView;
'devtools-request-headers-category': Category;
}
}