@react-native/debugger-frontend 0.83.0-rc.0 → 0.83.0-rc.2

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.
Files changed (22) hide show
  1. package/BUILD_INFO +3 -3
  2. package/dist/third-party/front_end/core/host/host.js +1 -1
  3. package/dist/third-party/front_end/core/i18n/locales/en-US.json +1 -1
  4. package/dist/third-party/front_end/core/protocol_client/protocol_client.js +1 -1
  5. package/dist/third-party/front_end/core/rn_experiments/rn_experiments.js +1 -1
  6. package/dist/third-party/front_end/core/root/root.js +1 -1
  7. package/dist/third-party/front_end/core/sdk/sdk-meta.js +1 -1
  8. package/dist/third-party/front_end/core/sdk/sdk.js +1 -1
  9. package/dist/third-party/front_end/entrypoints/devtools_app/devtools_app.js +1 -1
  10. package/dist/third-party/front_end/entrypoints/inspector_main/inspector_main-meta.js +1 -1
  11. package/dist/third-party/front_end/entrypoints/js_app/js_app.js +1 -1
  12. package/dist/third-party/front_end/entrypoints/node_app/node_app.js +1 -1
  13. package/dist/third-party/front_end/entrypoints/rehydrated_devtools_app/rehydrated_devtools_app.js +1 -1
  14. package/dist/third-party/front_end/entrypoints/rn_fusebox/rn_fusebox.js +24 -1
  15. package/dist/third-party/front_end/entrypoints/rn_inspector/rn_inspector.js +1 -1
  16. package/dist/third-party/front_end/entrypoints/shell/shell.js +1 -1
  17. package/dist/third-party/front_end/entrypoints/worker_app/worker_app.js +1 -1
  18. package/dist/third-party/front_end/panels/network/network-meta.js +1 -1
  19. package/dist/third-party/front_end/panels/network/network.js +1 -1
  20. package/dist/third-party/front_end/panels/timeline/components/components.js +257 -209
  21. package/dist/third-party/front_end/panels/timeline/timeline.js +2 -2
  22. package/package.json +1 -1
@@ -1 +1 @@
1
- import*as e from"../../ui/legacy/legacy.js";import*as t from"../../core/common/common.js";import*as i from"../../core/host/host.js";import*as r from"../../core/i18n/i18n.js";import*as o from"../../ui/legacy/components/source_frame/source_frame.js";import*as s from"../../core/platform/platform.js";import*as n from"../../core/sdk/sdk.js";import*as a from"../../models/logs/logs.js";import*as l from"../../ui/components/buttons/buttons.js";import*as d from"../../ui/visual_logging/visual_logging.js";import*as c from"../../ui/legacy/components/data_grid/data_grid.js";import*as h from"../mobile_throttling/mobile_throttling.js";import*as u from"../settings/emulation/components/components.js";import*as p from"../../models/bindings/bindings.js";import*as g from"../../models/workspace/workspace.js";import*as m from"./forward/forward.js";import*as w from"../../ui/components/floating_button/floating_button.js";import*as k from"../../ui/components/icon_button/icon_button.js";import*as v from"../../ui/legacy/components/perf_ui/perf_ui.js";import*as b from"../../ui/legacy/components/utils/utils.js";import{PanelUtils as f}from"../utils/utils.js";import*as C from"../../core/root/root.js";import*as S from"../../ui/components/legacy_wrapper/legacy_wrapper.js";import*as y from"./components/components.js";import*as T from"../../ui/legacy/components/cookie_table/cookie_table.js";import*as x from"../../ui/legacy/components/object_ui/object_ui.js";import*as R from"../../models/text_utils/text_utils.js";import*as I from"../../models/har/har.js";import*as q from"../../models/persistence/persistence.js";import*as L from"../sources/sources.js";import*as F from"../../ui/components/adorners/adorners.js";import*as E from"../../ui/components/render_coordinator/render_coordinator.js";import*as H from"../../ui/legacy/theme_support/theme_support.js";import*as P from"../../models/trace/trace.js";import*as A from"../search/search.js";var M={cssText:`.panel.network devtools-toolbar.binary-view-toolbar{border-top:1px solid var(--sys-color-divider);border-bottom:0;padding-left:5px}.binary-view-copied-text{opacity:100%}.binary-view-copied-text.fadeout{opacity:0%;transition:opacity 1s}\n/*# sourceURL=${import.meta.resolve("./binaryResourceView.css")} */\n`};const N={copiedAsBase:"Copied as `Base64`",hexViewer:"`Hex` Viewer",copiedAsHex:"Copied as `Hex`",copiedAsUtf:"Copied as `UTF-8`",binaryViewType:"Binary view type",copyToClipboard:"Copy to clipboard",copyAsBase:"Copy as `Base64`",copyAsHex:"Copy as `Hex`",copyAsUtf:"Copy as `UTF-8`"},U=r.i18n.registerUIStrings("panels/network/BinaryResourceView.ts",N),B=r.i18n.getLocalizedString.bind(void 0,U);class V extends e.Widget.VBox{binaryResourceViewFactory;toolbar;binaryViewObjects;binaryViewTypeSetting;binaryViewTypeCombobox;copiedText;addFadeoutSettimeoutId;lastView;constructor(i,s,n){super(),this.registerRequiredCSS(M),this.binaryResourceViewFactory=new o.BinaryResourceViewFactory.BinaryResourceViewFactory(i,s,n),this.toolbar=this.element.createChild("devtools-toolbar","binary-view-toolbar"),this.binaryViewObjects=[new W("base64",r.i18n.lockedString("Base64"),B(N.copiedAsBase),this.binaryResourceViewFactory.createBase64View.bind(this.binaryResourceViewFactory),this.binaryResourceViewFactory.base64.bind(this.binaryResourceViewFactory)),new W("hex",B(N.hexViewer),B(N.copiedAsHex),this.binaryResourceViewFactory.createHexView.bind(this.binaryResourceViewFactory),this.binaryResourceViewFactory.hex.bind(this.binaryResourceViewFactory)),new W("utf8",r.i18n.lockedString("UTF-8"),B(N.copiedAsUtf),this.binaryResourceViewFactory.createUtf8View.bind(this.binaryResourceViewFactory),this.binaryResourceViewFactory.utf8.bind(this.binaryResourceViewFactory))],this.binaryViewTypeSetting=t.Settings.Settings.instance().createSetting("binary-view-type","hex"),this.binaryViewTypeCombobox=new e.Toolbar.ToolbarComboBox(this.binaryViewTypeChanged.bind(this),B(N.binaryViewType));for(const e of this.binaryViewObjects)this.binaryViewTypeCombobox.addOption(this.binaryViewTypeCombobox.createOption(e.label,e.type));this.toolbar.appendToolbarItem(this.binaryViewTypeCombobox);const a=new e.Toolbar.ToolbarButton(B(N.copyToClipboard),"copy");a.addEventListener("Click",(e=>{this.copySelectedViewToClipboard()}),this),this.toolbar.appendToolbarItem(a),this.copiedText=new e.Toolbar.ToolbarText,this.copiedText.element.classList.add("binary-view-copied-text"),this.toolbar.appendChild(this.copiedText.element),this.addFadeoutSettimeoutId=null,this.lastView=null,this.updateView()}getCurrentViewObject(){const e=this.binaryViewObjects.find((e=>e.type===this.binaryViewTypeSetting.get()));return console.assert(Boolean(e),`No binary view found for binary view type found in setting 'binary-view-type': ${this.binaryViewTypeSetting.get()}`),e||null}copySelectedViewToClipboard(){const e=this.getCurrentViewObject();e&&(i.InspectorFrontendHost.InspectorFrontendHostInstance.copyText(e.content()),this.copiedText.setText(e.copiedMessage),this.copiedText.element.classList.remove("fadeout"),this.addFadeoutSettimeoutId&&(clearTimeout(this.addFadeoutSettimeoutId),this.addFadeoutSettimeoutId=null),this.addFadeoutSettimeoutId=window.setTimeout(function(){this.copiedText.element.classList.add("fadeout")}.bind(this),2e3))}updateView(){const e=this.getCurrentViewObject();if(!e)return;const t=e.getView();t!==this.lastView&&(this.lastView&&this.lastView.detach(),this.lastView=t,t.show(this.element,this.toolbar),this.binaryViewTypeCombobox.element.value=this.binaryViewTypeSetting.get())}binaryViewTypeChanged(){const e=this.binaryViewTypeCombobox.selectedOption();if(!e)return;const t=e.value;this.binaryViewTypeSetting.get()!==t&&(this.binaryViewTypeSetting.set(t),this.updateView())}addCopyToContextMenu(e,t){const r=e.clipboardSection().appendSubMenuItem(t,!1,"copy").footerSection();r.appendItem(B(N.copyAsBase),(async()=>{const e=this.binaryResourceViewFactory.base64();i.InspectorFrontendHost.InspectorFrontendHostInstance.copyText(e)}),{jslogContext:"copy-as-base"}),r.appendItem(B(N.copyAsHex),(async()=>{const e=await this.binaryResourceViewFactory.hex();i.InspectorFrontendHost.InspectorFrontendHostInstance.copyText(e)}),{jslogContext:"copy-as-hex"}),r.appendItem(B(N.copyAsUtf),(async()=>{const e=await this.binaryResourceViewFactory.utf8();i.InspectorFrontendHost.InspectorFrontendHostInstance.copyText(e)}),{jslogContext:"copy-as-utf"})}}class W{type;label;copiedMessage;content;createViewFn;view;constructor(e,t,i,r,o){this.type=e,this.label=t,this.copiedMessage=i,this.content=o,this.createViewFn=r,this.view=null}getView(){return this.view||(this.view=this.createViewFn()),this.view}}var O=Object.freeze({__proto__:null,BinaryResourceView:V,BinaryViewObject:W}),D={cssText:`.list{border:none!important;border-top:1px solid var(--sys-color-divider)!important;display:flex;height:100%}.blocking-disabled{opacity:80%}.editor-container{padding:0 4px}.blocked-urls{overflow:hidden auto}.no-blocked-urls > span{white-space:pre}.blocked-url{display:flex;flex-direction:row;align-items:center;flex:auto}.blocked-url-count{flex:none;padding-right:9px}.blocked-url-checkbox{margin-left:8px;flex:none}.blocked-url-checkbox:focus{outline:auto 5px -webkit-focus-ring-color}.blocked-url-label{white-space:nowrap;text-overflow:ellipsis;overflow:hidden;flex:auto;padding:0 3px}.blocked-url-edit-row{flex:none;display:flex;flex-direction:row;margin:7px 5px 0;align-items:center}.blocked-url-edit-value{user-select:none;flex:1 1 0}.blocked-url-edit-row input{width:100%;text-align:inherit;height:22px}\n/*# sourceURL=${import.meta.resolve("./blockedURLsPane.css")} */\n`};const G={enableNetworkRequestBlocking:"Enable network request blocking",addPattern:"Add pattern",addNetworkRequestBlockingPattern:"Add network request blocking pattern",noNetworkRequestsBlocked:"No blocked network requests",addPatternToBlock:'Add a pattern to block network requests by clicking on the "{PH1}" button.',dBlocked:"{PH1} blocked",textPatternToBlockMatching:"Text pattern to block matching requests; use * for wildcard",patternInputCannotBeEmpty:"Pattern input cannot be empty.",patternAlreadyExists:"Pattern already exists.",itemDeleted:"Item successfully deleted",learnMore:"Learn more"},j=r.i18n.registerUIStrings("panels/network/BlockedURLsPane.ts",G),z=r.i18n.getLocalizedString.bind(void 0,j);class _ extends e.Widget.VBox{manager;toolbar;enabledCheckbox;list;editor;blockedCountForUrl;constructor(){super(!0),this.registerRequiredCSS(D),this.element.setAttribute("jslog",`${d.panel("network.blocked-urls").track({resize:!0})}`),this.manager=n.NetworkManager.MultitargetNetworkManager.instance(),this.manager.addEventListener("BlockedPatternsChanged",this.update,this),this.toolbar=this.contentElement.createChild("devtools-toolbar"),this.enabledCheckbox=new e.Toolbar.ToolbarCheckbox(z(G.enableNetworkRequestBlocking),void 0,this.toggleEnabled.bind(this),"network.enable-request-blocking"),this.toolbar.appendToolbarItem(this.enabledCheckbox),this.toolbar.appendSeparator(),this.toolbar.appendToolbarItem(e.Toolbar.Toolbar.createActionButton("network.add-network-request-blocking-pattern")),this.toolbar.appendToolbarItem(e.Toolbar.Toolbar.createActionButton("network.remove-all-network-request-blocking-patterns")),this.toolbar.setAttribute("jslog",`${d.toolbar()}`),this.list=new e.ListWidget.ListWidget(this),this.list.registerRequiredCSS(D),this.list.element.classList.add("blocked-urls"),this.list.setEmptyPlaceholder(this.createEmptyPlaceholder()),this.list.show(this.contentElement),this.editor=null,this.blockedCountForUrl=new Map,n.TargetManager.TargetManager.instance().addModelListener(n.NetworkManager.NetworkManager,n.NetworkManager.Events.RequestFinished,this.onRequestFinished,this,{scoped:!0}),this.update(),a.NetworkLog.NetworkLog.instance().addEventListener(a.NetworkLog.Events.Reset,this.onNetworkLogReset,this)}createEmptyPlaceholder(){const t=this.contentElement.createChild("div","empty-state");t.createChild("span","empty-state-header").textContent=z(G.noNetworkRequestsBlocked);const i=t.createChild("div","empty-state-description");i.createChild("span").textContent=z(G.addPatternToBlock,{PH1:z(G.addPattern)});const r=e.XLink.XLink.create("https://developer.chrome.com/docs/devtools/network-request-blocking",z(G.learnMore),void 0,void 0,"learn-more");i.appendChild(r);const o=e.UIUtils.createTextButton(z(G.addPattern),this.addPattern.bind(this),{className:"add-button",jslogContext:"network.add-network-request-blocking-pattern",variant:"tonal"});return e.ARIAUtils.setLabel(o,z(G.addNetworkRequestBlockingPattern)),t.appendChild(o),t}addPattern(){this.manager.setBlockingEnabled(!0),this.list.addNewItem(0,{url:s.DevToolsPath.EmptyUrlString,enabled:!0})}removeAllPatterns(){this.manager.setBlockedPatterns([])}renderItem(e,t){const i=this.blockedRequestsCount(e.url),r=document.createElement("div");r.classList.add("blocked-url");const o=r.createChild("input","blocked-url-checkbox");return o.type="checkbox",o.checked=e.enabled,o.disabled=!t,o.setAttribute("jslog",`${d.toggle().track({change:!0})}`),r.createChild("div","blocked-url-label").textContent=e.url,r.createChild("div","blocked-url-count").textContent=z(G.dBlocked,{PH1:i}),t&&(r.addEventListener("click",(t=>this.togglePattern(e,t))),o.addEventListener("click",(t=>this.togglePattern(e,t)))),r}togglePattern(e,t){t.consume(!0);const i=this.manager.blockedPatterns();i.splice(i.indexOf(e),1,{enabled:!e.enabled,url:e.url}),this.manager.setBlockedPatterns(i)}toggleEnabled(){this.manager.setBlockingEnabled(!this.manager.blockingEnabled()),this.update()}removeItemRequested(t,i){const r=this.manager.blockedPatterns();r.splice(i,1),this.manager.setBlockedPatterns(r),e.ARIAUtils.alert(G.itemDeleted)}beginEdit(e){return this.editor=this.createEditor(),this.editor.control("url").value=e.url,this.editor}commitEdit(e,t,i){const r=t.control("url").value,o=this.manager.blockedPatterns();i?o.push({enabled:!0,url:r}):o.splice(o.indexOf(e),1,{enabled:!0,url:r}),this.manager.setBlockedPatterns(o)}createEditor(){if(this.editor)return this.editor;const t=new e.ListWidget.Editor,i=t.contentElement();i.createChild("div","blocked-url-edit-row").createChild("div").textContent=z(G.textPatternToBlockMatching);const r=i.createChild("div","blocked-url-edit-row"),o=t.createInput("url","text","",((e,t,i)=>{let r,o=!0;return i.value?this.manager.blockedPatterns().find((e=>e.url===i.value))&&(r=z(G.patternAlreadyExists),o=!1):(r=z(G.patternInputCannotBeEmpty),o=!1),{valid:o,errorMessage:r}}));return r.createChild("div","blocked-url-edit-value").appendChild(o),t}update(){const e=this.manager.blockingEnabled();this.list.element.classList.toggle("blocking-disabled",!e&&Boolean(this.manager.blockedPatterns().length)),this.enabledCheckbox.setChecked(e),this.list.clear();for(const t of this.manager.blockedPatterns())this.list.appendItem(t,e)}blockedRequestsCount(e){if(!e)return 0;let t=0;for(const i of this.blockedCountForUrl.keys())this.matches(e,i)&&(t+=this.blockedCountForUrl.get(i));return t}matches(e,t){let i=0;const r=e.split("*");for(let e=0;e<r.length;e++){const o=r[e];if(o.length){if(i=t.indexOf(o,i),-1===i)return!1;i+=o.length}}return!0}onNetworkLogReset(e){this.blockedCountForUrl.clear(),this.update()}onRequestFinished(e){const t=e.data;if(t.wasBlocked()){const e=this.blockedCountForUrl.get(t.url())||0;this.blockedCountForUrl.set(t.url(),e+1),this.update()}}wasShown(){e.Context.Context.instance().setFlavor(_,this),super.wasShown()}willHide(){super.willHide(),e.Context.Context.instance().setFlavor(_,null)}}var K=Object.freeze({__proto__:null,ActionDelegate:class{handleAction(e,t){const i=e.flavor(_);if(null===i)return!1;switch(t){case"network.add-network-request-blocking-pattern":return i.addPattern(),!0;case"network.remove-all-network-request-blocking-patterns":return i.removeAllPatterns(),!0}return!1}},BlockedURLsPane:_}),$={cssText:`.event-source-messages-view .data-grid{flex:auto;border:none}\n/*# sourceURL=${import.meta.resolve("./eventSourceMessagesView.css")} */\n`};const X={id:"Id",type:"Type",data:"Data",time:"Time",eventSource:"Event Source",copyMessage:"Copy message",clearAll:"Clear all",filterByRegex:"Filter using regex (example: https?)"},J=r.i18n.registerUIStrings("panels/network/EventSourceMessagesView.ts",X),Y=r.i18n.getLocalizedString.bind(void 0,J);class Q extends e.Widget.VBox{request;dataGrid;mainToolbar;clearAllButton;filterTextInput;filterRegex;messageFilterSetting=t.Settings.Settings.instance().createSetting("network-event-source-message-filter","");constructor(t){super(),this.registerRequiredCSS($),this.element.classList.add("event-source-messages-view"),this.element.setAttribute("jslog",`${d.pane("event-stream").track({resize:!0})}`),this.request=t,this.mainToolbar=this.element.createChild("devtools-toolbar"),this.clearAllButton=new e.Toolbar.ToolbarButton(Y(X.clearAll),"clear"),this.clearAllButton.addEventListener("Click",this.clearMessages,this),this.mainToolbar.appendToolbarItem(this.clearAllButton);const i=Y(X.filterByRegex);this.filterTextInput=new e.Toolbar.ToolbarFilter(i,.4),this.filterTextInput.addEventListener("TextChanged",this.updateFilterSetting,this);const r=this.messageFilterSetting.get();this.filterRegex=null,this.setFilter(r),r&&this.filterTextInput.setValue(r),this.mainToolbar.appendToolbarItem(this.filterTextInput);const o=[{id:"id",title:Y(X.id),sortable:!0,weight:8},{id:"type",title:Y(X.type),sortable:!0,weight:8},{id:"data",title:Y(X.data),sortable:!1,weight:88},{id:"time",title:Y(X.time),sortable:!0,weight:8}];this.dataGrid=new c.SortableDataGrid.SortableDataGrid({displayName:Y(X.eventSource),columns:o,deleteCallback:void 0,refreshCallback:void 0}),this.dataGrid.setStriped(!0),this.dataGrid.setEnableAutoScrollToBottom(!0),this.dataGrid.setRowContextMenuCallback(this.onRowContextMenu.bind(this)),this.dataGrid.markColumnAsSortedBy("time",c.DataGrid.Order.Ascending),this.sortItems(),this.dataGrid.addEventListener("SortingChanged",this.sortItems,this),this.dataGrid.setName("event-source-messages-view"),this.dataGrid.asWidget().show(this.element)}wasShown(){super.wasShown(),this.refresh(),this.request.addEventListener(n.NetworkRequest.Events.EVENT_SOURCE_MESSAGE_ADDED,this.messageAdded,this)}willHide(){this.request.removeEventListener(n.NetworkRequest.Events.EVENT_SOURCE_MESSAGE_ADDED,this.messageAdded,this)}messageAdded(e){const t=e.data;this.messageFilter(t)&&this.dataGrid.insertChild(new Z(t))}messageFilter(e){return!this.filterRegex||this.filterRegex.test(e.eventName)||this.filterRegex.test(e.eventId)||this.filterRegex.test(e.data)}clearMessages(){ie.set(this.request,this.request.eventSourceMessages().length),this.refresh()}updateFilterSetting(){const e=this.filterTextInput.value();this.messageFilterSetting.set(e),this.setFilter(e),this.refresh()}setFilter(e){if(this.filterRegex=null,e)try{this.filterRegex=new RegExp(e,"i")}catch{this.filterRegex=new RegExp("(?!)","i")}}sortItems(){const e=this.dataGrid.sortColumnId();if(!e)return;const t=te[e];t&&this.dataGrid.sortNodes(t,!this.dataGrid.isSortOrderAscending())}onRowContextMenu(e,t){e.clipboardSection().appendItem(Y(X.copyMessage),i.InspectorFrontendHost.InspectorFrontendHostInstance.copyText.bind(i.InspectorFrontendHost.InspectorFrontendHostInstance,t.data.data),{jslogContext:"copy"})}refresh(){this.dataGrid.rootNode().removeChildren();let e=this.request.eventSourceMessages();const t=ie.get(this.request)||0;e=e.slice(t),e=e.filter(this.messageFilter.bind(this)),e.forEach((e=>this.dataGrid.insertChild(new Z(e))))}}class Z extends c.SortableDataGrid.SortableDataGridNode{message;constructor(t){const i=new Date(1e3*t.time),r=("0"+i.getHours()).substr(-2)+":"+("0"+i.getMinutes()).substr(-2)+":"+("0"+i.getSeconds()).substr(-2)+"."+("00"+i.getMilliseconds()).substr(-3),o=document.createElement("div");e.UIUtils.createTextChild(o,r),e.Tooltip.Tooltip.install(o,i.toLocaleString()),super({id:t.eventId,type:t.eventName,data:t.data,time:o}),this.message=t}}function ee(e,t,i){const r=e(t.message),o=e(i.message);return r<o?-1:r>o?1:0}const te={id:ee.bind(null,(e=>e.eventId)),type:ee.bind(null,(e=>e.eventName)),time:ee.bind(null,(e=>e.time))},ie=new WeakMap;var re=Object.freeze({__proto__:null,Comparators:te,EventSourceMessageNode:Z,EventSourceMessagesView:Q}),oe={cssText:`.network-config{padding:12px;display:block}.network-config-group{display:flex;padding-bottom:10px;flex-wrap:wrap;flex:0 0 auto;min-height:30px}.network-config-title{margin-right:16px;width:130px}.network-config-fields{flex:2 0 200px}.network-config-fields span:first-of-type,\n.network-config-fields .network-config-accepted-encoding-custom{padding:3px 0}.panel-section-separator{height:1px;margin-bottom:10px;background:var(--sys-color-divider)}.network-config-disable-cache{line-height:28px;border-top:none;padding-top:0}.network-config-input-validation-error{color:var(--sys-color-error);margin:5px 0}.network-config-input-validation-error:empty{display:none}.network-config-throttling select{width:100%;max-width:250px}.network-config-throttling > .network-config-title{line-height:24px}.network-config-ua > .network-config-title{line-height:20px}.network-config-ua input{display:block;width:calc(100% - 20px)}.network-config-ua input[type="text"],\n.network-config-ua select{margin-top:8px}.network-config-ua select{width:calc(100% - 20px);max-width:250px}.network-config-ua-custom{padding-bottom:8px;input,\n devtools-user-agent-client-hints-form{opacity:38%;pointer-events:none}&.checked input,\n &.checked devtools-user-agent-client-hints-form{opacity:revert;pointer-events:revert}}devtools-user-agent-client-hints-form{display:block;margin-top:14px;width:min(100%,400px)}.status-text{padding:10px;color:var(--sys-color-tertiary)}\n/*# sourceURL=${import.meta.resolve("./networkConfigView.css")} */\n`};const se={custom:"Custom...",enterACustomUserAgent:"Enter a custom user agent",customUserAgentFieldIsRequired:"Custom user agent field is required",caching:"Caching",disableCache:"Disable cache",networkThrottling:"Network throttling",userAgent:"User agent",selectAutomatically:"Use browser default",acceptedEncoding:"Accepted `Content-Encoding`s",clientHintsStatusText:"User agent updated.",networkConditionsPanelShown:"Network conditions shown"},ne=r.i18n.registerUIStrings("panels/network/NetworkConfigView.ts",se),ae=r.i18n.getLocalizedString.bind(void 0,ne);let le;class de extends e.Widget.VBox{constructor(){super(!0),this.registerRequiredCSS(oe),this.element.setAttribute("jslog",`${d.panel("network-conditions").track({resize:!0})}`),this.contentElement.classList.add("network-config"),this.createCacheSection(),this.contentElement.createChild("div").classList.add("panel-section-separator"),this.createNetworkThrottlingSection(),this.contentElement.createChild("div").classList.add("panel-section-separator"),this.createUserAgentSection(),this.contentElement.createChild("div").classList.add("panel-section-separator"),this.createAcceptedEncodingSection()}static instance(e={forceNew:null}){const{forceNew:t}=e;return le&&!t||(le=new de),le}static createUserAgentSelectAndInput(i){const r=t.Settings.Settings.instance().createSetting("custom-user-agent",""),o=t.Settings.Settings.instance().createSetting("custom-user-agent-metadata",null),a=document.createElement("select");a.setAttribute("jslog",`${d.dropDown().track({change:!0}).context(r.name)}`),e.ARIAUtils.setLabel(a,i);const l={title:ae(se.custom),value:"custom"};a.appendChild(e.UIUtils.createOption(l.title,l.value,"custom"));for(const t of he){const i=a.createChild("optgroup");i.label=t.title;for(const r of t.values){const t=n.NetworkManager.MultitargetNetworkManager.patchUserAgentWithChromeVersion(r.value);i.appendChild(e.UIUtils.createOption(r.title,t,s.StringUtilities.toKebabCase(r.title)))}}a.selectedIndex=0;const c=e.UIUtils.createInput("","text");c.setAttribute("jslog",`${d.textField().track({change:!0}).context(r.name)}`),c.value=r.get(),e.Tooltip.Tooltip.install(c,r.get()),c.placeholder=ae(se.enterACustomUserAgent),c.required=!0,e.ARIAUtils.setLabel(c,c.placeholder);const h=document.createElement("div");function u(){const e=r.get(),t=a.options;let i=!1;for(let r=0;r<t.length;++r)if(t[r].value===e){a.selectedIndex=r,i=!0;break}i||(a.selectedIndex=0)}return h.classList.add("network-config-input-validation-error"),e.ARIAUtils.markAsAlert(h),c.value||(h.textContent=ae(se.customUserAgentFieldIsRequired)),u(),a.addEventListener("change",(function(){const t=a.options[a.selectedIndex].value;if(t!==l.value){r.set(t),c.value=t,e.Tooltip.Tooltip.install(c,t);const i=ce(t);o.set(i),n.NetworkManager.MultitargetNetworkManager.instance().setCustomUserAgentOverride(t,i)}else o.set(null),c.select();h.textContent="";const i=new CustomEvent("user-agent-change",{detail:{value:t}});a.dispatchEvent(i)}),!1),c.addEventListener("input",(function(){r.get()!==c.value&&(c.value?h.textContent="":h.textContent=ae(se.customUserAgentFieldIsRequired),r.set(c.value),e.Tooltip.Tooltip.install(c,c.value),u())}),!1),{select:a,input:c,error:h}}createSection(e,t){const i=this.contentElement.createChild("section","network-config-group");return t&&i.classList.add(t),i.createChild("div","network-config-title").textContent=e,i.createChild("div","network-config-fields")}createCacheSection(){this.createSection(ae(se.caching),"network-config-disable-cache").appendChild(e.SettingsUI.createSettingCheckbox(ae(se.disableCache),t.Settings.Settings.instance().moduleSetting("cache-disabled")))}createNetworkThrottlingSection(){const t=ae(se.networkThrottling),i=this.createSection(t,"network-config-throttling").createChild("select");h.ThrottlingManager.throttlingManager().createNetworkThrottlingSelector(i),e.ARIAUtils.setLabel(i,t)}createUserAgentSection(){const i=t.Settings.Settings.instance().createSetting("custom-user-agent-metadata",null),r=t.Settings.Settings.instance().createSetting("custom-user-agent",""),o=ae(se.userAgent),s=this.createSection(o,"network-config-ua"),a=e.UIUtils.CheckboxLabel.create(ae(se.selectAutomatically),!0,void 0,r.name);s.appendChild(a);const l=a.checkboxElement;r.addChangeListener((()=>{if(l.checked)return;const e=r.get(),t=ce(e);n.NetworkManager.MultitargetNetworkManager.instance().setCustomUserAgentOverride(e,t)}));const d=s.createChild("div","network-config-ua-custom");l.addEventListener("change",w);const c=de.createUserAgentSelectAndInput(o);d.appendChild(c.select),d.appendChild(c.input),d.appendChild(c.error);const h=new u.UserAgentClientHintsForm.UserAgentClientHintsForm,p=i.get(),g=ce(c.select.value);h.value={showMobileCheckbox:!0,showSubmitButton:!0,metaData:p||g||void 0},d.appendChild(h),c.select.addEventListener("user-agent-change",(e=>{const t=e.detail.value,i=t?ce(t):null;h.value={metaData:i||void 0,showMobileCheckbox:!0,showSubmitButton:!0},m.textContent=""})),h.addEventListener("clienthintschange",(()=>{c.select.value="custom",m.textContent=""})),h.addEventListener("clienthintssubmit",(e=>{const t=e.detail.value,o=r.get();i.set(t),n.NetworkManager.MultitargetNetworkManager.instance().setCustomUserAgentOverride(o,t),m.textContent=ae(se.clientHintsStatusText)}));const m=s.createChild("span","status-text");function w(){const e=!l.checked;d.classList.toggle("checked",e),c.select.disabled=!e,c.input.disabled=!e,c.error.hidden=!e,h.disabled=!e;const t=e?r.get():"",i=e?ce(t):null;n.NetworkManager.MultitargetNetworkManager.instance().setCustomUserAgentOverride(t,i)}m.textContent="",w()}createAcceptedEncodingSection(){const i=t.Settings.Settings.instance().createSetting("use-custom-accepted-encodings",!1),r=t.Settings.Settings.instance().createSetting("custom-accepted-encodings","gzip,br,deflate"),o=ae(se.acceptedEncoding),s=this.createSection(o,"network-config-accepted-encoding"),a=e.UIUtils.CheckboxLabel.create(ae(se.selectAutomatically),!0,void 0,i.name);s.appendChild(a);const l=a.checkboxElement;function c(){i.get()?n.NetworkManager.MultitargetNetworkManager.instance().setCustomAcceptedEncodingsOverride(""===r.get()?[]:r.get().split(",")):n.NetworkManager.MultitargetNetworkManager.instance().clearCustomAcceptedEncodingsOverride()}r.addChangeListener(c),i.addChangeListener(c);const h=s.createChild("div","network-config-accepted-encoding-custom");h.setAttribute("jslog",`${d.section().context(r.name)}`),l.checked=!i.get(),l.addEventListener("change",g);const u=new Map,p={Deflate:"deflate",Gzip:"gzip",Br:"br",Zstd:"zstd"};for(const t of Object.values(p)){const i=e.UIUtils.CheckboxLabel.createWithStringLiteral(t,!0,void 0,t);h.appendChild(i),u.set(t,i.checkboxElement)}for(const[e,t]of u)t.checked=r.get().includes(e),t.addEventListener("change",g);function g(){i.set(!l.checked);const e=[];for(const[t,i]of u)i.disabled=l.checked,i.checked&&e.push(t);r.set(e.join(","))}g()}wasShown(){super.wasShown(),e.ARIAUtils.alert(ae(se.networkConditionsPanelShown))}}function ce(e){for(const t of he)for(const i of t.values)if(e===n.NetworkManager.MultitargetNetworkManager.patchUserAgentWithChromeVersion(i.value))return i.metadata?(n.NetworkManager.MultitargetNetworkManager.patchUserAgentMetadataWithChromeVersion(i.metadata),i.metadata):null;return null}const he=[{title:"Android",values:[{title:"Android (4.0.2) Browser — Galaxy Nexus",value:"Mozilla/5.0 (Linux; U; Android 4.0.2; en-us; Galaxy Nexus Build/ICL53F) AppleWebKit/534.30 (KHTML, like Gecko) Version/4.0 Mobile Safari/534.30",metadata:{brands:[{brand:"Not A;Brand",version:"99"},{brand:"Chromium",version:"%s"},{brand:"Google Chrome",version:"%s"}],fullVersion:"%s",platform:"Android",platformVersion:"4.0.2",architecture:"",model:"Galaxy Nexus",mobile:!0}},{title:"Android (2.3) Browser — Nexus S",value:"Mozilla/5.0 (Linux; U; Android 2.3.6; en-us; Nexus S Build/GRK39F) AppleWebKit/533.1 (KHTML, like Gecko) Version/4.0 Mobile Safari/533.1",metadata:{brands:[{brand:"Not A;Brand",version:"99"},{brand:"Chromium",version:"%s"},{brand:"Google Chrome",version:"%s"}],fullVersion:"%s",platform:"Android",platformVersion:"2.3.6",architecture:"",model:"Nexus S",mobile:!0}}]},{title:"BlackBerry",values:[{title:"BlackBerry — BB10",value:"Mozilla/5.0 (BB10; Touch) AppleWebKit/537.1+ (KHTML, like Gecko) Version/10.0.0.1337 Mobile Safari/537.1+",metadata:null},{title:"BlackBerry — PlayBook 2.1",value:"Mozilla/5.0 (PlayBook; U; RIM Tablet OS 2.1.0; en-US) AppleWebKit/536.2+ (KHTML, like Gecko) Version/7.2.1.0 Safari/536.2+",metadata:null},{title:"BlackBerry — 9900",value:"Mozilla/5.0 (BlackBerry; U; BlackBerry 9900; en-US) AppleWebKit/534.11+ (KHTML, like Gecko) Version/7.0.0.187 Mobile Safari/534.11+",metadata:null}]},{title:"Chrome",values:[{title:"Chrome — Android Mobile",value:"Mozilla/5.0 (Linux; Android 6.0; Nexus 5 Build/MRA58N) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/%s Mobile Safari/537.36",metadata:{brands:[{brand:"Not A;Brand",version:"99"},{brand:"Chromium",version:"%s"},{brand:"Google Chrome",version:"%s"}],fullVersion:"%s",platform:"Android",platformVersion:"6.0",architecture:"",model:"Nexus 5",mobile:!0}},{title:"Chrome — Android Mobile (high-end)",value:"Mozilla/5.0 (Linux; Android 10; Pixel 4) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/%s Mobile Safari/537.36",metadata:{brands:[{brand:"Not A;Brand",version:"99"},{brand:"Chromium",version:"%s"},{brand:"Google Chrome",version:"%s"}],fullVersion:"%s",platform:"Android",platformVersion:"10",architecture:"",model:"Pixel 4",mobile:!0}},{title:"Chrome — Android Tablet",value:"Mozilla/5.0 (Linux; Android 4.3; Nexus 7 Build/JSS15Q) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/%s Safari/537.36",metadata:{brands:[{brand:"Not A;Brand",version:"99"},{brand:"Chromium",version:"%s"},{brand:"Google Chrome",version:"%s"}],fullVersion:"%s",platform:"Android",platformVersion:"4.3",architecture:"",model:"Nexus 7",mobile:!0}},{title:"Chrome — iPhone",value:"Mozilla/5.0 (iPhone; CPU iPhone OS 13_2 like Mac OS X) AppleWebKit/605.1.15 (KHTML, like Gecko) CriOS/%s Mobile/15E148 Safari/604.1",metadata:null},{title:"Chrome — iPad",value:"Mozilla/5.0 (iPad; CPU OS 13_2 like Mac OS X) AppleWebKit/605.1.15 (KHTML, like Gecko) CriOS/%s Mobile/15E148 Safari/604.1",metadata:null},{title:"Chrome — Chrome OS",value:"Mozilla/5.0 (X11; CrOS x86_64 10066.0.0) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/%s Safari/537.36",metadata:{brands:[{brand:"Not A;Brand",version:"99"},{brand:"Chromium",version:"%s"},{brand:"Google Chrome",version:"%s"}],fullVersion:"%s",platform:"Chrome OS",platformVersion:"10066.0.0",architecture:"x86",model:"",mobile:!1}},{title:"Chrome — Mac",value:"Mozilla/5.0 (Macintosh; Intel Mac OS X 10_14_6) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/%s Safari/537.36",metadata:{brands:[{brand:"Not A;Brand",version:"99"},{brand:"Chromium",version:"%s"},{brand:"Google Chrome",version:"%s"}],fullVersion:"%s",platform:"macOS",platformVersion:"10_14_6",architecture:"x86",model:"",mobile:!1}},{title:"Chrome — Windows",value:"Mozilla/5.0 (Windows NT 10.0; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/%s Safari/537.36",metadata:{brands:[{brand:"Not A;Brand",version:"99"},{brand:"Chromium",version:"%s"},{brand:"Google Chrome",version:"%s"}],fullVersion:"%s",platform:"Windows",platformVersion:"10.0",architecture:"x86",model:"",mobile:!1}}]},{title:"Firefox",values:[{title:"Firefox — Android Mobile",value:"Mozilla/5.0 (Android 4.4; Mobile; rv:70.0) Gecko/70.0 Firefox/70.0",metadata:null},{title:"Firefox — Android Tablet",value:"Mozilla/5.0 (Android 4.4; Tablet; rv:70.0) Gecko/70.0 Firefox/70.0",metadata:null},{title:"Firefox — iPhone",value:"Mozilla/5.0 (iPhone; CPU iPhone OS 8_3 like Mac OS X) AppleWebKit/600.1.4 (KHTML, like Gecko) FxiOS/1.0 Mobile/12F69 Safari/600.1.4",metadata:null},{title:"Firefox — iPad",value:"Mozilla/5.0 (iPad; CPU iPhone OS 8_3 like Mac OS X) AppleWebKit/600.1.4 (KHTML, like Gecko) FxiOS/1.0 Mobile/12F69 Safari/600.1.4",metadata:null},{title:"Firefox — Mac",value:"Mozilla/5.0 (Macintosh; Intel Mac OS X 10.14; rv:70.0) Gecko/20100101 Firefox/70.0",metadata:null},{title:"Firefox — Windows",value:"Mozilla/5.0 (Windows NT 10.0; WOW64; rv:70.0) Gecko/20100101 Firefox/70.0",metadata:null}]},{title:"Googlebot",values:[{title:"Googlebot",value:"Mozilla/5.0 (compatible; Googlebot/2.1; +http://www.google.com/bot.html)",metadata:null},{title:"Googlebot Desktop",value:"Mozilla/5.0 AppleWebKit/537.36 (KHTML, like Gecko; compatible; Googlebot/2.1; +http://www.google.com/bot.html) Chrome/%s Safari/537.36",metadata:null},{title:"Googlebot Smartphone",value:"Mozilla/5.0 (Linux; Android 6.0.1; Nexus 5X Build/MMB29P) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/%s Mobile Safari/537.36 (compatible; Googlebot/2.1; +http://www.google.com/bot.html)",metadata:null}]},{title:"Internet Explorer",values:[{title:"Internet Explorer 11",value:"Mozilla/5.0 (Windows NT 10.0; WOW64; Trident/7.0; rv:11.0) like Gecko",metadata:null},{title:"Internet Explorer 10",value:"Mozilla/5.0 (compatible; MSIE 10.0; Windows NT 6.1; WOW64; Trident/6.0)",metadata:null},{title:"Internet Explorer 9",value:"Mozilla/5.0 (compatible; MSIE 9.0; Windows NT 6.1; Trident/5.0)",metadata:null},{title:"Internet Explorer 8",value:"Mozilla/4.0 (compatible; MSIE 8.0; Windows NT 6.0; Trident/4.0)",metadata:null},{title:"Internet Explorer 7",value:"Mozilla/4.0 (compatible; MSIE 7.0; Windows NT 6.0)",metadata:null}]},{title:"Microsoft Edge",values:[{title:"Microsoft Edge (Chromium) — Windows",value:"Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/%s Safari/537.36 Edg/%s",metadata:{brands:[{brand:"Not A;Brand",version:"99"},{brand:"Chromium",version:"%s"},{brand:"Microsoft Edge",version:"%s"}],fullVersion:"%s",platform:"Windows",platformVersion:"10.0",architecture:"x86",model:"",mobile:!1}},{title:"Microsoft Edge (Chromium) — Mac",value:"Mozilla/5.0 (Macintosh; Intel Mac OS X 10_14_6) AppleWebKit/605.1.15 (KHTML, like Gecko) Chrome/%s Safari/604.1 Edg/%s",metadata:{brands:[{brand:"Not A;Brand",version:"99"},{brand:"Chromium",version:"%s"},{brand:"Microsoft Edge",version:"%s"}],fullVersion:"%s",platform:"macOS",platformVersion:"10_14_6",architecture:"x86",model:"",mobile:!1}},{title:"Microsoft Edge — iPhone",value:"Mozilla/5.0 (iPhone; CPU iPhone OS 12_3_1 like Mac OS X) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/12.1.1 EdgiOS/44.5.0.10 Mobile/15E148 Safari/604.1",metadata:null},{title:"Microsoft Edge — iPad",value:"Mozilla/5.0 (iPad; CPU OS 12_3_1 like Mac OS X) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/12.0 EdgiOS/44.5.2 Mobile/15E148 Safari/605.1.15",metadata:null},{title:"Microsoft Edge — Android Mobile",value:"Mozilla/5.0 (Linux; Android 8.1.0; Pixel Build/OPM4.171019.021.D1) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/%s Mobile Safari/537.36 EdgA/42.0.0.2057",metadata:{brands:[{brand:"Not A;Brand",version:"99"},{brand:"Chromium",version:"%s"},{brand:"Microsoft Edge",version:"%s"}],fullVersion:"%s",platform:"Android",platformVersion:"8.1.0",architecture:"",model:"Pixel",mobile:!0}},{title:"Microsoft Edge — Android Tablet",value:"Mozilla/5.0 (Linux; Android 6.0.1; Nexus 7 Build/MOB30X) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/%s Safari/537.36 EdgA/42.0.0.2057",metadata:{brands:[{brand:"Not A;Brand",version:"99"},{brand:"Chromium",version:"%s"},{brand:"Microsoft Edge",version:"%s"}],fullVersion:"%s",platform:"Android",platformVersion:"6.0.1",architecture:"",model:"Nexus 7",mobile:!0}},{title:"Microsoft Edge (EdgeHTML) — Windows",value:"Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/%s Safari/537.36 Edge/18.19042",metadata:null},{title:"Microsoft Edge (EdgeHTML) — XBox",value:"Mozilla/5.0 (Windows NT 10.0; Win64; x64; Xbox; Xbox One) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/%s Safari/537.36 Edge/18.19041",metadata:null}]},{title:"Opera",values:[{title:"Opera — Mac",value:"Mozilla/5.0 (Macintosh; Intel Mac OS X 10_14_6) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/%s Safari/537.36 OPR/65.0.3467.48",metadata:null},{title:"Opera — Windows",value:"Mozilla/5.0 (Windows NT 10.0; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/%s Safari/537.36 OPR/65.0.3467.48",metadata:null},{title:"Opera (Presto) — Mac",value:"Opera/9.80 (Macintosh; Intel Mac OS X 10.9.1) Presto/2.12.388 Version/12.16",metadata:null},{title:"Opera (Presto) — Windows",value:"Opera/9.80 (Windows NT 6.1) Presto/2.12.388 Version/12.16",metadata:null},{title:"Opera Mobile — Android Mobile",value:"Opera/12.02 (Android 4.1; Linux; Opera Mobi/ADR-1111101157; U; en-US) Presto/2.9.201 Version/12.02",metadata:null},{title:"Opera Mini — iOS",value:"Opera/9.80 (iPhone; Opera Mini/8.0.0/34.2336; U; en) Presto/2.8.119 Version/11.10",metadata:null}]},{title:"Safari",values:[{title:"Safari — iPad iOS 13.2",value:"Mozilla/5.0 (iPad; CPU iPhone OS 13_2_3 like Mac OS X) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/13.0.3 Mobile/15E148 Safari/604.1",metadata:null},{title:"Safari — iPhone iOS 13.2",value:"Mozilla/5.0 (iPhone; CPU iPhone OS 13_2_3 like Mac OS X) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/13.0.3 Mobile/15E148 Safari/604.1",metadata:null},{title:"Safari — Mac",value:"Mozilla/5.0 (Macintosh; Intel Mac OS X 10_14_6) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/13.0.3 Safari/605.1.15",metadata:null}]},{title:"UC Browser",values:[{title:"UC Browser — Android Mobile",value:"Mozilla/5.0 (Linux; U; Android 8.1.0; en-US; Nexus 6P Build/OPM7.181205.001) AppleWebKit/537.36 (KHTML, like Gecko) Version/4.0 Chrome/%s UCBrowser/12.11.1.1197 Mobile Safari/537.36",metadata:null},{title:"UC Browser — iOS",value:"Mozilla/5.0 (iPhone; CPU iPhone OS 12_1 like Mac OS X; zh-CN) AppleWebKit/537.51.1 (KHTML, like Gecko) Mobile/16B92 UCBrowser/12.1.7.1109 Mobile AliApp(TUnionSDK/0.1.20.3)",metadata:null},{title:"UC Browser — Windows Phone",value:"Mozilla/5.0 (compatible; MSIE 10.0; Windows Phone 8.0; Trident/6.0; IEMobile/10.0; ARM; Touch; NOKIA; Lumia 920) UCBrowser/10.1.0.563 Mobile",metadata:null}]}];var ue=Object.freeze({__proto__:null,NetworkConfigView:de,userAgentGroups:he});const pe={redirect:"Redirect",sPreflight:"{PH1} + Preflight",preflight:"Preflight",selectPreflightRequest:"Select preflight request",failed:"(failed)",data:"(data)",canceled:"(canceled)",other:"other",csp:"csp",origin:"origin",integrity:"integrity",devtools:"devtools",blockeds:"(blocked:{PH1})",blockedTooltip:"This request was blocked due to misconfigured response headers, click to view the headers",corsError:"CORS error",crossoriginResourceSharingErrorS:"Cross-Origin Resource Sharing error: {PH1}",finished:"Finished",pendingq:"(pending)",unknown:"(unknown)",unknownExplanation:"The request status cannot be shown here because the page that issued it unloaded while the request was in flight. You can use chrome://net-export to capture a network log and see all request details.",push:"Push / ",parser:"Parser",script:"Script",preload:"Preload",earlyHints:"early-hints",signedexchange:"signed-exchange",selectTheRequestThatTriggered:"Select the request that triggered this preflight",otherC:"Other",memoryCache:"(memory cache)",servedFromMemoryCacheResource:"Served from memory cache, resource size: {PH1}",serviceWorker:"(`ServiceWorker`)",servedFromServiceWorkerResource:"Served from `ServiceWorker`, resource size: {PH1}",servedFromSignedHttpExchange:"Served from Signed HTTP Exchange, resource size: {PH1}",servedFromWebBundle:"Served from Web Bundle, resource size: {PH1}",prefetchCache:"(prefetch cache)",servedFromPrefetchCacheResource:"Served from prefetch cache, resource size: {PH1}",diskCache:"(disk cache)",servedFromDiskCacheResourceSizeS:"Served from disk cache, resource size: {PH1}",matchedToServiceWorkerRouter:"Matched to `ServiceWorker router`#{PH1}, resource size: {PH2}",matchedToServiceWorkerRouterWithNetworkSource:"Matched to `ServiceWorker router`#{PH1}, {PH2} transferred over network, resource size: {PH3}",pending:"Pending",level:"level 1",webBundleError:"Web Bundle error",webBundleInnerRequest:"Served from Web Bundle",webBundle:"(Web Bundle)",timeSubtitleTooltipText:"Latency (response received time - start time)",alternativeJobWonWithoutRace:"`Chrome` used a `HTTP/3` connection induced by an '`Alt-Svc`' header without racing against establishing a connection using a different `HTTP` version.",alternativeJobWonRace:"`Chrome` used a `HTTP/3` connection induced by an '`Alt-Svc`' header because it won a race against establishing a connection using a different `HTTP` version.",mainJobWonRace:"`Chrome` used this protocol because it won a race against establishing a `HTTP/3` connection.",mappingMissing:"`Chrome` did not use an alternative `HTTP` version because no alternative protocol information was available when the request was issued, but an '`Alt-Svc`' header was present in the response.",broken:"`Chrome` did not try to establish a `HTTP/3` connection because it was marked as broken.",dnsAlpnH3JobWonWithoutRace:"`Chrome` used a `HTTP/3` connection due to the `DNS record` indicating `HTTP/3` support. There was no race against establishing a connection using a different `HTTP` version.",dnsAlpnH3JobWonRace:"`Chrome` used a `HTTP/3` connection due to the `DNS record` indicating `HTTP/3` support, which won a race against establishing a connection using a different `HTTP` version.",initialPriorityToolTip:"{PH1}, Initial priority: {PH2}"},ge=r.i18n.registerUIStrings("panels/network/NetworkDataGridNode.ts",pe),me=r.i18n.getLocalizedString.bind(void 0,ge);class we extends c.SortableDataGrid.SortableDataGridNode{parentViewInternal;isHovered;showingInitiatorChainInternal;requestOrFirstKnownChildRequestInternal;constructor(e){super({}),this.parentViewInternal=e,this.isHovered=!1,this.showingInitiatorChainInternal=!1,this.requestOrFirstKnownChildRequestInternal=null}displayName(){return""}displayType(){return""}createCell(e){const t=this.createTD(e);return this.renderCell(t,e),t}renderCell(e,t){}isError(){return!1}isWarning(){return!1}backgroundColor(){const e=ke,t=document.hasFocus(),i=this.dataGrid&&this.dataGrid.element===document.activeElement,r=this.isWarning(),o=this.isError();return this.selected&&t&&i&&o?e.FocusSelectedHasError:this.selected&&t&&i&&r?e.FocusSelectedHasWarning:this.selected&&t&&i?e.FocusSelected:this.selected?e.Selected:this.hovered()?e.Hovered:this.isOnInitiatorPath()?e.InitiatorPath:this.isOnInitiatedPath()?e.InitiatedPath:this.isStriped()?e.Stripe:e.Default}updateBackgroundColor(){const e=this.existingElement();e&&(e.style.backgroundColor=`var(${this.backgroundColor()})`,this.parentViewInternal.stylesChanged())}setStriped(e){super.setStriped(e),this.updateBackgroundColor()}select(e){super.select(e),this.updateBackgroundColor(),this.parentViewInternal.updateNodeSelectedClass(!0)}deselect(e){super.deselect(e),this.updateBackgroundColor(),this.parentViewInternal.updateNodeSelectedClass(!1)}parentView(){return this.parentViewInternal}hovered(){return this.isHovered}showingInitiatorChain(){return this.showingInitiatorChainInternal}nodeSelfHeight(){return this.parentViewInternal.rowHeight()}setHovered(e,t){this.isHovered===e&&this.showingInitiatorChainInternal===t||(this.isHovered!==e&&(this.isHovered=e,this.attached()&&this.element().classList.toggle("hover",e)),this.showingInitiatorChainInternal!==t&&(this.showingInitiatorChainInternal=t,this.showingInitiatorChainChanged()),this.parentViewInternal.stylesChanged(),this.updateBackgroundColor())}showingInitiatorChainChanged(){}isOnInitiatorPath(){return!1}isOnInitiatedPath(){return!1}request(){return null}isNavigationRequest(){return!1}clearFlatNodes(){super.clearFlatNodes(),this.requestOrFirstKnownChildRequestInternal=null}requestOrFirstKnownChildRequest(){if(this.requestOrFirstKnownChildRequestInternal)return this.requestOrFirstKnownChildRequestInternal;let e=this.request();if(e||!this.hasChildren())return this.requestOrFirstKnownChildRequestInternal=e,this.requestOrFirstKnownChildRequestInternal;let t=null;const i=this.flatChildren();for(let r=0;r<i.length;r++)e=i[r].request(),(!t||e&&e.issueTime()<t.issueTime())&&(t=e);return this.requestOrFirstKnownChildRequestInternal=t,this.requestOrFirstKnownChildRequestInternal}}const ke={Default:"--color-grid-default",Stripe:"--color-grid-stripe",Navigation:"--network-grid-navigation-color",Hovered:"--color-grid-hovered",InitiatorPath:"--network-grid-initiator-path-color",InitiatedPath:"--network-grid-initiated-path-color",Selected:"--color-grid-selected",FocusSelected:"--color-grid-focus-selected",FocusSelectedHasError:"--network-grid-focus-selected-color-has-error",FocusSelectedHasWarning:"--network-grid-focus-selected-color-has-warning",FromFrame:"--network-grid-from-frame-color"};class ve extends we{nameCell;initiatorCell;requestInternal;isNavigationRequestInternal;selectable;isOnInitiatorPathInternal;isOnInitiatedPathInternal;linkifiedInitiatorAnchor;constructor(e,t){super(e),this.nameCell=null,this.initiatorCell=null,this.requestInternal=t,this.isNavigationRequestInternal=!1,this.selectable=!0,this.isOnInitiatorPathInternal=!1,this.isOnInitiatedPathInternal=!1}static NameComparator(e,t){const i=e.displayName().toLowerCase(),r=t.displayName().toLowerCase();if(i===r){const i=e.requestOrFirstKnownChildRequest(),r=t.requestOrFirstKnownChildRequest();return i&&r?i.identityCompare(r):i?-1:1}return i<r?-1:1}static RemoteAddressComparator(e,t){const i=e.requestOrFirstKnownChildRequest(),r=t.requestOrFirstKnownChildRequest();if(!i||!r)return i?1:-1;const o=i.remoteAddress(),s=r.remoteAddress();return o>s?1:s>o?-1:i.identityCompare(r)}static SizeComparator(e,t){const i=e.requestOrFirstKnownChildRequest(),r=t.requestOrFirstKnownChildRequest();return i&&r?r.cached()&&!i.cached()?1:i.cached()&&!r.cached()?-1:i.transferSize-r.transferSize||i.resourceSize-r.resourceSize||i.identityCompare(r):i?1:-1}static TypeComparator(e,t){const i=e.requestOrFirstKnownChildRequest(),r=t.requestOrFirstKnownChildRequest();if(!i||!r)return i?1:-1;const o=e.displayType(),s=t.displayType();return o>s?1:s>o?-1:i.identityCompare(r)}static InitiatorComparator(e,t){const i=e.requestOrFirstKnownChildRequest(),r=t.requestOrFirstKnownChildRequest();if(!i||!r)return i?1:-1;const o=e instanceof ve&&e.initiatorCell,s=t instanceof ve&&t.initiatorCell;if(!o||!s)return o?1:-1;const n=e,a=t,l=n.linkifiedInitiatorAnchor?n.linkifiedInitiatorAnchor.textContent||"":n.initiatorCell.title,d=a.linkifiedInitiatorAnchor?a.linkifiedInitiatorAnchor.textContent||"":a.initiatorCell.title;return l.localeCompare(d)}static InitiatorAddressSpaceComparator(e,t){const i=e.requestOrFirstKnownChildRequest(),r=t.requestOrFirstKnownChildRequest();if(!i||!r)return i?1:-1;const o=i.clientSecurityState(),s=r.clientSecurityState();return o&&s?o.initiatorIPAddressSpace.localeCompare(s.initiatorIPAddressSpace):o?1:-1}static RemoteAddressSpaceComparator(e,t){const i=e.requestOrFirstKnownChildRequest(),r=t.requestOrFirstKnownChildRequest();return i&&r?i.remoteAddressSpace().localeCompare(r.remoteAddressSpace()):i?1:-1}static RequestCookiesCountComparator(e,t){const i=e.requestOrFirstKnownChildRequest(),r=t.requestOrFirstKnownChildRequest();if(!i||!r)return i?1:-1;return i.includedRequestCookies().length-r.includedRequestCookies().length||i.identityCompare(r)}static ResponseCookiesCountComparator(e,t){const i=e.requestOrFirstKnownChildRequest(),r=t.requestOrFirstKnownChildRequest();if(!i||!r)return i?1:-1;return(i.responseCookies?i.responseCookies.length:0)-(r.responseCookies?r.responseCookies.length:0)||i.identityCompare(r)}static PriorityComparator(e,t){const i=e.requestOrFirstKnownChildRequest(),r=t.requestOrFirstKnownChildRequest();if(!i||!r)return i?1:-1;const o=i.priority();let s=o?v.NetworkPriorities.networkPriorityWeight(o):0;s=s||0;const n=r.priority();let a=n?v.NetworkPriorities.networkPriorityWeight(n):0;return a=a||0,s-a||i.identityCompare(r)}static RequestPropertyComparator(e,t,i){const r=t.requestOrFirstKnownChildRequest(),o=i.requestOrFirstKnownChildRequest();if(!r||!o)return r?1:-1;const s=r[e],n=o[e];return s===n?r.identityCompare(o):s>n?1:-1}static RequestURLComparator(e,t){const i=e.requestOrFirstKnownChildRequest(),r=t.requestOrFirstKnownChildRequest();if(!i||!r)return i?1:-1;const o=i.url(),s=r.url();return o===s?i.identityCompare(r):o>s?1:-1}static ResponseHeaderStringComparator(e,t,i){const r=t.requestOrFirstKnownChildRequest(),o=i.requestOrFirstKnownChildRequest();if(!r||!o)return r?1:-1;const s=String(r.responseHeaderValue(e)||""),n=String(o.responseHeaderValue(e)||"");return s.localeCompare(n)||r.identityCompare(o)}static ResponseHeaderNumberComparator(e,t,i){const r=t.requestOrFirstKnownChildRequest(),o=i.requestOrFirstKnownChildRequest();if(!r||!o)return r?1:-1;const s=r.responseHeaderValue(e),n=void 0!==s?parseFloat(s):-1/0,a=o.responseHeaderValue(e),l=void 0!==a?parseFloat(a):-1/0;return n===l?r.identityCompare(o):n>l?1:-1}static ResponseHeaderDateComparator(e,t,i){const r=t.requestOrFirstKnownChildRequest(),o=i.requestOrFirstKnownChildRequest();if(!r||!o)return r?1:-1;const s=r.responseHeaderValue(e),n=o.responseHeaderValue(e),a=s?new Date(s).getTime():-1/0,l=n?new Date(n).getTime():-1/0;return a===l?r.identityCompare(o):a>l?1:-1}showingInitiatorChainChanged(){const e=this.showingInitiatorChain(),t=a.NetworkLog.NetworkLog.instance().initiatorGraphForRequest(this.requestInternal);for(const i of t.initiators){if(i===this.requestInternal)continue;const t=this.parentView().nodeForRequest(i);t&&t.setIsOnInitiatorPath(e)}for(const i of t.initiated.keys()){if(i===this.requestInternal)continue;const t=this.parentView().nodeForRequest(i);t&&t.setIsOnInitiatedPath(e)}}setIsOnInitiatorPath(e){this.isOnInitiatorPathInternal!==e&&this.attached()&&(this.isOnInitiatorPathInternal=e,this.updateBackgroundColor())}isOnInitiatorPath(){return this.isOnInitiatorPathInternal}setIsOnInitiatedPath(e){this.isOnInitiatedPathInternal!==e&&this.attached()&&(this.isOnInitiatedPathInternal=e,this.updateBackgroundColor())}isOnInitiatedPath(){return this.isOnInitiatedPathInternal}displayType(){const e=this.requestInternal.mimeType||this.requestInternal.requestContentType()||"",i=this.requestInternal.resourceType();let r=i.name();return this.requestInternal.fromEarlyHints()?me(pe.earlyHints):(i!==t.ResourceType.resourceTypes.Other&&i!==t.ResourceType.resourceTypes.Image||(r=e.replace(/^(application|image)\//,"")),this.requestInternal.isRedirect()&&(r+=" / "+me(pe.redirect)),r)}displayName(){return this.requestInternal.name()}request(){return this.requestInternal}isNavigationRequest(){const e=n.PageLoad.PageLoad.forRequest(this.requestInternal);return!!e&&e.mainRequest===this.requestInternal}nodeSelfHeight(){return this.parentView().rowHeight()}isPrefetch(){return this.requestInternal.resourceType()===t.ResourceType.resourceTypes.Prefetch}isWarning(){return this.isFailed()&&this.isPrefetch()}isError(){return this.isFailed()&&!this.isPrefetch()}createCells(e){this.nameCell=null,this.initiatorCell=null,e.classList.toggle("network-warning-row",this.isWarning()),e.classList.toggle("network-error-row",this.isError()),e.classList.toggle("network-navigation-row",this.isNavigationRequestInternal),super.createCells(e),this.updateBackgroundColor()}setTextAndTitle(t,i,r){e.UIUtils.createTextChild(t,i),e.Tooltip.Tooltip.install(t,r||i)}setTextAndTitleAsLink(t,i,r,o){const s=document.createElement("span");s.classList.add("devtools-link"),s.textContent=i,s.addEventListener("click",o),t.appendChild(s),e.Tooltip.Tooltip.install(t,r)}renderCell(e,t){const i=e;switch(t){case"name":this.renderPrimaryCell(i,t);break;case"path":this.renderPrimaryCell(i,t,this.requestInternal.pathname);break;case"url":this.renderPrimaryCell(i,t,this.requestInternal.url());break;case"method":{const e=this.requestInternal.preflightRequest();e?(this.setTextAndTitle(i,`${this.requestInternal.requestMethod} + `,me(pe.sPreflight,{PH1:this.requestInternal.requestMethod})),i.appendChild(b.Linkifier.Linkifier.linkifyRevealable(e,me(pe.preflight),void 0,me(pe.selectPreflightRequest),void 0,"preflight-request"))):this.setTextAndTitle(i,this.requestInternal.requestMethod);break}case"status":this.renderStatusCell(i);break;case"protocol":this.renderProtocolCell(i);break;case"scheme":this.setTextAndTitle(i,this.requestInternal.scheme);break;case"domain":this.setTextAndTitle(i,this.requestInternal.domain);break;case"remote-address":this.setTextAndTitle(i,this.requestInternal.remoteAddress());break;case"remote-address-space":this.renderAddressSpaceCell(i,this.requestInternal.remoteAddressSpace());break;case"cookies":this.setTextAndTitle(i,this.arrayLength(this.requestInternal.includedRequestCookies()));break;case"set-cookies":this.setTextAndTitle(i,this.arrayLength(this.requestInternal.nonBlockedResponseCookies()));break;case"priority":{const e=this.requestInternal.priority(),t=this.requestInternal.initialPriority();e&&t?this.setTextAndTitle(i,v.NetworkPriorities.uiLabelForNetworkPriority(e),me(pe.initialPriorityToolTip,{PH1:v.NetworkPriorities.uiLabelForNetworkPriority(e),PH2:v.NetworkPriorities.uiLabelForNetworkPriority(t)})):this.setTextAndTitle(i,e?v.NetworkPriorities.uiLabelForNetworkPriority(e):""),this.appendSubtitle(i,t?v.NetworkPriorities.uiLabelForNetworkPriority(t):"");break}case"connection-id":this.setTextAndTitle(i,"0"===this.requestInternal.connectionId?"":this.requestInternal.connectionId);break;case"type":this.setTextAndTitle(i,this.displayType());break;case"initiator":this.renderInitiatorCell(i);break;case"initiator-address-space":{const e=this.requestInternal.clientSecurityState();this.renderAddressSpaceCell(i,e?e.initiatorIPAddressSpace:"Unknown");break}case"size":this.renderSizeCell(i);break;case"time":this.renderTimeCell(i);break;case"timeline":this.setTextAndTitle(i,"");break;case"has-overrides":this.setTextAndTitle(i,this.requestInternal.overrideTypes.join(", "));break;default:this.setTextAndTitle(i,this.requestInternal.responseHeaderValue(t)||"")}}arrayLength(e){return e?String(e.length):""}select(e){super.select(e),this.parentView().dispatchEventToListeners("RequestSelected",this.requestInternal)}openInNewTab(){i.InspectorFrontendHost.InspectorFrontendHostInstance.openInNewTab(this.requestInternal.url())}isFailed(){return f.isFailedNetworkRequest(this.requestInternal)}renderPrimaryCell(t,i,r){if(0===(0|this.dataGrid?.indexOfVisibleColumn(i))){const e=this.leftPadding?this.leftPadding+"px":"";t.style.setProperty("padding-left",e),t.tabIndex=-1,this.nameCell=t,t.addEventListener("dblclick",this.openInNewTab.bind(this),!1),t.addEventListener("mousedown",(()=>{this.select(),this.parentView().dispatchEventToListeners("RequestActivated",{showPanel:!0})})),t.addEventListener("focus",(()=>this.parentView().resetFocus()));const i=f.getIconForNetworkRequest(this.requestInternal);t.appendChild(i);const r=this.createAiButtonIfAvailable();r&&t.appendChild(r)}if("name"===i){const i=this.requestInternal.webBundleInnerRequestInfo();if(i){const e={iconName:"bundle",color:"var(--icon-info)"},r=f.createIconElement(e,me(pe.webBundleInnerRequest));r.classList.add("icon");const o=n.NetworkManager.NetworkManager.forRequest(this.requestInternal);i.bundleRequestId&&o?t.appendChild(b.Linkifier.Linkifier.linkifyRevealable(new m.NetworkRequestId.NetworkRequestId(i.bundleRequestId,o),r,void 0,void 0,void 0,"webbundle-request")):t.appendChild(r)}const r=s.StringUtilities.trimMiddle(this.requestInternal.name(),100),o=n.NetworkManager.NetworkManager.forRequest(this.requestInternal);e.UIUtils.createTextChild(t,o?o.target().decorateLabel(r):r),this.appendSubtitle(t,this.requestInternal.path()),this.requestInternal.url().startsWith("data")||e.Tooltip.Tooltip.install(t,this.requestInternal.url())}else r&&e.UIUtils.createTextChild(t,r)}renderStatusCell(t){t.classList.toggle("network-dim-cell",!this.isFailed()&&(this.requestInternal.cached()||!this.requestInternal.statusCode));const i=this.requestInternal.corsErrorStatus(),o=this.requestInternal.webBundleInfo()?.errorMessage||this.requestInternal.webBundleInnerRequestInfo()?.errorMessage;if(o)this.setTextAndTitle(t,me(pe.webBundleError),o);else if(!this.requestInternal.failed||this.requestInternal.canceled||this.requestInternal.wasBlocked()||i)if(this.requestInternal.statusCode&&this.requestInternal.statusCode>=400){const i=this.requestInternal.getInferredStatusText();e.UIUtils.createTextChild(t,String(this.requestInternal.statusCode)),this.appendSubtitle(t,i),e.Tooltip.Tooltip.install(t,this.requestInternal.statusCode+" "+i)}else if(!this.requestInternal.statusCode&&this.requestInternal.parsedURL.isDataURL())this.setTextAndTitle(t,me(pe.data));else if(!this.requestInternal.statusCode&&this.requestInternal.canceled)this.setTextAndTitle(t,me(pe.canceled));else if(this.requestInternal.wasBlocked()){let e=me(pe.other),i=!1;switch(this.requestInternal.blockedReason()){case"other":e=me(pe.other);break;case"csp":e=me(pe.csp);break;case"mixed-content":e=r.i18n.lockedString("mixed-content");break;case"origin":e=me(pe.origin);break;case"inspector":e=me(pe.devtools);break;case"subresource-filter":e=r.i18n.lockedString("subresource-filter");break;case"content-type":e=r.i18n.lockedString("content-type");break;case"coep-frame-resource-needs-coep-header":i=!0,e=r.i18n.lockedString("CoepFrameResourceNeedsCoepHeader");break;case"coop-sandboxed-iframe-cannot-navigate-to-coop-page":i=!0,e=r.i18n.lockedString("CoopSandboxedIframeCannotNavigateToCoopPage");break;case"corp-not-same-origin":i=!0,e=r.i18n.lockedString("NotSameOrigin");break;case"corp-not-same-site":i=!0,e=r.i18n.lockedString("NotSameSite");break;case"corp-not-same-origin-after-defaulted-to-same-origin-by-coep":i=!0,e=r.i18n.lockedString("NotSameOriginAfterDefaultedToSameOriginByCoep");break;case"sri-message-signature-mismatch":i=!0,e=me(pe.integrity)}i?this.setTextAndTitleAsLink(t,me(pe.blockeds,{PH1:e}),me(pe.blockedTooltip),(()=>{this.parentView().dispatchEventToListeners("RequestActivated",{showPanel:!0,tab:"headers-component"})})):this.setTextAndTitle(t,me(pe.blockeds,{PH1:e}))}else if(i)this.setTextAndTitle(t,me(pe.corsError),me(pe.crossoriginResourceSharingErrorS,{PH1:i.corsError}));else if(this.requestInternal.statusCode){e.UIUtils.createTextChild(t,String(this.requestInternal.statusCode));const i=this.requestInternal.getInferredStatusText();this.appendSubtitle(t,i),e.Tooltip.Tooltip.install(t,this.requestInternal.statusCode+" "+i)}else this.requestInternal.finished?this.setTextAndTitle(t,me(pe.finished)):this.requestInternal.preserved?this.setTextAndTitle(t,me(pe.unknown),me(pe.unknownExplanation)):this.setTextAndTitle(t,me(pe.pendingq));else{const i=me(pe.failed);this.requestInternal.localizedFailDescription?(e.UIUtils.createTextChild(t,i),this.appendSubtitle(t,this.requestInternal.localizedFailDescription,!0),e.Tooltip.Tooltip.install(t,i+" "+this.requestInternal.localizedFailDescription)):this.setTextAndTitle(t,i)}}renderProtocolCell(t){switch(e.UIUtils.createTextChild(t,this.requestInternal.protocol),this.requestInternal.alternateProtocolUsage){case"alternativeJobWonWithoutRace":e.Tooltip.Tooltip.install(t,pe.alternativeJobWonWithoutRace);break;case"alternativeJobWonRace":e.Tooltip.Tooltip.install(t,pe.alternativeJobWonRace);break;case"mainJobWonRace":e.Tooltip.Tooltip.install(t,pe.mainJobWonRace);break;case"mappingMissing":e.Tooltip.Tooltip.install(t,pe.mappingMissing);break;case"broken":e.Tooltip.Tooltip.install(t,pe.broken);break;case"dnsAlpnH3JobWonWithoutRace":e.Tooltip.Tooltip.install(t,pe.dnsAlpnH3JobWonWithoutRace);break;case"dnsAlpnH3JobWonRace":e.Tooltip.Tooltip.install(t,pe.dnsAlpnH3JobWonRace);break;default:e.Tooltip.Tooltip.install(t,this.requestInternal.protocol)}}#e(){if(this.requestInternal.resourceType().isStyleSheet())return i.UserMetrics.Action.StyleSheetInitiatorLinkClicked}renderInitiatorCell(t){this.initiatorCell=t;const i=this.requestInternal,r=a.NetworkLog.NetworkLog.instance().initiatorInfoForRequest(i),o=i.timing;switch(o?.pushStart&&t.appendChild(document.createTextNode(me(pe.push))),r.type){case"parser":{const e=g.Workspace.WorkspaceImpl.instance().uiSourceCodeForURL(r.url),i=e?.displayName(),o=void 0!==i&&void 0!==r.lineNumber?`${i}:${r.lineNumber}`:void 0;t.appendChild(b.Linkifier.Linkifier.linkifyURL(r.url,{text:o,lineNumber:r.lineNumber,columnNumber:r.columnNumber,userMetric:this.#e()})),this.appendSubtitle(t,me(pe.parser));break}case"redirect":{e.Tooltip.Tooltip.install(t,r.url);const o=i.redirectSource();console.assert(null!==o),this.parentView().nodeForRequest(o)?t.appendChild(b.Linkifier.Linkifier.linkifyRevealable(o,p.ResourceUtils.displayNameForURL(o.url()),void 0,void 0,void 0,"redirect-source-request")):t.appendChild(b.Linkifier.Linkifier.linkifyURL(o.url(),{jslogContext:"redirect-source-request-url"})),this.appendSubtitle(t,me(pe.redirect));break}case"script":{const o=n.NetworkManager.NetworkManager.forRequest(i)?.target()||null,s=this.parentView().linkifier();r.stack?this.linkifiedInitiatorAnchor=s.linkifyStackTraceTopFrame(o,r.stack):this.linkifiedInitiatorAnchor=s.linkifyScriptLocation(o,r.scriptId,r.url,r.lineNumber,{columnNumber:r.columnNumber,inlineFrameIndex:0}),e.Tooltip.Tooltip.install(this.linkifiedInitiatorAnchor,""),t.appendChild(this.linkifiedInitiatorAnchor),this.appendSubtitle(t,me(pe.script)),t.classList.add("network-script-initiated");break}case"preload":e.Tooltip.Tooltip.install(t,me(pe.preload)),t.classList.add("network-dim-cell"),t.appendChild(document.createTextNode(me(pe.preload)));break;case"signedExchange":t.appendChild(b.Linkifier.Linkifier.linkifyURL(r.url)),this.appendSubtitle(t,me(pe.signedexchange));break;case"preflight":if(t.appendChild(document.createTextNode(me(pe.preflight))),r.initiatorRequest){const i=k.Icon.create("arrow-up-down-circle"),o=b.Linkifier.Linkifier.linkifyRevealable(r.initiatorRequest,i,void 0,me(pe.selectTheRequestThatTriggered),"trailing-link-icon","initator-request");e.ARIAUtils.setLabel(o,me(pe.selectTheRequestThatTriggered)),t.appendChild(o)}break;default:e.Tooltip.Tooltip.install(t,me(pe.otherC)),t.classList.add("network-dim-cell"),t.appendChild(document.createTextNode(me(pe.otherC)))}}renderAddressSpaceCell(t,i){"Unknown"!==i&&e.UIUtils.createTextChild(t,i)}renderSizeCell(t){const i=r.ByteUtilities.formatBytesToKb(this.requestInternal.resourceSize);if(this.requestInternal.cachedInMemory())e.UIUtils.createTextChild(t,me(pe.memoryCache)),e.Tooltip.Tooltip.install(t,me(pe.servedFromMemoryCacheResource,{PH1:i})),t.classList.add("network-dim-cell");else if(this.requestInternal.serviceWorkerRouterInfo){const{serviceWorkerRouterInfo:o}=this.requestInternal,s=o.ruleIdMatched??0;let n;if(e.UIUtils.createTextChild(t,r.i18n.lockedString("(ServiceWorker router)")),"network"===o.matchedSourceType){const e=r.ByteUtilities.formatBytesToKb(this.requestInternal.transferSize);n=me(pe.matchedToServiceWorkerRouterWithNetworkSource,{PH1:s,PH2:e,PH3:i})}else n=me(pe.matchedToServiceWorkerRouter,{PH1:s,PH2:i});e.Tooltip.Tooltip.install(t,n),t.classList.add("network-dim-cell")}else if(this.requestInternal.fetchedViaServiceWorker)e.UIUtils.createTextChild(t,me(pe.serviceWorker)),e.Tooltip.Tooltip.install(t,me(pe.servedFromServiceWorkerResource,{PH1:i})),t.classList.add("network-dim-cell");else if(this.requestInternal.redirectSourceSignedExchangeInfoHasNoErrors())e.UIUtils.createTextChild(t,r.i18n.lockedString("(signed-exchange)")),e.Tooltip.Tooltip.install(t,me(pe.servedFromSignedHttpExchange,{PH1:i})),t.classList.add("network-dim-cell");else if(this.requestInternal.webBundleInnerRequestInfo())e.UIUtils.createTextChild(t,me(pe.webBundle)),e.Tooltip.Tooltip.install(t,me(pe.servedFromWebBundle,{PH1:i})),t.classList.add("network-dim-cell");else if(this.requestInternal.fromPrefetchCache())e.UIUtils.createTextChild(t,me(pe.prefetchCache)),e.Tooltip.Tooltip.install(t,me(pe.servedFromPrefetchCacheResource,{PH1:i})),t.classList.add("network-dim-cell");else if(this.requestInternal.cached())e.UIUtils.createTextChild(t,me(pe.diskCache)),e.Tooltip.Tooltip.install(t,me(pe.servedFromDiskCacheResourceSizeS,{PH1:i})),t.classList.add("network-dim-cell");else{const o=r.ByteUtilities.formatBytesToKb(this.requestInternal.transferSize);e.UIUtils.createTextChild(t,o),e.Tooltip.Tooltip.install(t,`${o} transferred over network, resource size: ${i}`)}this.appendSubtitle(t,i)}renderTimeCell(e){this.requestInternal.duration>0?(this.setTextAndTitle(e,r.TimeUtilities.secondsToString(this.requestInternal.duration)),this.appendSubtitle(e,r.TimeUtilities.secondsToString(this.requestInternal.latency),!1,me(pe.timeSubtitleTooltipText))):this.requestInternal.preserved?this.setTextAndTitle(e,me(pe.unknown),me(pe.unknownExplanation)):(e.classList.add("network-dim-cell"),this.setTextAndTitle(e,me(pe.pending)))}appendSubtitle(t,i,r=!1,o=""){const s=document.createElement("div");s.classList.add("network-cell-subtitle"),r&&s.classList.add("always-visible"),s.textContent=i,o&&e.Tooltip.Tooltip.install(s,o),t.appendChild(s)}createAiButtonIfAvailable(){if(e.ActionRegistry.ActionRegistry.instance().hasAction("drjones.network-floating-button")){const t=e.ActionRegistry.ActionRegistry.instance().getAction("drjones.network-floating-button"),i=document.createElement("span");i.classList.add("ai-button-container");const r=new w.FloatingButton.FloatingButton({title:t.title(),iconName:"smart-assistant"});return r.addEventListener("click",(e=>{e.stopPropagation(),this.select(),t.execute()}),{capture:!0}),r.addEventListener("mousedown",(e=>{e.stopPropagation()}),{capture:!0}),i.appendChild(r),i}}}class be extends we{createCells(e){super.createCells(e);const t=this.dataGrid.visibleColumnsArray[0],i=`${t.title}`,r=me(pe.level);this.nodeAccessibleText=`${r} ${i}: ${this.cellAccessibleTextMap.get(t.id)}`}renderCell(e,t){if(0===this.dataGrid.indexOfVisibleColumn(t)){const i=e,r=this.leftPadding?this.leftPadding+"px":"";i.style.setProperty("padding-left",r),i.classList.add("disclosure"),this.setCellAccessibleName(i.textContent||"",i,t)}}select(e){super.select(e);const t=this.traverseNextNode(!1,void 0,!0),i=t?.request();i&&this.parentView().dispatchEventToListeners("RequestSelected",i)}}var fe=Object.freeze({__proto__:null,NetworkGroupNode:be,NetworkNode:we,NetworkRequestNode:ve,_backgroundColors:ke}),Ce={cssText:`.request-cookies-view{overflow:auto;padding:12px;height:100%;background-color:var(--sys-color-cdt-base-container)}.request-cookies-view .request-cookies-title{font-size:12px;font-weight:bold;margin-right:30px;color:var(--sys-color-on-surface)}.request-cookies-view .cookie-line{margin-top:6px;display:flex}.request-cookies-view .cookies-panel-item{margin-top:6px;margin-bottom:16px;flex:none}\n/*# sourceURL=${import.meta.resolve("./requestCookiesView.css")} */\n`};const Se={thisRequestHasNoCookies:"This request has no cookies.",requestCookies:"Request Cookies",cookiesThatWereSentToTheServerIn:"Cookies that were sent to the server in the 'cookie' header of the request",showFilteredOutRequestCookies:"show filtered out request cookies",noRequestCookiesWereSent:"No request cookies were sent.",responseCookies:"Response Cookies",cookiesThatWereReceivedFromThe:"Cookies that were received from the server in the '`set-cookie`' header of the response",malformedResponseCookies:"Malformed Response Cookies",cookiesThatWereReceivedFromTheServer:"Cookies that were received from the server in the '`set-cookie`' header of the response but were malformed",siteHasCookieInOtherPartition:"This site has cookies in another partition, that were not sent with this request. {PH1}",learnMore:"Learn more"},ye=r.i18n.registerUIStrings("panels/network/RequestCookiesView.ts",Se),Te=r.i18n.getLocalizedString.bind(void 0,ye);class xe extends e.Widget.Widget{request;showFilteredOutCookiesSetting;emptyWidget;requestCookiesTitle;requestCookiesEmpty;requestCookiesTable;responseCookiesTitle;responseCookiesTable;siteHasCookieInOtherPartition;malformedResponseCookiesTitle;malformedResponseCookiesList;constructor(i){super(),this.registerRequiredCSS(Ce),this.element.classList.add("request-cookies-view"),this.element.setAttribute("jslog",`${d.pane("cookies").track({resize:!0})}`),this.request=i,this.showFilteredOutCookiesSetting=t.Settings.Settings.instance().createSetting("show-filtered-out-request-cookies",!1),this.emptyWidget=new e.EmptyWidget.EmptyWidget(Te(Se.thisRequestHasNoCookies),""),this.emptyWidget.show(this.element),this.requestCookiesTitle=this.element.createChild("div");const o=this.requestCookiesTitle.createChild("span","request-cookies-title");o.textContent=Te(Se.requestCookies),e.Tooltip.Tooltip.install(o,Te(Se.cookiesThatWereSentToTheServerIn));const s=e.SettingsUI.createSettingCheckbox(Te(Se.showFilteredOutRequestCookies),this.showFilteredOutCookiesSetting);s.checkboxElement.addEventListener("change",(()=>{this.refreshRequestCookiesView()})),this.requestCookiesTitle.appendChild(s),this.requestCookiesEmpty=this.element.createChild("div","cookies-panel-item"),this.requestCookiesEmpty.textContent=Te(Se.noRequestCookiesWereSent),this.requestCookiesTable=new T.CookiesTable.CookiesTable(!0),this.requestCookiesTable.contentElement.classList.add("cookie-table","cookies-panel-item"),this.requestCookiesTable.show(this.element),this.siteHasCookieInOtherPartition=this.element.createChild("div","cookies-panel-item site-has-cookies-in-other-partition"),this.siteHasCookieInOtherPartition.appendChild(r.i18n.getFormatLocalizedString(ye,Se.siteHasCookieInOtherPartition,{PH1:e.XLink.XLink.create("https://developer.chrome.com/en/docs/privacy-sandbox/chips/",Te(Se.learnMore),void 0,void 0,"learn-more")})),this.responseCookiesTitle=this.element.createChild("div","request-cookies-title"),this.responseCookiesTitle.textContent=Te(Se.responseCookies),this.responseCookiesTitle.title=Te(Se.cookiesThatWereReceivedFromThe),this.responseCookiesTable=new T.CookiesTable.CookiesTable(!0),this.responseCookiesTable.contentElement.classList.add("cookie-table","cookies-panel-item"),this.responseCookiesTable.show(this.element),this.malformedResponseCookiesTitle=this.element.createChild("div","request-cookies-title"),this.malformedResponseCookiesTitle.textContent=Te(Se.malformedResponseCookies),e.Tooltip.Tooltip.install(this.malformedResponseCookiesTitle,Te(Se.cookiesThatWereReceivedFromTheServer)),this.malformedResponseCookiesList=this.element.createChild("div")}getRequestCookies(){const e=new Map,t=new Map,i=this.request.includedRequestCookies().map((e=>e.cookie));if(this.showFilteredOutCookiesSetting.get())for(const t of this.request.blockedRequestCookies())e.set(t.cookie,t.blockedReasons.map((e=>({attribute:n.NetworkRequest.cookieBlockedReasonToAttribute(e),uiString:n.NetworkRequest.cookieBlockedReasonToUiString(e)})))),i.push(t.cookie);for(const e of this.request.includedRequestCookies())e.exemptionReason&&t.set(e.cookie,{uiString:n.NetworkRequest.cookieExemptionReasonToUiString(e.exemptionReason)});return{requestCookies:i,requestCookieToBlockedReasons:e,requestCookieToExemptionReason:t}}getResponseCookies(){let e=[];const t=new Map,i=new Map,r=[];if(this.request.responseCookies.length){e=this.request.nonBlockedResponseCookies();for(const i of this.request.blockedResponseCookies()){const o=n.CookieParser.CookieParser.parseSetCookie(i.cookieLine);if(o&&!o.length||i.blockedReasons.includes("SyntaxError")||i.blockedReasons.includes("NameValuePairExceedsMaxSize")){r.push(i);continue}let s=i.cookie;!s&&o&&(s=o[0]),s&&(t.set(s,i.blockedReasons.map((e=>({attribute:n.NetworkRequest.setCookieBlockedReasonToAttribute(e),uiString:n.NetworkRequest.setCookieBlockedReasonToUiString(e)})))),e.push(s))}for(const t of this.request.exemptedResponseCookies()){const r=e.find((e=>t.cookieLine===e.getCookieLine()));r&&i.set(r,{uiString:n.NetworkRequest.cookieExemptionReasonToUiString(t.exemptionReason)})}}return{responseCookies:e,responseCookieToBlockedReasons:t,responseCookieToExemptionReason:i,malformedResponseCookies:r}}refreshRequestCookiesView(){if(!this.isShowing())return;this.request.hasRequestCookies()||this.request.responseCookies.length?this.emptyWidget.hideWidget():this.emptyWidget.showWidget();const{requestCookies:t,requestCookieToBlockedReasons:i,requestCookieToExemptionReason:r}=this.getRequestCookies(),{responseCookies:o,responseCookieToBlockedReasons:s,responseCookieToExemptionReason:a,malformedResponseCookies:l}=this.getResponseCookies();if(t.length?(this.requestCookiesTitle.classList.remove("hidden"),this.requestCookiesEmpty.classList.add("hidden"),this.requestCookiesTable.showWidget(),this.requestCookiesTable.setCookies(t,i,r)):this.request.blockedRequestCookies().length?(this.requestCookiesTitle.classList.remove("hidden"),this.requestCookiesEmpty.classList.remove("hidden"),this.requestCookiesTable.hideWidget()):(this.requestCookiesTitle.classList.add("hidden"),this.requestCookiesEmpty.classList.add("hidden"),this.requestCookiesTable.hideWidget()),o.length?(this.responseCookiesTitle.classList.remove("hidden"),this.responseCookiesTable.showWidget(),this.responseCookiesTable.setCookies(o,s,a)):(this.responseCookiesTitle.classList.add("hidden"),this.responseCookiesTable.hideWidget()),l.length){this.malformedResponseCookiesTitle.classList.remove("hidden"),this.malformedResponseCookiesList.classList.remove("hidden"),this.malformedResponseCookiesList.removeChildren();for(const t of l){const i=this.malformedResponseCookiesList.createChild("span","cookie-line source-code"),r=new k.Icon.Icon;r.data={iconName:"cross-circle-filled",color:"var(--icon-error)",width:"14px",height:"14px"},r.classList.add("cookie-warning-icon"),i.appendChild(r),e.UIUtils.createTextChild(i,t.cookieLine),t.blockedReasons.includes("NameValuePairExceedsMaxSize")?i.title=n.NetworkRequest.setCookieBlockedReasonToUiString("NameValuePairExceedsMaxSize"):i.title=n.NetworkRequest.setCookieBlockedReasonToUiString("SyntaxError")}}else this.malformedResponseCookiesTitle.classList.add("hidden"),this.malformedResponseCookiesList.classList.add("hidden");this.request.siteHasCookieInOtherPartition()?this.siteHasCookieInOtherPartition.classList.remove("hidden"):this.siteHasCookieInOtherPartition.classList.add("hidden")}wasShown(){super.wasShown(),this.request.addEventListener(n.NetworkRequest.Events.REQUEST_HEADERS_CHANGED,this.refreshRequestCookiesView,this),this.request.addEventListener(n.NetworkRequest.Events.RESPONSE_HEADERS_CHANGED,this.refreshRequestCookiesView,this),this.refreshRequestCookiesView()}willHide(){this.request.removeEventListener(n.NetworkRequest.Events.REQUEST_HEADERS_CHANGED,this.refreshRequestCookiesView,this),this.request.removeEventListener(n.NetworkRequest.Events.RESPONSE_HEADERS_CHANGED,this.refreshRequestCookiesView,this)}}var Re=Object.freeze({__proto__:null,RequestCookiesView:xe}),Ie={cssText:`.request-initiator-view{display:flex;margin:6px}\n/*# sourceURL=${import.meta.resolve("./requestInitiatorView.css")} */\n`},qe={cssText:`.request-initiator-view-tree{user-select:text;& .fill{right:-6px}}.request-initiator-view-section-title{font-weight:bold;padding:4px}.request-initiator-view-section-title:focus-visible{background-color:var(--sys-color-state-focus-highlight)}@media (forced-colors: active){.request-initiator-view-section-title:focus-visible{forced-color-adjust:none;background-color:Highlight;color:HighlightText}}\n/*# sourceURL=${import.meta.resolve("./requestInitiatorViewTree.css")} */\n`};const Le={noInitiator:"No initiator data",requestCallStack:"Request call stack",requestInitiatorChain:"Request initiator chain"},Fe=r.i18n.registerUIStrings("panels/network/RequestInitiatorView.ts",Le),Ee=r.i18n.getLocalizedString.bind(void 0,Fe);class He extends e.Widget.VBox{linkifier;request;emptyWidget;hasShown;constructor(t){super(),this.element.classList.add("request-initiator-view"),this.element.setAttribute("jslog",`${d.pane("initiator").track({resize:!0})}`),this.linkifier=new b.Linkifier.Linkifier,this.request=t,this.emptyWidget=new e.EmptyWidget.EmptyWidget(Ee(Le.noInitiator),""),this.emptyWidget.show(this.element),this.hasShown=!1}static createStackTracePreview(e,t,i){const r=e.initiator();if(!r?.stack)return null;const o=n.NetworkManager.NetworkManager.forRequest(e),s=o?o.target():null;return b.JSPresentationUtils.buildStackTracePreviewContents(s,t,{stackTrace:r.stack,tabStops:i})}createTree(){const t=new e.TreeOutline.TreeOutlineInShadow;return t.registerRequiredCSS(qe),t.contentElement.classList.add("request-initiator-view-tree"),t.contentElement.setAttribute("jslog",`${d.tree("initiator-tree")}`),t}buildRequestChainTree(t,i,r){const o=new e.TreeOutline.TreeElement(i);r.appendChild(o),o.titleElement instanceof HTMLElement&&o.titleElement.classList.add("request-initiator-view-section-title");const s=t.initiators;let n=o;for(const t of Array.from(s).reverse()){const i=new e.TreeOutline.TreeElement(t.url());n.appendChild(i),n.expand(),n=i}o.expand(),n.select();const a=n.titleElement;a instanceof HTMLElement&&(a.style.fontWeight="bold");const l=t.initiated;return this.depthFirstSearchTreeBuilder(l,n,this.request),o}depthFirstSearchTreeBuilder(t,i,r){const o=new Set;o.add(this.request);for(const s of t.keys())if(t.get(s)===r){const r=new e.TreeOutline.TreeElement(s.url());i.appendChild(r),i.expand(),o.has(s)||(o.add(s),this.depthFirstSearchTreeBuilder(t,r,s))}}buildStackTraceSection(t,i,r){const o=new e.TreeOutline.TreeElement(i);r.appendChild(o),o.titleElement instanceof HTMLElement&&o.titleElement.classList.add("request-initiator-view-section-title");const s=new e.TreeOutline.TreeElement(t,!1);s.selectable=!1,o.appendChild(s),o.expand()}wasShown(){if(this.hasShown)return;this.registerRequiredCSS(Ie);let e=!1;const t=this.createTree(),i=He.createStackTracePreview(this.request,this.linkifier,!0);i&&(e=!0,this.buildStackTraceSection(i.element,Ee(Le.requestCallStack),t));const r=a.NetworkLog.NetworkLog.instance().initiatorGraphForRequest(this.request);(r.initiators.size>1||r.initiated.size>1)&&(e=!0,this.buildRequestChainTree(r,Ee(Le.requestInitiatorChain),t));const o=t.firstChild();o&&o.select(!0),e&&(this.element.appendChild(t.element),this.emptyWidget.hideWidget()),this.hasShown=!0}}var Pe=Object.freeze({__proto__:null,RequestInitiatorView:He}),Ae={cssText:`.object-properties-section-dimmed{opacity:60%}.object-properties-section{padding:0;color:var(--sys-color-on-surface);display:flex;flex-direction:column}.object-properties-section li{user-select:text;&::before{margin-right:2px}}.object-properties-section li.editing-sub-part{padding:3px 12px 8px 6px;margin:-1px -6px -8px;text-overflow:clip}.object-properties-section li.editing{margin-left:10px;text-overflow:clip}.tree-outline ol.title-less-mode{padding-left:0}.object-properties-section .own-property{font-weight:bold}.object-properties-section .synthetic-property{color:var(--sys-color-token-subtle)}.object-properties-section .private-property-hash{color:var(--sys-color-on-surface)}.object-properties-section-root-element{display:flex;flex-direction:row}.object-properties-section .editable-div{overflow:hidden}.name-and-value{overflow:hidden;line-height:16px;display:flex;white-space:nowrap}.name-and-value .separator{white-space:pre;flex-shrink:0}.editing-sub-part .name-and-value{overflow:visible;display:inline-flex}.property-prompt{margin-left:4px}.tree-outline.hide-selection-when-blurred .selected:focus-visible{background:none}.tree-outline.hide-selection-when-blurred .selected:focus-visible ::slotted(*),\n.tree-outline.hide-selection-when-blurred .selected:focus-visible .tree-element-title,\n.tree-outline.hide-selection-when-blurred .selected:focus-visible .name-and-value,\n.tree-outline.hide-selection-when-blurred .selected:focus-visible .gray-info-message{background:var(--sys-color-state-focus-highlight);border-radius:2px}@media (forced-colors: active){.object-properties-section-dimmed{opacity:100%}.tree-outline.hide-selection-when-blurred .selected:focus-visible{background:Highlight}.tree-outline li:hover .tree-element-title,\n .tree-outline li.selected .tree-element-title{color:ButtonText}.tree-outline.hide-selection-when-blurred .selected:focus-visible .tree-element-title,\n .tree-outline.hide-selection-when-blurred .selected:focus-visible .name-and-value{background:transparent;box-shadow:none}.tree-outline.hide-selection-when-blurred .selected:focus-visible span,\n .tree-outline.hide-selection-when-blurred .selected:focus-visible .gray-info-message{color:HighlightText}.tree-outline-disclosure:hover li.parent::before{background-color:ButtonText}}\n/*# sourceURL=${import.meta.resolve("./objectPropertiesSection.css")} */\n`},Me={cssText:`.value.object-value-node:hover{background-color:var(--sys-color-state-hover-on-subtle)}.object-value-function-prefix,\n.object-value-boolean{color:var(--sys-color-token-attribute-value)}.object-value-function{font-style:italic}.object-value-function.linkified:hover{--override-linkified-hover-background:rgb(0 0 0/10%);background-color:var(--override-linkified-hover-background);cursor:pointer}.theme-with-dark-background .object-value-function.linkified:hover,\n:host-context(.theme-with-dark-background) .object-value-function.linkified:hover{--override-linkified-hover-background:rgb(230 230 230/10%)}.object-value-number{color:var(--sys-color-token-attribute-value)}.object-value-bigint{color:var(--sys-color-token-comment)}.object-value-string,\n.object-value-regexp,\n.object-value-symbol{white-space:pre;unicode-bidi:-webkit-isolate;color:var(--sys-color-token-property-special)}.object-value-node{position:relative;vertical-align:baseline;color:var(--sys-color-token-variable);white-space:nowrap}.object-value-null,\n.object-value-undefined{color:var(--sys-color-state-disabled)}.object-value-unavailable{color:var(--sys-color-token-tag)}.object-value-calculate-value-button:hover{text-decoration:underline}.object-properties-section-custom-section{display:inline-flex;flex-direction:column}.theme-with-dark-background .object-value-number,\n:host-context(.theme-with-dark-background) .object-value-number,\n.theme-with-dark-background .object-value-boolean,\n:host-context(.theme-with-dark-background) .object-value-boolean{--override-primitive-dark-mode-color:hsl(252deg 100% 75%);color:var(--override-primitive-dark-mode-color)}.object-properties-section .object-description{color:var(--sys-color-token-subtle)}.value .object-properties-preview{white-space:nowrap}.name{color:var(--sys-color-token-tag);flex-shrink:0}.object-properties-preview .name{color:var(--sys-color-token-subtle)}@media (forced-colors: active){.object-value-calculate-value-button:hover{forced-color-adjust:none;color:Highlight}}\n/*# sourceURL=${import.meta.resolve("./objectValue.css")} */\n`},Ne={cssText:`.tree-outline{padding-left:0}.tree-outline > ol{padding-bottom:5px;border-bottom:solid 1px var(--sys-color-divider)}.tree-outline > .parent{user-select:none;font-weight:bold;color:var(--sys-color-on-surface);margin-top:-1px;display:flex;align-items:center;height:var(--sys-size-13)}.tree-outline li{padding-left:5px;line-height:20px}.tree-outline li:not(.parent){margin-left:10px;display:block;&:has(.payload-name){margin:var(--sys-size-3) 0;display:grid;grid-template-columns:min-content 1fr;gap:var(--sys-size-6)}}.tree-outline li:not(.parent)::before{display:none}.tree-outline li.expanded .payload-count{display:none}.tree-outline li .payload-toggle{display:none}.tree-outline li.expanded .payload-toggle{display:inline;margin-left:30px;font-weight:normal}.tree-outline li.expanded .payload-toggle:focus-visible{border:2px solid var(--sys-color-state-focus-ring);border-radius:5px}.tree-outline li .header-toggle:hover{color:var(--sys-color-token-subtle)}.tree-outline .payload-name{color:var(--sys-color-on-surface-subtle);font:var(--sys-typescale-body5-medium);white-space:pre-wrap;align-self:start;min-width:150px;line-height:18px}.tree-outline .payload-value{display:inline;white-space:pre-wrap;word-break:break-all;font:var(--sys-typescale-body4-regular);line-height:18px}.tree-outline .empty-request-payload{color:var(--sys-color-state-disabled)}.request-payload-show-more-button{margin:0 4px}@media (forced-colors: active){:host-context(.request-payload-tree) ol.tree-outline:not(.hide-selection-when-blurred) li.selected:focus{background:Highlight}:host-context(.request-payload-tree) ol.tree-outline:not(.hide-selection-when-blurred) li::before{background-color:ButtonText}:host-context(.request-payload-tree) ol.tree-outline:not(.hide-selection-when-blurred) li.selected.parent::before{background-color:HighlightText}:host-context(.request-payload-tree) ol.tree-outline:not(.hide-selection-when-blurred) li.selected *,\n :host-context(.request-payload-tree) ol.tree-outline:not(.hide-selection-when-blurred) li.selected.parent,\n :host-context(.request-payload-tree) ol.tree-outline:not(.hide-selection-when-blurred) li.selected.parent span{color:HighlightText}}.payload-decode-error{color:var(--sys-color-error)}\n/*# sourceURL=${import.meta.resolve("./requestPayloadTree.css")} */\n`},Ue={cssText:`.request-payload-view{user-select:text;overflow:auto}.request-payload-tree{flex-grow:1;overflow-y:auto;margin:0}\n/*# sourceURL=${import.meta.resolve("./requestPayloadView.css")} */\n`};const Be={copyValue:"Copy value",copyPayload:"Copy",requestPayload:"Request Payload",unableToDecodeValue:"(unable to decode value)",queryStringParameters:"Query String Parameters",formData:"Form Data",showMore:"Show more",viewParsed:"View parsed",empty:"(empty)",viewSource:"View source",viewUrlEncoded:"View URL-encoded",viewDecoded:"View decoded"},Ve=r.i18n.registerUIStrings("panels/network/RequestPayloadView.ts",Be),We=r.i18n.getLocalizedString.bind(void 0,Ve);class Oe extends e.Widget.VBox{request;decodeRequestParameters;queryStringCategory;formDataCategory;requestPayloadCategory;constructor(t){super(),this.registerRequiredCSS(Ue),this.element.classList.add("request-payload-view"),this.element.setAttribute("jslog",`${d.pane("payload").track({resize:!0})}`),this.request=t,this.decodeRequestParameters=!0;const i=t.requestContentType();i&&(this.decodeRequestParameters=Boolean(i.match(/^application\/x-www-form-urlencoded\s*(;.*)?$/i)));const r=new e.TreeOutline.TreeOutlineInShadow;r.registerRequiredCSS(Me,Ae,Ne),r.element.classList.add("request-payload-tree"),r.makeDense(),this.element.appendChild(r.element),this.queryStringCategory=new Ge(r,"query-string"),this.formDataCategory=new Ge(r,"form-data"),this.requestPayloadCategory=new Ge(r,"request-payload",We(Be.requestPayload))}wasShown(){super.wasShown(),this.request.addEventListener(n.NetworkRequest.Events.REQUEST_HEADERS_CHANGED,this.refreshFormData,this),this.refreshQueryString(),this.refreshFormData()}willHide(){this.request.removeEventListener(n.NetworkRequest.Events.REQUEST_HEADERS_CHANGED,this.refreshFormData,this)}addEntryContextMenuHandler(t,r,o,s){t.listItemElement.addEventListener("contextmenu",(t=>{t.consume(!0);const n=new e.ContextMenu.ContextMenu(t);n.clipboardSection().appendItem(r,(()=>{i.userMetrics.actionTaken(i.UserMetrics.Action.NetworkPanelCopyValue),i.InspectorFrontendHost.InspectorFrontendHostInstance.copyText(s())}),{jslogContext:o}),n.show()}))}static formatParameter(e,t,i){let r=!1;if(i&&(e=e.replace(/\+/g," ")).indexOf("%")>=0)try{e=decodeURIComponent(e)}catch{r=!0}const o=document.createElement("div");return t&&(o.className=t),""===e&&o.classList.add("empty-value"),r?o.createChild("span","payload-decode-error").textContent=We(Be.unableToDecodeValue):o.textContent=e,o}refreshQueryString(){const e=this.request.queryString(),t=this.request.queryParameters;this.queryStringCategory.hidden=!t,t&&this.refreshParams(We(Be.queryStringParameters),t,e,this.queryStringCategory)}async refreshFormData(){const e=await this.request.requestFormData();if(!e)return this.formDataCategory.hidden=!0,void(this.requestPayloadCategory.hidden=!0);const t=await this.request.formParameters();if(t)this.formDataCategory.hidden=!1,this.requestPayloadCategory.hidden=!0,this.refreshParams(We(Be.formData),t,e,this.formDataCategory);else{this.requestPayloadCategory.hidden=!1,this.formDataCategory.hidden=!0;try{const t=JSON.parse(e);this.refreshRequestJSONPayload(t,e)}catch{this.populateTreeElementWithSourceText(this.requestPayloadCategory,e)}}}populateTreeElementWithSourceText(t,i){const r=(i||"").trim(),o=r.length>3e3,s=document.createElement("span");s.classList.add("payload-value"),s.classList.add("source-code"),s.textContent=o?r.substr(0,3e3):r;const n=new e.TreeOutline.TreeElement(s);if(t.removeChildren(),t.appendChild(n),this.addEntryContextMenuHandler(n,We(Be.copyPayload),"copy-payload",(()=>r)),!o)return;const a=new l.Button.Button;function d(){a.remove(),s.textContent=r,n.listItemElement.removeEventListener("contextmenu",c)}function c(t){const i=new e.ContextMenu.ContextMenu(t);i.newSection().appendItem(We(Be.showMore),d,{jslogContext:"show-more"}),i.show()}a.data={variant:"outlined",jslogContext:"show-more"},a.innerText=We(Be.showMore),a.classList.add("request-payload-show-more-button"),a.addEventListener("click",d),n.listItemElement.addEventListener("contextmenu",c),s.appendChild(a)}refreshParams(t,i,r,o){o.removeChildren(),o.listItemElement.removeChildren(),o.listItemElement.createChild("div","selection fill"),e.UIUtils.createTextChild(o.listItemElement,t);const s=document.createElement("span");s.classList.add("payload-count");const n=i?i.length:0;s.textContent=` (${n})`,o.listItemElement.appendChild(s);De.has(o)?this.appendParamsSource(t,i,r,o):this.appendParamsParsed(t,i,r,o)}appendParamsSource(t,i,r,o){this.populateTreeElementWithSourceText(o,r);const s=o.listItemElement,n=function(e){s.removeEventListener("contextmenu",a),De.delete(o),this.refreshParams(t,i,r,o),e.consume()},a=t=>{if(!o.expanded)return;const i=new e.ContextMenu.ContextMenu(t);i.newSection().appendItem(We(Be.viewParsed),n.bind(this,t),{jslogContext:"view-parsed"}),i.show()},l=this.createViewSourceToggle(!0,n.bind(this));s.appendChild(l),s.addEventListener("contextmenu",a)}appendParamsParsed(t,i,r,o){for(const t of i||[]){const i=document.createDocumentFragment();if(""!==t.name){const e=Oe.formatParameter(t.name,"payload-name",this.decodeRequestParameters),r=Oe.formatParameter(t.value,"payload-value source-code",this.decodeRequestParameters);i.appendChild(e),i.appendChild(r)}else i.appendChild(Oe.formatParameter(We(Be.empty),"empty-request-payload",this.decodeRequestParameters));const r=new e.TreeOutline.TreeElement(i);this.addEntryContextMenuHandler(r,We(Be.copyValue),"copy-value",(()=>decodeURIComponent(t.value))),o.appendChild(r)}const s=o.listItemElement,n=function(e){s.removeEventListener("contextmenu",l),De.add(o),this.refreshParams(t,i,r,o),e.consume()},a=function(e){s.removeEventListener("contextmenu",l),this.toggleURLDecoding(e)},l=t=>{if(!o.expanded)return;const i=new e.ContextMenu.ContextMenu(t),r=i.newSection();r.appendItem(We(Be.viewSource),n.bind(this,t),{jslogContext:"view-source"});const s=this.decodeRequestParameters?We(Be.viewUrlEncoded):We(Be.viewDecoded);r.appendItem(s,a.bind(this,t),{jslogContext:"toggle-url-decoding"}),i.show()},d=this.createViewSourceToggle(!1,n.bind(this));s.appendChild(d);const c=this.decodeRequestParameters?We(Be.viewUrlEncoded):We(Be.viewDecoded),h=e.UIUtils.createTextButton(c,a.bind(this),{jslogContext:"decode-encode",className:"payload-toggle"});s.appendChild(h),s.addEventListener("contextmenu",l)}refreshRequestJSONPayload(t,i){const r=this.requestPayloadCategory;r.removeChildren();const o=r.listItemElement;o.removeChildren(),o.createChild("div","selection fill"),e.UIUtils.createTextChild(o,this.requestPayloadCategory.title.toString()),De.has(r)?this.appendJSONPayloadSource(r,t,i):this.appendJSONPayloadParsed(r,t,i)}appendJSONPayloadSource(t,i,r){const o=t.listItemElement;this.populateTreeElementWithSourceText(t,r);const s=function(e){o.removeEventListener("contextmenu",a),De.delete(t),this.refreshRequestJSONPayload(i,r),e.consume()},n=this.createViewSourceToggle(!0,s.bind(this));o.appendChild(n);const a=i=>{if(!t.expanded)return;const r=new e.ContextMenu.ContextMenu(i);r.newSection().appendItem(We(Be.viewParsed),s.bind(this,i),{jslogContext:"view-parsed"}),r.show()};o.addEventListener("contextmenu",a)}appendJSONPayloadParsed(t,i,r){const o=n.RemoteObject.RemoteObject.fromLocalObject(i),s=new x.ObjectPropertiesSection.RootElement(o);s.title=o.description,s.expand(),s.editable=!1,t.childrenListElement.classList.add("source-code","object-properties-section"),t.appendChild(s);const a=t.listItemElement,l=function(e){a.removeEventListener("contextmenu",d),De.add(t),this.refreshRequestJSONPayload(i,r),e.consume()},d=i=>{if(!t.expanded)return;const r=new e.ContextMenu.ContextMenu(i);r.newSection().appendItem(We(Be.viewSource),l.bind(this,i),{jslogContext:"view-source"}),r.show()},c=this.createViewSourceToggle(!1,l.bind(this));a.appendChild(c),a.addEventListener("contextmenu",d)}createViewSourceToggle(t,i){const r=We(t?Be.viewParsed:Be.viewSource);return e.UIUtils.createTextButton(r,i,{jslogContext:"source-parse",className:"payload-toggle"})}toggleURLDecoding(e){this.decodeRequestParameters=!this.decodeRequestParameters,this.refreshQueryString(),this.refreshFormData(),e.consume()}}const De=new WeakSet;let Ge=class extends e.TreeOutline.TreeElement{toggleOnClick;expandedSetting;expanded;constructor(e,i,r){super(r||"",!0),this.toggleOnClick=!0,this.hidden=!0,this.expandedSetting=t.Settings.Settings.instance().createSetting("request-info-"+i+"-category-expanded",!0),this.expanded=this.expandedSetting.get(),this.listItemElement.setAttribute("jslog",`${d.section().context(i)}`),e.appendChild(this)}createLeaf(){const t=new e.TreeOutline.TreeElement;return this.appendChild(t),t}onexpand(){this.expandedSetting.set(!0)}oncollapse(){this.expandedSetting.set(!1)}};var je=Object.freeze({__proto__:null,Category:Ge,RequestPayloadView:Oe}),ze={cssText:`.html-preview-frame{box-shadow:var(--drop-shadow);background:var(--ref-palette-neutral100);color-scheme:light;flex-grow:1;margin:20px}\n/*# sourceURL=${import.meta.resolve("./requestHTMLView.css")} */\n`};class _e extends e.Widget.VBox{dataURL;constructor(e){super(!0),this.registerRequiredCSS(ze),this.dataURL=e,this.contentElement.classList.add("html","request-view")}static create(e){const t=e.asDataUrl();return t?new _e(t):null}wasShown(){super.wasShown(),this.createIFrame()}willHide(){this.contentElement.removeChildren()}createIFrame(){this.contentElement.removeChildren();const t=document.createElement("iframe");t.className="html-preview-frame",t.setAttribute("sandbox",""),t.setAttribute("csp","default-src 'none';img-src data:;style-src 'unsafe-inline'"),t.setAttribute("src",this.dataURL),t.tabIndex=-1,e.ARIAUtils.markAsPresentation(t),this.contentElement.appendChild(t)}}var Ke=Object.freeze({__proto__:null,RequestHTMLView:_e});const $e={noPreview:"Nothing to preview",thisRequestHasNoResponseData:"This request has no response data available",failedToLoadResponseData:"Failed to load response data"},Xe=r.i18n.registerUIStrings("panels/network/RequestResponseView.ts",$e),Je=r.i18n.getLocalizedString.bind(void 0,Xe);class Ye extends e.Widget.VBox{request;contentViewPromise;constructor(e){super(),this.element.classList.add("request-view"),this.element.setAttribute("jslog",`${d.pane("response").track({resize:!0})}`),this.request=e,this.contentViewPromise=null}static#t(e,r){let s,n=Qe.get(e);if(void 0!==n)return n;s="application/json"===t.ResourceType.ResourceType.simplifyContentType(e.mimeType)?e.mimeType:e.resourceType().canonicalMimeType()||e.mimeType;const a="application/wasm"===r.mimeType,l=!(a||!r.isTextContent)&&R.TextUtils.isMinified(r.content().text),d=t.ResourceType.ResourceType.mediaTypeForMetrics(s,e.resourceType().isFromSourceMap(),l,!1,!1);return i.userMetrics.networkPanelResponsePreviewOpened(d),n=r.isTextContent||a?o.ResourceSourceFrame.ResourceSourceFrame.createSearchableView(e,s):new V(r,e.url(),e.resourceType()),Qe.set(e,n),n}wasShown(){this.doShowPreview()}doShowPreview(){return this.contentViewPromise||(this.contentViewPromise=this.showPreview()),this.contentViewPromise}async showPreview(){const e=await this.createPreview();return e.show(this.element),e}async createPreview(){const t=await this.request.requestStreamingContent();if(R.StreamingContentData.isError(t))return new e.EmptyWidget.EmptyWidget(Je($e.failedToLoadResponseData),t.error);const i=Ye.#t(this.request,t);return i&&204!==this.request.statusCode?i:new e.EmptyWidget.EmptyWidget(Je($e.noPreview),Je($e.thisRequestHasNoResponseData))}async revealPosition(e){const t=await this.doShowPreview();t instanceof o.ResourceSourceFrame.SearchableContainer&&t.revealPosition(e)}}const Qe=new WeakMap;var Ze=Object.freeze({__proto__:null,RequestResponseView:Ye}),et={cssText:`.tree-outline{padding-left:0}.tree-outline > ol{padding-bottom:5px;border-bottom:solid 1px var(--sys-color-divider)}.tree-outline > .parent{user-select:none;font-weight:bold;color:var(--sys-color-on-surface);margin-top:-1px;display:flex;align-items:center;height:26px}.tree-outline li{padding-left:5px;line-height:20px}.tree-outline li:not(.parent){display:block;margin-left:10px}.tree-outline li:not(.parent)::before{display:none}.tree-outline .header-name{color:var(--sys-color-token-subtle);display:inline-block;margin-right:0.25em;font-weight:bold;vertical-align:top;white-space:pre-wrap}.tree-outline .header-separator{user-select:none}.tree-outline .header-value{display:inline;margin-right:1em;white-space:pre-wrap;word-break:break-all;margin-top:1px}.tree-outline .header-toggle{display:inline;margin-left:30px;font-weight:normal;color:var(--sys-color-state-disabled)}.tree-outline .header-toggle:hover{color:var(--sys-color-state-hover-on-subtle)}.tree-outline .error-log{color:var(--sys-color-error);display:inline-block;margin-right:0.25em;margin-left:0.25em;font-weight:bold;vertical-align:top;white-space:pre-wrap}.tree-outline .hex-data{display:block;word-break:normal;overflow-wrap:anywhere;margin-left:20px}.tree-outline .error-field{color:var(--sys-color-error)}.prompt-icon{margin-top:2px}\n/*# sourceURL=${import.meta.resolve("./signedExchangeInfoTree.css")} */\n`},tt={cssText:`.signed-exchange-info-view{user-select:text;overflow:auto}.signed-exchange-info-tree{flex-grow:1;overflow-y:auto;margin:0}\n/*# sourceURL=${import.meta.resolve("./signedExchangeInfoView.css")} */\n`};const it={errors:"Errors",signedHttpExchange:"Signed HTTP exchange",learnmore:"Learn more",requestUrl:"Request URL",responseCode:"Response code",headerIntegrityHash:"Header integrity hash",responseHeaders:"Response headers",signature:"Signature",label:"Label",certificateUrl:"Certificate URL",viewCertificate:"View certificate",integrity:"Integrity",certificateSha:"Certificate SHA256",validityUrl:"Validity URL",date:"Date",expires:"Expires",certificate:"Certificate",subject:"Subject",validFrom:"Valid from",validUntil:"Valid until",issuer:"Issuer"},rt=r.i18n.registerUIStrings("panels/network/SignedExchangeInfoView.ts",it),ot=r.i18n.getLocalizedString.bind(void 0,rt);class st extends e.Widget.VBox{responseHeadersItem;constructor(t){super(),this.registerRequiredCSS(tt),console.assert(null!==t.signedExchangeInfo());const r=t.signedExchangeInfo();this.element.classList.add("signed-exchange-info-view");const o=new e.TreeOutline.TreeOutlineInShadow;o.registerRequiredCSS(et),o.element.classList.add("signed-exchange-info-tree"),o.setFocusable(!1),o.makeDense(),o.expandTreeElementsWhenArrowing=!0,this.element.appendChild(o.element);const s=new Map;if(r.errors?.length){const e=new nt(o,ot(it.errors));for(const t of r.errors){const i=document.createDocumentFragment(),r=new k.Icon.Icon;if(r.data={iconName:"cross-circle-filled",color:"var(--icon-error)",width:"14px",height:"14px"},r.classList.add("prompt-icon"),i.appendChild(r),i.createChild("div","error-log").textContent=t.message,e.createLeaf(i),t.errorField){let e=s.get(t.signatureIndex);e||(e=new Set,s.set(t.signatureIndex,e)),e.add(t.errorField)}}}const n=document.createDocumentFragment();n.createChild("div","header-name").textContent=ot(it.signedHttpExchange);const a=e.XLink.XLink.create("https://github.com/WICG/webpackage",ot(it.learnmore),"header-toggle",void 0,"learn-more");n.appendChild(a);const l=new nt(o,n);if(r.header){const n=r.header,a=t.redirectDestination(),d=this.formatHeader(ot(it.requestUrl),n.requestUrl);if(a){const e=b.Linkifier.Linkifier.linkifyRevealable(a,"View request",void 0,void 0,void 0,"redirect-destination-request");e.classList.add("header-toggle"),d.appendChild(e)}l.createLeaf(d),l.createLeaf(this.formatHeader(ot(it.responseCode),String(n.responseCode))),l.createLeaf(this.formatHeader(ot(it.headerIntegrityHash),n.headerIntegrity)),this.responseHeadersItem=l.createLeaf(this.formatHeader(ot(it.responseHeaders),""));const c=n.responseHeaders;for(const t in c){const i=new e.TreeOutline.TreeElement(this.formatHeader(t,c[t]));i.selectable=!1,this.responseHeadersItem.appendChild(i)}this.responseHeadersItem.expand();for(let e=0;e<n.signatures.length;++e){const t=s.get(e)||new Set,r=n.signatures[e],a=new nt(o,ot(it.signature));if(a.createLeaf(this.formatHeader(ot(it.label),r.label)),a.createLeaf(this.formatHeaderForHexData(ot(it.signature),r.signature,t.has("signatureSig"))),r.certUrl){const e=this.formatHeader(ot(it.certificateUrl),r.certUrl,t.has("signatureCertUrl"));if(r.certificates){const t=e.createChild("span","devtools-link header-toggle");t.textContent=ot(it.viewCertificate),t.addEventListener("click",i.InspectorFrontendHost.InspectorFrontendHostInstance.showCertificateViewer.bind(null,r.certificates),!1)}a.createLeaf(e)}a.createLeaf(this.formatHeader(ot(it.integrity),r.integrity,t.has("signatureIntegrity"))),r.certSha256&&a.createLeaf(this.formatHeaderForHexData(ot(it.certificateSha),r.certSha256,t.has("signatureCertSha256"))),a.createLeaf(this.formatHeader(ot(it.validityUrl),r.validityUrl,t.has("signatureValidityUrl"))),a.createLeaf().title=this.formatHeader(ot(it.date),new Date(1e3*r.date).toUTCString(),t.has("signatureTimestamps")),a.createLeaf().title=this.formatHeader(ot(it.expires),new Date(1e3*r.expires).toUTCString(),t.has("signatureTimestamps"))}}if(r.securityDetails){const e=r.securityDetails,t=new nt(o,ot(it.certificate));t.createLeaf(this.formatHeader(ot(it.subject),e.subjectName)),t.createLeaf(this.formatHeader(ot(it.validFrom),new Date(1e3*e.validFrom).toUTCString())),t.createLeaf(this.formatHeader(ot(it.validUntil),new Date(1e3*e.validTo).toUTCString())),t.createLeaf(this.formatHeader(ot(it.issuer),e.issuer))}}formatHeader(e,t,i){const r=document.createDocumentFragment(),o=r.createChild("div","header-name");o.textContent=e+": ",r.createChild("span","header-separator");const s=r.createChild("div","header-value source-code");return s.textContent=t,i&&(o.classList.add("error-field"),s.classList.add("error-field")),r}formatHeaderForHexData(e,t,i){const r=document.createDocumentFragment(),o=r.createChild("div","header-name");o.textContent=e+": ",r.createChild("span","header-separator");const s=r.createChild("div","header-value source-code hex-data");return s.textContent=t.replace(/(.{2})/g,"$1 "),i&&(o.classList.add("error-field"),s.classList.add("error-field")),r}}class nt extends e.TreeOutline.TreeElement{toggleOnClick;expanded;constructor(e,t){super(t,!0),this.selectable=!1,this.toggleOnClick=!0,this.expanded=!0,e.appendChild(this)}createLeaf(t){const i=new e.TreeOutline.TreeElement(t);return i.selectable=!1,this.appendChild(i),i}}var at=Object.freeze({__proto__:null,Category:nt,SignedExchangeInfoView:st});const lt={failedToLoadResponseData:"Failed to load response data",previewNotAvailable:"Preview not available"},dt=r.i18n.registerUIStrings("panels/network/RequestPreviewView.ts",lt),ct=r.i18n.getLocalizedString.bind(void 0,dt);class ht extends Ye{constructor(e){super(e),this.element.setAttribute("jslog",`${d.pane("preview").track({resize:!0})}`)}async showPreview(){const t=await super.showPreview();if(!(t instanceof e.View.SimpleView))return t;const i=this.element.createChild("devtools-toolbar","network-item-preview-toolbar");return t.toolbarItems().then((e=>{e.map((e=>i.appendToolbarItem(e)))})),t}async htmlPreview(){const t=await this.request.requestContentData();if(R.ContentData.ContentData.isError(t))return new e.EmptyWidget.EmptyWidget(ct(lt.failedToLoadResponseData),t.error);if(!new Set(["text/html","text/plain","application/xhtml+xml"]).has(this.request.mimeType))return null;const i=await o.JSONView.JSONView.createView(t.text);return i||_e.create(t)}async createPreview(){if(this.request.signedExchangeInfo())return new st(this.request);if(this.request.webBundleInfo())return S.LegacyWrapper.legacyWrapper(e.Widget.VBox,new y.WebBundleInfoView.WebBundleInfoView(this.request));const t=await this.htmlPreview();if(t)return t;const i=await o.PreviewFactory.PreviewFactory.createPreview(this.request,this.request.mimeType);return i||new e.EmptyWidget.EmptyWidget(ct(lt.previewNotAvailable),"")}}var ut=Object.freeze({__proto__:null,RequestPreviewView:ht}),pt={cssText:`.network-timing-table{width:380px;border-spacing:0;padding-left:10px;padding-right:10px;line-height:initial;table-layout:fixed}.network-timing-start{border-top:5px solid transparent}.network-timing-start th span.network-timing-hidden-header{height:1px;width:1px;position:absolute;overflow:hidden}.network-timing-table-header td,\n.network-timing-footer td{border-top:10px solid transparent}.network-timing-table-header td{color:var(--sys-color-token-subtle)}.network-timing-table td{padding:4px 0}.network-timing-table-header td:last-child{text-align:right}.network-timing-footer td:last-child{font-weight:bold;text-align:right}table.network-timing-table > tr:not(.network-timing-table-header, .network-timing-footer) > td:first-child{padding-left:12px}.network-timing-table col.labels{width:156px}.network-timing-table col.duration{width:80px}.network-timing-table td.caution{font-weight:bold;color:var(--issue-color-yellow);padding:2px 0}.network-timing-table hr.break{background-color:var(--sys-color-divider);border:none;height:1px}.network-timing-row{position:relative;height:15px}.network-timing-bar{position:absolute;min-width:1px;top:0;bottom:0}.network-timing-bar-title{color:var(--sys-color-on-surface);white-space:nowrap;text-align:right}.network-timing-bar.queueing,\n.network-timing-bar.total{border:1px solid var(--sys-color-token-subtle)}.network-timing-bar.blocking,\n.-theme-preserve{background-color:var(--network-overview-blocking)}.network-timing-bar.proxy,\n.-theme-preserve{background-color:var(--override-network-overview-proxy)}.network-timing-bar.dns,\n.-theme-preserve{background-color:var(--sys-color-cyan)}.network-timing-bar.connecting,\n.network-timing-bar.serviceworker,\n.network-timing-bar.serviceworker-preparation,\n.network-timing-bar.serviceworker-routerevaluation,\n.network-timing-bar.serviceworker-cachelookup,\n.-theme-preserve{background-color:var(--network-overview-service-worker)}.network-timing-bar.ssl,\n.-theme-preserve{background-color:var(--network-overview-ssl)}.network-timing-bar.serviceworker-respondwith,\n.-theme-preserve{background-color:var(--network-overview-service-worker-respond-with)}.network-fetch-timing-bar-clickable::before{user-select:none;mask-image:var(--image-file-triangle-right);float:left;width:14px;height:14px;margin-right:2px;content:"";position:relative;background-color:var(--icon-default);transition:transform 200ms}.network-fetch-timing-bar-clickable{position:relative;left:-12px}.network-fetch-timing-bar-clickable:focus-visible{background-color:var(--sys-color-state-focus-highlight)}.network-fetch-timing-bar-clickable[aria-checked="true"]::before{transform:rotate(90deg)}.network-fetch-timing-bar-details-collapsed{display:none}.network-fetch-timing-bar-details-expanded{display:block}.network-fetch-timing-bar-details,\n.router-evaluation-timing-bar-details{padding-left:11px;width:fit-content}.network-fetch-details-treeitem{width:max-content}.network-timing-bar.sending,\n.-theme-preserve{background-color:var(--override-network-overview-sending)}.network-timing-bar.waiting,\n.-theme-preserve{background-color:var(--network-overview-waiting)}.network-timing-bar.receiving,\n.network-timing-bar.receiving-push,\n.-theme-preserve{background-color:var(--network-overview-receiving)}.network-timing-bar.push,\n.-theme-preserve{background-color:var(--network-overview-push)}.server-timing-row:nth-child(even){background:var(--sys-color-surface1)}.network-timing-bar.server-timing,\n.-theme-preserve{background-color:var(--sys-color-neutral-container)}.network-timing-table td.network-timing-metric{white-space:nowrap;max-width:150px;overflow-x:hidden;text-overflow:ellipsis}.network-timing-bar.proxy,\n.network-timing-bar.dns,\n.network-timing-bar.ssl,\n.network-timing-bar.connecting,\n.network-timing-bar.blocking{height:10px;margin:auto}@media (forced-colors: active){.network-timing-bar.blocking,\n .network-timing-bar.proxy,\n .network-timing-bar.dns,\n .network-timing-bar.connecting,\n .network-timing-bar.serviceworker,\n .network-timing-bar.serviceworker-preparation,\n .network-timing-bar.ssl,\n .network-timing-bar.sending,\n .network-timing-bar.waiting,\n .network-timing-bar.receiving,\n .network-timing-bar.receiving-push,\n .network-timing-bar.push,\n .network-timing-bar.server-timing,\n .-theme-preserve{forced-color-adjust:none}.network-timing-table-header td,\n .network-timing-footer td{forced-color-adjust:none;color:ButtonText}}\n/*# sourceURL=${import.meta.resolve("./networkTimingTable.css")} */\n`};const gt={receivingPush:"Receiving `Push`",queueing:"Queueing",stalled:"Stalled",initialConnection:"Initial connection",dnsLookup:"DNS Lookup",proxyNegotiation:"Proxy negotiation",readingPush:"Reading `Push`",contentDownload:"Content Download",requestSent:"Request sent",requestToServiceworker:"Request to `ServiceWorker`",startup:"Startup",respondwith:"respondWith",ssl:"SSL",total:"Total",waitingTtfb:"Waiting for server response",label:"Label",routerEvaluation:"Router Evaluation",routerCacheLookup:"Cache Lookup",waterfall:"Waterfall",duration:"Duration",queuedAtS:"Queued at {PH1}",startedAtS:"Started at {PH1}",serverPush:"Server Push",resourceScheduling:"Resource Scheduling",connectionStart:"Connection Start",requestresponse:"Request/Response",cautionRequestIsNotFinishedYet:"CAUTION: request is not finished yet!",explanation:"Explanation",serverTiming:"Server Timing",time:"TIME",theServerTimingApi:"the Server Timing API",duringDevelopmentYouCanUseSToAdd:"During development, you can use {PH1} to add insights into the server-side timing of this request.",durationC:"DURATION",originalRequest:"Original Request",responseReceived:"Response Received",unknown:"Unknown",sourceOfResponseS:"Source of response: {PH1}",cacheStorageCacheNameS:"Cache storage cache name: {PH1}",cacheStorageCacheNameUnknown:"Cache storage cache name: Unknown",retrievalTimeS:"Retrieval Time: {PH1}",serviceworkerCacheStorage:"`ServiceWorker` cache storage",fromHttpCache:"From HTTP cache",networkFetch:"Network fetch",fallbackCode:"Fallback code",routerMatchedSource:"Matched source: {PH1}",routerActualSource:"Actual source: {PH1}"},mt=r.i18n.registerUIStrings("panels/network/RequestTimingView.ts",gt),wt=r.i18n.getLocalizedString.bind(void 0,mt);class kt extends e.Widget.VBox{request;calculator;lastMinimumBoundary;tableElement;constructor(e,t){super(),this.registerRequiredCSS(pt),this.element.classList.add("resource-timing-view"),this.request=e,this.calculator=t,this.lastMinimumBoundary=-1}static timeRangeTitle(e){switch(e){case"push":return wt(gt.receivingPush);case"queueing":return wt(gt.queueing);case"blocking":return wt(gt.stalled);case"connecting":return wt(gt.initialConnection);case"dns":return wt(gt.dnsLookup);case"proxy":return wt(gt.proxyNegotiation);case"receiving-push":return wt(gt.readingPush);case"receiving":return wt(gt.contentDownload);case"sending":return wt(gt.requestSent);case"serviceworker":return wt(gt.requestToServiceworker);case"serviceworker-preparation":return wt(gt.startup);case"serviceworker-routerevaluation":return wt(gt.routerEvaluation);case"serviceworker-cachelookup":return wt(gt.routerCacheLookup);case"serviceworker-respondwith":return wt(gt.respondwith);case"ssl":return wt(gt.ssl);case"total":return wt(gt.total);case"waiting":return wt(gt.waitingTtfb);default:return e}}static calculateRequestTimeRanges(e,t){const i=[];function r(e,t,r){t<Number.MAX_VALUE&&t<=r&&i.push({name:e,start:t,end:r})}function o(e){for(let t=0;t<e.length;++t)if(e[t]>0)return e[t]}function s(e,t,i){t>=0&&i>=0&&r(e,d+t/1e3,d+i/1e3)}function n(e,t,i){r(e,d+t/1e3,d+i/1e3)}const a=e.timing;if(!a){const t=-1!==e.issueTime()?e.issueTime():-1!==e.startTime?e.startTime:0,o=-1!==e.issueTime()&&-1!==e.startTime&&e.issueTime()!==e.startTime,s=-1===e.responseReceivedTime?o?e.startTime:Number.MAX_VALUE:e.responseReceivedTime,n=-1===e.endTime?Number.MAX_VALUE:e.endTime;r("total",t,n),r("blocking",t,s);return r(-1===e.responseReceivedTime?"connecting":"receiving",s,n),i}const l=e.issueTime(),d=a.requestTime,c=o([e.endTime,e.responseReceivedTime])||d;if(r("total",l<d?l:d,c),a.pushStart){const e=a.pushEnd||c;e>t&&r("push",Math.max(a.pushStart,t),e)}l<d&&r("queueing",l,d);const h=1e3*(e.responseReceivedTime-d);if(e.fetchedViaServiceWorker)s("blocking",0,a.workerStart),s("serviceworker-preparation",a.workerStart,a.workerReady),s("serviceworker-respondwith",a.workerFetchStart,a.workerRespondWithSettled),s("serviceworker",a.workerReady,a.sendEnd),s("waiting",a.sendEnd,h);else if(!a.pushStart){const e=o([a.dnsStart,a.connectStart,a.sendStart,h])||0;s("blocking",0,e),s("proxy",a.proxyStart,a.proxyEnd),s("dns",a.dnsStart,a.dnsEnd),s("connecting",a.connectStart,a.connectEnd),s("ssl",a.sslStart,a.sslEnd),s("sending",a.sendStart,a.sendEnd),s("waiting",Math.max(a.sendEnd,a.connectEnd,a.dnsEnd,a.proxyEnd,e),h)}const{serviceWorkerRouterInfo:u}=e;if(u){if(a.workerRouterEvaluationStart){let e=a.sendStart;"cache"===u?.matchedSourceType&&a.workerCacheLookupStart?e=a.workerCacheLookupStart:"fetch-event"===u?.actualSourceType&&(e=a.workerStart),n("serviceworker-routerevaluation",a.workerRouterEvaluationStart,e)}if(a.workerCacheLookupStart){let e=a.sendStart;"cache"===u?.actualSourceType&&(e=a.receiveHeadersStart),n("serviceworker-cachelookup",a.workerCacheLookupStart,e)}}return-1!==e.endTime&&r(a.pushStart?"receiving-push":"receiving",e.responseReceivedTime,c),i}static createTimingTable(i,o){const s=document.createElement("table");s.classList.add("network-timing-table"),s.setAttribute("jslog",`${d.pane("timing").track({resize:!0})}`);const n=s.createChild("colgroup");n.createChild("col","labels"),n.createChild("col","bars"),n.createChild("col","duration");const a=kt.calculateRequestTimeRanges(i,o.minimumBoundary()),l=a.map((e=>e.start)).reduce(((e,t)=>Math.min(e,t))),c=a.map((e=>e.end)).reduce(((e,t)=>Math.max(e,t))),h=100/(c-l);let u,p,g,m,w=0;const k=s.createChild("thead","network-timing-start"),v=k.createChild("tr"),b=v.createChild("th");b.createChild("span","network-timing-hidden-header").textContent=wt(gt.label),b.scope="col";const f=v.createChild("th");f.createChild("span","network-timing-hidden-header").textContent=wt(gt.waterfall),f.scope="col";const C=v.createChild("th");C.createChild("span","network-timing-hidden-header").textContent=wt(gt.duration),C.scope="col";const S=k.createChild("tr").createChild("td"),y=k.createChild("tr").createChild("td");let T;S.colSpan=y.colSpan=3,e.UIUtils.createTextChild(S,wt(gt.queuedAtS,{PH1:o.formatValue(i.issueTime(),2)})),e.UIUtils.createTextChild(y,wt(gt.startedAtS,{PH1:o.formatValue(i.startTime,2)}));for(let t=0;t<a.length;++t){const i=a[t],n=i.name;if("total"===n){w=i.end-i.start;continue}"push"===n?P(wt(gt.serverPush)):"queueing"===n?m||(m=P(wt(gt.resourceScheduling))):bt.has(n)?u||(u=P(wt(gt.connectionStart))):vt.has(n)?p||(p=P("Service Worker")):g||(g=P(wt(gt.requestresponse)));const d=h*(i.start-l);T=h*(c-i.end);const k=i.end-i.start,v=s.createChild("tr"),b=v.createChild("td");e.UIUtils.createTextChild(b,kt.timeRangeTitle(n));const f=v.createChild("td").createChild("div","network-timing-row"),C=f.createChild("span","network-timing-bar "+n);C.style.left=d+"%",C.style.right=T+"%",C.textContent="​",e.ARIAUtils.setLabel(f,wt(gt.startedAtS,{PH1:o.formatValue(i.start,2)}));v.createChild("td").createChild("div","network-timing-bar-title").textContent=r.TimeUtilities.secondsToString(k,!0),"serviceworker-respondwith"===i.name&&(b.classList.add("network-fetch-timing-bar-clickable"),s.createChild("tr","network-fetch-timing-bar-details"),b.setAttribute("tabindex","0"),b.setAttribute("role","switch"),e.ARIAUtils.setChecked(b,!1)),"serviceworker-routerevaluation"===i.name&&(b.classList.add("network-fetch-timing-bar-clickable"),s.createChild("tr","router-evaluation-timing-bar-details"),b.setAttribute("tabindex","0"),b.setAttribute("role","switch"),e.ARIAUtils.setChecked(b,!1))}if(!i.finished&&!i.preserved){const t=s.createChild("tr").createChild("td","caution");t.colSpan=3,e.UIUtils.createTextChild(t,wt(gt.cautionRequestIsNotFinishedYet))}const x=s.createChild("tr","network-timing-footer"),R=x.createChild("td");R.colSpan=1;const I=e.XLink.XLink.create("https://developer.chrome.com/docs/devtools/network/reference/#timing-explanation",wt(gt.explanation),void 0,void 0,"explanation");R.appendChild(I),x.createChild("td"),e.UIUtils.createTextChild(x.createChild("td"),r.TimeUtilities.secondsToString(w,!0));const q=i.serverTimings,L=void 0===T?100:T,F=s.createChild("tr","network-timing-table-header").createChild("td");F.colSpan=3,F.createChild("hr","break");const E=s.createChild("tr","network-timing-table-header");if(e.UIUtils.createTextChild(E.createChild("td"),wt(gt.serverTiming)),E.createChild("td"),e.UIUtils.createTextChild(E.createChild("td"),wt(gt.time)),!q){const t=s.createChild("tr").createChild("td");t.colSpan=3;const i=e.XLink.XLink.create("https://web.dev/custom-metrics/#server-timing-api",wt(gt.theServerTimingApi),void 0,void 0,"server-timing-api");return t.appendChild(r.i18n.getFormatLocalizedString(mt,gt.duringDevelopmentYouCanUseSToAdd,{PH1:i})),s}return q.filter((e=>"total"!==e.metric.toLowerCase())).forEach((e=>H(e,L))),q.filter((e=>"total"===e.metric.toLowerCase())).forEach((e=>H(e,L))),s;function H(i,o){const n=new t.Color.Generator({min:0,max:360,count:36},{min:50,max:80,count:void 0},80),a="total"===i.metric.toLowerCase(),d=s.createChild("tr",a?"network-timing-footer":"server-timing-row"),u=d.createChild("td","network-timing-metric"),p=i.description||i.metric;e.UIUtils.createTextChild(u,p),e.Tooltip.Tooltip.install(u,p);const g=d.createChild("td").createChild("div","network-timing-row");if(null===i.value)return;const m=h*(c-l-i.value/1e3);if(m>=0){const e=g.createChild("span","network-timing-bar server-timing");e.style.left=m+"%",e.style.right=o+"%",e.textContent="​",a||(e.style.backgroundColor=n.colorForID(i.metric))}d.createChild("td").createChild("div","network-timing-bar-title").textContent=r.TimeUtilities.millisToString(i.value,!0)}function P(t){const i=s.createChild("tr","network-timing-table-header"),r=i.createChild("td");return e.UIUtils.createTextChild(r,t),e.ARIAUtils.markAsHeading(r,2),e.UIUtils.createTextChild(i.createChild("td"),""),e.UIUtils.createTextChild(i.createChild("td"),wt(gt.durationC)),i}}constructFetchDetailsView(){if(!this.tableElement)return;const t=this.tableElement.ownerDocument,i=t.querySelector(".network-fetch-timing-bar-details");if(!i)return;i.classList.add("network-fetch-timing-bar-details-collapsed"),self.onInvokeElement(this.tableElement,this.onToggleFetchDetails.bind(this,i));const r=new e.TreeOutline.TreeOutlineInShadow;i.appendChild(r.element);const o=a.NetworkLog.NetworkLog.instance().originalRequestForURL(this.request.url());if(o){const e=n.RemoteObject.RemoteObject.fromLocalObject(o),t=new x.ObjectPropertiesSection.RootElement(e);t.title=wt(gt.originalRequest),r.appendChild(t)}const s=a.NetworkLog.NetworkLog.instance().originalResponseForURL(this.request.url());if(s){const e=n.RemoteObject.RemoteObject.fromLocalObject(s),t=new x.ObjectPropertiesSection.RootElement(e);t.title=wt(gt.responseReceived),r.appendChild(t)}const l=t.createElement("div");l.classList.add("network-fetch-details-treeitem");let d=wt(gt.unknown);const c=this.request.serviceWorkerResponseSource();c&&(d=this.getLocalizedResponseSourceForCode(c)),l.textContent=wt(gt.sourceOfResponseS,{PH1:d});const h=new e.TreeOutline.TreeElement(l);r.appendChild(h);const u=t.createElement("div");u.classList.add("network-fetch-details-treeitem");const p=this.request.getResponseCacheStorageCacheName();u.textContent=p?wt(gt.cacheStorageCacheNameS,{PH1:p}):wt(gt.cacheStorageCacheNameUnknown);const g=new e.TreeOutline.TreeElement(u);r.appendChild(g);const m=this.request.getResponseRetrievalTime();if(m){const i=t.createElement("div");i.classList.add("network-fetch-details-treeitem"),i.textContent=wt(gt.retrievalTimeS,{PH1:m.toString()});const o=new e.TreeOutline.TreeElement(i);r.appendChild(o)}}getLocalizedResponseSourceForCode(e){switch(e){case"cache-storage":return wt(gt.serviceworkerCacheStorage);case"http-cache":return wt(gt.fromHttpCache);case"network":return wt(gt.networkFetch);default:return wt(gt.fallbackCode)}}onToggleFetchDetails(e,t){if(!t.target)return;const r=t.target;if(r.classList.contains("network-fetch-timing-bar-clickable")){e.classList.contains("network-fetch-timing-bar-details-collapsed")&&i.userMetrics.actionTaken(i.UserMetrics.Action.NetworkPanelServiceWorkerRespondWith);const t="true"===r.getAttribute("aria-checked");r.setAttribute("aria-checked",String(!t)),e.classList.toggle("network-fetch-timing-bar-details-collapsed"),e.classList.toggle("network-fetch-timing-bar-details-expanded")}}constructRouterEvaluationView(){if(!this.tableElement)return;const t=this.tableElement.querySelector(".router-evaluation-timing-bar-details");if(!t)return;t.classList.add("network-fetch-timing-bar-details-collapsed"),self.onInvokeElement(this.tableElement,this.onToggleRouterEvaluationDetails.bind(this,t));const i=new e.TreeOutline.TreeOutlineInShadow;t.appendChild(i.element);const{serviceWorkerRouterInfo:r}=this.request;if(!r)return;const o=this.tableElement.ownerDocument,s=o.createElement("div");s.classList.add("network-fetch-details-treeitem");const n=r.matchedSourceType,a=String(n)||wt(gt.unknown);s.textContent=wt(gt.routerMatchedSource,{PH1:a});const l=new e.TreeOutline.TreeElement(s);i.appendChild(l);const d=o.createElement("div");d.classList.add("network-fetch-details-treeitem");const c=r.actualSourceType,h=String(c)||wt(gt.unknown);d.textContent=wt(gt.routerActualSource,{PH1:h});const u=new e.TreeOutline.TreeElement(d);i.appendChild(u)}onToggleRouterEvaluationDetails(e,t){if(!t.target)return;const i=t.target;if(i.classList.contains("network-fetch-timing-bar-clickable")){const t="true"===i.getAttribute("aria-checked");i.setAttribute("aria-checked",String(!t)),e.classList.toggle("network-fetch-timing-bar-details-collapsed"),e.classList.toggle("network-fetch-timing-bar-details-expanded")}}wasShown(){this.request.addEventListener(n.NetworkRequest.Events.TIMING_CHANGED,this.refresh,this),this.request.addEventListener(n.NetworkRequest.Events.FINISHED_LOADING,this.refresh,this),this.calculator.addEventListener("BoundariesChanged",this.boundaryChanged,this),this.refresh()}willHide(){this.request.removeEventListener(n.NetworkRequest.Events.TIMING_CHANGED,this.refresh,this),this.request.removeEventListener(n.NetworkRequest.Events.FINISHED_LOADING,this.refresh,this),this.calculator.removeEventListener("BoundariesChanged",this.boundaryChanged,this)}refresh(){this.tableElement&&this.tableElement.remove(),this.tableElement=kt.createTimingTable(this.request,this.calculator),this.tableElement.classList.add("resource-timing-table"),this.element.appendChild(this.tableElement),this.request.fetchedViaServiceWorker&&this.constructFetchDetailsView(),this.request.serviceWorkerRouterInfo&&this.constructRouterEvaluationView()}boundaryChanged(){const e=this.calculator.minimumBoundary();e!==this.lastMinimumBoundary&&(this.lastMinimumBoundary=e,this.refresh())}}const vt=new Set(["serviceworker","serviceworker-preparation","serviceworker-respondwith","serviceworker-routerevaluation","serviceworker-cachelookup"]),bt=new Set(["queueing","blocking","connecting","dns","proxy","ssl"]);var ft=Object.freeze({__proto__:null,ConnectionSetupRangeNames:bt,RequestTimingView:kt,ServiceWorkerRangeNames:vt}),Ct={cssText:`.websocket-frame-view{user-select:text}.websocket-frame-view .data-grid{flex:auto;border:none}.websocket-frame-view .data-grid .data{background-image:none}.websocket-frame-view-td{border-bottom:1px solid var(--sys-color-divider)}.websocket-frame-view .data-grid td,\n.websocket-frame-view .data-grid th{border-left-color:1px solid var(--sys-color-divider)}.websocket-frame-view-row-send td:first-child::before{content:"\\2B06";color:var(--sys-color-tertiary);padding-right:4px}.websocket-frame-view-row-receive td:first-child::before{content:"\\2B07";color:var(--sys-color-error);padding-right:4px}.websocket-frame-view-row-send{background-color:color-mix(in srgb,var(--sys-color-tertiary-container),transparent 50%)}.websocket-frame-view-row-error{background-color:var(--sys-color-surface-error);color:var(--sys-color-on-surface-error)}.websocket-frame-view devtools-toolbar{border-bottom:1px solid var(--sys-color-divider)}\n/*# sourceURL=${import.meta.resolve("./webSocketFrameView.css")} */\n`};const St={data:"Data",length:"Length",time:"Time",webSocketFrame:"Web Socket Frame",clearAll:"Clear All",filter:"Filter",noMessageSelected:"No message selected",selectMessageToBrowseItsContent:"Select message to browse its content.",copyMessageD:"Copy message...",copyMessage:"Copy message",clearAllL:"Clear all",sOpcodeSMask:"{PH1} (Opcode {PH2}, mask)",sOpcodeS:"{PH1} (Opcode {PH2})",continuationFrame:"Continuation Frame",textMessage:"Text Message",binaryMessage:"Binary Message",connectionCloseMessage:"Connection Close Message",pingMessage:"Ping Message",pongMessage:"Pong Message",all:"All",send:"Send",receive:"Receive",na:"N/A",filterUsingRegex:"Filter using regex (example: (web)?socket)"},yt=r.i18n.registerUIStrings("panels/network/ResourceWebSocketFrameView.ts",St),Tt=r.i18n.getLocalizedString.bind(void 0,yt),xt=r.i18n.getLazilyComputedLocalizedString.bind(void 0,yt);class Rt extends e.Widget.VBox{request;splitWidget;dataGrid;timeComparator;mainToolbar;clearAllButton;filterTypeCombobox;filterType;filterTextInput;filterRegex;frameEmptyWidget;selectedNode;currentSelectedNode;messageFilterSetting=t.Settings.Settings.instance().createSetting("network-web-socket-message-filter","");constructor(t){super(),this.registerRequiredCSS(Ct),this.element.classList.add("websocket-frame-view"),this.element.setAttribute("jslog",`${d.pane("web-socket-messages").track({resize:!0})}`),this.request=t,this.splitWidget=new e.SplitWidget.SplitWidget(!1,!0,"resource-web-socket-frame-split-view-state"),this.splitWidget.show(this.element);const r=[{id:"data",title:Tt(St.data),sortable:!1,weight:88},{id:"length",title:Tt(St.length),sortable:!1,align:"right",weight:5},{id:"time",title:Tt(St.time),sortable:!0,weight:7}];this.dataGrid=new c.SortableDataGrid.SortableDataGrid({displayName:Tt(St.webSocketFrame),columns:r,deleteCallback:void 0,refreshCallback:void 0}),this.dataGrid.setRowContextMenuCallback(function(e,t){const r=t,o=r.binaryView();o?o.addCopyToContextMenu(e,Tt(St.copyMessageD)):e.clipboardSection().appendItem(Tt(St.copyMessage),i.InspectorFrontendHost.InspectorFrontendHostInstance.copyText.bind(i.InspectorFrontendHost.InspectorFrontendHostInstance,r.data.data),{jslogContext:"copy"});e.footerSection().appendItem(Tt(St.clearAllL),this.clearFrames.bind(this),{jslogContext:"clear-all"})}.bind(this)),this.dataGrid.setEnableAutoScrollToBottom(!0),this.dataGrid.setCellClass("websocket-frame-view-td"),this.timeComparator=Ft,this.dataGrid.sortNodes(this.timeComparator,!1),this.dataGrid.markColumnAsSortedBy("time",c.DataGrid.Order.Ascending),this.dataGrid.addEventListener("SortingChanged",this.sortItems,this),this.dataGrid.setName("resource-web-socket-frame-view"),this.dataGrid.addEventListener("SelectedNode",(e=>{this.onFrameSelected(e)}),this),this.dataGrid.addEventListener("DeselectedNode",this.onFrameDeselected,this),this.mainToolbar=document.createElement("devtools-toolbar"),this.clearAllButton=new e.Toolbar.ToolbarButton(Tt(St.clearAll),"clear"),this.clearAllButton.addEventListener("Click",this.clearFrames,this),this.mainToolbar.appendToolbarItem(this.clearAllButton),this.filterTypeCombobox=new e.Toolbar.ToolbarComboBox(this.updateFilterSetting.bind(this),Tt(St.filter));for(const e of qt){const t=this.filterTypeCombobox.createOption(e.label(),e.name);this.filterTypeCombobox.addOption(t)}this.mainToolbar.appendToolbarItem(this.filterTypeCombobox),this.filterType=null;const o=Tt(St.filterUsingRegex);this.filterTextInput=new e.Toolbar.ToolbarFilter(o,.4),this.filterTextInput.addEventListener("TextChanged",this.updateFilterSetting,this);const s=this.messageFilterSetting.get();s&&this.filterTextInput.setValue(s),this.filterRegex=null,this.mainToolbar.appendToolbarItem(this.filterTextInput);const n=new e.Widget.VBox;n.element.appendChild(this.mainToolbar),this.dataGrid.asWidget().show(n.element),n.setMinimumSize(0,72),this.splitWidget.setMainWidget(n),this.frameEmptyWidget=new e.EmptyWidget.EmptyWidget(Tt(St.noMessageSelected),Tt(St.selectMessageToBrowseItsContent)),this.splitWidget.setSidebarWidget(this.frameEmptyWidget),this.selectedNode=null,s&&this.applyFilter(s)}static opCodeDescription(e,t){const i=It[e]||(()=>"");return Tt(t?St.sOpcodeSMask:St.sOpcodeS,{PH1:i(),PH2:e})}wasShown(){super.wasShown(),this.refresh(),this.request.addEventListener(n.NetworkRequest.Events.WEBSOCKET_FRAME_ADDED,this.frameAdded,this)}willHide(){this.request.removeEventListener(n.NetworkRequest.Events.WEBSOCKET_FRAME_ADDED,this.frameAdded,this)}frameAdded(e){const t=e.data;this.frameFilter(t)&&this.dataGrid.insertChild(new Lt(this.request.url(),t))}frameFilter(e){return(!this.filterType||e.type===this.filterType)&&(!this.filterRegex||this.filterRegex.test(e.text))}clearFrames(){Et.set(this.request,this.request.frames().length),this.refresh()}updateFilterSetting(){const e=this.filterTextInput.value();this.messageFilterSetting.set(e),this.applyFilter(e)}applyFilter(e){const t=this.filterTypeCombobox.selectedOption().value;if(e)try{this.filterRegex=new RegExp(e,"i")}catch{this.filterRegex=new RegExp(s.StringUtilities.escapeForRegExp(e),"i")}else this.filterRegex=null;this.filterType="all"===t?null:t,this.refresh()}async onFrameSelected(e){this.currentSelectedNode=e.data;const i=this.currentSelectedNode.dataText(),r=this.currentSelectedNode.binaryView();if(r)return void this.splitWidget.setSidebarWidget(r);const s=await o.JSONView.JSONView.createView(i);s?this.splitWidget.setSidebarWidget(s):this.splitWidget.setSidebarWidget(new o.ResourceSourceFrame.ResourceSourceFrame(R.StaticContentProvider.StaticContentProvider.fromString(this.request.url(),t.ResourceType.resourceTypes.WebSocket,i),""))}onFrameDeselected(){this.currentSelectedNode=null,this.splitWidget.setSidebarWidget(this.frameEmptyWidget)}refresh(){this.dataGrid.rootNode().removeChildren();const e=this.request.url();let t=this.request.frames();const i=Et.get(this.request)||0;t=t.slice(i),t=t.filter(this.frameFilter.bind(this)),t.forEach((t=>this.dataGrid.insertChild(new Lt(e,t))))}sortItems(){this.dataGrid.sortNodes(this.timeComparator,!this.dataGrid.isSortOrderAscending())}}const It=function(){const e=[];return e[0]=xt(St.continuationFrame),e[1]=xt(St.textMessage),e[2]=xt(St.binaryMessage),e[8]=xt(St.connectionCloseMessage),e[9]=xt(St.pingMessage),e[10]=xt(St.pongMessage),e}(),qt=[{name:"all",label:xt(St.all),jslogContext:"all"},{name:"send",label:xt(St.send),jslogContext:"send"},{name:"receive",label:xt(St.receive),jslogContext:"receive"}];class Lt extends c.SortableDataGrid.SortableDataGridNode{url;frame;isTextFrame;dataTextInternal;binaryViewInternal;constructor(t,i){let o=String(i.text.length);const a=new Date(1e3*i.time),l=("0"+a.getHours()).substr(-2)+":"+("0"+a.getMinutes()).substr(-2)+":"+("0"+a.getSeconds()).substr(-2)+"."+("00"+a.getMilliseconds()).substr(-3),d=document.createElement("div");e.UIUtils.createTextChild(d,l),e.Tooltip.Tooltip.install(d,a.toLocaleString());let c=i.text,h=Rt.opCodeDescription(i.opCode,i.mask);const u=1===i.opCode;i.type===n.NetworkRequest.WebSocketFrameType.Error?(h=c,o=Tt(St.na)):u?h=c:2===i.opCode?(o=r.ByteUtilities.bytesToString(s.StringUtilities.base64ToSize(i.text)),h=It[i.opCode]()):c=h,super({data:h,length:o,time:d}),this.url=t,this.frame=i,this.isTextFrame=u,this.dataTextInternal=c,this.binaryViewInternal=null}createCells(e){e.classList.toggle("websocket-frame-view-row-error",this.frame.type===n.NetworkRequest.WebSocketFrameType.Error),e.classList.toggle("websocket-frame-view-row-send",this.frame.type===n.NetworkRequest.WebSocketFrameType.Send),e.classList.toggle("websocket-frame-view-row-receive",this.frame.type===n.NetworkRequest.WebSocketFrameType.Receive),super.createCells(e)}nodeSelfHeight(){return 21}dataText(){return this.dataTextInternal}opCode(){return this.frame.opCode}binaryView(){return this.isTextFrame||this.frame.type===n.NetworkRequest.WebSocketFrameType.Error?null:(this.binaryViewInternal||this.dataTextInternal.length>0&&(this.binaryViewInternal=new V(R.StreamingContentData.StreamingContentData.from(new R.ContentData.ContentData(this.dataTextInternal,!0,"applicaiton/octet-stream")),s.DevToolsPath.EmptyUrlString,t.ResourceType.resourceTypes.WebSocket)),this.binaryViewInternal)}}function Ft(e,t){return e.frame.time-t.frame.time}const Et=new WeakMap;var Ht=Object.freeze({__proto__:null,ResourceWebSocketFrameNode:Lt,ResourceWebSocketFrameView:Rt,opCodeDescriptions:It});const Pt={headers:"Headers",payload:"Payload",messages:"Messages",websocketMessages:"WebSocket messages",eventstream:"EventStream",preview:"Preview",responsePreview:"Response preview",signedexchangeError:"SignedExchange error",response:"Response",rawResponseData:"Raw response data",initiator:"Initiator",requestInitiatorCallStack:"Request initiator call stack",timing:"Timing",requestAndResponseTimeline:"Request and response timeline",thirdPartyPhaseout:"Cookies blocked due to third-party cookie phaseout.",trustTokens:"Private state tokens",trustTokenOperationDetails:"Private State Token operation details",cookies:"Cookies",requestAndResponseCookies:"Request and response cookies",containsOverriddenHeaders:"This response contains headers which are overridden by DevTools",responseIsOverridden:"This response is overridden by DevTools"},At=r.i18n.registerUIStrings("panels/network/NetworkItemView.ts",Pt),Mt=r.i18n.getLocalizedString.bind(void 0,At);class Nt extends e.TabbedPane.TabbedPane{requestInternal;resourceViewTabSetting;headersViewComponent;payloadView;responseView;cookiesView;initialTab;isReactNative=!1;constructor(i,r,o){super(),this.isReactNative=C.Runtime.experiments.isEnabled("react-native-specific-ui"),this.requestInternal=i,this.element.classList.add("network-item-view"),this.headerElement().setAttribute("jslog",`${d.toolbar("request-details").track({keydown:"ArrowUp|ArrowLeft|ArrowDown|ArrowRight|Enter|Space"})}`);if(this.resourceViewTabSetting=t.Settings.Settings.instance().createSetting("resource-view-tab","headers-component"),this.headersViewComponent=new y.RequestHeadersView.RequestHeadersView(i),this.appendTab("headers-component",Mt(Pt.headers),S.LegacyWrapper.legacyWrapper(e.Widget.VBox,this.headersViewComponent),Mt(Pt.headers)),this.requestInternal.hasOverriddenHeaders()){const e=document.createElement("div");e.className="status-dot",e.title=Mt(Pt.containsOverriddenHeaders),this.setSuffixElement("headers-component",e)}if(this.payloadView=null,this.maybeAppendPayloadPanel(),this.addEventListener(e.TabbedPane.Events.TabSelected,this.tabSelected,this),i.resourceType()===t.ResourceType.resourceTypes.WebSocket){const e=new Rt(i);this.appendTab("web-socket-frames",Mt(Pt.messages),e,Mt(Pt.websocketMessages))}else if("text/event-stream"===i.mimeType)this.appendTab("eventSource",Mt(Pt.eventstream),new Q(i)),this.responseView=new Ye(i),this.appendTab("response",Mt(Pt.response),this.responseView,Mt(Pt.rawResponseData));else{this.responseView=new Ye(i);const t=new ht(i);this.appendTab("preview",Mt(Pt.preview),t,Mt(Pt.responsePreview));const r=i.signedExchangeInfo();if(r?.errors?.length){const t=new k.Icon.Icon;t.data={iconName:"cross-circle-filled",color:"var(--icon-error)",width:"14px",height:"14px"},e.Tooltip.Tooltip.install(t,Mt(Pt.signedexchangeError)),this.setTabIcon("preview",t)}if(this.appendTab("response",Mt(Pt.response),this.responseView,Mt(Pt.rawResponseData)),this.requestInternal.hasOverriddenContent){const e=document.createElement("div");e.className="status-dot",e.title=Mt(Pt.responseIsOverridden),this.setSuffixElement("response",e)}}this.isReactNative&&!C.Runtime.experiments.isEnabled(C.Runtime.RNExperimentName.ENABLE_NETWORK_PANEL)||this.appendTab("initiator",Mt(Pt.initiator),new He(i),Mt(Pt.requestInitiatorCallStack)),this.appendTab("timing",Mt(Pt.timing),new kt(i,r),Mt(Pt.requestAndResponseTimeline)),i.trustTokenParams()&&this.appendTab("trust-tokens",Mt(Pt.trustTokens),S.LegacyWrapper.legacyWrapper(e.Widget.VBox,new y.RequestTrustTokensView.RequestTrustTokensView(i)),Mt(Pt.trustTokenOperationDetails)),this.cookiesView=null,this.initialTab=o||this.resourceViewTabSetting.get(),this.setAutoSelectFirstItemOnShow(!1)}wasShown(){super.wasShown(),this.requestInternal.addEventListener(n.NetworkRequest.Events.REQUEST_HEADERS_CHANGED,this.requestHeadersChanged,this),this.requestInternal.addEventListener(n.NetworkRequest.Events.RESPONSE_HEADERS_CHANGED,this.maybeAppendCookiesPanel,this),this.requestInternal.addEventListener(n.NetworkRequest.Events.TRUST_TOKEN_RESULT_ADDED,this.maybeShowErrorIconInTrustTokenTabHeader,this),this.maybeAppendCookiesPanel(),this.maybeShowErrorIconInTrustTokenTabHeader(),this.initialTab&&(this.selectTabInternal(this.initialTab),this.initialTab=void 0)}willHide(){this.requestInternal.removeEventListener(n.NetworkRequest.Events.REQUEST_HEADERS_CHANGED,this.requestHeadersChanged,this),this.requestInternal.removeEventListener(n.NetworkRequest.Events.RESPONSE_HEADERS_CHANGED,this.maybeAppendCookiesPanel,this),this.requestInternal.removeEventListener(n.NetworkRequest.Events.TRUST_TOKEN_RESULT_ADDED,this.maybeShowErrorIconInTrustTokenTabHeader,this)}async requestHeadersChanged(){this.maybeAppendCookiesPanel(),this.maybeAppendPayloadPanel()}maybeAppendCookiesPanel(){const e=this.requestInternal.hasRequestCookies()||this.requestInternal.responseCookies.length>0;if(console.assert(e||!this.cookiesView,"Cookies were introduced in headers and then removed!"),e&&!this.cookiesView&&(this.cookiesView=new xe(this.requestInternal),this.appendTab("cookies",Mt(Pt.cookies),this.cookiesView,Mt(Pt.requestAndResponseCookies))),this.requestInternal.hasThirdPartyCookiePhaseoutIssue()){const e=new k.Icon.Icon;e.data={iconName:"warning-filled",color:"var(--icon-warning)",width:"14px",height:"14px"},e.title=Mt(Pt.thirdPartyPhaseout),this.setTrailingTabIcon("cookies",e)}}async maybeAppendPayloadPanel(){this.hasTab("payload")||(this.requestInternal.queryParameters||await this.requestInternal.requestFormData())&&(this.payloadView=new Oe(this.requestInternal),this.appendTab("payload",Mt(Pt.payload),this.payloadView,Mt(Pt.payload),void 0,void 0,void 0,1))}maybeShowErrorIconInTrustTokenTabHeader(){const e=this.requestInternal.trustTokenOperationDoneEvent();if(e&&!y.RequestTrustTokensView.statusConsideredSuccess(e.status)){const e=new k.Icon.Icon;e.data={iconName:"cross-circle-filled",color:"var(--icon-error)",width:"14px",height:"14px"},this.setTabIcon("trust-tokens",e)}}selectTabInternal(e){this.selectTab(e)||window.setTimeout((()=>{this.selectTab(e)||this.selectTab("headers-component")}),0)}tabSelected(e){e.data.isUserGesture&&this.resourceViewTabSetting.set(e.data.tabId)}request(){return this.requestInternal}async revealResponseBody(e){this.selectTabInternal("response"),await(this.responseView?.revealPosition(e))}revealHeader(e,t){this.selectTabInternal("headers-component"),this.headersViewComponent.revealHeader(e,t)}getHeadersViewComponent(){return this.headersViewComponent}}var Ut=Object.freeze({__proto__:null,NetworkItemView:Nt});const Bt={sLatencySDownloadSTotal:"{PH1} latency, {PH2} download ({PH3} total)",sLatency:"{PH1} latency",sDownload:"{PH1} download",sFromServiceworker:"{PH1} (from `ServiceWorker`)",sFromCache:"{PH1} (from cache)"},Vt=r.i18n.registerUIStrings("panels/network/NetworkTimeCalculator.ts",Bt),Wt=r.i18n.getLocalizedString.bind(void 0,Vt);class Ot{minimum;maximum;constructor(e,t){this.minimum=e,this.maximum=t}equals(e){return this.minimum===e.minimum&&this.maximum===e.maximum}}class Dt extends t.ObjectWrapper.ObjectWrapper{startAtZero;minimumBoundaryInternal;maximumBoundaryInternal;boundryChangedEventThrottler;window;workingArea;constructor(e){super(),this.startAtZero=e,this.minimumBoundaryInternal=-1,this.maximumBoundaryInternal=-1,this.boundryChangedEventThrottler=new t.Throttler.Throttler(0),this.window=null}setWindow(e){this.window=e,this.boundaryChanged()}computePosition(e){return(e-this.minimumBoundary())/this.boundarySpan()*(this.workingArea||0)}formatValue(e,t){return r.TimeUtilities.secondsToString(e,Boolean(t))}minimumBoundary(){return this.window?this.window.minimum:this.minimumBoundaryInternal}zeroTime(){return this.minimumBoundaryInternal}maximumBoundary(){return this.window?this.window.maximum:this.maximumBoundaryInternal}boundary(){return new Ot(this.minimumBoundary(),this.maximumBoundary())}boundarySpan(){return this.maximumBoundary()-this.minimumBoundary()}reset(){this.minimumBoundaryInternal=-1,this.maximumBoundaryInternal=-1,this.boundaryChanged()}value(){return 0}setDisplayWidth(e){this.workingArea=e}computeBarGraphPercentages(e){let t,i,r;return t=-1!==e.startTime?(e.startTime-this.minimumBoundary())/this.boundarySpan()*100:0,i=-1!==e.responseReceivedTime?(e.responseReceivedTime-this.minimumBoundary())/this.boundarySpan()*100:this.startAtZero?t:100,r=-1!==e.endTime?(e.endTime-this.minimumBoundary())/this.boundarySpan()*100:this.startAtZero?i:100,this.startAtZero&&(r-=t,i-=t,t=0),{start:t,middle:i,end:r}}boundaryChanged(){this.boundryChangedEventThrottler.schedule((async()=>{this.dispatchEventToListeners("BoundariesChanged")}))}updateBoundariesForEventTime(e){-1===e||this.startAtZero||(void 0===this.maximumBoundaryInternal||e>this.maximumBoundaryInternal)&&(this.maximumBoundaryInternal=e,this.boundaryChanged())}computeBarGraphLabels(e){let t="";-1!==e.responseReceivedTime&&-1!==e.endTime&&(t=r.TimeUtilities.secondsToString(e.endTime-e.responseReceivedTime));const i=e.latency>0,o=i?r.TimeUtilities.secondsToString(e.latency):t;if(e.timing)return{left:o,right:t,tooltip:void 0};let s;if(i&&t){const i=r.TimeUtilities.secondsToString(e.duration);s=Wt(Bt.sLatencySDownloadSTotal,{PH1:o,PH2:t,PH3:i})}else i?s=Wt(Bt.sLatency,{PH1:o}):t&&(s=Wt(Bt.sDownload,{PH1:t}));return e.fetchedViaServiceWorker?s=Wt(Bt.sFromServiceworker,{PH1:String(s)}):e.cached()&&(s=Wt(Bt.sFromCache,{PH1:String(s)})),{left:o,right:t,tooltip:s}}updateBoundaries(e){const t=this.lowerBound(e),i=this.upperBound(e);let r=!1;(-1!==t||this.startAtZero)&&(r=this.extendBoundariesToIncludeTimestamp(this.startAtZero?0:t)),-1!==i&&(r=this.extendBoundariesToIncludeTimestamp(i)||r),r&&this.boundaryChanged()}extendBoundariesToIncludeTimestamp(e){const t=this.minimumBoundaryInternal,i=this.maximumBoundaryInternal,r=Gt;return-1===this.minimumBoundaryInternal||-1===this.maximumBoundaryInternal?(this.minimumBoundaryInternal=e,this.maximumBoundaryInternal=e+r):(this.minimumBoundaryInternal=Math.min(e,this.minimumBoundaryInternal),this.maximumBoundaryInternal=Math.max(e,this.minimumBoundaryInternal+r,this.maximumBoundaryInternal)),t!==this.minimumBoundaryInternal||i!==this.maximumBoundaryInternal}lowerBound(e){return 0}upperBound(e){return 0}}const Gt=.1;class jt extends Dt{constructor(){super(!1)}formatValue(e,t){return r.TimeUtilities.secondsToString(e-this.zeroTime(),Boolean(t))}lowerBound(e){return e.issueTime()}upperBound(e){return e.endTime}}class zt extends Dt{constructor(){super(!0)}formatValue(e,t){return r.TimeUtilities.secondsToString(e,Boolean(t))}upperBound(e){return e.duration}}var _t=Object.freeze({__proto__:null,NetworkTimeBoundary:Ot,NetworkTimeCalculator:Dt,NetworkTransferDurationCalculator:zt,NetworkTransferTimeCalculator:jt});class Kt{parentView;activeGroups;constructor(e){this.parentView=e,this.activeGroups=new Map}groupNodeForRequest(e){const t=n.ResourceTreeModel.ResourceTreeModel.frameForRequest(e);if(!t||t.isOutermostFrame())return null;let i=this.activeGroups.get(t);return i||(i=new $t(this.parentView,t),this.activeGroups.set(t,i),i)}reset(){this.activeGroups.clear()}}class $t extends be{frame;constructor(e,t){super(e),this.frame=t}displayName(){return new t.ParsedURL.ParsedURL(this.frame.url).domain()||this.frame.name||"<iframe>"}renderCell(t,i){super.renderCell(t,i);if(0===this.dataGrid.indexOfVisibleColumn(i)){const r=this.displayName();t.appendChild(k.Icon.create("frame","network-frame-group-icon")),e.UIUtils.createTextChild(t,r),e.Tooltip.Tooltip.install(t,r),this.setCellAccessibleName(t.textContent||"",t,i)}}}var Xt=Object.freeze({__proto__:null,FrameGroupNode:$t,NetworkFrameGrouper:Kt}),Jt={cssText:`.network-log-grid.data-grid{border:none!important;flex:auto}.network-log-grid.data-grid.no-selection:focus-visible{border:none!important}#network-container{overflow:hidden}#network-container.grid-focused.no-node-selected:focus-within{border:1px solid var(--sys-color-state-focus-ring)}.network-summary-bar{flex:0 0 27px;line-height:27px;padding-left:5px;background-color:var(--sys-color-cdt-base-container);border-top:1px solid var(--sys-color-divider);white-space:nowrap;text-overflow:ellipsis;overflow:hidden;user-select:text}.panel.network devtools-toolbar.network-summary-bar{border-bottom:0}.network-summary-bar dt-icon-label{margin-right:6px}.network-summary-bar > *{flex:none}.network-log-grid.data-grid tbody{background:transparent}.network-log-grid.data-grid td{height:41px;border-left:1px solid var(--sys-color-divider);vertical-align:middle}.network-log-grid.data-grid .corner{display:none}.network-log-grid.data-grid.small td{height:21px}.network-log-grid.data-grid th{border-bottom:none}.network-waterfall-header,\n.network-log-grid.data-grid thead th{border-bottom:1px solid var(--sys-color-divider);border-left:1px solid var(--sys-color-divider)}.network-waterfall-header,\n.network-log-grid.data-grid thead{height:31px;background-color:var(--sys-color-surface1)}.network-waterfall-header.small,\n.network-log-grid.data-grid.small thead{height:27px}.network-log-grid.data-grid select{appearance:none;border:none;width:100%;color:inherit}.network-log-grid.data-grid .waterfall-column{padding:1px 0}.network-log-grid.data-grid .waterfall-column .sort-order-icon-container{right:15px;pointer-events:none}.network-log-grid.data-grid th.sortable:active{background-image:none!important}.network-cell-subtitle{font-weight:normal;color:var(--sys-color-token-subtle)}.network-badge{margin-right:4px}.status-column .devtools-link{color:inherit}.initiator-column .text-button.devtools-link,\n.initiator-column .text-button.devtools-link:focus-visible{color:inherit;background-color:transparent;outline-offset:0;height:16px}.network-error-row,\n.network-error-row .network-cell-subtitle{color:var(--sys-color-error)!important}.network-warning-row,\n.network-warning-row .network-cell-subtitle{color:var(--sys-color-yellow)}.network-log-grid.data-grid tr.selected.network-error-row,\n.network-log-grid.data-grid tr.selected.network-error-row .network-cell-subtitle,\n.network-log-grid.data-grid tr.selected.network-error-row .network-dim-cell{color:var(--sys-color-error)}.network-log-grid.data-grid tr.selected.network-warning-row,\n.network-log-grid.data-grid tr.selected.network-warning-row .network-cell-subtitle,\n.network-log-grid.data-grid tr.selected.network-warning-row .network-dim-cell{color:var(--sys-color-yellow)}.network-log-grid.data-grid:focus-within tr.selected.network-error-row,\n.network-log-grid.data-grid:focus-within tr.selected.network-error-row .devtools-link,\n.network-log-grid.data-grid:focus-within tr.selected.network-error-row .network-cell-subtitle,\n.network-log-grid.data-grid:focus-within tr.selected.network-error-row .network-dim-cell{color:var(--sys-color-error)}.network-log-grid.data-grid:focus-within tr.selected.network-warning-row,\n.network-log-grid.data-grid:focus-within tr.selected.network-warning-row .devtools-link,\n.network-log-grid.data-grid:focus-within tr.selected.network-warning-row .network-cell-subtitle,\n.network-log-grid.data-grid:focus-within tr.selected.network-warning-row .network-dim-cell{color:var(--sys-color-yellow)}.network-log-grid.data-grid tr.selected,\n.network-log-grid.data-grid tr.selected .network-cell-subtitle,\n.network-log-grid.data-grid tr.selected .network-dim-cell{color:inherit}.network-log-grid.data-grid:focus tr.selected,\n.network-log-grid.data-grid:focus tr.selected .network-cell-subtitle,\n.network-log-grid.data-grid:focus tr.selected .network-dim-cell{color:var(--sys-color-on-tonal-container)}.network-header-subtitle{color:var(--sys-color-token-subtle)}.network-log-grid.data-grid.small .network-cell-subtitle,\n.network-log-grid.data-grid.small .network-header-subtitle{display:none}.network-log-grid.data-grid.small .network-cell-subtitle.always-visible{display:inline;margin-left:4px}.network-log-grid tr.highlighted-row{animation:network-row-highlight-fadeout 2s 0s}@keyframes network-row-highlight-fadeout{from{background-color:var(--sys-color-yellow-container)}to{background-color:transparent}}.network-log-grid.data-grid .icon.image{position:relative}.network-log-grid.data-grid .icon{float:left;width:32px;height:32px;margin-top:1px;margin-right:3px}.network-log-grid.data-grid:focus-within .network-error-row.selected div.icon:not(.image){filter:none}.network-log-grid.data-grid .network-error-row.data-grid-data-grid-node img.icon,\n.network-log-grid.data-grid .network-error-row.data-grid-data-grid-node.selected img.icon{filter:brightness(0) saturate(100%) invert(35%) sepia(76%) saturate(1413%) hue-rotate(338deg) brightness(92%) contrast(103%)}.data-grid-data-grid-node devtools-icon[name="arrow-up-down-circle"],\n.network-log-grid.data-grid.small .icon{width:16px;height:16px;vertical-align:sub}.data-grid-data-grid-node .ai-button-container{display:none;float:right}.data-grid-data-grid-node:hover .ai-button-container{display:inline-flex}.image-network-icon-preview{inset:0;margin:auto;overflow:hidden}.network-log-grid.data-grid .image-network-icon-preview{position:absolute;max-width:18px;max-height:21px;min-width:1px;min-height:1px}.network-log-grid.data-grid.small .image-network-icon-preview{left:2px;right:2px;max-width:10px;max-height:12px}.network-log-grid.data-grid .trailing-link-icon{padding-left:0.5ex}.network-dim-cell{color:var(--sys-color-token-subtle)}.network-frame-divider{width:2px;background-color:var(--network-frame-divider-color);z-index:10;visibility:hidden}#network-container.has-waterfall .data-container{overflow:hidden}.network-log-grid.data-grid .resources-dividers{z-index:0}.network-log-grid.data-grid .resources-dividers-label-bar{background-color:transparent;border:none;height:30px;pointer-events:none}.network-log-grid.data-grid span.separator-in-cell{user-select:none;min-width:1ex;display:inline-block}.network-status-pane{position:absolute;inset:0;background-color:var(--sys-color-cdt-base-container);z-index:500;overflow:auto}.network-waterfall-header{position:absolute;border-left:0;width:100%;display:table;z-index:200;& > div.hover-layer{display:none;background-color:var(--sys-color-state-hover-on-subtle);position:absolute;top:0;left:0;width:100%;height:100%}&:hover > div.hover-layer{display:block}}.network-waterfall-header div{display:table-cell;line-height:14px;margin:auto 0;vertical-align:middle;text-align:left;font-weight:normal;padding:0 4px}.network-waterfall-header .sort-order-icon-container{position:absolute;top:1px;right:0;bottom:1px;display:flex;align-items:center}.network-waterfall-header .sort-order-icon{align-items:center;margin-right:4px;margin-bottom:-2px}.network-frame-group-icon{display:inline-block;margin:-7px 1px;vertical-align:baseline}.network-frame-group-badge{margin-right:4px}.network-override-marker{position:relative;float:left}.network-override-marker::before{background-color:var(--sys-color-purple-bright);content:var(--image-file-empty);width:6px;height:6px;border-radius:50%;outline:1px solid var(--icon-gap-toolbar);left:8px;position:absolute;top:10px;z-index:1}@media (forced-colors: active){.initiator-column .devtools-link{color:linktext}.network-log-grid.data-grid tbody tr.revealed.selected,\n .network-log-grid.data-grid:focus-within tbody tr.revealed.selected,\n .network-log-grid.data-grid:focus-within tr.selected .network-dim-cell,\n .network-log-grid.data-grid tr.selected .network-dim-cell,\n .network-log-grid.data-grid:focus-within tr.selected .initiator-column .devtools-link,\n .network-log-grid.data-grid tr.selected .initiator-column .devtools-link,\n .network-waterfall-header:hover *{color:HighlightText}.network-log-grid{--color-grid-default:canvas;--color-grid-stripe:canvas;--color-grid-hovered:Highlight;--color-grid-selected:ButtonText;--color-grid-focus-selected:Highlight}#network-container.no-node-selected:focus-within{forced-color-adjust:none;border-color:Highlight;background-color:canvas!important}.network-waterfall-header:hover{forced-color-adjust:none;background-color:Highlight!important;& > div.hover-layer{display:none}}.network-waterfall-header.small,\n .network-log-grid.data-grid.small thead .network-waterfall-header,\n .network-log-grid.data-grid thead{background-color:canvas}.network-waterfall-header .sort-order-icon-container devtools-icon{background-color:inherit}.network-waterfall-header:hover .sort-order-icon-container devtools-icon{color:HighlightText}}\n/*# sourceURL=${import.meta.resolve("./networkLogView.css")} */\n`},Yt={cssText:`.custom-headers-list{height:272px;width:var(--sys-size-29);margin:0 var(--sys-size-8)}.header{margin:var(--sys-size-5) var(--sys-size-5) var(--sys-size-5) var(--sys-size-8);padding-top:var(--sys-size-3);font:var(--sys-typescale-body2-medium);flex:none}.custom-headers-header{padding:2px}.custom-headers-list-item{padding-left:5px}.editor-container{padding:5px 0 0 5px}.add-button{margin:var(--sys-size-6) auto var(--sys-size-8) var(--sys-size-8);align-items:flex-start}\n/*# sourceURL=${import.meta.resolve("./networkManageCustomHeadersView.css")} */\n`};const Qt={manageHeaderColumns:"Manage Header Columns",noCustomHeaders:"No custom headers",addCustomHeader:"Add custom header…",headerName:"Header Name"},Zt=r.i18n.registerUIStrings("panels/network/NetworkManageCustomHeadersView.ts",Qt),ei=r.i18n.getLocalizedString.bind(void 0,Zt);class ti extends e.Widget.VBox{list;columnConfigs;addHeaderColumnCallback;changeHeaderColumnCallback;removeHeaderColumnCallback;editor;constructor(t,i,r,o){super(!0),this.registerRequiredCSS(Yt),this.contentElement.createChild("div","header").textContent=ei(Qt.manageHeaderColumns),this.list=new e.ListWidget.ListWidget(this),this.list.registerRequiredCSS(Yt),this.list.element.classList.add("custom-headers-list");const s=document.createElement("div");s.classList.add("custom-headers-list-list-empty"),s.textContent=ei(Qt.noCustomHeaders),this.list.setEmptyPlaceholder(s),this.list.show(this.contentElement),this.contentElement.appendChild(e.UIUtils.createTextButton(ei(Qt.addCustomHeader),this.addButtonClicked.bind(this),{className:"add-button",jslogContext:"network.add-custom-header"})),this.columnConfigs=new Map,t.forEach((e=>this.columnConfigs.set(e.title.toLowerCase(),e))),this.addHeaderColumnCallback=i,this.changeHeaderColumnCallback=r,this.removeHeaderColumnCallback=o,this.contentElement.tabIndex=0}wasShown(){super.wasShown(),this.headersUpdated()}headersUpdated(){this.list.clear(),this.columnConfigs.forEach((e=>this.list.appendItem({header:e.title},e.editable)))}addButtonClicked(){this.list.addNewItem(this.columnConfigs.size,{header:""})}renderItem(t,i){const r=document.createElement("div");r.classList.add("custom-headers-list-item");const o=r.createChild("div","custom-header-name");return o.textContent=t.header,e.Tooltip.Tooltip.install(o,t.header),r}removeItemRequested(e,t){this.removeHeaderColumnCallback(e.header),this.columnConfigs.delete(e.header.toLowerCase()),this.headersUpdated()}commitEdit(e,t,i){const r=t.control("header").value.trim();let o;o=i?this.addHeaderColumnCallback(r):this.changeHeaderColumnCallback(e.header,r),o&&!i&&this.columnConfigs.delete(e.header.toLowerCase()),o&&this.columnConfigs.set(r.toLowerCase(),{title:r,editable:!0}),this.headersUpdated()}beginEdit(e){const t=this.createEditor();return t.control("header").value=e.header,t}createEditor(){if(this.editor)return this.editor;const t=new e.ListWidget.Editor;this.editor=t;const i=t.contentElement();i.createChild("div","custom-headers-edit-row").createChild("div","custom-headers-header").textContent=ei(Qt.headerName);return i.createChild("div","custom-headers-edit-row").createChild("div","custom-headers-header").appendChild(t.createInput("header","text","x-custom-header",function(e,i,r){let o=!0;const s=t.control("header").value.trim().toLowerCase();this.columnConfigs.has(s)&&e.header!==s&&(o=!1);return{valid:o,errorMessage:void 0}}.bind(this))),t}}var ii=Object.freeze({__proto__:null,NetworkManageCustomHeadersView:ti});class ri extends v.TimelineOverviewPane.TimelineOverviewBase{selectedFilmStripTime;numBands;highlightedRequest;loadEvents;domContentLoadedEvents;nextBand;bandMap;requestsList;requestsSet;span;lastBoundary;constructor(){super(),this.selectedFilmStripTime=-1,this.element.classList.add("network-overview"),this.numBands=1,this.highlightedRequest=null,n.TargetManager.TargetManager.instance().addModelListener(n.ResourceTreeModel.ResourceTreeModel,n.ResourceTreeModel.Events.Load,this.loadEventFired,this,{scoped:!0}),n.TargetManager.TargetManager.instance().addModelListener(n.ResourceTreeModel.ResourceTreeModel,n.ResourceTreeModel.Events.DOMContentLoaded,this.domContentLoadedEventFired,this,{scoped:!0}),this.reset()}setHighlightedRequest(e){this.highlightedRequest=e,this.scheduleUpdate()}selectFilmStripFrame(e){this.selectedFilmStripTime=e,this.scheduleUpdate()}clearFilmStripFrame(){this.selectedFilmStripTime=-1,this.scheduleUpdate()}loadEventFired(e){const t=e.data.loadTime;t&&this.loadEvents.push(1e3*t),this.scheduleUpdate()}domContentLoadedEventFired(e){const{data:t}=e;t&&this.domContentLoadedEvents.push(1e3*t),this.scheduleUpdate()}bandId(e){if(!e||"0"===e)return-1;if(this.bandMap.has(e))return this.bandMap.get(e);const t=this.nextBand++;return this.bandMap.set(e,t),t}updateRequest(e){this.requestsSet.has(e)||(this.requestsSet.add(e),this.requestsList.push(e)),this.scheduleUpdate()}wasShown(){this.onResize()}calculator(){return super.calculator()}onResize(){const e=this.element.offsetWidth,t=this.element.offsetHeight;this.calculator().setDisplayWidth(e),this.resetCanvas();const i=(t-ni-1)/si-1|0;this.numBands=i>0?i:1,this.scheduleUpdate()}reset(){this.span=1,this.lastBoundary=null,this.nextBand=0,this.bandMap=new Map,this.requestsList=[],this.requestsSet=new Set,this.loadEvents=[],this.domContentLoadedEvents=[],this.resetCanvas()}scheduleUpdate(){this.isShowing()&&E.write("NetworkOverview.render",this.update.bind(this))}update(){const e=this.calculator(),t=new Ot(e.minimumBoundary(),e.maximumBoundary());if(!this.lastBoundary||!t.equals(this.lastBoundary)){const t=e.boundarySpan();for(;this.span<t;)this.span*=1.25;e.setBounds(e.minimumBoundary(),P.Types.Timing.Milli(e.minimumBoundary()+this.span)),this.lastBoundary=new Ot(e.minimumBoundary(),e.maximumBoundary())}const i=this.context(),r=new Map,o=ni;function s(t){const s=r.get(t);if(!s)return;const n=s.length;i.beginPath(),i.strokeStyle=H.ThemeSupport.instance().getComputedValue("--color-background-opacity-80"),i.lineWidth=li,i.fillStyle=H.ThemeSupport.instance().getComputedValue(oi[t]);for(let t=0;t<n;){const r=s[t++]*si+o,n=s[t++];let a=s[t++];a===Number.MAX_VALUE&&(a=e.maximumBoundary());const l=e.computePosition(P.Types.Timing.Milli(n)),d=e.computePosition(P.Types.Timing.Milli(a))+1;i.fillRect(l,r,Math.max(d-l,ai),si),i.strokeRect(l,r,Math.max(d-l,ai),si)}}function n(e,t,i,o){let s=r.get(e);s||(s=[],r.set(e,s)),s.push(t,i,o)}const a=this.requestsList,l=a.length;for(let e=0;e<l;++e){const t=a[e],i=this.bandId(t.connectionId),r=-1===i?0:i%this.numBands+1,o=kt.calculateRequestTimeRanges(t,this.calculator().minimumBoundary());for(let e=0;e<o.length;++e){const t=o[e].name;-1===i&&"total"!==t||n(t,r,1e3*o[e].start,1e3*o[e].end)}}if(i.clearRect(0,0,this.width(),this.height()),i.save(),i.scale(window.devicePixelRatio,window.devicePixelRatio),i.lineWidth=2,s("total"),s("blocking"),s("connecting"),s("serviceworker"),s("serviceworker-preparation"),s("serviceworker-respondwith"),s("push"),s("proxy"),s("dns"),s("ssl"),s("sending"),s("waiting"),s("receiving"),this.highlightedRequest){const t=5,r=2,s=this.highlightedRequest,n=this.bandId(s.connectionId),a=(-1===n?0:n%this.numBands+1)*si+o,l=kt.calculateRequestTimeRanges(s,this.calculator().minimumBoundary());i.fillStyle=H.ThemeSupport.instance().getComputedValue("--sys-color-tonal-container");const d=P.Types.Timing.Milli(1e3*l[0].start),c=P.Types.Timing.Milli(1e3*l[0].end);i.fillRect(e.computePosition(d)-r,a-t/2-r,e.computePosition(c)-e.computePosition(d)+1+2*r,t*r);for(let r=0;r<l.length;++r){const o=l[r].name;if(-1!==n||"total"===o){i.beginPath(),i.strokeStyle=H.ThemeSupport.instance().getComputedValue(oi[o]),i.lineWidth=t;const s=P.Types.Timing.Milli(1e3*l[r].start),n=P.Types.Timing.Milli(1e3*l[r].end);i.moveTo(Number(e.computePosition(s))-0,a),i.lineTo(Number(e.computePosition(n))+1,a),i.stroke()}}}const d=this.element.offsetHeight;i.lineWidth=1,i.beginPath(),i.strokeStyle=H.ThemeSupport.instance().getComputedValue(Ii.getDCLEventColor());for(let t=this.domContentLoadedEvents.length-1;t>=0;--t){const r=e.computePosition(P.Types.Timing.Milli(this.domContentLoadedEvents[t])),o=Math.round(r)+.5;i.moveTo(o,0),i.lineTo(o,d)}i.stroke(),i.beginPath(),i.strokeStyle=H.ThemeSupport.instance().getComputedValue(Ii.getLoadEventColor());for(let t=this.loadEvents.length-1;t>=0;--t){const r=e.computePosition(P.Types.Timing.Milli(this.loadEvents[t])),o=Math.round(r)+.5;i.moveTo(o,0),i.lineTo(o,d)}if(i.stroke(),-1!==this.selectedFilmStripTime){i.lineWidth=2,i.beginPath(),i.strokeStyle=H.ThemeSupport.instance().getComputedValue("--network-frame-divider-color");const t=P.Types.Timing.Milli(this.selectedFilmStripTime),r=Math.round(e.computePosition(t));i.moveTo(r,0),i.lineTo(r,d),i.stroke()}i.restore()}}const oi={total:"--network-overview-total",blocking:"--network-overview-blocking",connecting:"--network-overview-connecting",serviceworker:"--network-overview-service-worker","serviceworker-preparation":"--network-overview-service-worker","serviceworker-respondwith":"--network-overview-service-worker-respond-with",push:"--network-overview-push",proxy:"--override-network-overview-proxy",dns:"--network-overview-dns",ssl:"--network-overview-ssl",sending:"--override-network-overview-sending",waiting:"--network-overview-waiting",receiving:"--network-overview-receiving",queueing:"--network-overview-queueing"},si=3,ni=5,ai=10,li=1;var di=Object.freeze({__proto__:null,NetworkOverview:ri,RequestTimeRangeNameToColor:oi}),ci={cssText:`.network-waterfall-v-scroll{position:absolute;top:0;right:0;bottom:0;overflow-x:hidden;margin-top:31px;z-index:200}.theme-with-dark-background .network-waterfall-v-scroll{background:rgb(0 0 0/1%)}.network-waterfall-v-scroll.small{margin-top:27px}.network-waterfall-v-scroll-content{width:15px;pointer-events:none}\n/*# sourceURL=${import.meta.resolve("./networkWaterfallColumn.css")} */\n`};class hi extends e.Widget.VBox{canvas;canvasPosition;leftPadding;fontSize;rightPadding;scrollTop;headerHeight;calculator;rawRowHeight;rowHeight;offsetWidth;offsetHeight;startTime;endTime;popoverHelper;nodes;hoveredNode;eventDividers;styleForTimeRangeName;styleForWaitingResourceType;styleForDownloadingResourceType;wiskerStyle;hoverDetailsStyle;pathForStyle;textLayers;constructor(t){super(!1),this.registerRequiredCSS(ci),this.canvas=this.contentElement.createChild("canvas"),this.canvas.tabIndex=-1,this.setDefaultFocusedElement(this.canvas),this.canvasPosition=this.canvas.getBoundingClientRect(),this.leftPadding=5,this.fontSize=10,this.rightPadding=0,this.scrollTop=0,this.headerHeight=0,this.calculator=t,this.rawRowHeight=0,this.rowHeight=0,this.offsetWidth=0,this.offsetHeight=0,this.startTime=this.calculator.minimumBoundary(),this.endTime=this.calculator.maximumBoundary(),this.popoverHelper=new e.PopoverHelper.PopoverHelper(this.element,this.getPopoverRequest.bind(this),"network.timing"),this.popoverHelper.setTimeout(300,300),this.nodes=[],this.hoveredNode=null,this.eventDividers=new Map,this.element.addEventListener("mousemove",this.onMouseMove.bind(this),!0),this.element.addEventListener("mouseleave",(e=>this.setHoveredNode(null,!1)),!0),this.element.addEventListener("click",this.onClick.bind(this),!0),this.styleForTimeRangeName=hi.buildRequestTimeRangeStyle();const i=hi.buildResourceTypeStyle();this.styleForWaitingResourceType=i[0],this.styleForDownloadingResourceType=i[1];const r=H.ThemeSupport.instance().getComputedValue("--sys-color-state-disabled");this.wiskerStyle={borderColor:r,lineWidth:1,fillStyle:void 0},this.hoverDetailsStyle={fillStyle:r,lineWidth:1,borderColor:r},this.pathForStyle=new Map,this.textLayers=[]}static buildRequestTimeRangeStyle(){const e=new Map;return e.set("connecting",{fillStyle:oi.connecting}),e.set("ssl",{fillStyle:oi.ssl}),e.set("dns",{fillStyle:oi.dns}),e.set("proxy",{fillStyle:oi.proxy}),e.set("blocking",{fillStyle:oi.blocking}),e.set("push",{fillStyle:oi.push}),e.set("queueing",{fillStyle:oi.queueing,lineWidth:2,borderColor:"lightgrey"}),e.set("receiving",{fillStyle:oi.receiving,lineWidth:2,borderColor:"#03A9F4"}),e.set("waiting",{fillStyle:oi.waiting}),e.set("receiving-push",{fillStyle:oi["receiving-push"]}),e.set("serviceworker",{fillStyle:oi.serviceworker}),e.set("serviceworker-preparation",{fillStyle:oi["serviceworker-preparation"]}),e.set("serviceworker-respondwith",{fillStyle:oi["serviceworker-respondwith"]}),e}static buildResourceTypeStyle(){const e=new Map([["document","hsl(215, 100%, 80%)"],["font","hsl(8, 100%, 80%)"],["media","hsl(90, 50%, 80%)"],["image","hsl(90, 50%, 80%)"],["script","hsl(31, 100%, 80%)"],["stylesheet","hsl(272, 64%, 80%)"],["texttrack","hsl(8, 100%, 80%)"],["websocket","hsl(0, 0%, 95%)"],["xhr","hsl(53, 100%, 80%)"],["fetch","hsl(53, 100%, 80%)"],["other","hsl(0, 0%, 95%)"]]),i=new Map,r=new Map;for(const n of Object.values(t.ResourceType.resourceTypes)){let t=e.get(n.name());t||(t=e.get("other"));const a=o(t);i.set(n,{fillStyle:s(t),lineWidth:1,borderColor:a}),r.set(n,{fillStyle:t,lineWidth:1,borderColor:a})}return[i,r];function o(e){const i=t.Color.parse(e)?.as("hsl");if(!i)return"";let{s:r,l:o}=i;return r/=2,o-=Math.min(o,.2),new t.Color.HSL(i.h,r,o,i.alpha).asString()}function s(e){const i=t.Color.parse(e)?.as("hsl");if(!i)return"";let{l:r}=i;return r*=1.1,new t.Color.HSL(i.h,i.s,r,i.alpha).asString()}}resetPaths(){this.pathForStyle.clear(),this.pathForStyle.set(this.wiskerStyle,new Path2D),this.styleForTimeRangeName.forEach((e=>this.pathForStyle.set(e,new Path2D))),this.styleForWaitingResourceType.forEach((e=>this.pathForStyle.set(e,new Path2D))),this.styleForDownloadingResourceType.forEach((e=>this.pathForStyle.set(e,new Path2D))),this.pathForStyle.set(this.hoverDetailsStyle,new Path2D)}willHide(){this.popoverHelper.hidePopover(),super.willHide()}wasShown(){super.wasShown(),this.update()}onMouseMove(e){this.setHoveredNode(this.getNodeFromPoint(e.offsetX,e.offsetY),e.shiftKey)}onClick(e){this.setSelectedNode(this.getNodeFromPoint(e.offsetX,e.offsetY))&&e.consume(!0)}getPopoverRequest(e){if(e instanceof KeyboardEvent)return null;if(!this.hoveredNode)return null;const i=this.hoveredNode.request();if(!i)return null;let r,o,s;if(!t.Settings.Settings.instance().moduleSetting("network-color-code-resource-types").get()&&!this.calculator.startAtZero?(r=kt.calculateRequestTimeRanges(i,0).find((e=>"total"===e.name)),o=this.timeToPosition(r.start),s=this.timeToPosition(r.end)):(r=this.getSimplifiedBarRange(i,0),o=r.start,s=r.end),s-o<50){const e=(s-o)/2;o=o+e-25,s=s-e+25}if(e.clientX<this.canvasPosition.left+o||e.clientX>this.canvasPosition.left+s)return null;const n=this.nodes.findIndex((e=>e.hovered())),a=this.getBarHeight(r.name),l=this.headerHeight+(this.rowHeight*n-this.scrollTop)+(this.rowHeight-a)/2;if(e.clientY<this.canvasPosition.top+l||e.clientY>this.canvasPosition.top+l+a)return null;const d=this.element.boxInWindow();return d.x+=o,d.y+=l,d.width=s-o,d.height=a,{box:d,show:e=>{const t=kt.createTimingTable(i,this.calculator);return e.registerRequiredCSS(pt),e.contentElement.appendChild(t),Promise.resolve(!0)},hide:void 0}}setHoveredNode(e,t){this.hoveredNode&&this.hoveredNode.setHovered(!1,!1),this.hoveredNode=e,this.hoveredNode&&this.hoveredNode.setHovered(!0,t)}setSelectedNode(e){return!!e?.dataGrid&&(e.select(),e.dataGrid.element.focus(),!0)}setRowHeight(e){this.rawRowHeight=e,this.updateRowHeight()}updateRowHeight(){this.rowHeight=Math.round(this.rawRowHeight*window.devicePixelRatio)/window.devicePixelRatio}setHeaderHeight(e){this.headerHeight=e}setRightPadding(e){this.rightPadding=e,this.calculateCanvasSize()}setCalculator(e){this.calculator=e}getNodeFromPoint(e,t){return t<=this.headerHeight?null:this.nodes[Math.floor((this.scrollTop+t-this.headerHeight)/this.rowHeight)]}scheduleDraw(){E.write("NetworkWaterfallColumn.render",(()=>this.update()))}update(e,t,i){void 0!==e&&this.scrollTop!==e&&(this.popoverHelper.hidePopover(),this.scrollTop=e),i&&(this.nodes=i,this.calculateCanvasSize()),void 0!==t&&(this.eventDividers=t),this.startTime=this.calculator.minimumBoundary(),this.endTime=this.calculator.maximumBoundary(),this.resetCanvas(),this.resetPaths(),this.textLayers=[],this.draw()}resetCanvas(){const e=window.devicePixelRatio;this.canvas.width=this.offsetWidth*e,this.canvas.height=this.offsetHeight*e,this.canvas.style.width=this.offsetWidth+"px",this.canvas.style.height=this.offsetHeight+"px"}onResize(){super.onResize(),this.updateRowHeight(),this.calculateCanvasSize(),this.scheduleDraw()}calculateCanvasSize(){this.offsetWidth=this.contentElement.offsetWidth-this.rightPadding,this.offsetHeight=this.contentElement.offsetHeight,this.calculator.setDisplayWidth(this.offsetWidth),this.canvasPosition=this.canvas.getBoundingClientRect()}timeToPosition(e){const t=(this.offsetWidth-this.leftPadding)/(this.endTime-this.startTime);return Math.floor(this.leftPadding+(e-this.startTime)*t)}didDrawForTest(){}draw(){const e=!t.Settings.Settings.instance().moduleSetting("network-color-code-resource-types").get()&&!this.calculator.startAtZero,i=this.nodes,r=this.canvas.getContext("2d");if(!r)return;r.save(),r.scale(window.devicePixelRatio,window.devicePixelRatio),r.translate(0,this.headerHeight),r.rect(0,0,this.offsetWidth,this.offsetHeight),r.clip();const o=Math.floor(this.scrollTop/this.rowHeight),s=Math.min(i.length,o+Math.ceil(this.offsetHeight/this.rowHeight));for(let t=o;t<s;t++){const o=this.rowHeight*t,s=i[t];this.decorateRow(r,s,o-this.scrollTop);let n=[];s.hasChildren()&&!s.expanded&&(n=s.flatChildren()),n.push(s);for(const t of n)e?this.buildTimingBarLayers(t,o-this.scrollTop):this.buildSimplifiedBarLayers(r,t,o-this.scrollTop)}this.drawLayers(r,e),r.save(),r.fillStyle=H.ThemeSupport.instance().getComputedValue("--sys-color-state-disabled");for(const e of this.textLayers)r.fillText(e.text,e.x,e.y);r.restore(),this.drawEventDividers(r),r.restore();const n=v.TimelineGrid.TimelineGrid.calculateGridOffsets(this.calculator);v.TimelineGrid.TimelineGrid.drawCanvasGrid(r,n),v.TimelineGrid.TimelineGrid.drawCanvasHeaders(r,n,(e=>this.calculator.formatValue(e,n.precision)),this.fontSize,this.headerHeight,75),r.save(),r.scale(window.devicePixelRatio,window.devicePixelRatio),r.clearRect(this.offsetWidth-18,0,18,this.headerHeight),r.restore(),this.didDrawForTest()}drawLayers(e,t){for(const i of this.pathForStyle){const r=i[0],o=i[1];e.save(),e.beginPath(),r.lineWidth&&(e.lineWidth=r.lineWidth,r.borderColor&&(e.strokeStyle=r.borderColor),e.stroke(o)),r.fillStyle&&(e.fillStyle=t?H.ThemeSupport.instance().getComputedValue(r.fillStyle):r.fillStyle,e.fill(o)),e.restore()}}drawEventDividers(e){e.save(),e.lineWidth=1;for(const t of this.eventDividers.keys()){e.strokeStyle=t;for(const i of this.eventDividers.get(t)||[]){e.beginPath();const t=this.timeToPosition(i);e.moveTo(t,0),e.lineTo(t,this.offsetHeight)}e.stroke()}e.restore()}getBarHeight(e){switch(e){case"connecting":case"ssl":case"dns":case"proxy":case"blocking":case"push":case"queueing":return 7;default:return 13}}getSimplifiedBarRange(e,t){const i=this.offsetWidth-this.leftPadding,r=this.calculator.computeBarGraphPercentages(e);return{start:this.leftPadding+Math.floor(r.start/100*i)+t,mid:this.leftPadding+Math.floor(r.middle/100*i)+t,end:this.leftPadding+Math.floor(r.end/100*i)+t}}buildSimplifiedBarLayers(e,t,i){const r=t.request();if(!r)return;const o=.5,s=this.getSimplifiedBarRange(r,o),n=this.getBarHeight();i+=Math.floor(this.rowHeight/2-n/2+1)-.5;const a=this.styleForWaitingResourceType.get(r.resourceType());this.pathForStyle.get(a).rect(s.start,i,s.mid-s.start,n-1);const l=Math.max(2,s.end-s.mid),d=this.styleForDownloadingResourceType.get(r.resourceType());this.pathForStyle.get(d).rect(s.mid,i,l,n-1);let c=null;if(t.hovered()){c=this.calculator.computeBarGraphLabels(r);const t=10,a=e.measureText(c.left).width,d=e.measureText(c.right).width,h=this.pathForStyle.get(this.hoverDetailsStyle);if(a<s.mid-s.start){const e=s.start+(s.mid-s.start-a)/2;this.textLayers.push({text:c.left,x:e,y:i+this.fontSize})}else t+a+this.leftPadding<s.start&&(this.textLayers.push({text:c.left,x:s.start-a-t-1,y:i+this.fontSize}),h.moveTo(s.start-t,i+Math.floor(n/2)),h.arc(s.start,i+Math.floor(n/2),2,0,2*Math.PI),h.moveTo(s.start-t,i+Math.floor(n/2)),h.lineTo(s.start,i+Math.floor(n/2)));const u=s.mid+l+o;if(d<u-s.mid){const e=s.mid+(u-s.mid-d)/2;this.textLayers.push({text:c.right,x:e,y:i+this.fontSize})}else u+t+d<this.offsetWidth-this.leftPadding&&(this.textLayers.push({text:c.right,x:u+t+1,y:i+this.fontSize}),h.moveTo(u,i+Math.floor(n/2)),h.arc(u,i+Math.floor(n/2),2,0,2*Math.PI),h.moveTo(u,i+Math.floor(n/2)),h.lineTo(u+t,i+Math.floor(n/2)))}if(!this.calculator.startAtZero){const t=kt.calculateRequestTimeRanges(r,0).find((e=>"total"===e.name)),a=c?e.measureText(c.left).width:0,l=a<s.mid-s.start,d=c&&!l?a+13:0,h=this.timeToPosition(t.start);if(s.start-d>h){const e=this.pathForStyle.get(this.wiskerStyle);e.moveTo(h,i+Math.floor(n/2)),e.lineTo(s.start-d,i+Math.floor(n/2));const t=n/2;e.moveTo(h+o,i+t/2),e.lineTo(h+o,i+n-t/2-1)}}}buildTimingBarLayers(e,t){const i=e.request();if(!i)return;const r=kt.calculateRequestTimeRanges(i,0);let o=0;for(const e of r){if("total"===e.name||"sending"===e.name||e.end-e.start==0)continue;const i=this.styleForTimeRangeName.get(e.name),r=this.pathForStyle.get(i),s=i.lineWidth||0,n=this.getBarHeight(e.name),a=t+Math.floor(this.rowHeight/2-n/2)+s/2,l=this.timeToPosition(e.start),d=this.timeToPosition(e.end);r.rect(l+1*o,a,d-l,n-s),o++}}decorateRow(e,t,i){const r=t.backgroundColor();e.save(),e.beginPath(),e.fillStyle=H.ThemeSupport.instance().getComputedValue(r),e.rect(0,i,this.offsetWidth,this.rowHeight),e.fill(),e.restore()}}var ui=Object.freeze({__proto__:null,NetworkWaterfallColumn:hi});const pi={networkLog:"Network Log",waterfall:"Waterfall",responseHeaders:"Response Headers",manageHeaderColumns:"Manage Header Columns…",startTime:"Start Time",responseTime:"Response Time",endTime:"End Time",totalDuration:"Total Duration",latency:"Latency",name:"Name",path:"Path",url:"Url",method:"Method",status:"Status",text:"Text",protocol:"Protocol",scheme:"Scheme",domain:"Domain",remoteAddress:"Remote Address",type:"Type",initiator:"Initiator",hasOverrides:"Has overrides",initiatorAddressSpace:"Initiator Address Space",cookies:"Cookies",setCookies:"Set Cookies",size:"Size",content:"Content",time:"Time",priority:"Priority",connectionId:"Connection ID",remoteAddressSpace:"Remote Address Space"},gi=r.i18n.registerUIStrings("panels/network/NetworkLogViewColumns.ts",pi),mi=r.i18n.getLocalizedString.bind(void 0,gi),wi=r.i18n.getLazilyComputedLocalizedString.bind(void 0,gi);class ki{networkLogView;persistentSettings;networkLogLargeRowsSetting;eventDividers;eventDividersShown;gridMode;columns;waterfallRequestsAreStale;waterfallScrollerWidthIsStale;popupLinkifier;calculatorsMap;lastWheelTime;dataGridInternal;splitWidget;waterfallColumn;activeScroller;dataGridScroller;waterfallScroller;waterfallScrollerContent;waterfallHeaderElement;waterfallColumnSortIcon;activeWaterfallSortId;popoverHelper;hasScrollerTouchStarted;scrollerTouchStartPos;constructor(e,i,r,o){this.networkLogView=e,this.persistentSettings=t.Settings.Settings.instance().createSetting("network-log-columns",{}),this.networkLogLargeRowsSetting=o,this.networkLogLargeRowsSetting.addChangeListener(this.updateRowsSize,this),this.eventDividers=new Map,this.eventDividersShown=!1,this.gridMode=!0,this.columns=[],this.waterfallRequestsAreStale=!1,this.waterfallScrollerWidthIsStale=!0,this.popupLinkifier=new b.Linkifier.Linkifier,this.calculatorsMap=new Map,this.calculatorsMap.set("Time",i),this.calculatorsMap.set("Duration",r),this.lastWheelTime=0,this.setupDataGrid(),this.setupWaterfall(),H.ThemeSupport.instance().addEventListener(H.ThemeChangeEvent.eventName,(()=>{this.scheduleRefresh()}))}static convertToDataGridDescriptor(e){const t=e.title instanceof Function?e.title():e.title;return{id:e.id,title:t,sortable:e.sortable,align:e.align,nonSelectable:e.nonSelectable,weight:e.weight,allowInSortByEvenWhenHidden:e.allowInSortByEvenWhenHidden}}wasShown(){this.updateRowsSize()}willHide(){this.popoverHelper&&this.popoverHelper.hidePopover()}reset(){this.popoverHelper&&this.popoverHelper.hidePopover(),this.eventDividers.clear()}setupDataGrid(){const t=fi,i=bi;this.columns=[];for(const e of t){const t=Object.assign({},i,e);if(t.id=t.id,t.subtitle){const e=t.title instanceof Function?t.title():t.title,i=t.subtitle instanceof Function?t.subtitle():t.subtitle;t.titleDOMFragment=this.makeHeaderFragment(e,i)}this.columns.push(t)}this.loadCustomColumnsAndSettings(),this.popoverHelper=new e.PopoverHelper.PopoverHelper(this.networkLogView.element,this.getPopoverRequest.bind(this),"network.initiator-stacktrace"),this.popoverHelper.setTimeout(300,300),this.dataGridInternal=new c.SortableDataGrid.SortableDataGrid({displayName:mi(pi.networkLog),columns:this.columns.map(ki.convertToDataGridDescriptor),deleteCallback:void 0,refreshCallback:void 0}),this.dataGridInternal.element.addEventListener("mousedown",(e=>{!this.dataGridInternal.selectedNode&&e.button&&e.consume()}),!0),this.dataGridScroller=this.dataGridInternal.scrollContainer,this.updateColumns(),this.dataGridInternal.addEventListener("SortingChanged",this.sortHandler,this),this.dataGridInternal.setHeaderContextMenuCallback(this.innerHeaderContextMenu.bind(this)),this.activeWaterfallSortId=Si.StartTime,this.dataGridInternal.markColumnAsSortedBy(vi,c.DataGrid.Order.Ascending),this.splitWidget=new e.SplitWidget.SplitWidget(!0,!0,"network-panel-split-view-waterfall",200);const r=this.dataGridInternal.asWidget();r.setMinimumSize(150,0),this.splitWidget.setMainWidget(r)}setupWaterfall(){this.waterfallColumn=new hi(this.networkLogView.calculator()),this.waterfallColumn.element.addEventListener("contextmenu",function(t){const i=t,r=this.waterfallColumn.getNodeFromPoint(i.offsetX,i.offsetY);if(!r)return;const o=r.request();if(!o)return;const s=new e.ContextMenu.ContextMenu(i);this.networkLogView.handleContextMenuForRequest(s,o),s.show()}.bind(this)),this.waterfallColumn.element.addEventListener("wheel",this.onMouseWheel.bind(this,!1),{passive:!0}),this.waterfallColumn.element.addEventListener("touchstart",this.onTouchStart.bind(this)),this.waterfallColumn.element.addEventListener("touchmove",this.onTouchMove.bind(this)),this.waterfallColumn.element.addEventListener("touchend",this.onTouchEnd.bind(this)),this.dataGridScroller.addEventListener("wheel",this.onMouseWheel.bind(this,!0),!0),this.dataGridScroller.addEventListener("touchstart",this.onTouchStart.bind(this)),this.dataGridScroller.addEventListener("touchmove",this.onTouchMove.bind(this)),this.dataGridScroller.addEventListener("touchend",this.onTouchEnd.bind(this)),this.waterfallScroller=this.waterfallColumn.contentElement.createChild("div","network-waterfall-v-scroll"),this.waterfallScrollerContent=this.waterfallScroller.createChild("div","network-waterfall-v-scroll-content"),this.dataGridInternal.addEventListener("PaddingChanged",(()=>{this.waterfallScrollerWidthIsStale=!0,this.syncScrollers()})),this.dataGridInternal.addEventListener("ViewportCalculated",this.redrawWaterfallColumn.bind(this)),this.createWaterfallHeader(),this.waterfallColumn.contentElement.classList.add("network-waterfall-view"),this.waterfallColumn.setMinimumSize(100,0),this.splitWidget.setSidebarWidget(this.waterfallColumn),this.switchViewMode(!1)}onMouseWheel(e,t){e&&t.consume(!0);const i=t,r=Date.now()-this.lastWheelTime<80;this.activeScroller.scrollBy({top:i.deltaY,behavior:r?"auto":"smooth"}),this.syncScrollers(),this.lastWheelTime=Date.now()}onTouchStart(e){const t=e;this.hasScrollerTouchStarted=!0,this.scrollerTouchStartPos=t.changedTouches[0].pageY}onTouchMove(e){if(!this.hasScrollerTouchStarted)return;const t=e.changedTouches[0].pageY,i=this.scrollerTouchStartPos-t;this.activeScroller.scrollBy({top:i,behavior:"auto"}),this.syncScrollers(),this.scrollerTouchStartPos=t}onTouchEnd(){this.hasScrollerTouchStarted=!1}syncScrollers(){this.waterfallColumn.isShowing()&&(this.waterfallScrollerContent.style.height=this.dataGridScroller.scrollHeight-this.dataGridInternal.headerHeight()+"px",this.updateScrollerWidthIfNeeded(),this.dataGridScroller.scrollTop=this.waterfallScroller.scrollTop)}updateScrollerWidthIfNeeded(){this.waterfallScrollerWidthIsStale&&(this.waterfallScrollerWidthIsStale=!1,this.waterfallColumn.setRightPadding(this.waterfallScroller.offsetWidth-this.waterfallScrollerContent.offsetWidth))}redrawWaterfallColumn(){if(!this.waterfallRequestsAreStale)return this.updateScrollerWidthIfNeeded(),void this.waterfallColumn.update(this.activeScroller.scrollTop,this.eventDividersShown?this.eventDividers:void 0);this.syncScrollers();const e=this.networkLogView.flatNodesList();this.waterfallColumn.update(this.activeScroller.scrollTop,this.eventDividers,e)}createWaterfallHeader(){this.waterfallHeaderElement=this.waterfallColumn.contentElement.createChild("div","network-waterfall-header"),this.waterfallHeaderElement.setAttribute("jslog",`${d.tableHeader("waterfall").track({click:!0})}`),this.waterfallHeaderElement.addEventListener("click",function(){const e=c.DataGrid.Order,t="waterfall"===this.dataGridInternal.sortColumnId(),i=this.dataGridInternal.isSortOrderAscending(),r=t&&i?e.Descending:e.Ascending;this.dataGridInternal.markColumnAsSortedBy("waterfall",r),this.sortHandler()}.bind(this)),this.waterfallHeaderElement.addEventListener("contextmenu",(t=>{const i=new e.ContextMenu.ContextMenu(t);this.innerHeaderContextMenu(i),i.show()})),this.waterfallHeaderElement.createChild("div","hover-layer");this.waterfallHeaderElement.createChild("div").textContent=mi(pi.waterfall),this.waterfallColumnSortIcon=new k.Icon.Icon,this.waterfallColumnSortIcon.className="sort-order-icon",this.waterfallHeaderElement.createChild("div","sort-order-icon-container").appendChild(this.waterfallColumnSortIcon)}setCalculator(e){this.waterfallColumn.setCalculator(e)}scheduleRefresh(){this.waterfallColumn.scheduleDraw()}updateRowsSize(){const e=Boolean(this.networkLogLargeRowsSetting.get());this.dataGridInternal.element.classList.toggle("small",!e),this.dataGridInternal.scheduleUpdate(),this.waterfallScrollerWidthIsStale=!0,this.waterfallColumn.setRowHeight(e?41:21),this.waterfallScroller.classList.toggle("small",!e),this.waterfallHeaderElement.classList.toggle("small",!e),window.requestAnimationFrame((()=>{this.waterfallColumn.setHeaderHeight(this.waterfallScroller.offsetTop),this.waterfallColumn.scheduleDraw()}))}show(e){this.splitWidget.show(e)}setHidden(t){e.ARIAUtils.setHidden(this.splitWidget.element,t)}dataGrid(){return this.dataGridInternal}sortByCurrentColumn(){this.sortHandler()}sortHandler(){const e=this.dataGridInternal.sortColumnId();if(this.networkLogView.removeAllNodeHighlights(),this.waterfallRequestsAreStale=!0,"waterfall"===e){this.dataGridInternal.sortOrder()===c.DataGrid.Order.Ascending?this.waterfallColumnSortIcon.name="triangle-up":this.waterfallColumnSortIcon.name="triangle-down",this.waterfallColumnSortIcon.hidden=!1;const e=ve.RequestPropertyComparator.bind(null,this.activeWaterfallSortId);return this.dataGridInternal.sortNodes(e,!this.dataGridInternal.isSortOrderAscending()),void this.dataGridSortedForTest()}this.waterfallColumnSortIcon.hidden=!0,this.waterfallColumnSortIcon.name=null;const t=this.columns.find((t=>t.id===e));if(!t?.sortingFunction)return;const i=t.sortingFunction;i&&(this.dataGridInternal.sortNodes(i,!this.dataGridInternal.isSortOrderAscending()),this.dataGridSortedForTest())}dataGridSortedForTest(){}updateColumns(){if(!this.dataGridInternal)return;const e=new Set;if(this.gridMode)for(const t of this.columns)"waterfall"===t.id?this.setWaterfallVisibility(t.visible):t.visible&&e.add(t.id);else{const t=this.columns.find((e=>"path"===e.hideableGroup&&e.visible));t?e.add(t.id):e.add("name"),this.setWaterfallVisibility(!1)}this.dataGridInternal.setColumnsVisibility(e)}switchViewMode(e){this.gridMode!==e&&(this.gridMode=e,this.updateColumns(),this.updateRowsSize())}toggleColumnVisibility(e){this.loadCustomColumnsAndSettings(),e.visible=!e.visible,this.saveColumnsSettings(),this.updateColumns(),this.updateRowsSize()}setWaterfallVisibility(e){this.splitWidget&&(this.networkLogView.element.classList.toggle("has-waterfall",e),e?(this.splitWidget.showBoth(),this.activeScroller=this.waterfallScroller,this.waterfallScroller.scrollTop=this.dataGridScroller.scrollTop,this.dataGridInternal.setScrollContainer(this.waterfallScroller)):(this.networkLogView.removeAllNodeHighlights(),this.splitWidget.hideSidebar(),this.activeScroller=this.dataGridScroller,this.dataGridInternal.setScrollContainer(this.dataGridScroller)))}saveColumnsSettings(){const e={};for(const t of this.columns)e[t.id]={visible:t.visible,title:t.title};this.persistentSettings.set(e)}loadCustomColumnsAndSettings(){const e=this.persistentSettings.get(),t=Object.keys(e);for(const i of t){const t=e[i];let r=this.columns.find((e=>e.id===i));!r&&t.title&&(r=this.addCustomHeader(t.title,i)||void 0),r&&r.hideable&&"boolean"==typeof t.visible&&(r.visible=Boolean(t.visible)),r&&"string"==typeof t.title&&(r.title=t.title)}}makeHeaderFragment(t,i){const r=document.createDocumentFragment();e.UIUtils.createTextChild(r,t);const o=r.createChild("div","network-header-subtitle");return e.UIUtils.createTextChild(o,i),r}innerHeaderContextMenu(e){const t=this.columns.filter((e=>e.hideable)),i=t.filter((e=>!e.isResponseHeader)),r=new Map,o=[];for(const e of i)if(e.hideableGroup){const t=e.hideableGroup;let i=r.get(t);i||(i=[],r.set(t,i)),i.push(e)}else o.push(e);for(const t of r.values()){const i=t.filter((e=>e.visible));for(const r of t){const t=1===i.length&&i[0]===r,o=r.title instanceof Function?r.title():r.title;e.headerSection().appendCheckboxItem(o,this.toggleColumnVisibility.bind(this,r),{checked:r.visible,disabled:t,jslogContext:r.id})}e.headerSection().appendSeparator()}for(const t of o){const i=t.title instanceof Function?t.title():t.title;e.headerSection().appendCheckboxItem(i,this.toggleColumnVisibility.bind(this,t),{checked:t.visible,jslogContext:t.id})}const s=e.footerSection().appendSubMenuItem(mi(pi.responseHeaders),!1,"response-headers"),n=t.filter((e=>e.isResponseHeader));for(const e of n){const t=e.title instanceof Function?e.title():e.title;s.defaultSection().appendCheckboxItem(t,this.toggleColumnVisibility.bind(this,e),{checked:e.visible,jslogContext:e.id})}s.footerSection().appendItem(mi(pi.manageHeaderColumns),this.manageCustomHeaderDialog.bind(this),{jslogContext:"manage-header-columns"});const a=Si,l=e.footerSection().appendSubMenuItem(mi(pi.waterfall),!1,"waterfall");function d(e){let t=this.calculatorsMap.get("Time");const i=Si;e!==i.Duration&&e!==i.Latency||(t=this.calculatorsMap.get("Duration")),this.networkLogView.setCalculator(t),this.activeWaterfallSortId=e,this.dataGridInternal.markColumnAsSortedBy("waterfall",c.DataGrid.Order.Ascending),this.sortHandler()}l.defaultSection().appendCheckboxItem(mi(pi.startTime),d.bind(this,a.StartTime),{checked:this.activeWaterfallSortId===a.StartTime,jslogContext:"start-time"}),l.defaultSection().appendCheckboxItem(mi(pi.responseTime),d.bind(this,a.ResponseTime),{checked:this.activeWaterfallSortId===a.ResponseTime,jslogContext:"response-time"}),l.defaultSection().appendCheckboxItem(mi(pi.endTime),d.bind(this,a.EndTime),{checked:this.activeWaterfallSortId===a.EndTime,jslogContext:"end-time"}),l.defaultSection().appendCheckboxItem(mi(pi.totalDuration),d.bind(this,a.Duration),{checked:this.activeWaterfallSortId===a.Duration,jslogContext:"total-duration"}),l.defaultSection().appendCheckboxItem(mi(pi.latency),d.bind(this,a.Latency),{checked:this.activeWaterfallSortId===a.Latency,jslogContext:"latency"})}manageCustomHeaderDialog(){const t=[];for(const e of this.columns){const i=e.title instanceof Function?e.title():e.title;e.isResponseHeader&&t.push({title:i,editable:e.isCustomHeader})}const i=new ti(t,(e=>Boolean(this.addCustomHeader(e))),this.changeCustomHeader.bind(this),this.removeCustomHeader.bind(this)),r=new e.Dialog.Dialog("manage-custom-headers");i.show(r.contentElement),r.setSizeBehavior("MeasureContent"),r.show(this.networkLogView.element)}removeCustomHeader(e){e=e.toLowerCase();const t=this.columns.findIndex((t=>t.id===e));return-1!==t&&(this.columns.splice(t,1),this.dataGridInternal.removeColumn(e),this.saveColumnsSettings(),this.updateColumns(),!0)}addCustomHeader(e,t,i){t||(t=e.toLowerCase()),void 0===i&&(i=this.columns.length-1);const r=this.columns.find((e=>e.id===t));if(r)return null;const o=Object.assign({},bi,{id:t,title:e,isResponseHeader:!0,isCustomHeader:!0,visible:!0,sortingFunction:ve.ResponseHeaderStringComparator.bind(null,t)});return this.columns.splice(i,0,o),this.dataGridInternal&&this.dataGridInternal.addColumn(ki.convertToDataGridDescriptor(o),i),this.saveColumnsSettings(),this.updateColumns(),o}changeCustomHeader(e,t,i){i||(i=t.toLowerCase()),e=e.toLowerCase();const r=this.columns.findIndex((t=>t.id===e)),o=this.columns[r],s=this.columns.find((e=>e.id===i));return!(!o||s&&e!==i)&&(this.removeCustomHeader(e),this.addCustomHeader(t,i,r),!0)}getPopoverRequest(e){if(!this.gridMode)return null;const t=this.networkLogView.hoveredNode();if(!t||!e.target)return null;const i=e.target.enclosingNodeOrSelfWithClass("network-script-initiated");if(!i)return null;const r=t.request();return r?{box:i.boxInWindow(),show:async e=>{this.popupLinkifier.addEventListener("liveLocationUpdated",(()=>{e.setSizeBehavior("MeasureContent")}));const t=He.createStackTracePreview(r,this.popupLinkifier,!1);return!!t&&(e.contentElement.appendChild(t.element),!0)},hide:this.popupLinkifier.reset.bind(this.popupLinkifier)}:null}addEventDividers(e,t){let i="transparent";switch(t){case"network-dcl-divider":i=H.ThemeSupport.instance().getComputedValue("--sys-color-blue");break;case"network-load-divider":i=H.ThemeSupport.instance().getComputedValue("--sys-color-error");break;default:return}const r=this.eventDividers.get(i)||[];this.eventDividers.set(i,r.concat(e)),this.networkLogView.scheduleRefresh()}hideEventDividers(){this.eventDividersShown=!0,this.redrawWaterfallColumn()}showEventDividers(){this.eventDividersShown=!1,this.redrawWaterfallColumn()}selectFilmStripFrame(e){this.eventDividers.set(Ci,[e]),this.redrawWaterfallColumn()}clearFilmStripFrame(){this.eventDividers.delete(Ci),this.redrawWaterfallColumn()}}const vi="waterfall",bi={subtitle:null,visible:!1,weight:6,sortable:!0,hideable:!0,hideableGroup:null,nonSelectable:!1,isResponseHeader:!1,isCustomHeader:!1,allowInSortByEvenWhenHidden:!1},fi=[{id:"name",title:wi(pi.name),subtitle:wi(pi.path),visible:!0,weight:20,hideable:!0,hideableGroup:"path",sortingFunction:ve.NameComparator},{id:"path",title:wi(pi.path),hideable:!0,hideableGroup:"path",sortingFunction:ve.RequestPropertyComparator.bind(null,"pathname")},{id:"url",title:wi(pi.url),hideable:!0,hideableGroup:"path",sortingFunction:ve.RequestURLComparator},{id:"method",title:wi(pi.method),sortingFunction:ve.RequestPropertyComparator.bind(null,"requestMethod")},{id:"status",title:wi(pi.status),visible:!0,subtitle:wi(pi.text),sortingFunction:ve.RequestPropertyComparator.bind(null,"statusCode")},{id:"protocol",title:wi(pi.protocol),sortingFunction:ve.RequestPropertyComparator.bind(null,"protocol")},{id:"scheme",title:wi(pi.scheme),sortingFunction:ve.RequestPropertyComparator.bind(null,"scheme")},{id:"domain",title:wi(pi.domain),sortingFunction:ve.RequestPropertyComparator.bind(null,"domain")},{id:"remote-address",title:wi(pi.remoteAddress),weight:10,align:"right",sortingFunction:ve.RemoteAddressComparator},{id:"remote-address-space",title:wi(pi.remoteAddressSpace),visible:!1,weight:10,sortingFunction:ve.RemoteAddressSpaceComparator},{id:"type",title:wi(pi.type),visible:!0,sortingFunction:ve.TypeComparator},{id:"initiator",title:wi(pi.initiator),visible:!0,weight:10,sortingFunction:ve.InitiatorComparator},{id:"initiator-address-space",title:wi(pi.initiatorAddressSpace),visible:!1,weight:10,sortingFunction:ve.InitiatorAddressSpaceComparator},{id:"cookies",title:wi(pi.cookies),align:"right",sortingFunction:ve.RequestCookiesCountComparator},{id:"set-cookies",title:wi(pi.setCookies),align:"right",sortingFunction:ve.ResponseCookiesCountComparator},{id:"size",title:wi(pi.size),visible:!0,subtitle:wi(pi.content),align:"right",sortingFunction:ve.SizeComparator},{id:"time",title:wi(pi.time),visible:!0,subtitle:wi(pi.latency),align:"right",sortingFunction:ve.RequestPropertyComparator.bind(null,"duration")},{id:"priority",title:wi(pi.priority),sortingFunction:ve.PriorityComparator},{id:"connection-id",title:wi(pi.connectionId),sortingFunction:ve.RequestPropertyComparator.bind(null,"connectionId")},{id:"cache-control",isResponseHeader:!0,title:r.i18n.lockedLazyString("Cache-Control"),sortingFunction:ve.ResponseHeaderStringComparator.bind(null,"cache-control")},{id:"connection",isResponseHeader:!0,title:r.i18n.lockedLazyString("Connection"),sortingFunction:ve.ResponseHeaderStringComparator.bind(null,"connection")},{id:"content-encoding",isResponseHeader:!0,title:r.i18n.lockedLazyString("Content-Encoding"),sortingFunction:ve.ResponseHeaderStringComparator.bind(null,"content-encoding")},{id:"content-length",isResponseHeader:!0,title:r.i18n.lockedLazyString("Content-Length"),align:"right",sortingFunction:ve.ResponseHeaderNumberComparator.bind(null,"content-length")},{id:"etag",isResponseHeader:!0,title:r.i18n.lockedLazyString("ETag"),sortingFunction:ve.ResponseHeaderStringComparator.bind(null,"etag")},{id:"has-overrides",title:wi(pi.hasOverrides),sortingFunction:ve.ResponseHeaderStringComparator.bind(null,"has-overrides")},{id:"keep-alive",isResponseHeader:!0,title:r.i18n.lockedLazyString("Keep-Alive"),sortingFunction:ve.ResponseHeaderStringComparator.bind(null,"keep-alive")},{id:"last-modified",isResponseHeader:!0,title:r.i18n.lockedLazyString("Last-Modified"),sortingFunction:ve.ResponseHeaderDateComparator.bind(null,"last-modified")},{id:"server",isResponseHeader:!0,title:r.i18n.lockedLazyString("Server"),sortingFunction:ve.ResponseHeaderStringComparator.bind(null,"server")},{id:"vary",isResponseHeader:!0,title:r.i18n.lockedLazyString("Vary"),sortingFunction:ve.ResponseHeaderStringComparator.bind(null,"vary")},{id:"waterfall",title:wi(pi.waterfall),allowInSortByEvenWhenHidden:!0}],Ci="#fccc49";var Si;!function(e){e.StartTime="startTime",e.ResponseTime="responseReceivedTime",e.EndTime="endTime",e.Duration="duration",e.Latency="latency"}(Si||(Si={}));var yi=Object.freeze({__proto__:null,NetworkLogViewColumns:ki});const Ti={invertFilter:"Invert",invertsFilter:"Inverts the search filter",hideDataUrls:"Hide data URLs",hidesDataAndBlobUrls:"Hide 'data:' and 'blob:' URLs",chromeExtensions:"Hide extension URLs",hideChromeExtension:"Hide 'chrome-extension://' URLs",requestTypesToInclude:"Request types to include",hasBlockedCookies:"Blocked response cookies",onlyShowRequestsWithBlockedCookies:"Show only requests with blocked response cookies",blockedRequests:"Blocked requests",onlyShowBlockedRequests:"Show only blocked requests",thirdParty:"3rd-party requests",onlyShowThirdPartyRequests:"Show only requests with origin different from page origin",dropHarFilesHere:"Drop HAR files here",recordingNetworkActivity:"Currently recording network activity",performARequestOrHitSToRecordThe:'Perform a request or reload the page by using the "{PH1}" button or by hitting {PH2}.',recordToDisplayNetworkActivity:'Record network log to display network activity by using the "{PH1}" button or by hitting {PH2}.',reloadPage:"Reload page",startRecording:"Start recording",noNetworkActivityRecorded:"No network activity recorded",networkDataAvailable:"Network Data Available",sSRequests:"{PH1} / {PH2} requests",sSTransferred:"{PH1} / {PH2} transferred",sBSBTransferredOverNetwork:"{PH1} B / {PH2} B transferred over network",sSResources:"{PH1} / {PH2} resources",sBSBResourcesLoadedByThePage:"{PH1} B / {PH2} B resources loaded by the page",sRequests:"{PH1} requests",sTransferred:"{PH1} transferred",sBTransferredOverNetwork:"{PH1} B transferred over network",sResources:"{PH1} resources",sBResourcesLoadedByThePage:"{PH1} B resources loaded by the page",finishS:"Finish: {PH1}",domcontentloadedS:"DOMContentLoaded: {PH1}",loadS:"Load: {PH1}",copy:"Copy",copyURL:"Copy URL",copyRequestHeaders:"Copy request headers",copyResponseHeaders:"Copy response headers",copyResponse:"Copy response",copyStacktrace:"Copy stack trace",copyAsPowershell:"Copy as `PowerShell`",copyAsFetch:"Copy as `fetch`",copyAsNodejsFetch:"Copy as `fetch` (`Node.js`)",copyAsCurlCmd:"Copy as `cURL` (`cmd`)",copyAsCurlBash:"Copy as `cURL` (`bash`)",copyAllURLs:"Copy all URLs",copyAllListedURLs:"Copy all listed URLs",copyAllAsPowershell:"Copy all as `PowerShell`",copyAllListedAsPowershell:"Copy all listed as `PowerShell`",copyAllAsFetch:"Copy all as `fetch`",copyAllListedAsFetch:"Copy all listed as `fetch`",copyAllAsNodejsFetch:"Copy all as `fetch` (`Node.js`)",copyAllListedAsNodejsFetch:"Copy all listed as `fetch` (`Node.js`)",copyAllAsCurlCmd:"Copy all as `cURL` (`cmd`)",copyAllListedAsCurlCmd:"Copy all listed as `cURL` (`cmd`)",copyAllAsCurlBash:"Copy all as `cURL` (`bash`)",copyAllListedAsCurlBash:"Copy all listed as `cURL` (`bash`)",copyAsCurl:"Copy as `cURL`",copyAllAsCurl:"Copy all as `cURL`",copyAllListedAsCurl:"Copy all listed as `cURL`",copyAllAsHarSanitized:"Copy all as `HAR` (sanitized)",copyAllAsHarWithSensitiveData:"Copy all as `HAR` (with sensitive data)",copyAllListedAsHarSanitized:"Copy all listed as `HAR` (sanitized)",copyAllListedAsHarWithSensitiveData:"Copy all listed as `HAR` (with sensitive data)",clearBrowserCache:"Clear browser cache",clearBrowserCookies:"Clear browser cookies",blockRequestUrl:"Block request URL",unblockS:"Unblock {PH1}",blockRequestDomain:"Block request domain",replayXhr:"Replay XHR",areYouSureYouWantToClearBrowser:"Are you sure you want to clear browser cache?",areYouSureYouWantToClearBrowserCookies:"Are you sure you want to clear browser cookies?",overrideHeaders:"Override headers",showOnlyHideRequests:"Show only/hide requests",moreFilters:"More filters"},xi=r.i18n.registerUIStrings("panels/network/NetworkLogView.ts",Ti),Ri=r.i18n.getLocalizedString.bind(void 0,xi);class Ii extends(t.ObjectWrapper.eventMixin(e.Widget.VBox)){networkInvertFilterSetting;networkHideDataURLSetting;networkHideChromeExtensions;networkShowBlockedCookiesOnlySetting;networkOnlyBlockedRequestsSetting;networkOnlyThirdPartySetting;networkResourceTypeFiltersSetting;networkShowOptionsToGenerateHarWithSensitiveData;rawRowHeight;progressBarContainer;networkLogLargeRowsSetting;rowHeightInternal;timeCalculatorInternal;durationCalculator;calculatorInternal;columnsInternal;staleRequests;mainRequestLoadTime;mainRequestDOMContentLoadedTime;filters;timeFilter;hoveredNodeInternal;recordingHint;highlightedNode;linkifierInternal;recording;needsRefresh;headerHeightInternal;groupLookups;activeGroupLookup;textFilterUI;invertFilterUI;dataURLFilterUI;moreFiltersDropDownUI;onlyBlockedResponseCookiesFilterUI;onlyBlockedRequestsUI;onlyThirdPartyFilterUI;hideChromeExtensionsUI;resourceCategoryFilterUI;filterParser;suggestionBuilder;dataGrid;summaryToolbarInternal;filterBar;textFilterSetting;isReactNative=!1;constructor(i,r,o){function l(){this.rawRowHeight=Boolean(this.networkLogLargeRowsSetting.get())?41:21,this.rowHeightInternal=this.computeRowHeight()}super(),this.isReactNative=C.Runtime.experiments.isEnabled("react-native-specific-ui"),this.registerRequiredCSS(Jt),this.setMinimumSize(50,64),this.element.id="network-container",this.element.classList.add("no-node-selected"),this.networkInvertFilterSetting=t.Settings.Settings.instance().createSetting("network-invert-filter",!1),this.networkHideDataURLSetting=t.Settings.Settings.instance().createSetting("network-hide-data-url",!1),this.networkHideChromeExtensions=t.Settings.Settings.instance().createSetting("network-hide-chrome-extensions",!1),this.networkShowBlockedCookiesOnlySetting=t.Settings.Settings.instance().createSetting("network-show-blocked-cookies-only-setting",!1),this.networkOnlyBlockedRequestsSetting=t.Settings.Settings.instance().createSetting("network-only-blocked-requests",!1),this.networkOnlyThirdPartySetting=t.Settings.Settings.instance().createSetting("network-only-third-party-setting",!1),this.networkResourceTypeFiltersSetting=t.Settings.Settings.instance().createSetting("network-resource-type-filters",{}),this.networkShowOptionsToGenerateHarWithSensitiveData=t.Settings.Settings.instance().createSetting("network.show-options-to-generate-har-with-sensitive-data",!1),this.rawRowHeight=0,this.progressBarContainer=r,this.networkLogLargeRowsSetting=o,this.networkLogLargeRowsSetting.addChangeListener(l.bind(this),this),this.rawRowHeight=0,this.rowHeightInternal=0,l.call(this),this.timeCalculatorInternal=new jt,this.durationCalculator=new zt,this.calculatorInternal=this.timeCalculatorInternal,this.columnsInternal=new ki(this,this.timeCalculatorInternal,this.durationCalculator,o),this.columnsInternal.show(this.element),this.staleRequests=new Set,this.mainRequestLoadTime=-1,this.mainRequestDOMContentLoadedTime=-1,this.filters=[],this.timeFilter=null,this.hoveredNodeInternal=null,this.recordingHint=null,this.highlightedNode=null,this.linkifierInternal=new b.Linkifier.Linkifier,this.recording=!1,this.needsRefresh=!1,this.headerHeightInternal=0,this.groupLookups=new Map,this.groupLookups.set("Frame",new Kt(this)),this.activeGroupLookup=null,this.textFilterUI=new e.FilterBar.TextFilterUI,this.textFilterUI.addEventListener("FilterChanged",this.filterChanged,this),i.addFilter(this.textFilterUI),this.invertFilterUI=new e.FilterBar.CheckboxFilterUI("invert-filter",Ri(Ti.invertFilter),!0,this.networkInvertFilterSetting,"invert-filter"),this.invertFilterUI.addEventListener("FilterChanged",this.filterChanged.bind(this),this),e.Tooltip.Tooltip.install(this.invertFilterUI.element(),Ri(Ti.invertsFilter)),i.addFilter(this.invertFilterUI),i.addDivider();const d=Object.entries(this.isReactNative?t.ResourceType.resourceCategoriesReactNative:t.ResourceType.resourceCategories).map((([e,t])=>({name:t.name,label:()=>t.shortTitle(),title:t.title(),jslogContext:s.StringUtilities.toKebabCase(e)})));C.Runtime.experiments.isEnabled("network-panel-filter-bar-redesign")?(this.moreFiltersDropDownUI=new Ai,this.moreFiltersDropDownUI.addEventListener("FilterChanged",this.filterChanged,this),i.addFilter(this.moreFiltersDropDownUI),this.resourceCategoryFilterUI=new e.FilterBar.NamedBitSetFilterUI(d,this.networkResourceTypeFiltersSetting),e.ARIAUtils.setLabel(this.resourceCategoryFilterUI.element(),Ri(Ti.requestTypesToInclude)),this.resourceCategoryFilterUI.addEventListener("FilterChanged",this.filterChanged.bind(this),this),i.addFilter(this.resourceCategoryFilterUI)):(this.dataURLFilterUI=new e.FilterBar.CheckboxFilterUI("hide-data-url",Ri(Ti.hideDataUrls),!0,this.networkHideDataURLSetting,"hide-data-urls"),this.dataURLFilterUI.addEventListener("FilterChanged",this.filterChanged.bind(this),this),e.Tooltip.Tooltip.install(this.dataURLFilterUI.element(),Ri(Ti.hidesDataAndBlobUrls)),i.addFilter(this.dataURLFilterUI),this.isReactNative||(this.hideChromeExtensionsUI=new e.FilterBar.CheckboxFilterUI("chrome-extension",Ri(Ti.chromeExtensions),!0,this.networkHideChromeExtensions,"hide-extension-urls"),this.hideChromeExtensionsUI.addEventListener("FilterChanged",this.filterChanged.bind(this),this),e.Tooltip.Tooltip.install(this.hideChromeExtensionsUI.element(),Ri(Ti.hideChromeExtension)),i.addFilter(this.hideChromeExtensionsUI)),this.resourceCategoryFilterUI=new e.FilterBar.NamedBitSetFilterUI(d,this.networkResourceTypeFiltersSetting),e.ARIAUtils.setLabel(this.resourceCategoryFilterUI.element(),Ri(Ti.requestTypesToInclude)),this.resourceCategoryFilterUI.addEventListener("FilterChanged",this.filterChanged.bind(this),this),i.addFilter(this.resourceCategoryFilterUI),this.isReactNative||(this.onlyBlockedResponseCookiesFilterUI=new e.FilterBar.CheckboxFilterUI("only-show-blocked-cookies",Ri(Ti.hasBlockedCookies),!0,this.networkShowBlockedCookiesOnlySetting,"only-show-blocked-cookies"),this.onlyBlockedResponseCookiesFilterUI.addEventListener("FilterChanged",this.filterChanged.bind(this),this),e.Tooltip.Tooltip.install(this.onlyBlockedResponseCookiesFilterUI.element(),Ri(Ti.onlyShowRequestsWithBlockedCookies)),i.addFilter(this.onlyBlockedResponseCookiesFilterUI)),this.onlyBlockedRequestsUI=new e.FilterBar.CheckboxFilterUI("only-show-blocked-requests",Ri(Ti.blockedRequests),!0,this.networkOnlyBlockedRequestsSetting,"only-show-blocked-requests"),this.onlyBlockedRequestsUI.addEventListener("FilterChanged",this.filterChanged.bind(this),this),e.Tooltip.Tooltip.install(this.onlyBlockedRequestsUI.element(),Ri(Ti.onlyShowBlockedRequests)),i.addFilter(this.onlyBlockedRequestsUI),this.isReactNative||(this.onlyThirdPartyFilterUI=new e.FilterBar.CheckboxFilterUI("only-show-third-party",Ri(Ti.thirdParty),!0,this.networkOnlyThirdPartySetting,"only-show-third-party"),this.onlyThirdPartyFilterUI.addEventListener("FilterChanged",this.filterChanged.bind(this),this),e.Tooltip.Tooltip.install(this.onlyThirdPartyFilterUI.element(),Ri(Ti.onlyShowThirdPartyRequests)),i.addFilter(this.onlyThirdPartyFilterUI))),this.filterParser=new R.TextUtils.FilterParser(Hi),this.suggestionBuilder=new e.FilterSuggestionBuilder.FilterSuggestionBuilder(Hi,Ii.sortSearchValues),this.resetSuggestionBuilder(),this.dataGrid=this.columnsInternal.dataGrid(),this.setupDataGrid(),this.columnsInternal.sortByCurrentColumn(),i.filterButton().addEventListener("Click",this.dataGrid.scheduleUpdate.bind(this.dataGrid,!0)),this.summaryToolbarInternal=this.element.createChild("devtools-toolbar","network-summary-bar"),this.summaryToolbarInternal.setAttribute("role","status"),new e.DropTarget.DropTarget(this.element,[e.DropTarget.Type.File],Ri(Ti.dropHarFilesHere),this.handleDrop.bind(this)),t.Settings.Settings.instance().moduleSetting("network-color-code-resource-types").addChangeListener(this.invalidateAllItems.bind(this,!1),this),n.TargetManager.TargetManager.instance().observeModels(n.NetworkManager.NetworkManager,this,{scoped:!0}),a.NetworkLog.NetworkLog.instance().addEventListener(a.NetworkLog.Events.RequestAdded,this.onRequestUpdated,this),a.NetworkLog.NetworkLog.instance().addEventListener(a.NetworkLog.Events.RequestUpdated,this.onRequestUpdated,this),a.NetworkLog.NetworkLog.instance().addEventListener(a.NetworkLog.Events.RequestRemoved,this.onRequestRemoved,this),a.NetworkLog.NetworkLog.instance().addEventListener(a.NetworkLog.Events.Reset,this.reset,this),this.updateGroupByFrame(),t.Settings.Settings.instance().moduleSetting("network.group-by-frame").addChangeListener((()=>this.updateGroupByFrame())),this.filterBar=i,this.textFilterSetting=t.Settings.Settings.instance().createSetting("network-text-filter",""),this.textFilterSetting.get()&&this.textFilterUI.setValue(this.textFilterSetting.get())}getMoreFiltersDropdown(){return this.moreFiltersDropDownUI}updateGroupByFrame(){const e=t.Settings.Settings.instance().moduleSetting("network.group-by-frame").get();this.setGrouping(e?"Frame":null)}static sortSearchValues(e,t){e===m.UIFilter.FilterType.Priority?t.sort(((e,t)=>{const i=v.NetworkPriorities.uiLabelToNetworkPriority(e),r=v.NetworkPriorities.uiLabelToNetworkPriority(t);return v.NetworkPriorities.networkPriorityWeight(i)-v.NetworkPriorities.networkPriorityWeight(r)})):t.sort()}static negativeFilter(e,t){return!e(t)}static requestPathFilter(e,t){return!!e&&e.test(t.path()+"/"+t.name())}static subdomains(e){const t=[e];let i=e.indexOf(".");for(;-1!==i;)t.push("*"+e.substring(i)),i=e.indexOf(".",i+1);return t}static createRequestDomainFilter(e){const t=e.split("*").map(s.StringUtilities.escapeForRegExp).join(".*");return Ii.requestDomainFilter.bind(null,new RegExp("^"+t+"$","i"))}static requestDomainFilter(e,t){return e.test(t.domain)}static runningRequestFilter(e){return!e.finished}static fromCacheRequestFilter(e){return e.cached()}static interceptedByServiceWorkerFilter(e){return e.fetchedViaServiceWorker}static initiatedByServiceWorkerFilter(e){return e.initiatedByServiceWorker()}static requestResponseHeaderFilter(e,t){return void 0!==t.responseHeaderValue(e)}static requestResponseHeaderSetCookieFilter(e,t){return Boolean(t.responseHeaderValue("Set-Cookie")?.includes(e))}static requestMethodFilter(e,t){return t.requestMethod===e}static requestPriorityFilter(e,t){return t.priority()===e}static requestMimeTypeFilter(e,t){return t.mimeType===e}static requestMixedContentFilter(e,t){return"displayed"===e?"optionally-blockable"===t.mixedContentType:"blocked"===e?"blockable"===t.mixedContentType&&t.wasBlocked():"block-overridden"===e?"blockable"===t.mixedContentType&&!t.wasBlocked():"all"===e&&"none"!==t.mixedContentType}static requestSchemeFilter(e,t){return t.scheme===e}static requestCookieDomainFilter(e,t){return t.allCookiesIncludingBlockedOnes().some((t=>t.domain()===e))}static requestCookieNameFilter(e,t){return t.allCookiesIncludingBlockedOnes().some((t=>t.name()===e))}static requestCookiePathFilter(e,t){return t.allCookiesIncludingBlockedOnes().some((t=>t.path()===e))}static requestCookieValueFilter(e,t){return t.allCookiesIncludingBlockedOnes().some((t=>t.value()===e))}static requestSetCookieDomainFilter(e,t){return t.responseCookies.some((t=>t.domain()===e))}static requestSetCookieNameFilter(e,t){return t.responseCookies.some((t=>t.name()===e))}static requestSetCookieValueFilter(e,t){return t.responseCookies.some((t=>t.value()===e))}static requestSizeLargerThanFilter(e,t){return t.transferSize>=e}static statusCodeFilter(e,t){return String(t.statusCode)===e}static hasOverridesFilter(e,t){return!!e&&(e===Pi.no?0===t.overrideTypes.length:e===Pi.yes?t.overrideTypes.length>0:e===Pi.content?t.overrideTypes.includes("content"):e===Pi.headers?t.overrideTypes.includes("headers"):t.overrideTypes.join(",").includes(e))}static getHTTPRequestsFilter(e){return e.parsedURL.isValid&&e.scheme in Ei}static resourceTypeFilter(e,t){return t.resourceType().name()===e}static requestUrlFilter(e,t){return new RegExp(s.StringUtilities.escapeForRegExp(e),"i").test(t.url())}static requestTimeFilter(e,t,i){return!(i.issueTime()>t)&&!(-1!==i.endTime&&i.endTime<e)}static copyRequestHeaders(e){i.InspectorFrontendHost.InspectorFrontendHostInstance.copyText(e.requestHeadersText())}static copyResponseHeaders(e){i.InspectorFrontendHost.InspectorFrontendHostInstance.copyText(e.responseHeadersText)}static async copyResponse(e){const t=await e.requestContentData();let r;r=R.ContentData.ContentData.isError(t)?"":t.isTextContent?t.text:t.asDataUrl()??"",i.InspectorFrontendHost.InspectorFrontendHostInstance.copyText(r)}handleDrop(e){const t=e.items;if(!t.length)return;const i=t[0].getAsFile();i&&this.onLoadFromFile(i)}async onLoadFromFile(e){const i=new t.StringOutputStream.StringOutputStream,r=new p.FileUtils.ChunkedFileReader(e,1e7);if(!await r.read(i)){const e=r.error();return void(e&&this.harLoadFailed(e.message))}let o;try{o=new I.HARFormat.HARRoot(JSON.parse(i.data()))}catch(e){return void this.harLoadFailed(e)}a.NetworkLog.NetworkLog.instance().importRequests(I.Importer.Importer.requestsFromHARLog(o.log))}harLoadFailed(e){t.Console.Console.instance().error("Failed to load HAR file with following error: "+e)}setGrouping(e){this.activeGroupLookup&&this.activeGroupLookup.reset();const t=e&&this.groupLookups.get(e)||null;this.activeGroupLookup=t,this.invalidateAllItems()}computeRowHeight(){return this.rawRowHeight}nodeForRequest(e){return Fi.get(e)||null}headerHeight(){return this.headerHeightInternal}setRecording(e){this.recording=e,this.updateSummaryBar()}columns(){return this.columnsInternal}summaryToolbar(){return this.summaryToolbarInternal}modelAdded(e){const t=e.target();if(t.outermostTarget()!==t)return;const i=t.model(n.ResourceTreeModel.ResourceTreeModel);i&&(i.addEventListener(n.ResourceTreeModel.Events.Load,this.loadEventFired,this),i.addEventListener(n.ResourceTreeModel.Events.DOMContentLoaded,this.domContentLoadedEventFired,this));for(const e of a.NetworkLog.NetworkLog.instance().requests())this.isInScope(e)&&this.refreshRequest(e)}modelRemoved(e){const i=e.target();if(i.outermostTarget()!==i)return;const r=i.model(n.ResourceTreeModel.ResourceTreeModel);r&&(r.removeEventListener(n.ResourceTreeModel.Events.Load,this.loadEventFired,this),r.removeEventListener(n.ResourceTreeModel.Events.DOMContentLoaded,this.domContentLoadedEventFired,this));t.Settings.Settings.instance().moduleSetting("network-log.preserve-log").get()||this.reset()}linkifier(){return this.linkifierInternal}setWindow(e,t){e||t?(this.timeFilter=Ii.requestTimeFilter.bind(null,e,t),this.timeCalculatorInternal.setWindow(new Ot(e,t))):(this.timeFilter=null,this.timeCalculatorInternal.setWindow(null)),this.filterRequests()}resetFocus(){this.dataGrid.element.focus()}resetSuggestionBuilder(){this.suggestionBuilder.clear(),this.suggestionBuilder.addItem(m.UIFilter.FilterType.Is,"running"),this.suggestionBuilder.addItem(m.UIFilter.FilterType.Is,"from-cache"),this.suggestionBuilder.addItem(m.UIFilter.FilterType.Is,"service-worker-intercepted"),this.suggestionBuilder.addItem(m.UIFilter.FilterType.Is,"service-worker-initiated"),this.suggestionBuilder.addItem(m.UIFilter.FilterType.LargerThan,"100"),this.suggestionBuilder.addItem(m.UIFilter.FilterType.LargerThan,"10k"),this.suggestionBuilder.addItem(m.UIFilter.FilterType.LargerThan,"1M"),this.textFilterUI.setSuggestionProvider(this.suggestionBuilder.completions.bind(this.suggestionBuilder)),this.suggestionBuilder.addItem(m.UIFilter.FilterType.HasOverrides,Pi.yes),this.suggestionBuilder.addItem(m.UIFilter.FilterType.HasOverrides,Pi.no),this.suggestionBuilder.addItem(m.UIFilter.FilterType.HasOverrides,Pi.content),this.suggestionBuilder.addItem(m.UIFilter.FilterType.HasOverrides,Pi.headers)}filterChanged(){this.removeAllNodeHighlights(),this.parseFilterQuery(this.textFilterUI.value(),this.invertFilterUI.checked()),this.filterRequests(),this.textFilterSetting.set(this.textFilterUI.value()),this.moreFiltersDropDownUI?.updateActiveFiltersCount(),this.moreFiltersDropDownUI?.updateTooltip()}async resetFilter(){this.textFilterUI.clear()}showRecordingHint(){this.hideRecordingHint();const t=e.ActionRegistry.ActionRegistry.instance(),i=this.recording?"inspector-main.reload":"network.toggle-recording",r=t.hasAction(i)?t.getAction(i):null,o=e.ShortcutRegistry.ShortcutRegistry.instance().shortcutTitleForAction(i)??"",s=this.recording?Ri(Ti.recordingNetworkActivity):Ri(Ti.noNetworkActivityRecorded),n=this.recording?Ti.performARequestOrHitSToRecordThe:Ti.recordToDisplayNetworkActivity,a=this.recording?Ri(Ti.reloadPage):Ri(Ti.startRecording),l=Ri(n,{PH1:a,PH2:o});if(this.recordingHint=new e.EmptyWidget.EmptyWidget(s,o?l:""),this.recordingHint.element.classList.add("network-status-pane"),this.recordingHint.appendLink("https://developer.chrome.com/docs/devtools/network/"),o&&r){const t=e.UIUtils.createTextButton(a,(()=>r.execute()),{jslogContext:i,variant:"tonal"});this.recordingHint.contentElement.appendChild(t)}this.recordingHint.show(this.element),this.setHidden(!0)}hideRecordingHint(){this.setHidden(!1),this.recordingHint&&(this.recordingHint.detach(),this.recordingHint=null),e.ARIAUtils.alert(Ri(Ti.networkDataAvailable))}setHidden(t){this.columnsInternal.setHidden(t),e.ARIAUtils.setHidden(this.summaryToolbarInternal,t)}elementsToRestoreScrollPositionsFor(){return this.dataGrid?[this.dataGrid.scrollContainer]:[]}columnExtensionResolved(){this.invalidateAllItems(!0)}setupDataGrid(){return this.dataGrid.setRowContextMenuCallback(((e,t)=>{const i=t.request();i&&this.handleContextMenuForRequest(e,i)})),this.dataGrid.setEnableAutoScrollToBottom(!0),this.dataGrid.setName("network-log"),this.dataGrid.setResizeMethod("last"),this.dataGrid.element.classList.add("network-log-grid"),this.dataGrid.element.addEventListener("mousedown",this.dataGridMouseDown.bind(this),!0),this.dataGrid.element.addEventListener("mousemove",this.dataGridMouseMove.bind(this),!0),this.dataGrid.element.addEventListener("mouseleave",(()=>this.setHoveredNode(null)),!0),this.dataGrid.element.addEventListener("keydown",(e=>{if("ArrowRight"===e.key&&this.dataGrid.selectedNode){const e=this.dataGrid.selectedNode.element().querySelector("button.devtools-link");e&&e.focus()}s.KeyboardUtilities.isEnterOrSpaceKey(e)&&(this.dispatchEventToListeners("RequestActivated",{showPanel:!0,takeFocus:!0}),e.consume(!0))})),this.dataGrid.element.addEventListener("keyup",(e=>{if(("r"===e.key||"R"===e.key)&&this.dataGrid.selectedNode){const t=this.dataGrid.selectedNode.request();if(!t)return;n.NetworkManager.NetworkManager.canReplayRequest(t)&&(n.NetworkManager.NetworkManager.replayRequest(t),d.logKeyDown(this.dataGrid.selectedNode.element(),e,"replay-xhr"))}})),this.dataGrid.element.addEventListener("focus",this.onDataGridFocus.bind(this),!0),this.dataGrid.element.addEventListener("blur",this.onDataGridBlur.bind(this),!0),this.dataGrid}dataGridMouseMove(e){const t=e,i=this.dataGrid.dataGridNodeFromNode(t.target),r=t.shiftKey;this.setHoveredNode(i,r)}hoveredNode(){return this.hoveredNodeInternal}setHoveredNode(e,t){this.hoveredNodeInternal&&this.hoveredNodeInternal.setHovered(!1,!1),this.hoveredNodeInternal=e,this.hoveredNodeInternal&&this.hoveredNodeInternal.setHovered(!0,Boolean(t))}dataGridMouseDown(e){const t=e;!this.dataGrid.selectedNode&&t.button&&t.consume()}updateSummaryBar(){this.hideRecordingHint();let i=0,o=0,s=0,l=0,d=0,c=-1,h=-1,u=0;for(const e of a.NetworkLog.NetworkLog.instance().requests()){const r=Fi.get(e);if(!r)continue;u++;const a=e.transferSize;i+=a;const p=e.resourceSize;o+=p,Li.has(r)||(s++,l+=a,d+=p);const g=n.NetworkManager.NetworkManager.forRequest(e);g&&e.url()===g.target().inspectedURL()&&e.resourceType()===t.ResourceType.resourceTypes.Document&&g.target().parentTarget()?.type()!==n.Target.Type.FRAME&&(c=e.fromPrefetchCache()?e.issueTime():e.startTime),e.endTime>h&&(h=e.endTime)}if(!u)return void this.showRecordingHint();this.summaryToolbarInternal.removeToolbarItems();const p=(t,i)=>{const r=new e.Toolbar.ToolbarText(t);return r.setTitle(i||t),this.summaryToolbarInternal.appendToolbarItem(r),r.element};if(s!==u?(p(Ri(Ti.sSRequests,{PH1:s,PH2:u})),this.summaryToolbarInternal.appendSeparator(),p(Ri(Ti.sSTransferred,{PH1:r.ByteUtilities.formatBytesToKb(l),PH2:r.ByteUtilities.formatBytesToKb(i)}),Ri(Ti.sBSBTransferredOverNetwork,{PH1:l,PH2:i})),this.summaryToolbarInternal.appendSeparator(),p(Ri(Ti.sSResources,{PH1:r.ByteUtilities.formatBytesToKb(d),PH2:r.ByteUtilities.formatBytesToKb(o)}),Ri(Ti.sBSBResourcesLoadedByThePage,{PH1:d,PH2:o}))):(p(Ri(Ti.sRequests,{PH1:u})),this.summaryToolbarInternal.appendSeparator(),p(Ri(Ti.sTransferred,{PH1:r.ByteUtilities.bytesToString(i)}),Ri(Ti.sBTransferredOverNetwork,{PH1:i})),this.summaryToolbarInternal.appendSeparator(),p(Ri(Ti.sResources,{PH1:r.ByteUtilities.bytesToString(o)}),Ri(Ti.sBResourcesLoadedByThePage,{PH1:o}))),-1!==c&&-1!==h){if(this.summaryToolbarInternal.appendSeparator(),p(Ri(Ti.finishS,{PH1:r.TimeUtilities.secondsToString(h-c)})),-1!==this.mainRequestDOMContentLoadedTime&&this.mainRequestDOMContentLoadedTime>c){this.summaryToolbarInternal.appendSeparator();p(Ri(Ti.domcontentloadedS,{PH1:r.TimeUtilities.secondsToString(this.mainRequestDOMContentLoadedTime-c)})).style.color=`var(${Ii.getDCLEventColor()})`}if(-1!==this.mainRequestLoadTime){this.summaryToolbarInternal.appendSeparator();p(Ri(Ti.loadS,{PH1:r.TimeUtilities.secondsToString(this.mainRequestLoadTime-c)})).style.color=`var(${Ii.getLoadEventColor()})`}}}scheduleRefresh(){this.needsRefresh||(this.needsRefresh=!0,this.isShowing()&&E.write("NetworkLogView.render",this.refresh.bind(this)))}addFilmStripFrames(e){this.columnsInternal.addEventDividers(e,"network-frame-divider")}selectFilmStripFrame(e){this.columnsInternal.selectFilmStripFrame(e)}clearFilmStripFrame(){this.columnsInternal.clearFilmStripFrame()}refreshIfNeeded(){this.needsRefresh&&this.refresh()}invalidateAllItems(e){this.staleRequests=new Set(a.NetworkLog.NetworkLog.instance().requests().filter(this.isInScope)),e?this.scheduleRefresh():this.refresh()}timeCalculator(){return this.timeCalculatorInternal}calculator(){return this.calculatorInternal}setCalculator(e){e&&this.calculatorInternal!==e&&(this.calculatorInternal!==e&&(this.calculatorInternal=e,this.columnsInternal.setCalculator(this.calculatorInternal)),this.calculatorInternal.reset(),this.calculatorInternal.startAtZero?this.columnsInternal.hideEventDividers():this.columnsInternal.showEventDividers(),this.invalidateAllItems())}loadEventFired(e){if(!this.recording)return;const t=e.data.loadTime;t&&(this.mainRequestLoadTime=t,this.columnsInternal.addEventDividers([t],"network-load-divider"))}domContentLoadedEventFired(e){if(!this.recording)return;const{data:t}=e;t&&(this.mainRequestDOMContentLoadedTime=t,this.columnsInternal.addEventDividers([t],"network-dcl-divider"))}wasShown(){super.wasShown(),this.refreshIfNeeded(),this.columnsInternal.wasShown()}willHide(){this.columnsInternal.willHide()}onResize(){this.rowHeightInternal=this.computeRowHeight()}flatNodesList(){return this.dataGrid.rootNode().flatChildren()}onDataGridFocus(){this.dataGrid.element.matches(":focus-visible")&&this.element.classList.add("grid-focused"),this.updateNodeBackground()}onDataGridBlur(){this.element.classList.remove("grid-focused"),this.updateNodeBackground()}updateNodeBackground(){this.dataGrid.selectedNode&&this.dataGrid.selectedNode.updateBackgroundColor()}updateNodeSelectedClass(e){e?this.element.classList.remove("no-node-selected"):this.element.classList.add("no-node-selected")}stylesChanged(){this.columnsInternal.scheduleRefresh()}removeNodeAndMaybeAncestors(e){let t=e.parent;if(t)for(t.removeChild(e);t&&!t.hasChildren()&&t.dataGrid&&t.dataGrid.rootNode()!==t;){const e=t.parent;e.removeChild(t),t=e}}refresh(){this.needsRefresh=!1,this.removeAllNodeHighlights(),this.timeCalculatorInternal.updateBoundariesForEventTime(this.mainRequestLoadTime),this.durationCalculator.updateBoundariesForEventTime(this.mainRequestLoadTime),this.timeCalculatorInternal.updateBoundariesForEventTime(this.mainRequestDOMContentLoadedTime),this.durationCalculator.updateBoundariesForEventTime(this.mainRequestDOMContentLoadedTime);const e=new Map,t=[],i=new Set;for(;this.staleRequests.size;){const e=this.staleRequests.values().next().value;this.staleRequests.delete(e);let t=Fi.get(e);t||(t=this.createNodeForRequest(e)),i.add(t)}for(const r of i){const i=r.request(),o=!this.applyFilter(i);o?(r===this.hoveredNodeInternal&&this.setHoveredNode(null),r.selected=!1):t.push(r),this.timeCalculatorInternal.updateBoundaries(i),this.durationCalculator.updateBoundaries(i);const s=this.parentNodeForInsert(r);if(Li.has(r)===o&&r.parent===s)continue;o?Li.add(r):Li.delete(r);r.parent&&(o||r.parent!==s)&&this.removeNodeAndMaybeAncestors(r),s&&!o&&(s.dataGrid||e.has(s)||(e.set(s,this.dataGrid.rootNode()),t.push(s)),e.set(r,s))}for(const t of e.keys())e.get(t).appendChild(t);for(const e of t)e.refresh();this.updateSummaryBar(),e.size&&this.columnsInternal.sortByCurrentColumn(),this.dataGrid.updateInstantly(),this.didRefreshForTest()}didRefreshForTest(){}parentNodeForInsert(e){if(!this.activeGroupLookup)return this.dataGrid.rootNode();const t=this.activeGroupLookup.groupNodeForRequest(e.request());return t||this.dataGrid.rootNode()}reset(){this.dispatchEventToListeners("RequestActivated",{showPanel:!1}),this.setHoveredNode(null),this.columnsInternal.reset(),this.timeFilter=null,this.calculatorInternal.reset(),this.timeCalculatorInternal.setWindow(null),this.linkifierInternal.reset(),this.activeGroupLookup&&this.activeGroupLookup.reset(),this.staleRequests.clear(),this.resetSuggestionBuilder(),this.mainRequestLoadTime=-1,this.mainRequestDOMContentLoadedTime=-1,this.dataGrid.rootNode().removeChildren(),this.updateSummaryBar(),this.scheduleRefresh()}setTextFilterValue(e){this.textFilterUI.setValue(e),C.Runtime.experiments.isEnabled("network-panel-filter-bar-redesign")?(this.networkHideDataURLSetting.set(!1),this.networkShowBlockedCookiesOnlySetting.set(!1),this.networkOnlyBlockedRequestsSetting.set(!1),this.networkOnlyThirdPartySetting.set(!1),this.networkHideChromeExtensions.set(!1)):(this.dataURLFilterUI?.setChecked(!1),this.onlyBlockedResponseCookiesFilterUI?.setChecked(!1),this.onlyBlockedRequestsUI?.setChecked(!1),this.onlyThirdPartyFilterUI?.setChecked(!1),this.hideChromeExtensionsUI?.setChecked(!1)),this.resourceCategoryFilterUI.reset()}createNodeForRequest(e){const t=new ve(this,e);Fi.set(e,t),Li.add(t);for(let t=e.redirectSource();t;t=t.redirectSource())this.refreshRequest(t);return t}isInScope(e){const t=n.NetworkManager.NetworkManager.forRequest(e);return!t||n.TargetManager.TargetManager.instance().isInScope(t)}onRequestUpdated(e){const{request:t,preserveLog:i}=e.data;(this.isInScope(t)||i)&&this.refreshRequest(t)}onRequestRemoved(e){const{request:t}=e.data;this.staleRequests.delete(t);const i=Fi.get(t);i&&this.removeNodeAndMaybeAncestors(i)}refreshRequest(e){Ii.subdomains(e.domain).forEach(this.suggestionBuilder.addItem.bind(this.suggestionBuilder,m.UIFilter.FilterType.Domain)),this.suggestionBuilder.addItem(m.UIFilter.FilterType.Method,e.requestMethod),this.suggestionBuilder.addItem(m.UIFilter.FilterType.MimeType,e.mimeType),this.suggestionBuilder.addItem(m.UIFilter.FilterType.Scheme,String(e.scheme)),this.suggestionBuilder.addItem(m.UIFilter.FilterType.StatusCode,String(e.statusCode)),this.suggestionBuilder.addItem(m.UIFilter.FilterType.ResourceType,e.resourceType().name()),this.suggestionBuilder.addItem(m.UIFilter.FilterType.Url,e.securityOrigin());const t=e.priority();if(t&&this.suggestionBuilder.addItem(m.UIFilter.FilterType.Priority,v.NetworkPriorities.uiLabelForNetworkPriority(t)),"none"!==e.mixedContentType&&this.suggestionBuilder.addItem(m.UIFilter.FilterType.MixedContent,"all"),"optionally-blockable"===e.mixedContentType&&this.suggestionBuilder.addItem(m.UIFilter.FilterType.MixedContent,"displayed"),"blockable"===e.mixedContentType){const t=e.wasBlocked()?"blocked":"block-overridden";this.suggestionBuilder.addItem(m.UIFilter.FilterType.MixedContent,t)}const i=e.responseHeaders;for(const e of i)this.suggestionBuilder.addItem(m.UIFilter.FilterType.HasResponseHeader,e.name),"Set-Cookie"===e.name&&this.suggestionBuilder.addItem(m.UIFilter.FilterType.ResponseHeaderValueSetCookie);for(const t of e.responseCookies)this.suggestionBuilder.addItem(m.UIFilter.FilterType.SetCookieDomain,t.domain()),this.suggestionBuilder.addItem(m.UIFilter.FilterType.SetCookieName,t.name()),this.suggestionBuilder.addItem(m.UIFilter.FilterType.SetCookieValue,t.value());for(const t of e.allCookiesIncludingBlockedOnes())this.suggestionBuilder.addItem(m.UIFilter.FilterType.CookieDomain,t.domain()),this.suggestionBuilder.addItem(m.UIFilter.FilterType.CookieName,t.name()),this.suggestionBuilder.addItem(m.UIFilter.FilterType.CookiePath,t.path()),this.suggestionBuilder.addItem(m.UIFilter.FilterType.CookieValue,t.value());this.staleRequests.add(e),this.scheduleRefresh()}rowHeight(){return this.rowHeightInternal}switchViewMode(e){this.columnsInternal.switchViewMode(e)}handleContextMenuForRequest(t,r){t.appendApplicableItems(r);const o=this.filterBar.hasActiveFilter(),a=t.clipboardSection().appendSubMenuItem(Ri(Ti.copy),!1,"copy");if(r){e.ActionRegistry.ActionRegistry.instance().hasAction("drjones.network-panel-context")&&(e.Context.Context.instance().setFlavor(n.NetworkRequest.NetworkRequest,r),t.footerSection().appendAction("drjones.network-panel-context")),a.defaultSection().appendItem(Ri(Ti.copyURL),i.InspectorFrontendHost.InspectorFrontendHostInstance.copyText.bind(i.InspectorFrontendHost.InspectorFrontendHostInstance,r.contentURL()),{jslogContext:"copy-url"}),a.footerSection().appendItem(Ri(o?Ti.copyAllListedURLs:Ti.copyAllURLs),this.copyAllURLs.bind(this),{jslogContext:"copy-all-urls"}),r.requestHeadersText()&&a.saveSection().appendItem(Ri(Ti.copyRequestHeaders),Ii.copyRequestHeaders.bind(null,r),{jslogContext:"copy-request-headers"}),r.responseHeadersText&&a.saveSection().appendItem(Ri(Ti.copyResponseHeaders),Ii.copyResponseHeaders.bind(null,r),{jslogContext:"copy-response-headers"}),r.finished&&a.saveSection().appendItem(Ri(Ti.copyResponse),Ii.copyResponse.bind(null,r),{jslogContext:"copy-response"});const l=r.initiator();if(l){const c=l.stack;if(c){const h=qi(c);""!==h&&a.saveSection().appendItem(Ri(Ti.copyStacktrace),(()=>{i.InspectorFrontendHost.InspectorFrontendHostInstance.copyText(h)}),{jslogContext:"copy-stacktrace"})}}const d=r.isBlobRequest();i.Platform.isWin()?(a.defaultSection().appendItem(Ri(Ti.copyAsCurlCmd),this.copyCurlCommand.bind(this,r,"win"),{disabled:d,jslogContext:"copy-as-curl-cmd"}),a.defaultSection().appendItem(Ri(Ti.copyAsCurlBash),this.copyCurlCommand.bind(this,r,"unix"),{disabled:d,jslogContext:"copy-as-curl-bash"})):a.defaultSection().appendItem(Ri(Ti.copyAsCurl),this.copyCurlCommand.bind(this,r,"unix"),{disabled:d,jslogContext:"copy-as-curl"}),a.defaultSection().appendItem(Ri(Ti.copyAsPowershell),this.copyPowerShellCommand.bind(this,r),{disabled:d,jslogContext:"copy-as-powershell"}),a.defaultSection().appendItem(Ri(Ti.copyAsFetch),this.copyFetchCall.bind(this,r,0),{disabled:d,jslogContext:"copy-as-fetch"}),a.defaultSection().appendItem(Ri(Ti.copyAsNodejsFetch),this.copyFetchCall.bind(this,r,1),{disabled:d,jslogContext:"copy-as-nodejs-fetch"}),i.Platform.isWin()?(a.footerSection().appendItem(Ri(o?Ti.copyAllListedAsCurlCmd:Ti.copyAllAsCurlCmd),this.copyAllCurlCommand.bind(this,"win"),{jslogContext:"copy-all-as-curl-cmd"}),a.footerSection().appendItem(Ri(o?Ti.copyAllListedAsCurlBash:Ti.copyAllAsCurlBash),this.copyAllCurlCommand.bind(this,"unix"),{jslogContext:"copy-all-as-curl-bash"})):a.footerSection().appendItem(Ri(o?Ti.copyAllListedAsCurl:Ti.copyAllAsCurl),this.copyAllCurlCommand.bind(this,"unix"),{jslogContext:"copy-all-as-curl"}),a.footerSection().appendItem(Ri(o?Ti.copyAllListedAsPowershell:Ti.copyAllAsPowershell),this.copyAllPowerShellCommand.bind(this),{jslogContext:"copy-all-as-powershell"}),a.footerSection().appendItem(Ri(o?Ti.copyAllListedAsFetch:Ti.copyAllAsFetch),this.copyAllFetchCall.bind(this,0),{jslogContext:"copy-all-as-fetch"}),a.footerSection().appendItem(Ri(o?Ti.copyAllListedAsNodejsFetch:Ti.copyAllAsNodejsFetch),this.copyAllFetchCall.bind(this,1),{jslogContext:"copy-all-as-nodejs-fetch"})}if(a.footerSection().appendItem(Ri(o?Ti.copyAllListedAsHarSanitized:Ti.copyAllAsHarSanitized),this.copyAllAsHAR.bind(this,{sanitize:!0}),{jslogContext:"copy-all-as-har"}),this.networkShowOptionsToGenerateHarWithSensitiveData.get()&&a.footerSection().appendItem(Ri(o?Ti.copyAllListedAsHarWithSensitiveData:Ti.copyAllAsHarWithSensitiveData),this.copyAllAsHAR.bind(this,{sanitize:!1}),{jslogContext:"copy-all-as-har-with-sensitive-data"}),t.overrideSection().appendItem(Ri(Ti.overrideHeaders),this.#i.bind(this,r),{disabled:q.NetworkPersistenceManager.NetworkPersistenceManager.isForbiddenNetworkUrl(r.url()),jslogContext:"override-headers"}),t.editSection().appendItem(Ri(Ti.clearBrowserCache),this.clearBrowserCache.bind(this),{jslogContext:"clear-browser-cache"}),t.editSection().appendItem(Ri(Ti.clearBrowserCookies),this.clearBrowserCookies.bind(this),{jslogContext:"clear-browser-cookies"}),r){const u=20,p=n.NetworkManager.MultitargetNetworkManager.instance();let g=p.blockedPatterns();function m(t){g.push({enabled:!0,url:t}),p.setBlockedPatterns(g),p.setBlockingEnabled(!0),e.ViewManager.ViewManager.instance().showView("network.blocked-urls")}function w(t){g=g.filter((e=>e.url!==t)),p.setBlockedPatterns(g),e.ViewManager.ViewManager.instance().showView("network.blocked-urls")}const k=r.parsedURL.urlWithoutScheme();if(k&&!g.find((e=>e.url===k)))t.debugSection().appendItem(Ri(Ti.blockRequestUrl),m.bind(null,k),{jslogContext:"block-request-url"});else if(k){const b=s.StringUtilities.trimMiddle(k,u);t.debugSection().appendItem(Ri(Ti.unblockS,{PH1:b}),w.bind(null,k),{jslogContext:"unblock"})}const v=r.parsedURL.domain();if(v&&!g.find((e=>e.url===v)))t.debugSection().appendItem(Ri(Ti.blockRequestDomain),m.bind(null,v),{jslogContext:"block-request-domain"});else if(v){const f=s.StringUtilities.trimMiddle(v,u);t.debugSection().appendItem(Ri(Ti.unblockS,{PH1:f}),w.bind(null,v),{jslogContext:"unblock"})}n.NetworkManager.NetworkManager.canReplayRequest(r)&&t.debugSection().appendItem(Ri(Ti.replayXhr),n.NetworkManager.NetworkManager.replayRequest.bind(null,r),{jslogContext:"replay-xhr"})}}harRequests(){return a.NetworkLog.NetworkLog.instance().requests().filter((e=>this.applyFilter(e))).filter(Ii.getHTTPRequestsFilter).filter((e=>e.finished||e.resourceType()===t.ResourceType.resourceTypes.WebSocket&&e.responseReceivedTime))}async copyAllAsHAR(e){const t={log:await I.Log.Log.build(this.harRequests(),e)};i.InspectorFrontendHost.InspectorFrontendHostInstance.copyText(JSON.stringify(t,null,2))}copyAllURLs(){const e=a.NetworkLog.NetworkLog.instance().requests().filter((e=>this.applyFilter(e))),t=this.filterOutBlobRequests(e).map((e=>e.url()));i.InspectorFrontendHost.InspectorFrontendHostInstance.copyText(t.join("\n"))}async copyCurlCommand(e,t){const r=await Ii.generateCurlCommand(e,t);i.InspectorFrontendHost.InspectorFrontendHostInstance.copyText(r)}async copyAllCurlCommand(e){const t=a.NetworkLog.NetworkLog.instance().requests().filter((e=>this.applyFilter(e))),r=await this.generateAllCurlCommand(t,e);i.InspectorFrontendHost.InspectorFrontendHostInstance.copyText(r)}async copyFetchCall(e,t){const r=await this.generateFetchCall(e,t);i.InspectorFrontendHost.InspectorFrontendHostInstance.copyText(r)}async copyAllFetchCall(e){const t=a.NetworkLog.NetworkLog.instance().requests().filter((e=>this.applyFilter(e))),r=await this.generateAllFetchCall(t,e);i.InspectorFrontendHost.InspectorFrontendHostInstance.copyText(r)}async copyPowerShellCommand(e){const t=await this.generatePowerShellCommand(e);i.InspectorFrontendHost.InspectorFrontendHostInstance.copyText(t)}async copyAllPowerShellCommand(){const e=a.NetworkLog.NetworkLog.instance().requests().filter((e=>this.applyFilter(e))),t=await this.generateAllPowerShellCommand(e);i.InspectorFrontendHost.InspectorFrontendHostInstance.copyText(t)}async exportAll(i){const r=n.TargetManager.TargetManager.instance().scopeTarget();if(!r)return;const o=r.inspectedURL(),s=t.ParsedURL.ParsedURL.fromString(o),a=s?s.host:"network-log",l=new p.FileUtils.FileOutputStream;if(!await l.open(t.ParsedURL.ParsedURL.concatenate(a,".har")))return;const d=new e.ProgressIndicator.ProgressIndicator;this.progressBarContainer.appendChild(d.element),await I.Writer.Writer.write(l,this.harRequests(),i,d),d.done(),l.close()}async#i(i){const r=m.UIRequestLocation.UIRequestLocation.responseHeaderMatch(i,{name:"",value:""}),o=q.NetworkPersistenceManager.NetworkPersistenceManager.instance();o.project()?(t.Settings.Settings.instance().moduleSetting("persistence-network-overrides-enabled").set(!0),await o.getOrCreateHeadersUISourceCodeFromUrl(i.url()),await t.Revealer.reveal(r)):e.InspectorView.InspectorView.instance().displaySelectOverrideFolderInfobar((async()=>{await L.SourcesNavigator.OverridesNavigatorView.instance().setupNewWorkspace(),await o.getOrCreateHeadersUISourceCodeFromUrl(i.url()),await t.Revealer.reveal(r)}))}clearBrowserCache(){confirm(Ri(Ti.areYouSureYouWantToClearBrowser))&&n.NetworkManager.MultitargetNetworkManager.instance().clearBrowserCache()}clearBrowserCookies(){confirm(Ri(Ti.areYouSureYouWantToClearBrowserCookies))&&n.NetworkManager.MultitargetNetworkManager.instance().clearBrowserCookies()}applyFilter(e){if(this.timeFilter&&!this.timeFilter(e))return!1;const t=e.resourceType().category().name;if(!this.resourceCategoryFilterUI.accept(t))return!1;const[i,r,o,s,n]=C.Runtime.experiments.isEnabled("network-panel-filter-bar-redesign")?[this.networkHideDataURLSetting.get(),this.networkShowBlockedCookiesOnlySetting.get(),this.networkOnlyBlockedRequestsSetting.get(),this.networkOnlyThirdPartySetting.get(),this.networkHideChromeExtensions.get()]:[this.dataURLFilterUI?.checked(),this.onlyBlockedResponseCookiesFilterUI?.checked(),this.onlyBlockedRequestsUI?.checked(),this.onlyThirdPartyFilterUI?.checked(),this.hideChromeExtensionsUI?.checked()];if(i&&(e.parsedURL.isDataURL()||e.parsedURL.isBlobURL()))return!1;if(r&&!e.blockedResponseCookies().length)return!1;if(o&&!e.wasBlocked()&&!e.corsErrorStatus())return!1;if(s&&e.isSameSite())return!1;if(n&&"chrome-extension"===e.scheme)return!1;for(let t=0;t<this.filters.length;++t)if(!this.filters[t](e))return!1;return!0}isValidUrl(e){try{return new URL(e),!0}catch{return!1}}parseFilterQuery(e,t){const i=this.filterParser.parse(e);this.filters=i.map((e=>{const i=e.key,r=e.text||"",o=e.regex;let n;if(i){const e=s.StringUtilities.escapeForRegExp(i+":"+r);n=this.createSpecialFilter(i,r)||Ii.requestPathFilter.bind(null,new RegExp(e,"i"))}else n=e.regex?Ii.requestPathFilter.bind(null,o):this.isValidUrl(r)?Ii.requestUrlFilter.bind(null,r):Ii.requestPathFilter.bind(null,new RegExp(s.StringUtilities.escapeForRegExp(r),"i"));return e.negative&&!t||!e.negative&&t?Ii.negativeFilter.bind(null,n):n}))}createSpecialFilter(e,t){switch(e){case m.UIFilter.FilterType.Domain:return Ii.createRequestDomainFilter(t);case m.UIFilter.FilterType.HasResponseHeader:return Ii.requestResponseHeaderFilter.bind(null,t);case m.UIFilter.FilterType.ResponseHeaderValueSetCookie:return Ii.requestResponseHeaderSetCookieFilter.bind(null,t);case m.UIFilter.FilterType.Is:if("running"===t.toLowerCase())return Ii.runningRequestFilter;if("from-cache"===t.toLowerCase())return Ii.fromCacheRequestFilter;if("service-worker-intercepted"===t.toLowerCase())return Ii.interceptedByServiceWorkerFilter;if("service-worker-initiated"===t.toLowerCase())return Ii.initiatedByServiceWorkerFilter;break;case m.UIFilter.FilterType.LargerThan:return this.createSizeFilter(t.toLowerCase());case m.UIFilter.FilterType.Method:return Ii.requestMethodFilter.bind(null,t);case m.UIFilter.FilterType.MimeType:return Ii.requestMimeTypeFilter.bind(null,t);case m.UIFilter.FilterType.MixedContent:return Ii.requestMixedContentFilter.bind(null,t);case m.UIFilter.FilterType.Scheme:return Ii.requestSchemeFilter.bind(null,t);case m.UIFilter.FilterType.SetCookieDomain:return Ii.requestSetCookieDomainFilter.bind(null,t);case m.UIFilter.FilterType.SetCookieName:return Ii.requestSetCookieNameFilter.bind(null,t);case m.UIFilter.FilterType.SetCookieValue:return Ii.requestSetCookieValueFilter.bind(null,t);case m.UIFilter.FilterType.CookieDomain:return Ii.requestCookieDomainFilter.bind(null,t);case m.UIFilter.FilterType.CookieName:return Ii.requestCookieNameFilter.bind(null,t);case m.UIFilter.FilterType.CookiePath:return Ii.requestCookiePathFilter.bind(null,t);case m.UIFilter.FilterType.CookieValue:return Ii.requestCookieValueFilter.bind(null,t);case m.UIFilter.FilterType.Priority:return Ii.requestPriorityFilter.bind(null,v.NetworkPriorities.uiLabelToNetworkPriority(t));case m.UIFilter.FilterType.StatusCode:return Ii.statusCodeFilter.bind(null,t);case m.UIFilter.FilterType.HasOverrides:return Ii.hasOverridesFilter.bind(null,t);case m.UIFilter.FilterType.ResourceType:return Ii.resourceTypeFilter.bind(null,t);case m.UIFilter.FilterType.Url:return Ii.requestUrlFilter.bind(null,t)}return null}createSizeFilter(e){let t=1;e.endsWith("k")?(t=1e3,e=e.substring(0,e.length-1)):e.endsWith("m")&&(t=1e6,e=e.substring(0,e.length-1));const i=Number(e);return isNaN(i)?null:Ii.requestSizeLargerThanFilter.bind(null,i*t)}filterRequests(){this.removeAllNodeHighlights(),this.invalidateAllItems()}reveal(e){this.removeAllNodeHighlights();const t=Fi.get(e);return t?.dataGrid?(t.parent&&t.parent instanceof be&&(t.parent.reveal(),t.parent.expand()),t.reveal(),t):null}revealAndHighlightRequest(e){const t=this.reveal(e);t&&this.highlightNode(t)}revealAndHighlightRequestWithId(e){const t=a.NetworkLog.NetworkLog.instance().requestByManagerAndId(e.manager,e.requestId);t&&this.revealAndHighlightRequest(t)}selectRequest(e,t){const{clearFilter:i}=t||{clearFilter:!0};i&&this.setTextFilterValue("");const r=this.reveal(e);r&&r.select()}removeAllNodeHighlights(){this.highlightedNode&&(this.highlightedNode.element().classList.remove("highlighted-row"),this.highlightedNode=null)}highlightNode(t){e.UIUtils.runCSSAnimationOnce(t.element(),"highlighted-row"),this.highlightedNode=t}filterOutBlobRequests(e){return e.filter((e=>!e.isBlobRequest()))}async generateFetchCall(e,t){const i=new Set(["method","path","scheme","version","accept-charset","accept-encoding","access-control-request-headers","access-control-request-method","connection","content-length","cookie","cookie2","date","dnt","expect","host","keep-alive","origin","referer","te","trailer","transfer-encoding","upgrade","via","user-agent"]),r=new Set(["cookie","authorization"]),o=JSON.stringify(e.url()),s=e.requestHeaders(),n=s.reduce(((e,t)=>{const r=t.name;return i.has(r.toLowerCase())||r.includes(":")||e.append(r,t.value),e}),new Headers),a={};for(const e of n)a[e[0]]=e[1];const l=e.includedRequestCookies().length||s.some((({name:e})=>r.has(e.toLowerCase())))?"include":"omit",d=s.find((({name:e})=>"referer"===e.toLowerCase())),c=d?d.value:void 0,h=e.referrerPolicy()||void 0,u=await e.requestFormData(),p={headers:Object.keys(a).length?a:void 0,referrer:c,referrerPolicy:h,body:u,method:e.requestMethod,mode:"cors"};if(1===t){const e=s.find((e=>"cookie"===e.name.toLowerCase())),t={};delete p.mode,e&&(t.cookie=e.value),c&&(delete p.referrer,t.Referer=c),c&&(delete p.referrerPolicy,t["Referrer-Policy"]=h),Object.keys(t).length&&(p.headers={...a,...t})}else p.credentials=l;return`fetch(${o}, ${JSON.stringify(p,null,2)});`}async generateAllFetchCall(e,t){const i=this.filterOutBlobRequests(e);return(await Promise.all(i.map((e=>this.generateFetchCall(e,t))))).join(" ;\n")}static async generateCurlCommand(e,t){let i=[];const r=new Set(["accept-encoding","host","method","path","scheme","version","authority","protocol"]);const o="win"===t?function(e){return'^"'+e.replace(/\\/g,"\\\\").replace(/"/g,'\\"').replace(/[^a-zA-Z0-9\s_\-:=+~'\/.',?;()*`]/g,"^$&").replace(/%(?=[a-zA-Z0-9_])/g,"%^").replace(/\r?\n/g,"^\n\n")+'^"'}:function(e){return/[\0-\x1F\x7F-\x9F!]|\'/.test(e)?"$'"+e.replace(/\\/g,"\\\\").replace(/\'/g,"\\'").replace(/\n/g,"\\n").replace(/\r/g,"\\r").replace(/[\0-\x1F\x7F-\x9F!]/g,(function(e){let t=e.charCodeAt(0).toString(16);for(;t.length<4;)t="0"+t;return"\\u"+t}))+"'":"'"+e+"'"};i.push(o(e.url()).replace(/[[{}\]]/g,"\\$&"));let s="GET";const n=[],a=await e.requestFormData();a&&(n.push("--data-raw "+o(a)),r.add("content-length"),s="POST"),e.requestMethod!==s&&i.push("-X "+o(e.requestMethod));const l=e.requestHeaders();for(let e=0;e<l.length;e++){const t=l[e],s=t.name.replace(/^:/,"");if(r.has(s.toLowerCase()))continue;const n=t.value;n.trim()?"cookie"===s.toLowerCase()?i.push("-b "+o(n)):i.push("-H "+o(s+": "+n)):i.push("-H "+o(s+";"))}return i=i.concat(n),"insecure"===e.securityState()&&i.push("--insecure"),"curl "+i.join(i.length>=3?"win"===t?" ^\n ":" \\\n ":" ")}async generateAllCurlCommand(e,t){const i=this.filterOutBlobRequests(e),r=await Promise.all(i.map((e=>Ii.generateCurlCommand(e,t))));return"win"===t?r.join(" &\r\n"):r.join(" ;\n")}async generatePowerShellCommand(e){const t=[],i=new Set(["host","connection","proxy-connection","content-length","expect","range","content-type","user-agent","cookie"]);function r(e){return'"'+e.replace(/[`\$"]/g,"`$&").replace(/[^\x20-\x7E]/g,(e=>"$([char]"+e.charCodeAt(0)+")"))+'"'}t.push("-Uri "+r(e.url())),"GET"!==e.requestMethod&&t.push("-Method "+r(e.requestMethod));const o=function(e){const t=[],i=e.requestHeaders().find((({name:e})=>"user-agent"===e.toLowerCase()));i&&t.push(`$session.UserAgent = ${r(i.value)}`);for(const i of e.includedRequestCookies()){const e=r(i.cookie.name()),o=r(i.cookie.value()),s=r(i.cookie.domain());t.push(`$session.Cookies.Add((New-Object System.Net.Cookie(${e}, ${o}, "/", ${s})))`)}return t.length?"$session = New-Object Microsoft.PowerShell.Commands.WebRequestSession\n"+t.join("\n")+"\n":null}(e);o&&t.push("-WebSession $session");const s=e.requestHeaders(),n=[];for(const e of s){const t=e.name.replace(/^:/,"");i.has(t.toLowerCase())||n.push(r(t)+"="+r(e.value))}n.length&&t.push("-Headers @{\n"+n.join("\n ")+"\n}");const a=s.find((({name:e})=>"content-type"===e.toLowerCase()));a&&t.push("-ContentType "+r(a.value));const l=await e.requestFormData();if(l){const e=r(l);/[^\x20-\x7E]/.test(l)?t.push("-Body ([System.Text.Encoding]::UTF8.GetBytes("+e+"))"):t.push("-Body "+e)}return(o||"")+"Invoke-WebRequest -UseBasicParsing "+t.join(t.length>=3?" `\n":" ")}async generateAllPowerShellCommand(e){const t=this.filterOutBlobRequests(e);return(await Promise.all(t.map((e=>this.generatePowerShellCommand(e))))).join(";\r\n")}static getDCLEventColor(){return"--sys-color-blue"}static getLoadEventColor(){return"--sys-color-error"}}function qi(t){let i="";for(const r of t.callFrames){i+=`${e.UIUtils.beautifyFunctionName(r.functionName)} @ ${r.url}:${r.lineNumber+1}\n`}return t.parent&&(i+=qi(t.parent)),i}const Li=new WeakSet,Fi=new WeakMap;const Ei={http:!0,https:!0,ws:!0,wss:!0},Hi=Object.values(m.UIFilter.FilterType),Pi={yes:"yes",no:"no",content:"content",headers:"headers"};class Ai extends t.ObjectWrapper.ObjectWrapper{filterElement;dropDownButton;networkHideDataURLSetting;networkHideChromeExtensionsSetting;networkShowBlockedCookiesOnlySetting;networkOnlyBlockedRequestsSetting;networkOnlyThirdPartySetting;contextMenu;activeFiltersCount;activeFiltersCountAdorner;isReactNative=!1;constructor(){super(),this.isReactNative=C.Runtime.experiments.isEnabled("react-native-specific-ui"),this.networkHideDataURLSetting=t.Settings.Settings.instance().createSetting("network-hide-data-url",!1),this.networkHideChromeExtensionsSetting=t.Settings.Settings.instance().createSetting("network-hide-chrome-extensions",!1),this.networkShowBlockedCookiesOnlySetting=t.Settings.Settings.instance().createSetting("network-show-blocked-cookies-only-setting",!1),this.networkOnlyBlockedRequestsSetting=t.Settings.Settings.instance().createSetting("network-only-blocked-requests",!1),this.networkOnlyThirdPartySetting=t.Settings.Settings.instance().createSetting("network-only-third-party-setting",!1),this.filterElement=document.createElement("div"),this.filterElement.setAttribute("aria-label","Show only/hide requests dropdown"),this.filterElement.setAttribute("jslog",`${d.dropDown("more-filters").track({click:!0})}`),this.activeFiltersCountAdorner=new F.Adorner.Adorner,this.activeFiltersCount=document.createElement("span"),this.activeFiltersCountAdorner.data={name:"countWrapper",content:this.activeFiltersCount},this.activeFiltersCountAdorner.classList.add("active-filters-count"),this.updateActiveFiltersCount(),this.dropDownButton=new e.Toolbar.ToolbarMenuButton(this.showMoreFiltersContextMenu.bind(this),!1,!0,void 0,void 0,!0),this.dropDownButton.setTitle(Ri(Ti.showOnlyHideRequests)),this.dropDownButton.setText(Ri(Ti.moreFilters)),this.dropDownButton.setAdorner(this.activeFiltersCountAdorner),this.filterElement.appendChild(this.dropDownButton.element),this.dropDownButton.element.classList.add("dropdown-filterbar"),this.updateTooltip()}#r(){this.dispatchEventToListeners("FilterChanged")}showMoreFiltersContextMenu(e){this.networkHideDataURLSetting.addChangeListener(this.#r.bind(this)),this.networkHideChromeExtensionsSetting.addChangeListener(this.#r.bind(this)),this.networkShowBlockedCookiesOnlySetting.addChangeListener(this.#r.bind(this)),this.networkOnlyBlockedRequestsSetting.addChangeListener(this.#r.bind(this)),this.networkOnlyThirdPartySetting.addChangeListener(this.#r.bind(this)),e.defaultSection().appendCheckboxItem(Ri(Ti.hideDataUrls),(()=>this.networkHideDataURLSetting.set(!this.networkHideDataURLSetting.get())),{checked:this.networkHideDataURLSetting.get(),tooltip:Ri(Ti.hidesDataAndBlobUrls),jslogContext:"hide-data-urls"}),this.isReactNative||(e.defaultSection().appendCheckboxItem(Ri(Ti.chromeExtensions),(()=>this.networkHideChromeExtensionsSetting.set(!this.networkHideChromeExtensionsSetting.get())),{checked:this.networkHideChromeExtensionsSetting.get(),tooltip:Ri(Ti.hideChromeExtension),jslogContext:"hide-extension-urls"}),e.defaultSection().appendSeparator()),this.isReactNative||e.defaultSection().appendCheckboxItem(Ri(Ti.hasBlockedCookies),(()=>this.networkShowBlockedCookiesOnlySetting.set(!this.networkShowBlockedCookiesOnlySetting.get())),{checked:this.networkShowBlockedCookiesOnlySetting.get(),tooltip:Ri(Ti.onlyShowRequestsWithBlockedCookies),jslogContext:"only-blocked-response-cookies"}),e.defaultSection().appendCheckboxItem(Ri(Ti.blockedRequests),(()=>this.networkOnlyBlockedRequestsSetting.set(!this.networkOnlyBlockedRequestsSetting.get())),{checked:this.networkOnlyBlockedRequestsSetting.get(),tooltip:Ri(Ti.onlyShowBlockedRequests),jslogContext:"only-blocked-requests"}),this.isReactNative||e.defaultSection().appendCheckboxItem(Ri(Ti.thirdParty),(()=>this.networkOnlyThirdPartySetting.set(!this.networkOnlyThirdPartySetting.get())),{checked:this.networkOnlyThirdPartySetting.get(),tooltip:Ri(Ti.onlyShowThirdPartyRequests),jslogContext:"only-3rd-party-requests"})}selectedFilters(){return[...this.networkHideDataURLSetting.get()?[Ri(Ti.hideDataUrls)]:[],...this.networkHideChromeExtensionsSetting.get()?[Ri(Ti.chromeExtensions)]:[],...this.networkShowBlockedCookiesOnlySetting.get()?[Ri(Ti.hasBlockedCookies)]:[],...this.networkOnlyBlockedRequestsSetting.get()?[Ri(Ti.blockedRequests)]:[],...this.networkOnlyThirdPartySetting.get()?[Ri(Ti.thirdParty)]:[]]}updateActiveFiltersCount(){const e=this.selectedFilters().length;this.activeFiltersCount.textContent=e.toString(),e?this.activeFiltersCountAdorner.classList.remove("hidden"):this.activeFiltersCountAdorner.classList.add("hidden")}updateTooltip(){this.selectedFilters().length?this.dropDownButton.setTitle(this.selectedFilters().join(", ")):this.dropDownButton.setTitle(Ri(Ti.showOnlyHideRequests))}isActive(){return 0!==this.selectedFilters().length}element(){return this.filterElement}}var Mi=Object.freeze({__proto__:null,HTTPSchemas:Ei,MoreFiltersDropDownUI:Ai,NetworkLogView:Ii,computeStackTraceText:qi,isRequestFilteredOut:function(e){return Li.has(e)},overrideFilter:Pi});const Ni={url:"URL"},Ui=r.i18n.registerUIStrings("panels/network/NetworkSearchScope.ts",Ni),Bi=r.i18n.getLocalizedString.bind(void 0,Ui);class Vi{#o;constructor(e){this.#o=e}performIndexing(e){queueMicrotask((()=>{e.done()}))}async performSearch(e,t,i,r){const o=[],s=this.#o.requests().filter((t=>e.filePathMatchesFileQuery(t.url())));t.setTotalWork(s.length);for(const i of s){const r=this.searchRequest(e,i,t);o.push(r)}const n=(await Promise.all(o)).filter((e=>null!==e));if(t.isCanceled())r(!1);else{for(const e of n.sort(((e,t)=>e.label().localeCompare(t.label()))))e.matchesCount()>0&&i(e);t.done(),r(!0)}}async searchRequest(e,t,i){const r=await Vi.#s(e,t);if(i.isCanceled())return null;const o=[];a(t.url())&&o.push(m.UIRequestLocation.UIRequestLocation.urlMatch(t));for(const e of t.requestHeaders())n(e)&&o.push(m.UIRequestLocation.UIRequestLocation.requestHeaderMatch(t,e));for(const e of t.responseHeaders)n(e)&&o.push(m.UIRequestLocation.UIRequestLocation.responseHeaderMatch(t,e));for(const e of r)o.push(m.UIRequestLocation.UIRequestLocation.bodyMatch(t,e));return i.incrementWorked(),new Wi(t,o);function n(e){return a(`${e.name}: ${e.value}`)}function a(t){const i=e.ignoreCase()?"i":"",r=e.queries().map((e=>new RegExp(s.StringUtilities.escapeForRegExp(e),i)));let o=0;for(const e of r){const i=t.substr(o).match(e);if(void 0===i?.index)return!1;o+=i.index+i[0].length}return!0}}static async#s(e,t){if(!t.contentType().isTextType())return[];let i=[];for(const r of e.queries()){const o=await t.searchInContent(r,!e.ignoreCase(),e.isRegex());if(0===o.length)return[];i=s.ArrayUtilities.mergeOrdered(i,o,R.ContentProvider.SearchMatch.comparator)}return i}stopSearch(){}}class Wi{request;locations;constructor(e,t){this.request=e,this.locations=t}matchesCount(){return this.locations.length}label(){return this.request.displayName}description(){const e=this.request.parsedURL;return e?e.urlWithoutScheme():this.request.url()}matchLineContent(e){const t=this.locations[e];if(t.isUrlMatch)return this.request.url();const i=t?.header?.header;return i?i.value:t.searchMatch.lineContent}matchRevealable(e){return this.locations[e]}matchLabel(e){const t=this.locations[e];if(t.isUrlMatch)return Bi(Ni.url);const i=t?.header?.header;return i?`${i.name}:`:(t.searchMatch.lineNumber+1).toString()}matchColumn(e){const t=this.locations[e];return t.searchMatch?.columnNumber}matchLength(e){const t=this.locations[e];return t.searchMatch?.matchLength}}var Oi=Object.freeze({__proto__:null,NetworkSearchResult:Wi,NetworkSearchScope:Vi}),Di={cssText:`:root{--network-overview-total:var(--sys-color-surface-variant);--network-overview-blocking:var(--sys-color-neutral-bright);--network-overview-connecting:var(--ref-palette-yellow60);--network-overview-service-worker:var(--sys-color-orange-bright);--network-overview-service-worker-respond-with:var(--sys-color-cyan-bright);--network-overview-push:var(--ref-palette-blue60);--override-network-overview-proxy:var(--ref-palette-neutral60);--network-overview-dns:var(--sys-color-cyan);--network-overview-ssl:var(--ref-palette-purple70);--override-network-overview-sending:var(--ref-palette-cyan60);--network-overview-waiting:var(--ref-palette-green70);--network-overview-receiving:var(--ref-palette-blue60);--network-overview-queueing:var(--ref-palette-neutral100);--network-grid-navigation-color:var(--ref-palette-blue90);--network-grid-initiator-path-color:var(--ref-palette-green90);--network-grid-initiated-path-color:var(--ref-palette-error80);--network-grid-focus-selected-color-has-error:var(--sys-color-surface-error);--network-grid-focus-selected-color-has-warning:var(--sys-color-surface-yellow);--network-grid-from-frame-color:var(--ref-palette-cyan95);--network-grid-is-product-color:var(--ref-palette-yellow95);--network-frame-divider-color:var(--ref-palette-yellow60)}.theme-with-dark-background{--network-grid-initiator-path-color:var(--ref-palette-green40);--network-grid-initiated-path-color:var(--ref-palette-error20);--network-grid-from-frame-color:var(--ref-palette-neutral50);--network-grid-is-product-color:var(--ref-palette-neutral70)}.network-details-view{background:var(--app-color-toolbar-background)}.network-details-view-tall-header{border-top:4px solid var(--app-color-toolbar-background)}.network-item-view{display:flex;background:var(--sys-color-cdt-base-container)}.network-item-preview-toolbar{border-top:1px solid var(--sys-color-divider);background-color:var(--sys-color-surface1)}.resource-timing-view{display:block;margin:6px;color:var(--sys-color-on-surface);overflow:auto;background-color:var(--sys-color-cdt-base-container)}.resource-timing-table{width:100%!important}#network-overview-panel{flex:none;position:relative}#network-overview-container{overflow:hidden;flex:auto;display:flex;flex-direction:column;position:relative;border-bottom:1px solid var(--sys-color-divider)}#network-overview-container canvas{width:100%;height:100%}.resources-dividers-label-bar{background-color:var(--sys-color-cdt-base-container)}#network-overview-grid .resources-dividers-label-bar{pointer-events:auto}.network .network-overview{flex:0 0 60px}.network-overview .resources-dividers-label-bar .resources-divider{background-color:transparent}.network-overview .resources-dividers{z-index:250}.request-view.html iframe{width:100%;height:100%;position:absolute}.network-film-strip{border-bottom:solid 1px var(--sys-color-divider);flex:none!important}.network-film-strip-placeholder{flex-shrink:0}.network-tabbed-pane{background-color:var(--sys-color-cdt-base-container)}.network-settings-pane{display:grid;grid-template-columns:50% 50%;flex:none;background-color:var(--sys-color-cdt-base-container);border-bottom:1px solid var(--sys-color-divider)}.network-toolbar-container{display:flex;align-items:flex-start;flex:none;background-color:var(--sys-color-cdt-base-container);border-bottom:1px solid var(--sys-color-divider);& > :first-child{flex:1 1 auto}}@media (forced-colors: active){.panel.network devtools-toolbar{background-color:canvas}}devtools-request-headers{min-width:360px}\n/*# sourceURL=${import.meta.resolve("./networkPanel.css")} */\n`};const Gi={close:"Close",search:"Search",doNotClearLogOnPageReload:"Do not clear log on page reload / navigation",preserveLog:"Preserve log",disableCacheWhileDevtoolsIsOpen:"Disable cache while DevTools is open",disableCache:"Disable cache",networkSettings:"Network settings",showMoreInformationInRequestRows:"Show more information in request rows",useLargeRequestRows:"Big request rows",showOverviewOfNetworkRequests:"Show overview of network requests",showOverview:"Overview",groupRequestsByTopLevelRequest:"Group requests by top level request frame",groupByFrame:"Group by frame",captureScreenshotsWhenLoadingA:"Capture screenshots when loading a page",captureScreenshots:"Screenshots",importHarFile:"Import `HAR` file...",exportHar:"Export `HAR` (either sanitized or with sensitive data)",exportHarSanitized:"Export `HAR` (sanitized)...",exportHarWithSensitiveData:"Export `HAR` (with sensitive data)...",throttling:"Throttling",hitSToReloadAndCaptureFilmstrip:"Hit {PH1} to reload and capture filmstrip.",openInNetworkPanel:"Open in Network panel",openInNetworkPanelMissingRequest:"Open in Network panel (missing request)",recordingFrames:"Recording frames...",fetchingFrames:"Fetching frames...",moreNetworkConditions:"More network conditions…"},ji=r.i18n.registerUIStrings("panels/network/NetworkPanel.ts",Gi),zi=r.i18n.getLocalizedString.bind(void 0,ji);let _i,Ki;class $i extends e.Panel.Panel{networkLogShowOverviewSetting;networkLogLargeRowsSetting;networkRecordFilmStripSetting;toggleRecordAction;pendingStopTimer;networkItemView;filmStripView;filmStripRecorder;currentRequest;panelToolbar;rightToolbar;filterBar;showSettingsPaneSetting;filmStripPlaceholderElement;overviewPane;networkOverview;overviewPlaceholderElement;calculator;splitWidget;sidebarLocation;progressBarContainer;networkLogView;fileSelectorElement;detailsWidget;closeButtonElement;preserveLogSetting;recordLogSetting;throttlingSelect;displayScreenshotDelay;isReactNative=!1;constructor(i){super("network"),this.registerRequiredCSS(Di),this.isReactNative=C.Runtime.experiments.isEnabled("react-native-specific-ui"),this.displayScreenshotDelay=i,this.networkLogShowOverviewSetting=t.Settings.Settings.instance().createSetting("network-log-show-overview",!0),this.networkLogLargeRowsSetting=t.Settings.Settings.instance().createSetting("network-log-large-rows",!1),this.networkRecordFilmStripSetting=t.Settings.Settings.instance().createSetting("network-record-film-strip-setting",!1),this.toggleRecordAction=e.ActionRegistry.ActionRegistry.instance().getAction("network.toggle-recording"),this.networkItemView=null,this.filmStripView=null,this.filmStripRecorder=null,this.currentRequest=null;const r=new e.Widget.VBox,o=r.contentElement.createChild("div","network-toolbar-container");o.role="toolbar",this.panelToolbar=o.createChild("devtools-toolbar"),this.panelToolbar.role="presentation",this.panelToolbar.wrappable=!0,this.panelToolbar.setAttribute("jslog",`${d.toolbar("network-main")}`),this.rightToolbar=o.createChild("devtools-toolbar"),this.rightToolbar.role="presentation",this.filterBar=new e.FilterBar.FilterBar("network-panel",!0),this.filterBar.show(r.contentElement),this.filterBar.addEventListener("Changed",this.handleFilterChanged.bind(this));const l=r.contentElement.createChild("div","network-settings-pane");l.append(e.SettingsUI.createSettingCheckbox(zi(Gi.useLargeRequestRows),this.networkLogLargeRowsSetting,zi(Gi.showMoreInformationInRequestRows)),e.SettingsUI.createSettingCheckbox(zi(Gi.groupByFrame),t.Settings.Settings.instance().moduleSetting("network.group-by-frame"),zi(Gi.groupRequestsByTopLevelRequest)),e.SettingsUI.createSettingCheckbox(zi(Gi.showOverview),this.networkLogShowOverviewSetting,zi(Gi.showOverviewOfNetworkRequests))),this.isReactNative||l.append(e.SettingsUI.createSettingCheckbox(zi(Gi.captureScreenshots),this.networkRecordFilmStripSetting,zi(Gi.captureScreenshotsWhenLoadingA))),this.showSettingsPaneSetting=t.Settings.Settings.instance().createSetting("network-show-settings-toolbar",!1),l.classList.toggle("hidden",!this.showSettingsPaneSetting.get()),this.showSettingsPaneSetting.addChangeListener((()=>l.classList.toggle("hidden",!this.showSettingsPaneSetting.get()))),this.filmStripPlaceholderElement=r.contentElement.createChild("div","network-film-strip-placeholder"),this.overviewPane=new v.TimelineOverviewPane.TimelineOverviewPane("network"),this.overviewPane.addEventListener("OverviewPaneWindowChanged",this.onWindowChanged.bind(this)),this.overviewPane.element.id="network-overview-panel",this.networkOverview=new ri,this.overviewPane.setOverviewControls([this.networkOverview]),this.overviewPlaceholderElement=r.contentElement.createChild("div"),this.calculator=new jt,this.splitWidget=new e.SplitWidget.SplitWidget(!0,!1,"network-panel-split-view-state"),this.splitWidget.hideMain(),this.splitWidget.show(r.contentElement),r.setDefaultFocusedChild(this.filterBar);const c=new e.SplitWidget.SplitWidget(!0,!1,"network-panel-sidebar-state",225);c.hideSidebar(),c.enableShowModeSaving(),c.show(this.element),this.sidebarLocation=e.ViewManager.ViewManager.instance().createTabbedLocation((async()=>{e.ViewManager.ViewManager.instance().showView("network"),c.showBoth()}),"network-sidebar",!0);const h=this.sidebarLocation.tabbedPane();h.setMinimumSize(100,25),h.element.classList.add("network-tabbed-pane"),h.element.addEventListener("keydown",(e=>{e.key===s.KeyboardUtilities.ESCAPE_KEY&&(c.hideSidebar(),e.consume(),d.logKeyDown(e.currentTarget,e,"hide-sidebar"))}));const u=new e.Toolbar.ToolbarButton(zi(Gi.close),"cross");u.addEventListener("Click",(()=>c.hideSidebar())),u.element.setAttribute("jslog",`${d.close().track({click:!0})}`),h.rightToolbar().appendToolbarItem(u),c.setSidebarWidget(h),c.setMainWidget(r),c.setDefaultFocusedChild(r),this.setDefaultFocusedChild(c),this.progressBarContainer=document.createElement("div"),this.networkLogView=new Ii(this.filterBar,this.progressBarContainer,this.networkLogLargeRowsSetting),this.splitWidget.setSidebarWidget(this.networkLogView),this.fileSelectorElement=e.UIUtils.createFileSelectorElement(this.networkLogView.onLoadFromFile.bind(this.networkLogView)),r.element.appendChild(this.fileSelectorElement),this.detailsWidget=new e.Widget.VBox,this.detailsWidget.element.classList.add("network-details-view"),this.splitWidget.setMainWidget(this.detailsWidget),this.closeButtonElement=document.createElement("dt-close-button"),this.closeButtonElement.addEventListener("click",(async()=>{const t=e.ActionRegistry.ActionRegistry.instance().getAction("network.hide-request-details");await t.execute()}),!1),this.closeButtonElement.style.margin="0 5px",this.networkLogShowOverviewSetting.addChangeListener(this.toggleShowOverview,this),this.networkLogLargeRowsSetting.addChangeListener(this.toggleLargerRequests,this),this.networkRecordFilmStripSetting.addChangeListener(this.toggleRecordFilmStrip,this),this.preserveLogSetting=t.Settings.Settings.instance().moduleSetting("network-log.preserve-log"),this.recordLogSetting=t.Settings.Settings.instance().moduleSetting("network-log.record-log"),this.recordLogSetting.addChangeListener((({data:e})=>this.toggleRecord(e))),this.throttlingSelect=this.createThrottlingConditionsSelect(),this.setupToolbarButtons(c),this.toggleRecord(this.recordLogSetting.get()),this.toggleShowOverview(),this.toggleLargerRequests(),this.toggleRecordFilmStrip(),this.updateUI(),n.TargetManager.TargetManager.instance().addModelListener(n.ResourceTreeModel.ResourceTreeModel,n.ResourceTreeModel.Events.WillReloadPage,this.willReloadPage,this,{scoped:!0}),n.TargetManager.TargetManager.instance().addModelListener(n.ResourceTreeModel.ResourceTreeModel,n.ResourceTreeModel.Events.Load,this.load,this,{scoped:!0}),this.networkLogView.addEventListener("RequestSelected",this.onRequestSelected,this),this.networkLogView.addEventListener("RequestActivated",this.onRequestActivated,this),a.NetworkLog.NetworkLog.instance().addEventListener(a.NetworkLog.Events.RequestAdded,this.onUpdateRequest,this),a.NetworkLog.NetworkLog.instance().addEventListener(a.NetworkLog.Events.RequestUpdated,this.onUpdateRequest,this),a.NetworkLog.NetworkLog.instance().addEventListener(a.NetworkLog.Events.Reset,this.onNetworkLogReset,this)}static instance(e){return _i&&!e?.forceNew||(_i=new $i(e?.displayScreenshotDelay??1e3)),_i}static revealAndFilter(t){const i=$i.instance();let r="";for(const e of t)e.filterType?r+=`${e.filterType}:${e.filterValue} `:r+=`${e.filterValue} `;return i.networkLogView.setTextFilterValue(r),e.ViewManager.ViewManager.instance().showView("network")}throttlingSelectForTest(){return this.throttlingSelect}onWindowChanged(e){const t=Math.max(this.calculator.minimumBoundary(),e.data.startTime/1e3),i=Math.min(this.calculator.maximumBoundary(),e.data.endTime/1e3);t===this.calculator.minimumBoundary()&&i===this.calculator.maximumBoundary()?this.networkLogView.setWindow(0,0):this.networkLogView.setWindow(t,i)}async searchToggleClick(){const t=e.ActionRegistry.ActionRegistry.instance().getAction("network.search");await t.execute()}setupToolbarButtons(i){const r=new e.Toolbar.ToolbarToggle(zi(Gi.search),"search",void 0,"search");function o(){const e="OnlyMain"!==i.showMode();r.setToggled(e),e||r.element.focus()}if(this.panelToolbar.appendToolbarItem(e.Toolbar.Toolbar.createActionButton(this.toggleRecordAction)),this.panelToolbar.appendToolbarItem(e.Toolbar.Toolbar.createActionButton("network.clear")),this.panelToolbar.appendSeparator(),this.panelToolbar.appendToolbarItem(this.filterBar.filterButton()),o(),i.addEventListener("ShowModeChanged",o),r.addEventListener("Click",(()=>{this.searchToggleClick()})),this.panelToolbar.appendToolbarItem(r),this.panelToolbar.appendSeparator(),this.panelToolbar.appendToolbarItem(new e.Toolbar.ToolbarSettingCheckbox(this.preserveLogSetting,zi(Gi.doNotClearLogOnPageReload),zi(Gi.preserveLog))),!this.isReactNative){this.panelToolbar.appendSeparator();const i=new e.Toolbar.ToolbarSettingCheckbox(t.Settings.Settings.instance().moduleSetting("cache-disabled"),zi(Gi.disableCacheWhileDevtoolsIsOpen),zi(Gi.disableCache));this.panelToolbar.appendToolbarItem(i),this.panelToolbar.appendToolbarItem(this.throttlingSelect);const r=new e.Toolbar.ToolbarButton(zi(Gi.moreNetworkConditions),"network-settings",void 0,"network-conditions");r.addEventListener("Click",(()=>{e.ViewManager.ViewManager.instance().showView("network.config")}),this),this.panelToolbar.appendToolbarItem(r)}this.rightToolbar.appendToolbarItem(new e.Toolbar.ToolbarItem(this.progressBarContainer)),this.rightToolbar.appendSeparator(),this.rightToolbar.appendToolbarItem(new e.Toolbar.ToolbarSettingToggle(this.showSettingsPaneSetting,"gear",zi(Gi.networkSettings),"gear-filled","network-settings"));this.panelToolbar.appendSeparator();const s=new e.Toolbar.ToolbarButton(zi(Gi.importHarFile),"import",void 0,"import-har");s.addEventListener("Click",(()=>this.fileSelectorElement.click()),this),this.panelToolbar.appendToolbarItem(s);const n=new e.Toolbar.ToolbarButton(zi(Gi.exportHarSanitized),"download",void 0,"export-har");n.addEventListener("Click",this.networkLogView.exportAll.bind(this.networkLogView,{sanitize:!0}),this),this.panelToolbar.appendToolbarItem(n);const a=new e.Toolbar.ToolbarMenuButton((e=>{e.defaultSection().appendItem(zi(Gi.exportHarSanitized),this.networkLogView.exportAll.bind(this.networkLogView,{sanitize:!0}),{jslogContext:"export-har"}),e.defaultSection().appendItem(zi(Gi.exportHarWithSensitiveData),this.networkLogView.exportAll.bind(this.networkLogView,{sanitize:!1}),{jslogContext:"export-har-with-sensitive-data"})}),!0,!1,"export-har-menu","download");a.setTitle(zi(Gi.exportHar)),this.panelToolbar.appendToolbarItem(a);const l=t.Settings.Settings.instance().createSetting("network.show-options-to-generate-har-with-sensitive-data",!1),d=()=>{const e=l.get();n.setVisible(!e),a.setVisible(e)};l.addChangeListener(d),d()}createThrottlingConditionsSelect(){const t=new e.Toolbar.ToolbarComboBox(null,zi(Gi.throttling));return t.setMaxWidth(160),h.ThrottlingManager.throttlingManager().createNetworkThrottlingSelector(t.element),t}toggleRecord(e){this.toggleRecordAction.setToggled(e),this.recordLogSetting.get()!==e&&this.recordLogSetting.set(e),this.networkLogView.setRecording(e),!e&&this.filmStripRecorder&&this.filmStripRecorder.stopRecording(this.filmStripAvailable.bind(this))}filmStripAvailable(e){this.filmStripView&&this.filmStripView.setModel(e);const t=e.frames.map((e=>P.Helpers.Timing.microToSeconds(e.screenshotEvent.ts)));this.networkLogView.addFilmStripFrames(t)}onNetworkLogReset(e){const{clearIfPreserved:t}=e.data;this.preserveLogSetting.get()&&!t||(this.calculator.reset(),this.overviewPane.reset()),this.filmStripView&&this.resetFilmStripView()}willReloadPage(){this.pendingStopTimer&&(clearTimeout(this.pendingStopTimer),delete this.pendingStopTimer),this.isShowing()&&this.filmStripRecorder&&this.filmStripRecorder.startRecording()}load(){this.filmStripRecorder?.isRecording()&&(this.pendingStopTimer&&window.clearTimeout(this.pendingStopTimer),this.pendingStopTimer=window.setTimeout(this.stopFilmStripRecording.bind(this),this.displayScreenshotDelay))}stopFilmStripRecording(){this.filmStripRecorder&&this.filmStripRecorder.stopRecording(this.filmStripAvailable.bind(this)),delete this.pendingStopTimer}toggleLargerRequests(){this.updateUI()}toggleShowOverview(){this.networkLogShowOverviewSetting.get()?this.overviewPane.show(this.overviewPlaceholderElement):this.overviewPane.detach(),this.doResize()}toggleRecordFilmStrip(){const e=this.networkRecordFilmStripSetting.get();e&&!this.filmStripRecorder&&(this.filmStripView=new v.FilmStripView.FilmStripView,this.filmStripView.element.classList.add("network-film-strip"),this.filmStripView.element.setAttribute("jslog",`${d.section("film-strip")}`),this.filmStripRecorder=new Xi(this.networkLogView.timeCalculator(),this.filmStripView),this.filmStripView.show(this.filmStripPlaceholderElement),this.filmStripView.addEventListener("FrameSelected",this.onFilmFrameSelected,this),this.filmStripView.addEventListener("FrameEnter",this.onFilmFrameEnter,this),this.filmStripView.addEventListener("FrameExit",this.onFilmFrameExit,this),this.resetFilmStripView()),!e&&this.filmStripRecorder&&(this.filmStripView&&this.filmStripView.detach(),this.filmStripView=null,this.filmStripRecorder=null)}resetFilmStripView(){const t=e.ShortcutRegistry.ShortcutRegistry.instance().shortcutsForAction("inspector-main.reload")[0];this.filmStripView&&(this.filmStripView.reset(),t&&this.filmStripView.setStatusText(zi(Gi.hitSToReloadAndCaptureFilmstrip,{PH1:t.title()})))}elementsToRestoreScrollPositionsFor(){return this.networkLogView.elementsToRestoreScrollPositionsFor()}wasShown(){super.wasShown(),e.Context.Context.instance().setFlavor($i,this),i.userMetrics.panelLoaded("network","DevTools.Launch.Network")}willHide(){e.Context.Context.instance().setFlavor($i,null),super.willHide()}revealAndHighlightRequest(e){this.hideRequestPanel(),e&&this.networkLogView.revealAndHighlightRequest(e)}revealAndHighlightRequestWithId(e){this.hideRequestPanel(),e&&this.networkLogView.revealAndHighlightRequestWithId(e)}async selectAndActivateRequest(t,i,r){return await e.ViewManager.ViewManager.instance().showView("network"),this.networkLogView.selectRequest(t,r),this.showRequestPanel(i),this.networkLogView.revealAndHighlightRequest(t),this.networkItemView}handleFilterChanged(){this.hideRequestPanel()}onRequestSelected(t){const i=t.data;this.currentRequest=i,this.networkOverview.setHighlightedRequest(i),this.updateNetworkItemView(),e.Context.Context.instance().setFlavor(n.NetworkRequest.NetworkRequest,i)}onRequestActivated(e){const{showPanel:t,tab:i,takeFocus:r}=e.data;t?this.showRequestPanel(i,r):this.hideRequestPanel()}showRequestPanel(e,t){if("Both"!==this.splitWidget.showMode()||e||t){if(this.clearNetworkItemView(),this.currentRequest){const i=this.createNetworkItemView(e);i&&t&&i.focus()}this.updateUI()}}hideRequestPanel(){this.clearNetworkItemView(),this.splitWidget.hideMain(),this.updateUI()}updateNetworkItemView(){"Both"===this.splitWidget.showMode()&&(this.clearNetworkItemView(),this.createNetworkItemView(),this.updateUI())}clearNetworkItemView(){this.networkItemView&&(this.networkItemView.detach(),this.networkItemView=null)}createNetworkItemView(t){if(this.currentRequest)return this.networkItemView=new Nt(this.currentRequest,this.networkLogView.timeCalculator(),t),this.networkItemView.leftToolbar().appendToolbarItem(new e.Toolbar.ToolbarItem(this.closeButtonElement)),this.networkItemView.show(this.detailsWidget.element),this.splitWidget.showBoth(),this.networkItemView}updateUI(){this.detailsWidget&&this.detailsWidget.element.classList.toggle("network-details-view-tall-header",this.networkLogLargeRowsSetting.get()),this.networkLogView&&this.networkLogView.switchViewMode(!this.splitWidget.isResizable())}appendApplicableItems(t,i,r){const o=t=>{i.revealSection().appendItem(zi(Gi.openInNetworkPanel),(()=>e.ViewManager.ViewManager.instance().showView("network").then(this.networkLogView.resetFilter.bind(this.networkLogView)).then(this.revealAndHighlightRequest.bind(this,t))),{jslogContext:"reveal-in-network"})},s=()=>{i.revealSection().appendItem(zi(Gi.openInNetworkPanelMissingRequest),(()=>{}),{disabled:!0,jslogContext:"reveal-in-network"})},a=t=>{i.revealSection().appendItem(zi(Gi.openInNetworkPanel),(()=>e.ViewManager.ViewManager.instance().showView("network").then(this.networkLogView.resetFilter.bind(this.networkLogView)).then(this.selectAndActivateRequest.bind(this,t.networkRequest,"headers-component",void 0))),{jslogContext:"timeline.reveal-in-network"})};if(!t.target.isSelfOrDescendant(this.element))if(r instanceof n.Resource.Resource)r.request?o(r.request):s();else if(r instanceof g.UISourceCode.UISourceCode){const e=n.ResourceTreeModel.ResourceTreeModel.resourceForURL(r.url());e?.request?o(e.request):s()}else r instanceof n.TraceObject.RevealableNetworkRequest?a(r):this.networkItemView&&this.networkItemView.isShowing()&&this.networkItemView.request()===r||o(r)}onFilmFrameSelected(e){const t=e.data;this.overviewPane.setWindowTimes(0,t)}onFilmFrameEnter(e){const t=e.data;this.networkOverview.selectFilmStripFrame(t),this.networkLogView.selectFilmStripFrame(t/1e3)}onFilmFrameExit(){this.networkOverview.clearFilmStripFrame(),this.networkLogView.clearFilmStripFrame()}onUpdateRequest(e){const{request:t}=e.data;this.calculator.updateBoundaries(t),this.overviewPane.setBounds(P.Types.Timing.Milli(1e3*this.calculator.minimumBoundary()),P.Types.Timing.Milli(1e3*this.calculator.maximumBoundary())),this.networkOverview.updateRequest(t)}resolveLocation(e){return"network-sidebar"===e?this.sidebarLocation:null}}class Xi{tracingManager;resourceTreeModel;timeCalculator;filmStripView;callback;#n;#a=[];constructor(e,t){this.#n=P.TraceModel.Model.createWithSubsetOfHandlers({Screenshots:P.Handlers.ModelHandlers.Screenshots}),this.tracingManager=null,this.resourceTreeModel=null,this.timeCalculator=e,this.filmStripView=t,this.callback=null}traceEventsCollected(e){this.#a.push(...e)}async tracingComplete(){if(!this.tracingManager)return;this.tracingManager=null,await this.#n.parse(this.#a);const e=this.#n.parsedTrace(this.#n.size()-1);if(!e)return;const t=P.Types.Timing.Seconds(this.timeCalculator.minimumBoundary()),i=P.Extras.FilmStrip.fromParsedTrace(e,P.Helpers.Timing.secondsToMicro(t));this.callback&&this.callback(i),this.callback=null,this.#n.resetProcessor(),this.resourceTreeModel&&this.resourceTreeModel.resumeReload(),this.resourceTreeModel=null}tracingBufferUsage(){}eventsRetrievalProgress(e){}startRecording(){this.#a=[],this.filmStripView.reset(),this.filmStripView.setStatusText(zi(Gi.recordingFrames));const e=n.TargetManager.TargetManager.instance().scopeTarget()?.model(P.TracingManager.TracingManager);!this.tracingManager&&e&&(this.tracingManager=e,this.resourceTreeModel=this.tracingManager.target().model(n.ResourceTreeModel.ResourceTreeModel),this.tracingManager.start(this,"-*,disabled-by-default-devtools.screenshot",""),i.userMetrics.actionTaken(i.UserMetrics.Action.FilmStripStartedRecording))}isRecording(){return Boolean(this.tracingManager)}stopRecording(e){this.tracingManager&&(this.tracingManager.stop(),this.resourceTreeModel&&this.resourceTreeModel.suspendReload(),this.callback=e,this.filmStripView.setStatusText(zi(Gi.fetchingFrames)))}}class Ji extends A.SearchView.SearchView{constructor(){super("network",new t.Throttler.Throttler(200))}static instance(e={forceNew:null}){const{forceNew:t}=e;return Ki&&!t||(Ki=new Ji),Ki}static async openSearch(t,i){await e.ViewManager.ViewManager.instance().showView("network.search-network-tab");const r=Ji.instance();return r.toggle(t,Boolean(i)),r}createScope(){return new Vi(a.NetworkLog.NetworkLog.instance())}}var Yi=Object.freeze({__proto__:null,ActionDelegate:class{handleAction(t,i){const r=t.flavor($i);if(null===r)return!1;switch(i){case"network.toggle-recording":return r.toggleRecord(!r.recordLogSetting.get()),!0;case"network.hide-request-details":return!!r.networkItemView&&(r.hideRequestPanel(),r.networkLogView.resetFocus(),!0);case"network.search":{const t=e.InspectorView.InspectorView.instance().element.window().getSelection();if(!t)return!1;let i="";return t.rangeCount&&(i=t.toString().replace(/\r?\n.*/,"")),Ji.openSearch(i),!0}case"network.clear":return a.NetworkLog.NetworkLog.instance().reset(!0),!0}return!1}},FilmStripRecorder:Xi,NetworkLogWithFilterRevealer:class{reveal(e){return"filters"in e?$i.revealAndFilter(e.filters):$i.revealAndFilter(e.filter?[{filterType:null,filterValue:e.filter}]:[])}},NetworkPanel:$i,RequestIdRevealer:class{reveal(t){const i=$i.instance();return e.ViewManager.ViewManager.instance().showView("network").then(i.revealAndHighlightRequestWithId.bind(i,t))}},RequestLocationRevealer:class{async reveal(e){const t=await $i.instance().selectAndActivateRequest(e.request,e.tab,e.filterOptions);if(t){if(e.searchMatch){const{lineNumber:i,columnNumber:r,matchLength:o}=e.searchMatch,s={from:{lineNumber:i,columnNumber:r},to:{lineNumber:i,columnNumber:r+o}};await t.revealResponseBody(s)}e.header&&t.revealHeader(e.header.section,e.header.header?.name)}}},RequestRevealer:class{reveal(t){const i=$i.instance();return e.ViewManager.ViewManager.instance().showView("network").then(i.revealAndHighlightRequest.bind(i,t))}},SearchNetworkView:Ji});export{O as BinaryResourceView,K as BlockedURLsPane,re as EventSourceMessagesView,ue as NetworkConfigView,fe as NetworkDataGridNode,Xt as NetworkFrameGrouper,Ut as NetworkItemView,Mi as NetworkLogView,yi as NetworkLogViewColumns,ii as NetworkManageCustomHeadersView,di as NetworkOverview,Yi as NetworkPanel,Oi as NetworkSearchScope,_t as NetworkTimeCalculator,ui as NetworkWaterfallColumn,Re as RequestCookiesView,Ke as RequestHTMLView,Pe as RequestInitiatorView,je as RequestPayloadView,ut as RequestPreviewView,Ze as RequestResponseView,ft as RequestTimingView,Ht as ResourceWebSocketFrameView,at as SignedExchangeInfoView};
1
+ import*as e from"../../ui/legacy/legacy.js";import*as t from"../../core/common/common.js";import*as i from"../../core/host/host.js";import*as r from"../../core/i18n/i18n.js";import*as o from"../../ui/legacy/components/source_frame/source_frame.js";import*as s from"../../core/platform/platform.js";import*as n from"../../core/sdk/sdk.js";import*as a from"../../models/logs/logs.js";import*as l from"../../ui/components/buttons/buttons.js";import*as d from"../../ui/visual_logging/visual_logging.js";import*as c from"../../ui/legacy/components/data_grid/data_grid.js";import*as h from"../mobile_throttling/mobile_throttling.js";import*as u from"../settings/emulation/components/components.js";import*as p from"../../models/bindings/bindings.js";import*as g from"../../models/workspace/workspace.js";import*as m from"./forward/forward.js";import*as w from"../../ui/components/floating_button/floating_button.js";import*as k from"../../ui/components/icon_button/icon_button.js";import*as v from"../../ui/legacy/components/perf_ui/perf_ui.js";import*as b from"../../ui/legacy/components/utils/utils.js";import{PanelUtils as f}from"../utils/utils.js";import*as C from"../../core/root/root.js";import*as S from"../../ui/components/legacy_wrapper/legacy_wrapper.js";import*as y from"./components/components.js";import*as T from"../../ui/legacy/components/cookie_table/cookie_table.js";import*as x from"../../ui/legacy/components/object_ui/object_ui.js";import*as R from"../../models/text_utils/text_utils.js";import*as I from"../../models/har/har.js";import*as q from"../../models/persistence/persistence.js";import*as L from"../sources/sources.js";import*as F from"../../ui/components/adorners/adorners.js";import*as E from"../../ui/components/render_coordinator/render_coordinator.js";import*as H from"../../ui/legacy/theme_support/theme_support.js";import*as P from"../../models/trace/trace.js";import*as M from"../search/search.js";var A={cssText:`.panel.network devtools-toolbar.binary-view-toolbar{border-top:1px solid var(--sys-color-divider);border-bottom:0;padding-left:5px}.binary-view-copied-text{opacity:100%}.binary-view-copied-text.fadeout{opacity:0%;transition:opacity 1s}\n/*# sourceURL=${import.meta.resolve("./binaryResourceView.css")} */\n`};const N={copiedAsBase:"Copied as `Base64`",hexViewer:"`Hex` Viewer",copiedAsHex:"Copied as `Hex`",copiedAsUtf:"Copied as `UTF-8`",binaryViewType:"Binary view type",copyToClipboard:"Copy to clipboard",copyAsBase:"Copy as `Base64`",copyAsHex:"Copy as `Hex`",copyAsUtf:"Copy as `UTF-8`"},U=r.i18n.registerUIStrings("panels/network/BinaryResourceView.ts",N),B=r.i18n.getLocalizedString.bind(void 0,U);class V extends e.Widget.VBox{binaryResourceViewFactory;toolbar;binaryViewObjects;binaryViewTypeSetting;binaryViewTypeCombobox;copiedText;addFadeoutSettimeoutId;lastView;constructor(i,s,n){super(),this.registerRequiredCSS(A),this.binaryResourceViewFactory=new o.BinaryResourceViewFactory.BinaryResourceViewFactory(i,s,n),this.toolbar=this.element.createChild("devtools-toolbar","binary-view-toolbar"),this.binaryViewObjects=[new W("base64",r.i18n.lockedString("Base64"),B(N.copiedAsBase),this.binaryResourceViewFactory.createBase64View.bind(this.binaryResourceViewFactory),this.binaryResourceViewFactory.base64.bind(this.binaryResourceViewFactory)),new W("hex",B(N.hexViewer),B(N.copiedAsHex),this.binaryResourceViewFactory.createHexView.bind(this.binaryResourceViewFactory),this.binaryResourceViewFactory.hex.bind(this.binaryResourceViewFactory)),new W("utf8",r.i18n.lockedString("UTF-8"),B(N.copiedAsUtf),this.binaryResourceViewFactory.createUtf8View.bind(this.binaryResourceViewFactory),this.binaryResourceViewFactory.utf8.bind(this.binaryResourceViewFactory))],this.binaryViewTypeSetting=t.Settings.Settings.instance().createSetting("binary-view-type","hex"),this.binaryViewTypeCombobox=new e.Toolbar.ToolbarComboBox(this.binaryViewTypeChanged.bind(this),B(N.binaryViewType));for(const e of this.binaryViewObjects)this.binaryViewTypeCombobox.addOption(this.binaryViewTypeCombobox.createOption(e.label,e.type));this.toolbar.appendToolbarItem(this.binaryViewTypeCombobox);const a=new e.Toolbar.ToolbarButton(B(N.copyToClipboard),"copy");a.addEventListener("Click",(e=>{this.copySelectedViewToClipboard()}),this),this.toolbar.appendToolbarItem(a),this.copiedText=new e.Toolbar.ToolbarText,this.copiedText.element.classList.add("binary-view-copied-text"),this.toolbar.appendChild(this.copiedText.element),this.addFadeoutSettimeoutId=null,this.lastView=null,this.updateView()}getCurrentViewObject(){const e=this.binaryViewObjects.find((e=>e.type===this.binaryViewTypeSetting.get()));return console.assert(Boolean(e),`No binary view found for binary view type found in setting 'binary-view-type': ${this.binaryViewTypeSetting.get()}`),e||null}copySelectedViewToClipboard(){const e=this.getCurrentViewObject();e&&(i.InspectorFrontendHost.InspectorFrontendHostInstance.copyText(e.content()),this.copiedText.setText(e.copiedMessage),this.copiedText.element.classList.remove("fadeout"),this.addFadeoutSettimeoutId&&(clearTimeout(this.addFadeoutSettimeoutId),this.addFadeoutSettimeoutId=null),this.addFadeoutSettimeoutId=window.setTimeout(function(){this.copiedText.element.classList.add("fadeout")}.bind(this),2e3))}updateView(){const e=this.getCurrentViewObject();if(!e)return;const t=e.getView();t!==this.lastView&&(this.lastView&&this.lastView.detach(),this.lastView=t,t.show(this.element,this.toolbar),this.binaryViewTypeCombobox.element.value=this.binaryViewTypeSetting.get())}binaryViewTypeChanged(){const e=this.binaryViewTypeCombobox.selectedOption();if(!e)return;const t=e.value;this.binaryViewTypeSetting.get()!==t&&(this.binaryViewTypeSetting.set(t),this.updateView())}addCopyToContextMenu(e,t){const r=e.clipboardSection().appendSubMenuItem(t,!1,"copy").footerSection();r.appendItem(B(N.copyAsBase),(async()=>{const e=this.binaryResourceViewFactory.base64();i.InspectorFrontendHost.InspectorFrontendHostInstance.copyText(e)}),{jslogContext:"copy-as-base"}),r.appendItem(B(N.copyAsHex),(async()=>{const e=await this.binaryResourceViewFactory.hex();i.InspectorFrontendHost.InspectorFrontendHostInstance.copyText(e)}),{jslogContext:"copy-as-hex"}),r.appendItem(B(N.copyAsUtf),(async()=>{const e=await this.binaryResourceViewFactory.utf8();i.InspectorFrontendHost.InspectorFrontendHostInstance.copyText(e)}),{jslogContext:"copy-as-utf"})}}class W{type;label;copiedMessage;content;createViewFn;view;constructor(e,t,i,r,o){this.type=e,this.label=t,this.copiedMessage=i,this.content=o,this.createViewFn=r,this.view=null}getView(){return this.view||(this.view=this.createViewFn()),this.view}}var O=Object.freeze({__proto__:null,BinaryResourceView:V,BinaryViewObject:W}),D={cssText:`.list{border:none!important;border-top:1px solid var(--sys-color-divider)!important;display:flex;height:100%}.blocking-disabled{opacity:80%}.editor-container{padding:0 4px}.blocked-urls{overflow:hidden auto}.no-blocked-urls > span{white-space:pre}.blocked-url{display:flex;flex-direction:row;align-items:center;flex:auto}.blocked-url-count{flex:none;padding-right:9px}.blocked-url-checkbox{margin-left:8px;flex:none}.blocked-url-checkbox:focus{outline:auto 5px -webkit-focus-ring-color}.blocked-url-label{white-space:nowrap;text-overflow:ellipsis;overflow:hidden;flex:auto;padding:0 3px}.blocked-url-edit-row{flex:none;display:flex;flex-direction:row;margin:7px 5px 0;align-items:center}.blocked-url-edit-value{user-select:none;flex:1 1 0}.blocked-url-edit-row input{width:100%;text-align:inherit;height:22px}\n/*# sourceURL=${import.meta.resolve("./blockedURLsPane.css")} */\n`};const G={enableNetworkRequestBlocking:"Enable network request blocking",addPattern:"Add pattern",addNetworkRequestBlockingPattern:"Add network request blocking pattern",noNetworkRequestsBlocked:"No blocked network requests",addPatternToBlock:'Add a pattern to block network requests by clicking on the "{PH1}" button.',dBlocked:"{PH1} blocked",textPatternToBlockMatching:"Text pattern to block matching requests; use * for wildcard",patternInputCannotBeEmpty:"Pattern input cannot be empty.",patternAlreadyExists:"Pattern already exists.",itemDeleted:"Item successfully deleted",learnMore:"Learn more"},j=r.i18n.registerUIStrings("panels/network/BlockedURLsPane.ts",G),z=r.i18n.getLocalizedString.bind(void 0,j);class _ extends e.Widget.VBox{manager;toolbar;enabledCheckbox;list;editor;blockedCountForUrl;constructor(){super(!0),this.registerRequiredCSS(D),this.element.setAttribute("jslog",`${d.panel("network.blocked-urls").track({resize:!0})}`),this.manager=n.NetworkManager.MultitargetNetworkManager.instance(),this.manager.addEventListener("BlockedPatternsChanged",this.update,this),this.toolbar=this.contentElement.createChild("devtools-toolbar"),this.enabledCheckbox=new e.Toolbar.ToolbarCheckbox(z(G.enableNetworkRequestBlocking),void 0,this.toggleEnabled.bind(this),"network.enable-request-blocking"),this.toolbar.appendToolbarItem(this.enabledCheckbox),this.toolbar.appendSeparator(),this.toolbar.appendToolbarItem(e.Toolbar.Toolbar.createActionButton("network.add-network-request-blocking-pattern")),this.toolbar.appendToolbarItem(e.Toolbar.Toolbar.createActionButton("network.remove-all-network-request-blocking-patterns")),this.toolbar.setAttribute("jslog",`${d.toolbar()}`),this.list=new e.ListWidget.ListWidget(this),this.list.registerRequiredCSS(D),this.list.element.classList.add("blocked-urls"),this.list.setEmptyPlaceholder(this.createEmptyPlaceholder()),this.list.show(this.contentElement),this.editor=null,this.blockedCountForUrl=new Map,n.TargetManager.TargetManager.instance().addModelListener(n.NetworkManager.NetworkManager,n.NetworkManager.Events.RequestFinished,this.onRequestFinished,this,{scoped:!0}),this.update(),a.NetworkLog.NetworkLog.instance().addEventListener(a.NetworkLog.Events.Reset,this.onNetworkLogReset,this)}createEmptyPlaceholder(){const t=this.contentElement.createChild("div","empty-state");t.createChild("span","empty-state-header").textContent=z(G.noNetworkRequestsBlocked);const i=t.createChild("div","empty-state-description");i.createChild("span").textContent=z(G.addPatternToBlock,{PH1:z(G.addPattern)});const r=e.XLink.XLink.create("https://developer.chrome.com/docs/devtools/network-request-blocking",z(G.learnMore),void 0,void 0,"learn-more");i.appendChild(r);const o=e.UIUtils.createTextButton(z(G.addPattern),this.addPattern.bind(this),{className:"add-button",jslogContext:"network.add-network-request-blocking-pattern",variant:"tonal"});return e.ARIAUtils.setLabel(o,z(G.addNetworkRequestBlockingPattern)),t.appendChild(o),t}addPattern(){this.manager.setBlockingEnabled(!0),this.list.addNewItem(0,{url:s.DevToolsPath.EmptyUrlString,enabled:!0})}removeAllPatterns(){this.manager.setBlockedPatterns([])}renderItem(e,t){const i=this.blockedRequestsCount(e.url),r=document.createElement("div");r.classList.add("blocked-url");const o=r.createChild("input","blocked-url-checkbox");return o.type="checkbox",o.checked=e.enabled,o.disabled=!t,o.setAttribute("jslog",`${d.toggle().track({change:!0})}`),r.createChild("div","blocked-url-label").textContent=e.url,r.createChild("div","blocked-url-count").textContent=z(G.dBlocked,{PH1:i}),t&&(r.addEventListener("click",(t=>this.togglePattern(e,t))),o.addEventListener("click",(t=>this.togglePattern(e,t)))),r}togglePattern(e,t){t.consume(!0);const i=this.manager.blockedPatterns();i.splice(i.indexOf(e),1,{enabled:!e.enabled,url:e.url}),this.manager.setBlockedPatterns(i)}toggleEnabled(){this.manager.setBlockingEnabled(!this.manager.blockingEnabled()),this.update()}removeItemRequested(t,i){const r=this.manager.blockedPatterns();r.splice(i,1),this.manager.setBlockedPatterns(r),e.ARIAUtils.alert(G.itemDeleted)}beginEdit(e){return this.editor=this.createEditor(),this.editor.control("url").value=e.url,this.editor}commitEdit(e,t,i){const r=t.control("url").value,o=this.manager.blockedPatterns();i?o.push({enabled:!0,url:r}):o.splice(o.indexOf(e),1,{enabled:!0,url:r}),this.manager.setBlockedPatterns(o)}createEditor(){if(this.editor)return this.editor;const t=new e.ListWidget.Editor,i=t.contentElement();i.createChild("div","blocked-url-edit-row").createChild("div").textContent=z(G.textPatternToBlockMatching);const r=i.createChild("div","blocked-url-edit-row"),o=t.createInput("url","text","",((e,t,i)=>{let r,o=!0;return i.value?this.manager.blockedPatterns().find((e=>e.url===i.value))&&(r=z(G.patternAlreadyExists),o=!1):(r=z(G.patternInputCannotBeEmpty),o=!1),{valid:o,errorMessage:r}}));return r.createChild("div","blocked-url-edit-value").appendChild(o),t}update(){const e=this.manager.blockingEnabled();this.list.element.classList.toggle("blocking-disabled",!e&&Boolean(this.manager.blockedPatterns().length)),this.enabledCheckbox.setChecked(e),this.list.clear();for(const t of this.manager.blockedPatterns())this.list.appendItem(t,e)}blockedRequestsCount(e){if(!e)return 0;let t=0;for(const i of this.blockedCountForUrl.keys())this.matches(e,i)&&(t+=this.blockedCountForUrl.get(i));return t}matches(e,t){let i=0;const r=e.split("*");for(let e=0;e<r.length;e++){const o=r[e];if(o.length){if(i=t.indexOf(o,i),-1===i)return!1;i+=o.length}}return!0}onNetworkLogReset(e){this.blockedCountForUrl.clear(),this.update()}onRequestFinished(e){const t=e.data;if(t.wasBlocked()){const e=this.blockedCountForUrl.get(t.url())||0;this.blockedCountForUrl.set(t.url(),e+1),this.update()}}wasShown(){e.Context.Context.instance().setFlavor(_,this),super.wasShown()}willHide(){super.willHide(),e.Context.Context.instance().setFlavor(_,null)}}var K=Object.freeze({__proto__:null,ActionDelegate:class{handleAction(e,t){const i=e.flavor(_);if(null===i)return!1;switch(t){case"network.add-network-request-blocking-pattern":return i.addPattern(),!0;case"network.remove-all-network-request-blocking-patterns":return i.removeAllPatterns(),!0}return!1}},BlockedURLsPane:_}),$={cssText:`.event-source-messages-view .data-grid{flex:auto;border:none}\n/*# sourceURL=${import.meta.resolve("./eventSourceMessagesView.css")} */\n`};const X={id:"Id",type:"Type",data:"Data",time:"Time",eventSource:"Event Source",copyMessage:"Copy message",clearAll:"Clear all",filterByRegex:"Filter using regex (example: https?)"},J=r.i18n.registerUIStrings("panels/network/EventSourceMessagesView.ts",X),Y=r.i18n.getLocalizedString.bind(void 0,J);class Q extends e.Widget.VBox{request;dataGrid;mainToolbar;clearAllButton;filterTextInput;filterRegex;messageFilterSetting=t.Settings.Settings.instance().createSetting("network-event-source-message-filter","");constructor(t){super(),this.registerRequiredCSS($),this.element.classList.add("event-source-messages-view"),this.element.setAttribute("jslog",`${d.pane("event-stream").track({resize:!0})}`),this.request=t,this.mainToolbar=this.element.createChild("devtools-toolbar"),this.clearAllButton=new e.Toolbar.ToolbarButton(Y(X.clearAll),"clear"),this.clearAllButton.addEventListener("Click",this.clearMessages,this),this.mainToolbar.appendToolbarItem(this.clearAllButton);const i=Y(X.filterByRegex);this.filterTextInput=new e.Toolbar.ToolbarFilter(i,.4),this.filterTextInput.addEventListener("TextChanged",this.updateFilterSetting,this);const r=this.messageFilterSetting.get();this.filterRegex=null,this.setFilter(r),r&&this.filterTextInput.setValue(r),this.mainToolbar.appendToolbarItem(this.filterTextInput);const o=[{id:"id",title:Y(X.id),sortable:!0,weight:8},{id:"type",title:Y(X.type),sortable:!0,weight:8},{id:"data",title:Y(X.data),sortable:!1,weight:88},{id:"time",title:Y(X.time),sortable:!0,weight:8}];this.dataGrid=new c.SortableDataGrid.SortableDataGrid({displayName:Y(X.eventSource),columns:o,deleteCallback:void 0,refreshCallback:void 0}),this.dataGrid.setStriped(!0),this.dataGrid.setEnableAutoScrollToBottom(!0),this.dataGrid.setRowContextMenuCallback(this.onRowContextMenu.bind(this)),this.dataGrid.markColumnAsSortedBy("time",c.DataGrid.Order.Ascending),this.sortItems(),this.dataGrid.addEventListener("SortingChanged",this.sortItems,this),this.dataGrid.setName("event-source-messages-view"),this.dataGrid.asWidget().show(this.element)}wasShown(){super.wasShown(),this.refresh(),this.request.addEventListener(n.NetworkRequest.Events.EVENT_SOURCE_MESSAGE_ADDED,this.messageAdded,this)}willHide(){this.request.removeEventListener(n.NetworkRequest.Events.EVENT_SOURCE_MESSAGE_ADDED,this.messageAdded,this)}messageAdded(e){const t=e.data;this.messageFilter(t)&&this.dataGrid.insertChild(new Z(t))}messageFilter(e){return!this.filterRegex||this.filterRegex.test(e.eventName)||this.filterRegex.test(e.eventId)||this.filterRegex.test(e.data)}clearMessages(){ie.set(this.request,this.request.eventSourceMessages().length),this.refresh()}updateFilterSetting(){const e=this.filterTextInput.value();this.messageFilterSetting.set(e),this.setFilter(e),this.refresh()}setFilter(e){if(this.filterRegex=null,e)try{this.filterRegex=new RegExp(e,"i")}catch{this.filterRegex=new RegExp("(?!)","i")}}sortItems(){const e=this.dataGrid.sortColumnId();if(!e)return;const t=te[e];t&&this.dataGrid.sortNodes(t,!this.dataGrid.isSortOrderAscending())}onRowContextMenu(e,t){e.clipboardSection().appendItem(Y(X.copyMessage),i.InspectorFrontendHost.InspectorFrontendHostInstance.copyText.bind(i.InspectorFrontendHost.InspectorFrontendHostInstance,t.data.data),{jslogContext:"copy"})}refresh(){this.dataGrid.rootNode().removeChildren();let e=this.request.eventSourceMessages();const t=ie.get(this.request)||0;e=e.slice(t),e=e.filter(this.messageFilter.bind(this)),e.forEach((e=>this.dataGrid.insertChild(new Z(e))))}}class Z extends c.SortableDataGrid.SortableDataGridNode{message;constructor(t){const i=new Date(1e3*t.time),r=("0"+i.getHours()).substr(-2)+":"+("0"+i.getMinutes()).substr(-2)+":"+("0"+i.getSeconds()).substr(-2)+"."+("00"+i.getMilliseconds()).substr(-3),o=document.createElement("div");e.UIUtils.createTextChild(o,r),e.Tooltip.Tooltip.install(o,i.toLocaleString()),super({id:t.eventId,type:t.eventName,data:t.data,time:o}),this.message=t}}function ee(e,t,i){const r=e(t.message),o=e(i.message);return r<o?-1:r>o?1:0}const te={id:ee.bind(null,(e=>e.eventId)),type:ee.bind(null,(e=>e.eventName)),time:ee.bind(null,(e=>e.time))},ie=new WeakMap;var re=Object.freeze({__proto__:null,Comparators:te,EventSourceMessageNode:Z,EventSourceMessagesView:Q}),oe={cssText:`.network-config{padding:12px;display:block}.network-config-group{display:flex;padding-bottom:10px;flex-wrap:wrap;flex:0 0 auto;min-height:30px}.network-config-title{margin-right:16px;width:130px}.network-config-fields{flex:2 0 200px}.network-config-fields span:first-of-type,\n.network-config-fields .network-config-accepted-encoding-custom{padding:3px 0}.panel-section-separator{height:1px;margin-bottom:10px;background:var(--sys-color-divider)}.network-config-disable-cache{line-height:28px;border-top:none;padding-top:0}.network-config-input-validation-error{color:var(--sys-color-error);margin:5px 0}.network-config-input-validation-error:empty{display:none}.network-config-throttling select{width:100%;max-width:250px}.network-config-throttling > .network-config-title{line-height:24px}.network-config-ua > .network-config-title{line-height:20px}.network-config-ua input{display:block;width:calc(100% - 20px)}.network-config-ua input[type="text"],\n.network-config-ua select{margin-top:8px}.network-config-ua select{width:calc(100% - 20px);max-width:250px}.network-config-ua-custom{padding-bottom:8px;input,\n devtools-user-agent-client-hints-form{opacity:38%;pointer-events:none}&.checked input,\n &.checked devtools-user-agent-client-hints-form{opacity:revert;pointer-events:revert}}devtools-user-agent-client-hints-form{display:block;margin-top:14px;width:min(100%,400px)}.status-text{padding:10px;color:var(--sys-color-tertiary)}\n/*# sourceURL=${import.meta.resolve("./networkConfigView.css")} */\n`};const se={custom:"Custom...",enterACustomUserAgent:"Enter a custom user agent",customUserAgentFieldIsRequired:"Custom user agent field is required",caching:"Caching",disableCache:"Disable cache",networkThrottling:"Network throttling",userAgent:"User agent",selectAutomatically:"Use browser default",acceptedEncoding:"Accepted `Content-Encoding`s",clientHintsStatusText:"User agent updated.",networkConditionsPanelShown:"Network conditions shown"},ne=r.i18n.registerUIStrings("panels/network/NetworkConfigView.ts",se),ae=r.i18n.getLocalizedString.bind(void 0,ne);let le;class de extends e.Widget.VBox{constructor(){super(!0),this.registerRequiredCSS(oe),this.element.setAttribute("jslog",`${d.panel("network-conditions").track({resize:!0})}`),this.contentElement.classList.add("network-config"),this.createCacheSection(),this.contentElement.createChild("div").classList.add("panel-section-separator"),this.createNetworkThrottlingSection(),this.contentElement.createChild("div").classList.add("panel-section-separator"),this.createUserAgentSection(),this.contentElement.createChild("div").classList.add("panel-section-separator"),this.createAcceptedEncodingSection()}static instance(e={forceNew:null}){const{forceNew:t}=e;return le&&!t||(le=new de),le}static createUserAgentSelectAndInput(i){const r=t.Settings.Settings.instance().createSetting("custom-user-agent",""),o=t.Settings.Settings.instance().createSetting("custom-user-agent-metadata",null),a=document.createElement("select");a.setAttribute("jslog",`${d.dropDown().track({change:!0}).context(r.name)}`),e.ARIAUtils.setLabel(a,i);const l={title:ae(se.custom),value:"custom"};a.appendChild(e.UIUtils.createOption(l.title,l.value,"custom"));for(const t of he){const i=a.createChild("optgroup");i.label=t.title;for(const r of t.values){const t=n.NetworkManager.MultitargetNetworkManager.patchUserAgentWithChromeVersion(r.value);i.appendChild(e.UIUtils.createOption(r.title,t,s.StringUtilities.toKebabCase(r.title)))}}a.selectedIndex=0;const c=e.UIUtils.createInput("","text");c.setAttribute("jslog",`${d.textField().track({change:!0}).context(r.name)}`),c.value=r.get(),e.Tooltip.Tooltip.install(c,r.get()),c.placeholder=ae(se.enterACustomUserAgent),c.required=!0,e.ARIAUtils.setLabel(c,c.placeholder);const h=document.createElement("div");function u(){const e=r.get(),t=a.options;let i=!1;for(let r=0;r<t.length;++r)if(t[r].value===e){a.selectedIndex=r,i=!0;break}i||(a.selectedIndex=0)}return h.classList.add("network-config-input-validation-error"),e.ARIAUtils.markAsAlert(h),c.value||(h.textContent=ae(se.customUserAgentFieldIsRequired)),u(),a.addEventListener("change",(function(){const t=a.options[a.selectedIndex].value;if(t!==l.value){r.set(t),c.value=t,e.Tooltip.Tooltip.install(c,t);const i=ce(t);o.set(i),n.NetworkManager.MultitargetNetworkManager.instance().setCustomUserAgentOverride(t,i)}else o.set(null),c.select();h.textContent="";const i=new CustomEvent("user-agent-change",{detail:{value:t}});a.dispatchEvent(i)}),!1),c.addEventListener("input",(function(){r.get()!==c.value&&(c.value?h.textContent="":h.textContent=ae(se.customUserAgentFieldIsRequired),r.set(c.value),e.Tooltip.Tooltip.install(c,c.value),u())}),!1),{select:a,input:c,error:h}}createSection(e,t){const i=this.contentElement.createChild("section","network-config-group");return t&&i.classList.add(t),i.createChild("div","network-config-title").textContent=e,i.createChild("div","network-config-fields")}createCacheSection(){this.createSection(ae(se.caching),"network-config-disable-cache").appendChild(e.SettingsUI.createSettingCheckbox(ae(se.disableCache),t.Settings.Settings.instance().moduleSetting("cache-disabled")))}createNetworkThrottlingSection(){const t=ae(se.networkThrottling),i=this.createSection(t,"network-config-throttling").createChild("select");h.ThrottlingManager.throttlingManager().createNetworkThrottlingSelector(i),e.ARIAUtils.setLabel(i,t)}createUserAgentSection(){const i=t.Settings.Settings.instance().createSetting("custom-user-agent-metadata",null),r=t.Settings.Settings.instance().createSetting("custom-user-agent",""),o=ae(se.userAgent),s=this.createSection(o,"network-config-ua"),a=e.UIUtils.CheckboxLabel.create(ae(se.selectAutomatically),!0,void 0,r.name);s.appendChild(a);const l=a.checkboxElement;r.addChangeListener((()=>{if(l.checked)return;const e=r.get(),t=ce(e);n.NetworkManager.MultitargetNetworkManager.instance().setCustomUserAgentOverride(e,t)}));const d=s.createChild("div","network-config-ua-custom");l.addEventListener("change",w);const c=de.createUserAgentSelectAndInput(o);d.appendChild(c.select),d.appendChild(c.input),d.appendChild(c.error);const h=new u.UserAgentClientHintsForm.UserAgentClientHintsForm,p=i.get(),g=ce(c.select.value);h.value={showMobileCheckbox:!0,showSubmitButton:!0,metaData:p||g||void 0},d.appendChild(h),c.select.addEventListener("user-agent-change",(e=>{const t=e.detail.value,i=t?ce(t):null;h.value={metaData:i||void 0,showMobileCheckbox:!0,showSubmitButton:!0},m.textContent=""})),h.addEventListener("clienthintschange",(()=>{c.select.value="custom",m.textContent=""})),h.addEventListener("clienthintssubmit",(e=>{const t=e.detail.value,o=r.get();i.set(t),n.NetworkManager.MultitargetNetworkManager.instance().setCustomUserAgentOverride(o,t),m.textContent=ae(se.clientHintsStatusText)}));const m=s.createChild("span","status-text");function w(){const e=!l.checked;d.classList.toggle("checked",e),c.select.disabled=!e,c.input.disabled=!e,c.error.hidden=!e,h.disabled=!e;const t=e?r.get():"",i=e?ce(t):null;n.NetworkManager.MultitargetNetworkManager.instance().setCustomUserAgentOverride(t,i)}m.textContent="",w()}createAcceptedEncodingSection(){const i=t.Settings.Settings.instance().createSetting("use-custom-accepted-encodings",!1),r=t.Settings.Settings.instance().createSetting("custom-accepted-encodings","gzip,br,deflate"),o=ae(se.acceptedEncoding),s=this.createSection(o,"network-config-accepted-encoding"),a=e.UIUtils.CheckboxLabel.create(ae(se.selectAutomatically),!0,void 0,i.name);s.appendChild(a);const l=a.checkboxElement;function c(){i.get()?n.NetworkManager.MultitargetNetworkManager.instance().setCustomAcceptedEncodingsOverride(""===r.get()?[]:r.get().split(",")):n.NetworkManager.MultitargetNetworkManager.instance().clearCustomAcceptedEncodingsOverride()}r.addChangeListener(c),i.addChangeListener(c);const h=s.createChild("div","network-config-accepted-encoding-custom");h.setAttribute("jslog",`${d.section().context(r.name)}`),l.checked=!i.get(),l.addEventListener("change",g);const u=new Map,p={Deflate:"deflate",Gzip:"gzip",Br:"br",Zstd:"zstd"};for(const t of Object.values(p)){const i=e.UIUtils.CheckboxLabel.createWithStringLiteral(t,!0,void 0,t);h.appendChild(i),u.set(t,i.checkboxElement)}for(const[e,t]of u)t.checked=r.get().includes(e),t.addEventListener("change",g);function g(){i.set(!l.checked);const e=[];for(const[t,i]of u)i.disabled=l.checked,i.checked&&e.push(t);r.set(e.join(","))}g()}wasShown(){super.wasShown(),e.ARIAUtils.alert(ae(se.networkConditionsPanelShown))}}function ce(e){for(const t of he)for(const i of t.values)if(e===n.NetworkManager.MultitargetNetworkManager.patchUserAgentWithChromeVersion(i.value))return i.metadata?(n.NetworkManager.MultitargetNetworkManager.patchUserAgentMetadataWithChromeVersion(i.metadata),i.metadata):null;return null}const he=[{title:"Android",values:[{title:"Android (4.0.2) Browser — Galaxy Nexus",value:"Mozilla/5.0 (Linux; U; Android 4.0.2; en-us; Galaxy Nexus Build/ICL53F) AppleWebKit/534.30 (KHTML, like Gecko) Version/4.0 Mobile Safari/534.30",metadata:{brands:[{brand:"Not A;Brand",version:"99"},{brand:"Chromium",version:"%s"},{brand:"Google Chrome",version:"%s"}],fullVersion:"%s",platform:"Android",platformVersion:"4.0.2",architecture:"",model:"Galaxy Nexus",mobile:!0}},{title:"Android (2.3) Browser — Nexus S",value:"Mozilla/5.0 (Linux; U; Android 2.3.6; en-us; Nexus S Build/GRK39F) AppleWebKit/533.1 (KHTML, like Gecko) Version/4.0 Mobile Safari/533.1",metadata:{brands:[{brand:"Not A;Brand",version:"99"},{brand:"Chromium",version:"%s"},{brand:"Google Chrome",version:"%s"}],fullVersion:"%s",platform:"Android",platformVersion:"2.3.6",architecture:"",model:"Nexus S",mobile:!0}}]},{title:"BlackBerry",values:[{title:"BlackBerry — BB10",value:"Mozilla/5.0 (BB10; Touch) AppleWebKit/537.1+ (KHTML, like Gecko) Version/10.0.0.1337 Mobile Safari/537.1+",metadata:null},{title:"BlackBerry — PlayBook 2.1",value:"Mozilla/5.0 (PlayBook; U; RIM Tablet OS 2.1.0; en-US) AppleWebKit/536.2+ (KHTML, like Gecko) Version/7.2.1.0 Safari/536.2+",metadata:null},{title:"BlackBerry — 9900",value:"Mozilla/5.0 (BlackBerry; U; BlackBerry 9900; en-US) AppleWebKit/534.11+ (KHTML, like Gecko) Version/7.0.0.187 Mobile Safari/534.11+",metadata:null}]},{title:"Chrome",values:[{title:"Chrome — Android Mobile",value:"Mozilla/5.0 (Linux; Android 6.0; Nexus 5 Build/MRA58N) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/%s Mobile Safari/537.36",metadata:{brands:[{brand:"Not A;Brand",version:"99"},{brand:"Chromium",version:"%s"},{brand:"Google Chrome",version:"%s"}],fullVersion:"%s",platform:"Android",platformVersion:"6.0",architecture:"",model:"Nexus 5",mobile:!0}},{title:"Chrome — Android Mobile (high-end)",value:"Mozilla/5.0 (Linux; Android 10; Pixel 4) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/%s Mobile Safari/537.36",metadata:{brands:[{brand:"Not A;Brand",version:"99"},{brand:"Chromium",version:"%s"},{brand:"Google Chrome",version:"%s"}],fullVersion:"%s",platform:"Android",platformVersion:"10",architecture:"",model:"Pixel 4",mobile:!0}},{title:"Chrome — Android Tablet",value:"Mozilla/5.0 (Linux; Android 4.3; Nexus 7 Build/JSS15Q) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/%s Safari/537.36",metadata:{brands:[{brand:"Not A;Brand",version:"99"},{brand:"Chromium",version:"%s"},{brand:"Google Chrome",version:"%s"}],fullVersion:"%s",platform:"Android",platformVersion:"4.3",architecture:"",model:"Nexus 7",mobile:!0}},{title:"Chrome — iPhone",value:"Mozilla/5.0 (iPhone; CPU iPhone OS 13_2 like Mac OS X) AppleWebKit/605.1.15 (KHTML, like Gecko) CriOS/%s Mobile/15E148 Safari/604.1",metadata:null},{title:"Chrome — iPad",value:"Mozilla/5.0 (iPad; CPU OS 13_2 like Mac OS X) AppleWebKit/605.1.15 (KHTML, like Gecko) CriOS/%s Mobile/15E148 Safari/604.1",metadata:null},{title:"Chrome — Chrome OS",value:"Mozilla/5.0 (X11; CrOS x86_64 10066.0.0) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/%s Safari/537.36",metadata:{brands:[{brand:"Not A;Brand",version:"99"},{brand:"Chromium",version:"%s"},{brand:"Google Chrome",version:"%s"}],fullVersion:"%s",platform:"Chrome OS",platformVersion:"10066.0.0",architecture:"x86",model:"",mobile:!1}},{title:"Chrome — Mac",value:"Mozilla/5.0 (Macintosh; Intel Mac OS X 10_14_6) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/%s Safari/537.36",metadata:{brands:[{brand:"Not A;Brand",version:"99"},{brand:"Chromium",version:"%s"},{brand:"Google Chrome",version:"%s"}],fullVersion:"%s",platform:"macOS",platformVersion:"10_14_6",architecture:"x86",model:"",mobile:!1}},{title:"Chrome — Windows",value:"Mozilla/5.0 (Windows NT 10.0; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/%s Safari/537.36",metadata:{brands:[{brand:"Not A;Brand",version:"99"},{brand:"Chromium",version:"%s"},{brand:"Google Chrome",version:"%s"}],fullVersion:"%s",platform:"Windows",platformVersion:"10.0",architecture:"x86",model:"",mobile:!1}}]},{title:"Firefox",values:[{title:"Firefox — Android Mobile",value:"Mozilla/5.0 (Android 4.4; Mobile; rv:70.0) Gecko/70.0 Firefox/70.0",metadata:null},{title:"Firefox — Android Tablet",value:"Mozilla/5.0 (Android 4.4; Tablet; rv:70.0) Gecko/70.0 Firefox/70.0",metadata:null},{title:"Firefox — iPhone",value:"Mozilla/5.0 (iPhone; CPU iPhone OS 8_3 like Mac OS X) AppleWebKit/600.1.4 (KHTML, like Gecko) FxiOS/1.0 Mobile/12F69 Safari/600.1.4",metadata:null},{title:"Firefox — iPad",value:"Mozilla/5.0 (iPad; CPU iPhone OS 8_3 like Mac OS X) AppleWebKit/600.1.4 (KHTML, like Gecko) FxiOS/1.0 Mobile/12F69 Safari/600.1.4",metadata:null},{title:"Firefox — Mac",value:"Mozilla/5.0 (Macintosh; Intel Mac OS X 10.14; rv:70.0) Gecko/20100101 Firefox/70.0",metadata:null},{title:"Firefox — Windows",value:"Mozilla/5.0 (Windows NT 10.0; WOW64; rv:70.0) Gecko/20100101 Firefox/70.0",metadata:null}]},{title:"Googlebot",values:[{title:"Googlebot",value:"Mozilla/5.0 (compatible; Googlebot/2.1; +http://www.google.com/bot.html)",metadata:null},{title:"Googlebot Desktop",value:"Mozilla/5.0 AppleWebKit/537.36 (KHTML, like Gecko; compatible; Googlebot/2.1; +http://www.google.com/bot.html) Chrome/%s Safari/537.36",metadata:null},{title:"Googlebot Smartphone",value:"Mozilla/5.0 (Linux; Android 6.0.1; Nexus 5X Build/MMB29P) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/%s Mobile Safari/537.36 (compatible; Googlebot/2.1; +http://www.google.com/bot.html)",metadata:null}]},{title:"Internet Explorer",values:[{title:"Internet Explorer 11",value:"Mozilla/5.0 (Windows NT 10.0; WOW64; Trident/7.0; rv:11.0) like Gecko",metadata:null},{title:"Internet Explorer 10",value:"Mozilla/5.0 (compatible; MSIE 10.0; Windows NT 6.1; WOW64; Trident/6.0)",metadata:null},{title:"Internet Explorer 9",value:"Mozilla/5.0 (compatible; MSIE 9.0; Windows NT 6.1; Trident/5.0)",metadata:null},{title:"Internet Explorer 8",value:"Mozilla/4.0 (compatible; MSIE 8.0; Windows NT 6.0; Trident/4.0)",metadata:null},{title:"Internet Explorer 7",value:"Mozilla/4.0 (compatible; MSIE 7.0; Windows NT 6.0)",metadata:null}]},{title:"Microsoft Edge",values:[{title:"Microsoft Edge (Chromium) — Windows",value:"Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/%s Safari/537.36 Edg/%s",metadata:{brands:[{brand:"Not A;Brand",version:"99"},{brand:"Chromium",version:"%s"},{brand:"Microsoft Edge",version:"%s"}],fullVersion:"%s",platform:"Windows",platformVersion:"10.0",architecture:"x86",model:"",mobile:!1}},{title:"Microsoft Edge (Chromium) — Mac",value:"Mozilla/5.0 (Macintosh; Intel Mac OS X 10_14_6) AppleWebKit/605.1.15 (KHTML, like Gecko) Chrome/%s Safari/604.1 Edg/%s",metadata:{brands:[{brand:"Not A;Brand",version:"99"},{brand:"Chromium",version:"%s"},{brand:"Microsoft Edge",version:"%s"}],fullVersion:"%s",platform:"macOS",platformVersion:"10_14_6",architecture:"x86",model:"",mobile:!1}},{title:"Microsoft Edge — iPhone",value:"Mozilla/5.0 (iPhone; CPU iPhone OS 12_3_1 like Mac OS X) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/12.1.1 EdgiOS/44.5.0.10 Mobile/15E148 Safari/604.1",metadata:null},{title:"Microsoft Edge — iPad",value:"Mozilla/5.0 (iPad; CPU OS 12_3_1 like Mac OS X) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/12.0 EdgiOS/44.5.2 Mobile/15E148 Safari/605.1.15",metadata:null},{title:"Microsoft Edge — Android Mobile",value:"Mozilla/5.0 (Linux; Android 8.1.0; Pixel Build/OPM4.171019.021.D1) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/%s Mobile Safari/537.36 EdgA/42.0.0.2057",metadata:{brands:[{brand:"Not A;Brand",version:"99"},{brand:"Chromium",version:"%s"},{brand:"Microsoft Edge",version:"%s"}],fullVersion:"%s",platform:"Android",platformVersion:"8.1.0",architecture:"",model:"Pixel",mobile:!0}},{title:"Microsoft Edge — Android Tablet",value:"Mozilla/5.0 (Linux; Android 6.0.1; Nexus 7 Build/MOB30X) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/%s Safari/537.36 EdgA/42.0.0.2057",metadata:{brands:[{brand:"Not A;Brand",version:"99"},{brand:"Chromium",version:"%s"},{brand:"Microsoft Edge",version:"%s"}],fullVersion:"%s",platform:"Android",platformVersion:"6.0.1",architecture:"",model:"Nexus 7",mobile:!0}},{title:"Microsoft Edge (EdgeHTML) — Windows",value:"Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/%s Safari/537.36 Edge/18.19042",metadata:null},{title:"Microsoft Edge (EdgeHTML) — XBox",value:"Mozilla/5.0 (Windows NT 10.0; Win64; x64; Xbox; Xbox One) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/%s Safari/537.36 Edge/18.19041",metadata:null}]},{title:"Opera",values:[{title:"Opera — Mac",value:"Mozilla/5.0 (Macintosh; Intel Mac OS X 10_14_6) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/%s Safari/537.36 OPR/65.0.3467.48",metadata:null},{title:"Opera — Windows",value:"Mozilla/5.0 (Windows NT 10.0; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/%s Safari/537.36 OPR/65.0.3467.48",metadata:null},{title:"Opera (Presto) — Mac",value:"Opera/9.80 (Macintosh; Intel Mac OS X 10.9.1) Presto/2.12.388 Version/12.16",metadata:null},{title:"Opera (Presto) — Windows",value:"Opera/9.80 (Windows NT 6.1) Presto/2.12.388 Version/12.16",metadata:null},{title:"Opera Mobile — Android Mobile",value:"Opera/12.02 (Android 4.1; Linux; Opera Mobi/ADR-1111101157; U; en-US) Presto/2.9.201 Version/12.02",metadata:null},{title:"Opera Mini — iOS",value:"Opera/9.80 (iPhone; Opera Mini/8.0.0/34.2336; U; en) Presto/2.8.119 Version/11.10",metadata:null}]},{title:"Safari",values:[{title:"Safari — iPad iOS 13.2",value:"Mozilla/5.0 (iPad; CPU iPhone OS 13_2_3 like Mac OS X) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/13.0.3 Mobile/15E148 Safari/604.1",metadata:null},{title:"Safari — iPhone iOS 13.2",value:"Mozilla/5.0 (iPhone; CPU iPhone OS 13_2_3 like Mac OS X) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/13.0.3 Mobile/15E148 Safari/604.1",metadata:null},{title:"Safari — Mac",value:"Mozilla/5.0 (Macintosh; Intel Mac OS X 10_14_6) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/13.0.3 Safari/605.1.15",metadata:null}]},{title:"UC Browser",values:[{title:"UC Browser — Android Mobile",value:"Mozilla/5.0 (Linux; U; Android 8.1.0; en-US; Nexus 6P Build/OPM7.181205.001) AppleWebKit/537.36 (KHTML, like Gecko) Version/4.0 Chrome/%s UCBrowser/12.11.1.1197 Mobile Safari/537.36",metadata:null},{title:"UC Browser — iOS",value:"Mozilla/5.0 (iPhone; CPU iPhone OS 12_1 like Mac OS X; zh-CN) AppleWebKit/537.51.1 (KHTML, like Gecko) Mobile/16B92 UCBrowser/12.1.7.1109 Mobile AliApp(TUnionSDK/0.1.20.3)",metadata:null},{title:"UC Browser — Windows Phone",value:"Mozilla/5.0 (compatible; MSIE 10.0; Windows Phone 8.0; Trident/6.0; IEMobile/10.0; ARM; Touch; NOKIA; Lumia 920) UCBrowser/10.1.0.563 Mobile",metadata:null}]}];var ue=Object.freeze({__proto__:null,NetworkConfigView:de,userAgentGroups:he});const pe={redirect:"Redirect",sPreflight:"{PH1} + Preflight",preflight:"Preflight",selectPreflightRequest:"Select preflight request",failed:"(failed)",data:"(data)",canceled:"(canceled)",other:"other",csp:"csp",origin:"origin",integrity:"integrity",devtools:"devtools",blockeds:"(blocked:{PH1})",blockedTooltip:"This request was blocked due to misconfigured response headers, click to view the headers",corsError:"CORS error",crossoriginResourceSharingErrorS:"Cross-Origin Resource Sharing error: {PH1}",finished:"Finished",pendingq:"(pending)",unknown:"(unknown)",unknownExplanation:"The request status cannot be shown here because the page that issued it unloaded while the request was in flight. You can use chrome://net-export to capture a network log and see all request details.",push:"Push / ",parser:"Parser",script:"Script",preload:"Preload",earlyHints:"early-hints",signedexchange:"signed-exchange",selectTheRequestThatTriggered:"Select the request that triggered this preflight",otherC:"Other",memoryCache:"(memory cache)",servedFromMemoryCacheResource:"Served from memory cache, resource size: {PH1}",serviceWorker:"(`ServiceWorker`)",servedFromServiceWorkerResource:"Served from `ServiceWorker`, resource size: {PH1}",servedFromSignedHttpExchange:"Served from Signed HTTP Exchange, resource size: {PH1}",servedFromWebBundle:"Served from Web Bundle, resource size: {PH1}",prefetchCache:"(prefetch cache)",servedFromPrefetchCacheResource:"Served from prefetch cache, resource size: {PH1}",diskCache:"(disk cache)",servedFromDiskCacheResourceSizeS:"Served from disk cache, resource size: {PH1}",matchedToServiceWorkerRouter:"Matched to `ServiceWorker router`#{PH1}, resource size: {PH2}",matchedToServiceWorkerRouterWithNetworkSource:"Matched to `ServiceWorker router`#{PH1}, {PH2} transferred over network, resource size: {PH3}",pending:"Pending",level:"level 1",webBundleError:"Web Bundle error",webBundleInnerRequest:"Served from Web Bundle",webBundle:"(Web Bundle)",timeSubtitleTooltipText:"Latency (response received time - start time)",alternativeJobWonWithoutRace:"`Chrome` used a `HTTP/3` connection induced by an '`Alt-Svc`' header without racing against establishing a connection using a different `HTTP` version.",alternativeJobWonRace:"`Chrome` used a `HTTP/3` connection induced by an '`Alt-Svc`' header because it won a race against establishing a connection using a different `HTTP` version.",mainJobWonRace:"`Chrome` used this protocol because it won a race against establishing a `HTTP/3` connection.",mappingMissing:"`Chrome` did not use an alternative `HTTP` version because no alternative protocol information was available when the request was issued, but an '`Alt-Svc`' header was present in the response.",broken:"`Chrome` did not try to establish a `HTTP/3` connection because it was marked as broken.",dnsAlpnH3JobWonWithoutRace:"`Chrome` used a `HTTP/3` connection due to the `DNS record` indicating `HTTP/3` support. There was no race against establishing a connection using a different `HTTP` version.",dnsAlpnH3JobWonRace:"`Chrome` used a `HTTP/3` connection due to the `DNS record` indicating `HTTP/3` support, which won a race against establishing a connection using a different `HTTP` version.",initialPriorityToolTip:"{PH1}, Initial priority: {PH2}"},ge=r.i18n.registerUIStrings("panels/network/NetworkDataGridNode.ts",pe),me=r.i18n.getLocalizedString.bind(void 0,ge);class we extends c.SortableDataGrid.SortableDataGridNode{parentViewInternal;isHovered;showingInitiatorChainInternal;requestOrFirstKnownChildRequestInternal;constructor(e){super({}),this.parentViewInternal=e,this.isHovered=!1,this.showingInitiatorChainInternal=!1,this.requestOrFirstKnownChildRequestInternal=null}displayName(){return""}displayType(){return""}createCell(e){const t=this.createTD(e);return this.renderCell(t,e),t}renderCell(e,t){}isError(){return!1}isWarning(){return!1}backgroundColor(){const e=ke,t=document.hasFocus(),i=this.dataGrid&&this.dataGrid.element===document.activeElement,r=this.isWarning(),o=this.isError();return this.selected&&t&&i&&o?e.FocusSelectedHasError:this.selected&&t&&i&&r?e.FocusSelectedHasWarning:this.selected&&t&&i?e.FocusSelected:this.selected?e.Selected:this.hovered()?e.Hovered:this.isOnInitiatorPath()?e.InitiatorPath:this.isOnInitiatedPath()?e.InitiatedPath:this.isStriped()?e.Stripe:e.Default}updateBackgroundColor(){const e=this.existingElement();e&&(e.style.backgroundColor=`var(${this.backgroundColor()})`,this.parentViewInternal.stylesChanged())}setStriped(e){super.setStriped(e),this.updateBackgroundColor()}select(e){super.select(e),this.updateBackgroundColor(),this.parentViewInternal.updateNodeSelectedClass(!0)}deselect(e){super.deselect(e),this.updateBackgroundColor(),this.parentViewInternal.updateNodeSelectedClass(!1)}parentView(){return this.parentViewInternal}hovered(){return this.isHovered}showingInitiatorChain(){return this.showingInitiatorChainInternal}nodeSelfHeight(){return this.parentViewInternal.rowHeight()}setHovered(e,t){this.isHovered===e&&this.showingInitiatorChainInternal===t||(this.isHovered!==e&&(this.isHovered=e,this.attached()&&this.element().classList.toggle("hover",e)),this.showingInitiatorChainInternal!==t&&(this.showingInitiatorChainInternal=t,this.showingInitiatorChainChanged()),this.parentViewInternal.stylesChanged(),this.updateBackgroundColor())}showingInitiatorChainChanged(){}isOnInitiatorPath(){return!1}isOnInitiatedPath(){return!1}request(){return null}isNavigationRequest(){return!1}clearFlatNodes(){super.clearFlatNodes(),this.requestOrFirstKnownChildRequestInternal=null}requestOrFirstKnownChildRequest(){if(this.requestOrFirstKnownChildRequestInternal)return this.requestOrFirstKnownChildRequestInternal;let e=this.request();if(e||!this.hasChildren())return this.requestOrFirstKnownChildRequestInternal=e,this.requestOrFirstKnownChildRequestInternal;let t=null;const i=this.flatChildren();for(let r=0;r<i.length;r++)e=i[r].request(),(!t||e&&e.issueTime()<t.issueTime())&&(t=e);return this.requestOrFirstKnownChildRequestInternal=t,this.requestOrFirstKnownChildRequestInternal}}const ke={Default:"--color-grid-default",Stripe:"--color-grid-stripe",Navigation:"--network-grid-navigation-color",Hovered:"--color-grid-hovered",InitiatorPath:"--network-grid-initiator-path-color",InitiatedPath:"--network-grid-initiated-path-color",Selected:"--color-grid-selected",FocusSelected:"--color-grid-focus-selected",FocusSelectedHasError:"--network-grid-focus-selected-color-has-error",FocusSelectedHasWarning:"--network-grid-focus-selected-color-has-warning",FromFrame:"--network-grid-from-frame-color"};class ve extends we{nameCell;initiatorCell;requestInternal;isNavigationRequestInternal;selectable;isOnInitiatorPathInternal;isOnInitiatedPathInternal;linkifiedInitiatorAnchor;constructor(e,t){super(e),this.nameCell=null,this.initiatorCell=null,this.requestInternal=t,this.isNavigationRequestInternal=!1,this.selectable=!0,this.isOnInitiatorPathInternal=!1,this.isOnInitiatedPathInternal=!1}static NameComparator(e,t){const i=e.displayName().toLowerCase(),r=t.displayName().toLowerCase();if(i===r){const i=e.requestOrFirstKnownChildRequest(),r=t.requestOrFirstKnownChildRequest();return i&&r?i.identityCompare(r):i?-1:1}return i<r?-1:1}static RemoteAddressComparator(e,t){const i=e.requestOrFirstKnownChildRequest(),r=t.requestOrFirstKnownChildRequest();if(!i||!r)return i?1:-1;const o=i.remoteAddress(),s=r.remoteAddress();return o>s?1:s>o?-1:i.identityCompare(r)}static SizeComparator(e,t){const i=e.requestOrFirstKnownChildRequest(),r=t.requestOrFirstKnownChildRequest();return i&&r?r.cached()&&!i.cached()?1:i.cached()&&!r.cached()?-1:i.transferSize-r.transferSize||i.resourceSize-r.resourceSize||i.identityCompare(r):i?1:-1}static TypeComparator(e,t){const i=e.requestOrFirstKnownChildRequest(),r=t.requestOrFirstKnownChildRequest();if(!i||!r)return i?1:-1;const o=e.displayType(),s=t.displayType();return o>s?1:s>o?-1:i.identityCompare(r)}static InitiatorComparator(e,t){const i=e.requestOrFirstKnownChildRequest(),r=t.requestOrFirstKnownChildRequest();if(!i||!r)return i?1:-1;const o=e instanceof ve&&e.initiatorCell,s=t instanceof ve&&t.initiatorCell;if(!o||!s)return o?1:-1;const n=e,a=t,l=n.linkifiedInitiatorAnchor?n.linkifiedInitiatorAnchor.textContent||"":n.initiatorCell.title,d=a.linkifiedInitiatorAnchor?a.linkifiedInitiatorAnchor.textContent||"":a.initiatorCell.title;return l.localeCompare(d)}static InitiatorAddressSpaceComparator(e,t){const i=e.requestOrFirstKnownChildRequest(),r=t.requestOrFirstKnownChildRequest();if(!i||!r)return i?1:-1;const o=i.clientSecurityState(),s=r.clientSecurityState();return o&&s?o.initiatorIPAddressSpace.localeCompare(s.initiatorIPAddressSpace):o?1:-1}static RemoteAddressSpaceComparator(e,t){const i=e.requestOrFirstKnownChildRequest(),r=t.requestOrFirstKnownChildRequest();return i&&r?i.remoteAddressSpace().localeCompare(r.remoteAddressSpace()):i?1:-1}static RequestCookiesCountComparator(e,t){const i=e.requestOrFirstKnownChildRequest(),r=t.requestOrFirstKnownChildRequest();if(!i||!r)return i?1:-1;return i.includedRequestCookies().length-r.includedRequestCookies().length||i.identityCompare(r)}static ResponseCookiesCountComparator(e,t){const i=e.requestOrFirstKnownChildRequest(),r=t.requestOrFirstKnownChildRequest();if(!i||!r)return i?1:-1;return(i.responseCookies?i.responseCookies.length:0)-(r.responseCookies?r.responseCookies.length:0)||i.identityCompare(r)}static PriorityComparator(e,t){const i=e.requestOrFirstKnownChildRequest(),r=t.requestOrFirstKnownChildRequest();if(!i||!r)return i?1:-1;const o=i.priority();let s=o?v.NetworkPriorities.networkPriorityWeight(o):0;s=s||0;const n=r.priority();let a=n?v.NetworkPriorities.networkPriorityWeight(n):0;return a=a||0,s-a||i.identityCompare(r)}static RequestPropertyComparator(e,t,i){const r=t.requestOrFirstKnownChildRequest(),o=i.requestOrFirstKnownChildRequest();if(!r||!o)return r?1:-1;const s=r[e],n=o[e];return s===n?r.identityCompare(o):s>n?1:-1}static RequestURLComparator(e,t){const i=e.requestOrFirstKnownChildRequest(),r=t.requestOrFirstKnownChildRequest();if(!i||!r)return i?1:-1;const o=i.url(),s=r.url();return o===s?i.identityCompare(r):o>s?1:-1}static ResponseHeaderStringComparator(e,t,i){const r=t.requestOrFirstKnownChildRequest(),o=i.requestOrFirstKnownChildRequest();if(!r||!o)return r?1:-1;const s=String(r.responseHeaderValue(e)||""),n=String(o.responseHeaderValue(e)||"");return s.localeCompare(n)||r.identityCompare(o)}static ResponseHeaderNumberComparator(e,t,i){const r=t.requestOrFirstKnownChildRequest(),o=i.requestOrFirstKnownChildRequest();if(!r||!o)return r?1:-1;const s=r.responseHeaderValue(e),n=void 0!==s?parseFloat(s):-1/0,a=o.responseHeaderValue(e),l=void 0!==a?parseFloat(a):-1/0;return n===l?r.identityCompare(o):n>l?1:-1}static ResponseHeaderDateComparator(e,t,i){const r=t.requestOrFirstKnownChildRequest(),o=i.requestOrFirstKnownChildRequest();if(!r||!o)return r?1:-1;const s=r.responseHeaderValue(e),n=o.responseHeaderValue(e),a=s?new Date(s).getTime():-1/0,l=n?new Date(n).getTime():-1/0;return a===l?r.identityCompare(o):a>l?1:-1}showingInitiatorChainChanged(){const e=this.showingInitiatorChain(),t=a.NetworkLog.NetworkLog.instance().initiatorGraphForRequest(this.requestInternal);for(const i of t.initiators){if(i===this.requestInternal)continue;const t=this.parentView().nodeForRequest(i);t&&t.setIsOnInitiatorPath(e)}for(const i of t.initiated.keys()){if(i===this.requestInternal)continue;const t=this.parentView().nodeForRequest(i);t&&t.setIsOnInitiatedPath(e)}}setIsOnInitiatorPath(e){this.isOnInitiatorPathInternal!==e&&this.attached()&&(this.isOnInitiatorPathInternal=e,this.updateBackgroundColor())}isOnInitiatorPath(){return this.isOnInitiatorPathInternal}setIsOnInitiatedPath(e){this.isOnInitiatedPathInternal!==e&&this.attached()&&(this.isOnInitiatedPathInternal=e,this.updateBackgroundColor())}isOnInitiatedPath(){return this.isOnInitiatedPathInternal}displayType(){const e=this.requestInternal.mimeType||this.requestInternal.requestContentType()||"",i=this.requestInternal.resourceType();let r=i.name();return this.requestInternal.fromEarlyHints()?me(pe.earlyHints):(i!==t.ResourceType.resourceTypes.Other&&i!==t.ResourceType.resourceTypes.Image||(r=e.replace(/^(application|image)\//,"")),this.requestInternal.isRedirect()&&(r+=" / "+me(pe.redirect)),r)}displayName(){return this.requestInternal.responseHeaderValue("x-fb-friendly-name")||this.requestInternal.requestHeaderValue("x-fb-friendly-name")||this.requestInternal.name()}request(){return this.requestInternal}isNavigationRequest(){const e=n.PageLoad.PageLoad.forRequest(this.requestInternal);return!!e&&e.mainRequest===this.requestInternal}nodeSelfHeight(){return this.parentView().rowHeight()}isPrefetch(){return this.requestInternal.resourceType()===t.ResourceType.resourceTypes.Prefetch}isWarning(){return this.isFailed()&&this.isPrefetch()}isError(){return this.isFailed()&&!this.isPrefetch()}createCells(e){this.nameCell=null,this.initiatorCell=null,e.classList.toggle("network-warning-row",this.isWarning()),e.classList.toggle("network-error-row",this.isError()),e.classList.toggle("network-navigation-row",this.isNavigationRequestInternal),super.createCells(e),this.updateBackgroundColor()}setTextAndTitle(t,i,r){e.UIUtils.createTextChild(t,i),e.Tooltip.Tooltip.install(t,r||i)}setTextAndTitleAsLink(t,i,r,o){const s=document.createElement("span");s.classList.add("devtools-link"),s.textContent=i,s.addEventListener("click",o),t.appendChild(s),e.Tooltip.Tooltip.install(t,r)}renderCell(e,t){const i=e;switch(t){case"name":this.renderPrimaryCell(i,t);break;case"path":this.renderPrimaryCell(i,t,this.requestInternal.pathname);break;case"url":this.renderPrimaryCell(i,t,this.requestInternal.url());break;case"method":{const e=this.requestInternal.preflightRequest();e?(this.setTextAndTitle(i,`${this.requestInternal.requestMethod} + `,me(pe.sPreflight,{PH1:this.requestInternal.requestMethod})),i.appendChild(b.Linkifier.Linkifier.linkifyRevealable(e,me(pe.preflight),void 0,me(pe.selectPreflightRequest),void 0,"preflight-request"))):this.setTextAndTitle(i,this.requestInternal.requestMethod);break}case"status":this.renderStatusCell(i);break;case"protocol":this.renderProtocolCell(i);break;case"scheme":this.setTextAndTitle(i,this.requestInternal.scheme);break;case"domain":this.setTextAndTitle(i,this.requestInternal.domain);break;case"remote-address":this.setTextAndTitle(i,this.requestInternal.remoteAddress());break;case"remote-address-space":this.renderAddressSpaceCell(i,this.requestInternal.remoteAddressSpace());break;case"cookies":this.setTextAndTitle(i,this.arrayLength(this.requestInternal.includedRequestCookies()));break;case"set-cookies":this.setTextAndTitle(i,this.arrayLength(this.requestInternal.nonBlockedResponseCookies()));break;case"priority":{const e=this.requestInternal.priority(),t=this.requestInternal.initialPriority();e&&t?this.setTextAndTitle(i,v.NetworkPriorities.uiLabelForNetworkPriority(e),me(pe.initialPriorityToolTip,{PH1:v.NetworkPriorities.uiLabelForNetworkPriority(e),PH2:v.NetworkPriorities.uiLabelForNetworkPriority(t)})):this.setTextAndTitle(i,e?v.NetworkPriorities.uiLabelForNetworkPriority(e):""),this.appendSubtitle(i,t?v.NetworkPriorities.uiLabelForNetworkPriority(t):"");break}case"connection-id":this.setTextAndTitle(i,"0"===this.requestInternal.connectionId?"":this.requestInternal.connectionId);break;case"type":this.setTextAndTitle(i,this.displayType());break;case"initiator":this.renderInitiatorCell(i);break;case"initiator-address-space":{const e=this.requestInternal.clientSecurityState();this.renderAddressSpaceCell(i,e?e.initiatorIPAddressSpace:"Unknown");break}case"size":this.renderSizeCell(i);break;case"time":this.renderTimeCell(i);break;case"timeline":this.setTextAndTitle(i,"");break;case"has-overrides":this.setTextAndTitle(i,this.requestInternal.overrideTypes.join(", "));break;default:this.setTextAndTitle(i,this.requestInternal.responseHeaderValue(t)||"")}}arrayLength(e){return e?String(e.length):""}select(e){super.select(e),this.parentView().dispatchEventToListeners("RequestSelected",this.requestInternal)}openInNewTab(){i.InspectorFrontendHost.InspectorFrontendHostInstance.openInNewTab(this.requestInternal.url())}isFailed(){return f.isFailedNetworkRequest(this.requestInternal)}renderPrimaryCell(t,i,r){if(0===(0|this.dataGrid?.indexOfVisibleColumn(i))){const e=this.leftPadding?this.leftPadding+"px":"";t.style.setProperty("padding-left",e),t.tabIndex=-1,this.nameCell=t,t.addEventListener("dblclick",this.openInNewTab.bind(this),!1),t.addEventListener("mousedown",(()=>{this.select(),this.parentView().dispatchEventToListeners("RequestActivated",{showPanel:!0})})),t.addEventListener("focus",(()=>this.parentView().resetFocus()));const i=f.getIconForNetworkRequest(this.requestInternal);t.appendChild(i);const r=this.createAiButtonIfAvailable();r&&t.appendChild(r)}if("name"===i){const i=this.requestInternal.webBundleInnerRequestInfo();if(i){const e={iconName:"bundle",color:"var(--icon-info)"},r=f.createIconElement(e,me(pe.webBundleInnerRequest));r.classList.add("icon");const o=n.NetworkManager.NetworkManager.forRequest(this.requestInternal);i.bundleRequestId&&o?t.appendChild(b.Linkifier.Linkifier.linkifyRevealable(new m.NetworkRequestId.NetworkRequestId(i.bundleRequestId,o),r,void 0,void 0,void 0,"webbundle-request")):t.appendChild(r)}const r=this.requestInternal.responseHeaderValue("x-fb-friendly-name")||this.requestInternal.requestHeaderValue("x-fb-friendly-name"),o=s.StringUtilities.trimMiddle(r||this.requestInternal.name(),100),a=n.NetworkManager.NetworkManager.forRequest(this.requestInternal);e.UIUtils.createTextChild(t,a?a.target().decorateLabel(o):o),this.appendSubtitle(t,this.requestInternal.path()),this.requestInternal.url().startsWith("data")||e.Tooltip.Tooltip.install(t,this.requestInternal.url())}else r&&e.UIUtils.createTextChild(t,r)}renderStatusCell(t){t.classList.toggle("network-dim-cell",!this.isFailed()&&(this.requestInternal.cached()||!this.requestInternal.statusCode));const i=this.requestInternal.corsErrorStatus(),o=this.requestInternal.webBundleInfo()?.errorMessage||this.requestInternal.webBundleInnerRequestInfo()?.errorMessage;if(o)this.setTextAndTitle(t,me(pe.webBundleError),o);else if(!this.requestInternal.failed||this.requestInternal.canceled||this.requestInternal.wasBlocked()||i)if(this.requestInternal.statusCode&&this.requestInternal.statusCode>=400){const i=this.requestInternal.getInferredStatusText();e.UIUtils.createTextChild(t,String(this.requestInternal.statusCode)),this.appendSubtitle(t,i),e.Tooltip.Tooltip.install(t,this.requestInternal.statusCode+" "+i)}else if(!this.requestInternal.statusCode&&this.requestInternal.parsedURL.isDataURL())this.setTextAndTitle(t,me(pe.data));else if(!this.requestInternal.statusCode&&this.requestInternal.canceled)this.setTextAndTitle(t,me(pe.canceled));else if(this.requestInternal.wasBlocked()){let e=me(pe.other),i=!1;switch(this.requestInternal.blockedReason()){case"other":e=me(pe.other);break;case"csp":e=me(pe.csp);break;case"mixed-content":e=r.i18n.lockedString("mixed-content");break;case"origin":e=me(pe.origin);break;case"inspector":e=me(pe.devtools);break;case"subresource-filter":e=r.i18n.lockedString("subresource-filter");break;case"content-type":e=r.i18n.lockedString("content-type");break;case"coep-frame-resource-needs-coep-header":i=!0,e=r.i18n.lockedString("CoepFrameResourceNeedsCoepHeader");break;case"coop-sandboxed-iframe-cannot-navigate-to-coop-page":i=!0,e=r.i18n.lockedString("CoopSandboxedIframeCannotNavigateToCoopPage");break;case"corp-not-same-origin":i=!0,e=r.i18n.lockedString("NotSameOrigin");break;case"corp-not-same-site":i=!0,e=r.i18n.lockedString("NotSameSite");break;case"corp-not-same-origin-after-defaulted-to-same-origin-by-coep":i=!0,e=r.i18n.lockedString("NotSameOriginAfterDefaultedToSameOriginByCoep");break;case"sri-message-signature-mismatch":i=!0,e=me(pe.integrity)}i?this.setTextAndTitleAsLink(t,me(pe.blockeds,{PH1:e}),me(pe.blockedTooltip),(()=>{this.parentView().dispatchEventToListeners("RequestActivated",{showPanel:!0,tab:"headers-component"})})):this.setTextAndTitle(t,me(pe.blockeds,{PH1:e}))}else if(i)this.setTextAndTitle(t,me(pe.corsError),me(pe.crossoriginResourceSharingErrorS,{PH1:i.corsError}));else if(this.requestInternal.statusCode){e.UIUtils.createTextChild(t,String(this.requestInternal.statusCode));const i=this.requestInternal.getInferredStatusText();this.appendSubtitle(t,i),e.Tooltip.Tooltip.install(t,this.requestInternal.statusCode+" "+i)}else this.requestInternal.finished?this.setTextAndTitle(t,me(pe.finished)):this.requestInternal.preserved?this.setTextAndTitle(t,me(pe.unknown),me(pe.unknownExplanation)):this.setTextAndTitle(t,me(pe.pendingq));else{const i=me(pe.failed);this.requestInternal.localizedFailDescription?(e.UIUtils.createTextChild(t,i),this.appendSubtitle(t,this.requestInternal.localizedFailDescription,!0),e.Tooltip.Tooltip.install(t,i+" "+this.requestInternal.localizedFailDescription)):this.setTextAndTitle(t,i)}}renderProtocolCell(t){switch(e.UIUtils.createTextChild(t,this.requestInternal.protocol),this.requestInternal.alternateProtocolUsage){case"alternativeJobWonWithoutRace":e.Tooltip.Tooltip.install(t,pe.alternativeJobWonWithoutRace);break;case"alternativeJobWonRace":e.Tooltip.Tooltip.install(t,pe.alternativeJobWonRace);break;case"mainJobWonRace":e.Tooltip.Tooltip.install(t,pe.mainJobWonRace);break;case"mappingMissing":e.Tooltip.Tooltip.install(t,pe.mappingMissing);break;case"broken":e.Tooltip.Tooltip.install(t,pe.broken);break;case"dnsAlpnH3JobWonWithoutRace":e.Tooltip.Tooltip.install(t,pe.dnsAlpnH3JobWonWithoutRace);break;case"dnsAlpnH3JobWonRace":e.Tooltip.Tooltip.install(t,pe.dnsAlpnH3JobWonRace);break;default:e.Tooltip.Tooltip.install(t,this.requestInternal.protocol)}}#e(){if(this.requestInternal.resourceType().isStyleSheet())return i.UserMetrics.Action.StyleSheetInitiatorLinkClicked}renderInitiatorCell(t){this.initiatorCell=t;const i=this.requestInternal,r=a.NetworkLog.NetworkLog.instance().initiatorInfoForRequest(i),o=i.timing;switch(o?.pushStart&&t.appendChild(document.createTextNode(me(pe.push))),r.type){case"parser":{const e=g.Workspace.WorkspaceImpl.instance().uiSourceCodeForURL(r.url),i=e?.displayName(),o=void 0!==i&&void 0!==r.lineNumber?`${i}:${r.lineNumber}`:void 0;t.appendChild(b.Linkifier.Linkifier.linkifyURL(r.url,{text:o,lineNumber:r.lineNumber,columnNumber:r.columnNumber,userMetric:this.#e()})),this.appendSubtitle(t,me(pe.parser));break}case"redirect":{e.Tooltip.Tooltip.install(t,r.url);const o=i.redirectSource();console.assert(null!==o),this.parentView().nodeForRequest(o)?t.appendChild(b.Linkifier.Linkifier.linkifyRevealable(o,p.ResourceUtils.displayNameForURL(o.url()),void 0,void 0,void 0,"redirect-source-request")):t.appendChild(b.Linkifier.Linkifier.linkifyURL(o.url(),{jslogContext:"redirect-source-request-url"})),this.appendSubtitle(t,me(pe.redirect));break}case"script":{const o=n.NetworkManager.NetworkManager.forRequest(i)?.target()||null,s=this.parentView().linkifier();r.stack?this.linkifiedInitiatorAnchor=s.linkifyStackTraceTopFrame(o,r.stack):this.linkifiedInitiatorAnchor=s.linkifyScriptLocation(o,r.scriptId,r.url,r.lineNumber,{columnNumber:r.columnNumber,inlineFrameIndex:0}),e.Tooltip.Tooltip.install(this.linkifiedInitiatorAnchor,""),t.appendChild(this.linkifiedInitiatorAnchor),this.appendSubtitle(t,me(pe.script)),t.classList.add("network-script-initiated");break}case"preload":e.Tooltip.Tooltip.install(t,me(pe.preload)),t.classList.add("network-dim-cell"),t.appendChild(document.createTextNode(me(pe.preload)));break;case"signedExchange":t.appendChild(b.Linkifier.Linkifier.linkifyURL(r.url)),this.appendSubtitle(t,me(pe.signedexchange));break;case"preflight":if(t.appendChild(document.createTextNode(me(pe.preflight))),r.initiatorRequest){const i=k.Icon.create("arrow-up-down-circle"),o=b.Linkifier.Linkifier.linkifyRevealable(r.initiatorRequest,i,void 0,me(pe.selectTheRequestThatTriggered),"trailing-link-icon","initator-request");e.ARIAUtils.setLabel(o,me(pe.selectTheRequestThatTriggered)),t.appendChild(o)}break;default:e.Tooltip.Tooltip.install(t,me(pe.otherC)),t.classList.add("network-dim-cell"),t.appendChild(document.createTextNode(me(pe.otherC)))}}renderAddressSpaceCell(t,i){"Unknown"!==i&&e.UIUtils.createTextChild(t,i)}renderSizeCell(t){const i=r.ByteUtilities.formatBytesToKb(this.requestInternal.resourceSize);if(this.requestInternal.cachedInMemory())e.UIUtils.createTextChild(t,me(pe.memoryCache)),e.Tooltip.Tooltip.install(t,me(pe.servedFromMemoryCacheResource,{PH1:i})),t.classList.add("network-dim-cell");else if(this.requestInternal.serviceWorkerRouterInfo){const{serviceWorkerRouterInfo:o}=this.requestInternal,s=o.ruleIdMatched??0;let n;if(e.UIUtils.createTextChild(t,r.i18n.lockedString("(ServiceWorker router)")),"network"===o.matchedSourceType){const e=r.ByteUtilities.formatBytesToKb(this.requestInternal.transferSize);n=me(pe.matchedToServiceWorkerRouterWithNetworkSource,{PH1:s,PH2:e,PH3:i})}else n=me(pe.matchedToServiceWorkerRouter,{PH1:s,PH2:i});e.Tooltip.Tooltip.install(t,n),t.classList.add("network-dim-cell")}else if(this.requestInternal.fetchedViaServiceWorker)e.UIUtils.createTextChild(t,me(pe.serviceWorker)),e.Tooltip.Tooltip.install(t,me(pe.servedFromServiceWorkerResource,{PH1:i})),t.classList.add("network-dim-cell");else if(this.requestInternal.redirectSourceSignedExchangeInfoHasNoErrors())e.UIUtils.createTextChild(t,r.i18n.lockedString("(signed-exchange)")),e.Tooltip.Tooltip.install(t,me(pe.servedFromSignedHttpExchange,{PH1:i})),t.classList.add("network-dim-cell");else if(this.requestInternal.webBundleInnerRequestInfo())e.UIUtils.createTextChild(t,me(pe.webBundle)),e.Tooltip.Tooltip.install(t,me(pe.servedFromWebBundle,{PH1:i})),t.classList.add("network-dim-cell");else if(this.requestInternal.fromPrefetchCache())e.UIUtils.createTextChild(t,me(pe.prefetchCache)),e.Tooltip.Tooltip.install(t,me(pe.servedFromPrefetchCacheResource,{PH1:i})),t.classList.add("network-dim-cell");else if(this.requestInternal.cached())e.UIUtils.createTextChild(t,me(pe.diskCache)),e.Tooltip.Tooltip.install(t,me(pe.servedFromDiskCacheResourceSizeS,{PH1:i})),t.classList.add("network-dim-cell");else{const o=r.ByteUtilities.formatBytesToKb(this.requestInternal.transferSize);e.UIUtils.createTextChild(t,o),e.Tooltip.Tooltip.install(t,`${o} transferred over network, resource size: ${i}`)}this.appendSubtitle(t,i)}renderTimeCell(e){this.requestInternal.duration>0?(this.setTextAndTitle(e,r.TimeUtilities.secondsToString(this.requestInternal.duration)),this.appendSubtitle(e,r.TimeUtilities.secondsToString(this.requestInternal.latency),!1,me(pe.timeSubtitleTooltipText))):this.requestInternal.preserved?this.setTextAndTitle(e,me(pe.unknown),me(pe.unknownExplanation)):(e.classList.add("network-dim-cell"),this.setTextAndTitle(e,me(pe.pending)))}appendSubtitle(t,i,r=!1,o=""){const s=document.createElement("div");s.classList.add("network-cell-subtitle"),r&&s.classList.add("always-visible"),s.textContent=i,o&&e.Tooltip.Tooltip.install(s,o),t.appendChild(s)}createAiButtonIfAvailable(){if(e.ActionRegistry.ActionRegistry.instance().hasAction("drjones.network-floating-button")){const t=e.ActionRegistry.ActionRegistry.instance().getAction("drjones.network-floating-button"),i=document.createElement("span");i.classList.add("ai-button-container");const r=new w.FloatingButton.FloatingButton({title:t.title(),iconName:"smart-assistant"});return r.addEventListener("click",(e=>{e.stopPropagation(),this.select(),t.execute()}),{capture:!0}),r.addEventListener("mousedown",(e=>{e.stopPropagation()}),{capture:!0}),i.appendChild(r),i}}}class be extends we{createCells(e){super.createCells(e);const t=this.dataGrid.visibleColumnsArray[0],i=`${t.title}`,r=me(pe.level);this.nodeAccessibleText=`${r} ${i}: ${this.cellAccessibleTextMap.get(t.id)}`}renderCell(e,t){if(0===this.dataGrid.indexOfVisibleColumn(t)){const i=e,r=this.leftPadding?this.leftPadding+"px":"";i.style.setProperty("padding-left",r),i.classList.add("disclosure"),this.setCellAccessibleName(i.textContent||"",i,t)}}select(e){super.select(e);const t=this.traverseNextNode(!1,void 0,!0),i=t?.request();i&&this.parentView().dispatchEventToListeners("RequestSelected",i)}}var fe=Object.freeze({__proto__:null,NetworkGroupNode:be,NetworkNode:we,NetworkRequestNode:ve,_backgroundColors:ke}),Ce={cssText:`.request-cookies-view{overflow:auto;padding:12px;height:100%;background-color:var(--sys-color-cdt-base-container)}.request-cookies-view .request-cookies-title{font-size:12px;font-weight:bold;margin-right:30px;color:var(--sys-color-on-surface)}.request-cookies-view .cookie-line{margin-top:6px;display:flex}.request-cookies-view .cookies-panel-item{margin-top:6px;margin-bottom:16px;flex:none}\n/*# sourceURL=${import.meta.resolve("./requestCookiesView.css")} */\n`};const Se={thisRequestHasNoCookies:"This request has no cookies.",requestCookies:"Request Cookies",cookiesThatWereSentToTheServerIn:"Cookies that were sent to the server in the 'cookie' header of the request",showFilteredOutRequestCookies:"show filtered out request cookies",noRequestCookiesWereSent:"No request cookies were sent.",responseCookies:"Response Cookies",cookiesThatWereReceivedFromThe:"Cookies that were received from the server in the '`set-cookie`' header of the response",malformedResponseCookies:"Malformed Response Cookies",cookiesThatWereReceivedFromTheServer:"Cookies that were received from the server in the '`set-cookie`' header of the response but were malformed",siteHasCookieInOtherPartition:"This site has cookies in another partition, that were not sent with this request. {PH1}",learnMore:"Learn more"},ye=r.i18n.registerUIStrings("panels/network/RequestCookiesView.ts",Se),Te=r.i18n.getLocalizedString.bind(void 0,ye);class xe extends e.Widget.Widget{request;showFilteredOutCookiesSetting;emptyWidget;requestCookiesTitle;requestCookiesEmpty;requestCookiesTable;responseCookiesTitle;responseCookiesTable;siteHasCookieInOtherPartition;malformedResponseCookiesTitle;malformedResponseCookiesList;constructor(i){super(),this.registerRequiredCSS(Ce),this.element.classList.add("request-cookies-view"),this.element.setAttribute("jslog",`${d.pane("cookies").track({resize:!0})}`),this.request=i,this.showFilteredOutCookiesSetting=t.Settings.Settings.instance().createSetting("show-filtered-out-request-cookies",!1),this.emptyWidget=new e.EmptyWidget.EmptyWidget(Te(Se.thisRequestHasNoCookies),""),this.emptyWidget.show(this.element),this.requestCookiesTitle=this.element.createChild("div");const o=this.requestCookiesTitle.createChild("span","request-cookies-title");o.textContent=Te(Se.requestCookies),e.Tooltip.Tooltip.install(o,Te(Se.cookiesThatWereSentToTheServerIn));const s=e.SettingsUI.createSettingCheckbox(Te(Se.showFilteredOutRequestCookies),this.showFilteredOutCookiesSetting);s.checkboxElement.addEventListener("change",(()=>{this.refreshRequestCookiesView()})),this.requestCookiesTitle.appendChild(s),this.requestCookiesEmpty=this.element.createChild("div","cookies-panel-item"),this.requestCookiesEmpty.textContent=Te(Se.noRequestCookiesWereSent),this.requestCookiesTable=new T.CookiesTable.CookiesTable(!0),this.requestCookiesTable.contentElement.classList.add("cookie-table","cookies-panel-item"),this.requestCookiesTable.show(this.element),this.siteHasCookieInOtherPartition=this.element.createChild("div","cookies-panel-item site-has-cookies-in-other-partition"),this.siteHasCookieInOtherPartition.appendChild(r.i18n.getFormatLocalizedString(ye,Se.siteHasCookieInOtherPartition,{PH1:e.XLink.XLink.create("https://developer.chrome.com/en/docs/privacy-sandbox/chips/",Te(Se.learnMore),void 0,void 0,"learn-more")})),this.responseCookiesTitle=this.element.createChild("div","request-cookies-title"),this.responseCookiesTitle.textContent=Te(Se.responseCookies),this.responseCookiesTitle.title=Te(Se.cookiesThatWereReceivedFromThe),this.responseCookiesTable=new T.CookiesTable.CookiesTable(!0),this.responseCookiesTable.contentElement.classList.add("cookie-table","cookies-panel-item"),this.responseCookiesTable.show(this.element),this.malformedResponseCookiesTitle=this.element.createChild("div","request-cookies-title"),this.malformedResponseCookiesTitle.textContent=Te(Se.malformedResponseCookies),e.Tooltip.Tooltip.install(this.malformedResponseCookiesTitle,Te(Se.cookiesThatWereReceivedFromTheServer)),this.malformedResponseCookiesList=this.element.createChild("div")}getRequestCookies(){const e=new Map,t=new Map,i=this.request.includedRequestCookies().map((e=>e.cookie));if(this.showFilteredOutCookiesSetting.get())for(const t of this.request.blockedRequestCookies())e.set(t.cookie,t.blockedReasons.map((e=>({attribute:n.NetworkRequest.cookieBlockedReasonToAttribute(e),uiString:n.NetworkRequest.cookieBlockedReasonToUiString(e)})))),i.push(t.cookie);for(const e of this.request.includedRequestCookies())e.exemptionReason&&t.set(e.cookie,{uiString:n.NetworkRequest.cookieExemptionReasonToUiString(e.exemptionReason)});return{requestCookies:i,requestCookieToBlockedReasons:e,requestCookieToExemptionReason:t}}getResponseCookies(){let e=[];const t=new Map,i=new Map,r=[];if(this.request.responseCookies.length){e=this.request.nonBlockedResponseCookies();for(const i of this.request.blockedResponseCookies()){const o=n.CookieParser.CookieParser.parseSetCookie(i.cookieLine);if(o&&!o.length||i.blockedReasons.includes("SyntaxError")||i.blockedReasons.includes("NameValuePairExceedsMaxSize")){r.push(i);continue}let s=i.cookie;!s&&o&&(s=o[0]),s&&(t.set(s,i.blockedReasons.map((e=>({attribute:n.NetworkRequest.setCookieBlockedReasonToAttribute(e),uiString:n.NetworkRequest.setCookieBlockedReasonToUiString(e)})))),e.push(s))}for(const t of this.request.exemptedResponseCookies()){const r=e.find((e=>t.cookieLine===e.getCookieLine()));r&&i.set(r,{uiString:n.NetworkRequest.cookieExemptionReasonToUiString(t.exemptionReason)})}}return{responseCookies:e,responseCookieToBlockedReasons:t,responseCookieToExemptionReason:i,malformedResponseCookies:r}}refreshRequestCookiesView(){if(!this.isShowing())return;this.request.hasRequestCookies()||this.request.responseCookies.length?this.emptyWidget.hideWidget():this.emptyWidget.showWidget();const{requestCookies:t,requestCookieToBlockedReasons:i,requestCookieToExemptionReason:r}=this.getRequestCookies(),{responseCookies:o,responseCookieToBlockedReasons:s,responseCookieToExemptionReason:a,malformedResponseCookies:l}=this.getResponseCookies();if(t.length?(this.requestCookiesTitle.classList.remove("hidden"),this.requestCookiesEmpty.classList.add("hidden"),this.requestCookiesTable.showWidget(),this.requestCookiesTable.setCookies(t,i,r)):this.request.blockedRequestCookies().length?(this.requestCookiesTitle.classList.remove("hidden"),this.requestCookiesEmpty.classList.remove("hidden"),this.requestCookiesTable.hideWidget()):(this.requestCookiesTitle.classList.add("hidden"),this.requestCookiesEmpty.classList.add("hidden"),this.requestCookiesTable.hideWidget()),o.length?(this.responseCookiesTitle.classList.remove("hidden"),this.responseCookiesTable.showWidget(),this.responseCookiesTable.setCookies(o,s,a)):(this.responseCookiesTitle.classList.add("hidden"),this.responseCookiesTable.hideWidget()),l.length){this.malformedResponseCookiesTitle.classList.remove("hidden"),this.malformedResponseCookiesList.classList.remove("hidden"),this.malformedResponseCookiesList.removeChildren();for(const t of l){const i=this.malformedResponseCookiesList.createChild("span","cookie-line source-code"),r=new k.Icon.Icon;r.data={iconName:"cross-circle-filled",color:"var(--icon-error)",width:"14px",height:"14px"},r.classList.add("cookie-warning-icon"),i.appendChild(r),e.UIUtils.createTextChild(i,t.cookieLine),t.blockedReasons.includes("NameValuePairExceedsMaxSize")?i.title=n.NetworkRequest.setCookieBlockedReasonToUiString("NameValuePairExceedsMaxSize"):i.title=n.NetworkRequest.setCookieBlockedReasonToUiString("SyntaxError")}}else this.malformedResponseCookiesTitle.classList.add("hidden"),this.malformedResponseCookiesList.classList.add("hidden");this.request.siteHasCookieInOtherPartition()?this.siteHasCookieInOtherPartition.classList.remove("hidden"):this.siteHasCookieInOtherPartition.classList.add("hidden")}wasShown(){super.wasShown(),this.request.addEventListener(n.NetworkRequest.Events.REQUEST_HEADERS_CHANGED,this.refreshRequestCookiesView,this),this.request.addEventListener(n.NetworkRequest.Events.RESPONSE_HEADERS_CHANGED,this.refreshRequestCookiesView,this),this.refreshRequestCookiesView()}willHide(){this.request.removeEventListener(n.NetworkRequest.Events.REQUEST_HEADERS_CHANGED,this.refreshRequestCookiesView,this),this.request.removeEventListener(n.NetworkRequest.Events.RESPONSE_HEADERS_CHANGED,this.refreshRequestCookiesView,this)}}var Re=Object.freeze({__proto__:null,RequestCookiesView:xe}),Ie={cssText:`.request-initiator-view{display:flex;margin:6px}\n/*# sourceURL=${import.meta.resolve("./requestInitiatorView.css")} */\n`},qe={cssText:`.request-initiator-view-tree{user-select:text;& .fill{right:-6px}}.request-initiator-view-section-title{font-weight:bold;padding:4px}.request-initiator-view-section-title:focus-visible{background-color:var(--sys-color-state-focus-highlight)}@media (forced-colors: active){.request-initiator-view-section-title:focus-visible{forced-color-adjust:none;background-color:Highlight;color:HighlightText}}\n/*# sourceURL=${import.meta.resolve("./requestInitiatorViewTree.css")} */\n`};const Le={noInitiator:"No initiator data",requestCallStack:"Request call stack",requestInitiatorChain:"Request initiator chain"},Fe=r.i18n.registerUIStrings("panels/network/RequestInitiatorView.ts",Le),Ee=r.i18n.getLocalizedString.bind(void 0,Fe);class He extends e.Widget.VBox{linkifier;request;emptyWidget;hasShown;constructor(t){super(),this.element.classList.add("request-initiator-view"),this.element.setAttribute("jslog",`${d.pane("initiator").track({resize:!0})}`),this.linkifier=new b.Linkifier.Linkifier,this.request=t,this.emptyWidget=new e.EmptyWidget.EmptyWidget(Ee(Le.noInitiator),""),this.emptyWidget.show(this.element),this.hasShown=!1}static createStackTracePreview(e,t,i){const r=e.initiator();if(!r?.stack)return null;const o=n.NetworkManager.NetworkManager.forRequest(e),s=o?o.target():null;return b.JSPresentationUtils.buildStackTracePreviewContents(s,t,{stackTrace:r.stack,tabStops:i})}createTree(){const t=new e.TreeOutline.TreeOutlineInShadow;return t.registerRequiredCSS(qe),t.contentElement.classList.add("request-initiator-view-tree"),t.contentElement.setAttribute("jslog",`${d.tree("initiator-tree")}`),t}buildRequestChainTree(t,i,r){const o=new e.TreeOutline.TreeElement(i);r.appendChild(o),o.titleElement instanceof HTMLElement&&o.titleElement.classList.add("request-initiator-view-section-title");const s=t.initiators;let n=o;for(const t of Array.from(s).reverse()){const i=new e.TreeOutline.TreeElement(t.url());n.appendChild(i),n.expand(),n=i}o.expand(),n.select();const a=n.titleElement;a instanceof HTMLElement&&(a.style.fontWeight="bold");const l=t.initiated;return this.depthFirstSearchTreeBuilder(l,n,this.request),o}depthFirstSearchTreeBuilder(t,i,r){const o=new Set;o.add(this.request);for(const s of t.keys())if(t.get(s)===r){const r=new e.TreeOutline.TreeElement(s.url());i.appendChild(r),i.expand(),o.has(s)||(o.add(s),this.depthFirstSearchTreeBuilder(t,r,s))}}buildStackTraceSection(t,i,r){const o=new e.TreeOutline.TreeElement(i);r.appendChild(o),o.titleElement instanceof HTMLElement&&o.titleElement.classList.add("request-initiator-view-section-title");const s=new e.TreeOutline.TreeElement(t,!1);s.selectable=!1,o.appendChild(s),o.expand()}wasShown(){if(this.hasShown)return;this.registerRequiredCSS(Ie);let e=!1;const t=this.createTree(),i=He.createStackTracePreview(this.request,this.linkifier,!0);i&&(e=!0,this.buildStackTraceSection(i.element,Ee(Le.requestCallStack),t));const r=a.NetworkLog.NetworkLog.instance().initiatorGraphForRequest(this.request);(r.initiators.size>1||r.initiated.size>1)&&(e=!0,this.buildRequestChainTree(r,Ee(Le.requestInitiatorChain),t));const o=t.firstChild();o&&o.select(!0),e&&(this.element.appendChild(t.element),this.emptyWidget.hideWidget()),this.hasShown=!0}}var Pe=Object.freeze({__proto__:null,RequestInitiatorView:He}),Me={cssText:`.object-properties-section-dimmed{opacity:60%}.object-properties-section{padding:0;color:var(--sys-color-on-surface);display:flex;flex-direction:column}.object-properties-section li{user-select:text;&::before{margin-right:2px}}.object-properties-section li.editing-sub-part{padding:3px 12px 8px 6px;margin:-1px -6px -8px;text-overflow:clip}.object-properties-section li.editing{margin-left:10px;text-overflow:clip}.tree-outline ol.title-less-mode{padding-left:0}.object-properties-section .own-property{font-weight:bold}.object-properties-section .synthetic-property{color:var(--sys-color-token-subtle)}.object-properties-section .private-property-hash{color:var(--sys-color-on-surface)}.object-properties-section-root-element{display:flex;flex-direction:row}.object-properties-section .editable-div{overflow:hidden}.name-and-value{overflow:hidden;line-height:16px;display:flex;white-space:nowrap}.name-and-value .separator{white-space:pre;flex-shrink:0}.editing-sub-part .name-and-value{overflow:visible;display:inline-flex}.property-prompt{margin-left:4px}.tree-outline.hide-selection-when-blurred .selected:focus-visible{background:none}.tree-outline.hide-selection-when-blurred .selected:focus-visible ::slotted(*),\n.tree-outline.hide-selection-when-blurred .selected:focus-visible .tree-element-title,\n.tree-outline.hide-selection-when-blurred .selected:focus-visible .name-and-value,\n.tree-outline.hide-selection-when-blurred .selected:focus-visible .gray-info-message{background:var(--sys-color-state-focus-highlight);border-radius:2px}@media (forced-colors: active){.object-properties-section-dimmed{opacity:100%}.tree-outline.hide-selection-when-blurred .selected:focus-visible{background:Highlight}.tree-outline li:hover .tree-element-title,\n .tree-outline li.selected .tree-element-title{color:ButtonText}.tree-outline.hide-selection-when-blurred .selected:focus-visible .tree-element-title,\n .tree-outline.hide-selection-when-blurred .selected:focus-visible .name-and-value{background:transparent;box-shadow:none}.tree-outline.hide-selection-when-blurred .selected:focus-visible span,\n .tree-outline.hide-selection-when-blurred .selected:focus-visible .gray-info-message{color:HighlightText}.tree-outline-disclosure:hover li.parent::before{background-color:ButtonText}}\n/*# sourceURL=${import.meta.resolve("./objectPropertiesSection.css")} */\n`},Ae={cssText:`.value.object-value-node:hover{background-color:var(--sys-color-state-hover-on-subtle)}.object-value-function-prefix,\n.object-value-boolean{color:var(--sys-color-token-attribute-value)}.object-value-function{font-style:italic}.object-value-function.linkified:hover{--override-linkified-hover-background:rgb(0 0 0/10%);background-color:var(--override-linkified-hover-background);cursor:pointer}.theme-with-dark-background .object-value-function.linkified:hover,\n:host-context(.theme-with-dark-background) .object-value-function.linkified:hover{--override-linkified-hover-background:rgb(230 230 230/10%)}.object-value-number{color:var(--sys-color-token-attribute-value)}.object-value-bigint{color:var(--sys-color-token-comment)}.object-value-string,\n.object-value-regexp,\n.object-value-symbol{white-space:pre;unicode-bidi:-webkit-isolate;color:var(--sys-color-token-property-special)}.object-value-node{position:relative;vertical-align:baseline;color:var(--sys-color-token-variable);white-space:nowrap}.object-value-null,\n.object-value-undefined{color:var(--sys-color-state-disabled)}.object-value-unavailable{color:var(--sys-color-token-tag)}.object-value-calculate-value-button:hover{text-decoration:underline}.object-properties-section-custom-section{display:inline-flex;flex-direction:column}.theme-with-dark-background .object-value-number,\n:host-context(.theme-with-dark-background) .object-value-number,\n.theme-with-dark-background .object-value-boolean,\n:host-context(.theme-with-dark-background) .object-value-boolean{--override-primitive-dark-mode-color:hsl(252deg 100% 75%);color:var(--override-primitive-dark-mode-color)}.object-properties-section .object-description{color:var(--sys-color-token-subtle)}.value .object-properties-preview{white-space:nowrap}.name{color:var(--sys-color-token-tag);flex-shrink:0}.object-properties-preview .name{color:var(--sys-color-token-subtle)}@media (forced-colors: active){.object-value-calculate-value-button:hover{forced-color-adjust:none;color:Highlight}}\n/*# sourceURL=${import.meta.resolve("./objectValue.css")} */\n`},Ne={cssText:`.tree-outline{padding-left:0}.tree-outline > ol{padding-bottom:5px;border-bottom:solid 1px var(--sys-color-divider)}.tree-outline > .parent{user-select:none;font-weight:bold;color:var(--sys-color-on-surface);margin-top:-1px;display:flex;align-items:center;height:var(--sys-size-13)}.tree-outline li{padding-left:5px;line-height:20px}.tree-outline li:not(.parent){margin-left:10px;display:block;&:has(.payload-name){margin:var(--sys-size-3) 0;display:grid;grid-template-columns:min-content 1fr;gap:var(--sys-size-6)}}.tree-outline li:not(.parent)::before{display:none}.tree-outline li.expanded .payload-count{display:none}.tree-outline li .payload-toggle{display:none}.tree-outline li.expanded .payload-toggle{display:inline;margin-left:30px;font-weight:normal}.tree-outline li.expanded .payload-toggle:focus-visible{border:2px solid var(--sys-color-state-focus-ring);border-radius:5px}.tree-outline li .header-toggle:hover{color:var(--sys-color-token-subtle)}.tree-outline .payload-name{color:var(--sys-color-on-surface-subtle);font:var(--sys-typescale-body5-medium);white-space:pre-wrap;align-self:start;min-width:150px;line-height:18px}.tree-outline .payload-value{display:inline;white-space:pre-wrap;word-break:break-all;font:var(--sys-typescale-body4-regular);line-height:18px}.tree-outline .empty-request-payload{color:var(--sys-color-state-disabled)}.request-payload-show-more-button{margin:0 4px}@media (forced-colors: active){:host-context(.request-payload-tree) ol.tree-outline:not(.hide-selection-when-blurred) li.selected:focus{background:Highlight}:host-context(.request-payload-tree) ol.tree-outline:not(.hide-selection-when-blurred) li::before{background-color:ButtonText}:host-context(.request-payload-tree) ol.tree-outline:not(.hide-selection-when-blurred) li.selected.parent::before{background-color:HighlightText}:host-context(.request-payload-tree) ol.tree-outline:not(.hide-selection-when-blurred) li.selected *,\n :host-context(.request-payload-tree) ol.tree-outline:not(.hide-selection-when-blurred) li.selected.parent,\n :host-context(.request-payload-tree) ol.tree-outline:not(.hide-selection-when-blurred) li.selected.parent span{color:HighlightText}}.payload-decode-error{color:var(--sys-color-error)}\n/*# sourceURL=${import.meta.resolve("./requestPayloadTree.css")} */\n`},Ue={cssText:`.request-payload-view{user-select:text;overflow:auto}.request-payload-tree{flex-grow:1;overflow-y:auto;margin:0}\n/*# sourceURL=${import.meta.resolve("./requestPayloadView.css")} */\n`};const Be={copyValue:"Copy value",copyPayload:"Copy",requestPayload:"Request Payload",unableToDecodeValue:"(unable to decode value)",queryStringParameters:"Query String Parameters",formData:"Form Data",showMore:"Show more",viewParsed:"View parsed",empty:"(empty)",viewSource:"View source",viewUrlEncoded:"View URL-encoded",viewDecoded:"View decoded"},Ve=r.i18n.registerUIStrings("panels/network/RequestPayloadView.ts",Be),We=r.i18n.getLocalizedString.bind(void 0,Ve);class Oe extends e.Widget.VBox{request;decodeRequestParameters;queryStringCategory;formDataCategory;requestPayloadCategory;constructor(t){super(),this.registerRequiredCSS(Ue),this.element.classList.add("request-payload-view"),this.element.setAttribute("jslog",`${d.pane("payload").track({resize:!0})}`),this.request=t,this.decodeRequestParameters=!0;const i=t.requestContentType();i&&(this.decodeRequestParameters=Boolean(i.match(/^application\/x-www-form-urlencoded\s*(;.*)?$/i)));const r=new e.TreeOutline.TreeOutlineInShadow;r.registerRequiredCSS(Ae,Me,Ne),r.element.classList.add("request-payload-tree"),r.makeDense(),this.element.appendChild(r.element),this.queryStringCategory=new Ge(r,"query-string"),this.formDataCategory=new Ge(r,"form-data"),this.requestPayloadCategory=new Ge(r,"request-payload",We(Be.requestPayload))}wasShown(){super.wasShown(),this.request.addEventListener(n.NetworkRequest.Events.REQUEST_HEADERS_CHANGED,this.refreshFormData,this),this.refreshQueryString(),this.refreshFormData()}willHide(){this.request.removeEventListener(n.NetworkRequest.Events.REQUEST_HEADERS_CHANGED,this.refreshFormData,this)}addEntryContextMenuHandler(t,r,o,s){t.listItemElement.addEventListener("contextmenu",(t=>{t.consume(!0);const n=new e.ContextMenu.ContextMenu(t);n.clipboardSection().appendItem(r,(()=>{i.userMetrics.actionTaken(i.UserMetrics.Action.NetworkPanelCopyValue),i.InspectorFrontendHost.InspectorFrontendHostInstance.copyText(s())}),{jslogContext:o}),n.show()}))}static formatParameter(e,t,i){let r=!1;if(i&&(e=e.replace(/\+/g," ")).indexOf("%")>=0)try{e=decodeURIComponent(e)}catch{r=!0}const o=document.createElement("div");return t&&(o.className=t),""===e&&o.classList.add("empty-value"),r?o.createChild("span","payload-decode-error").textContent=We(Be.unableToDecodeValue):o.textContent=e,o}refreshQueryString(){const e=this.request.queryString(),t=this.request.queryParameters;this.queryStringCategory.hidden=!t,t&&this.refreshParams(We(Be.queryStringParameters),t,e,this.queryStringCategory)}async refreshFormData(){const e=await this.request.requestFormData();if(!e)return this.formDataCategory.hidden=!0,void(this.requestPayloadCategory.hidden=!0);const t=await this.request.formParameters();if(t)this.formDataCategory.hidden=!1,this.requestPayloadCategory.hidden=!0,this.refreshParams(We(Be.formData),t,e,this.formDataCategory);else{this.requestPayloadCategory.hidden=!1,this.formDataCategory.hidden=!0;try{const t=JSON.parse(e);this.refreshRequestJSONPayload(t,e)}catch{this.populateTreeElementWithSourceText(this.requestPayloadCategory,e)}}}populateTreeElementWithSourceText(t,i){const r=(i||"").trim(),o=r.length>3e3,s=document.createElement("span");s.classList.add("payload-value"),s.classList.add("source-code"),s.textContent=o?r.substr(0,3e3):r;const n=new e.TreeOutline.TreeElement(s);if(t.removeChildren(),t.appendChild(n),this.addEntryContextMenuHandler(n,We(Be.copyPayload),"copy-payload",(()=>r)),!o)return;const a=new l.Button.Button;function d(){a.remove(),s.textContent=r,n.listItemElement.removeEventListener("contextmenu",c)}function c(t){const i=new e.ContextMenu.ContextMenu(t);i.newSection().appendItem(We(Be.showMore),d,{jslogContext:"show-more"}),i.show()}a.data={variant:"outlined",jslogContext:"show-more"},a.innerText=We(Be.showMore),a.classList.add("request-payload-show-more-button"),a.addEventListener("click",d),n.listItemElement.addEventListener("contextmenu",c),s.appendChild(a)}refreshParams(t,i,r,o){o.removeChildren(),o.listItemElement.removeChildren(),o.listItemElement.createChild("div","selection fill"),e.UIUtils.createTextChild(o.listItemElement,t);const s=document.createElement("span");s.classList.add("payload-count");const n=i?i.length:0;s.textContent=` (${n})`,o.listItemElement.appendChild(s);De.has(o)?this.appendParamsSource(t,i,r,o):this.appendParamsParsed(t,i,r,o)}appendParamsSource(t,i,r,o){this.populateTreeElementWithSourceText(o,r);const s=o.listItemElement,n=function(e){s.removeEventListener("contextmenu",a),De.delete(o),this.refreshParams(t,i,r,o),e.consume()},a=t=>{if(!o.expanded)return;const i=new e.ContextMenu.ContextMenu(t);i.newSection().appendItem(We(Be.viewParsed),n.bind(this,t),{jslogContext:"view-parsed"}),i.show()},l=this.createViewSourceToggle(!0,n.bind(this));s.appendChild(l),s.addEventListener("contextmenu",a)}appendParamsParsed(t,i,r,o){for(const t of i||[]){const i=document.createDocumentFragment();if(""!==t.name){const e=Oe.formatParameter(t.name,"payload-name",this.decodeRequestParameters),r=Oe.formatParameter(t.value,"payload-value source-code",this.decodeRequestParameters);i.appendChild(e),i.appendChild(r)}else i.appendChild(Oe.formatParameter(We(Be.empty),"empty-request-payload",this.decodeRequestParameters));const r=new e.TreeOutline.TreeElement(i);this.addEntryContextMenuHandler(r,We(Be.copyValue),"copy-value",(()=>decodeURIComponent(t.value))),o.appendChild(r)}const s=o.listItemElement,n=function(e){s.removeEventListener("contextmenu",l),De.add(o),this.refreshParams(t,i,r,o),e.consume()},a=function(e){s.removeEventListener("contextmenu",l),this.toggleURLDecoding(e)},l=t=>{if(!o.expanded)return;const i=new e.ContextMenu.ContextMenu(t),r=i.newSection();r.appendItem(We(Be.viewSource),n.bind(this,t),{jslogContext:"view-source"});const s=this.decodeRequestParameters?We(Be.viewUrlEncoded):We(Be.viewDecoded);r.appendItem(s,a.bind(this,t),{jslogContext:"toggle-url-decoding"}),i.show()},d=this.createViewSourceToggle(!1,n.bind(this));s.appendChild(d);const c=this.decodeRequestParameters?We(Be.viewUrlEncoded):We(Be.viewDecoded),h=e.UIUtils.createTextButton(c,a.bind(this),{jslogContext:"decode-encode",className:"payload-toggle"});s.appendChild(h),s.addEventListener("contextmenu",l)}refreshRequestJSONPayload(t,i){const r=this.requestPayloadCategory;r.removeChildren();const o=r.listItemElement;o.removeChildren(),o.createChild("div","selection fill"),e.UIUtils.createTextChild(o,this.requestPayloadCategory.title.toString()),De.has(r)?this.appendJSONPayloadSource(r,t,i):this.appendJSONPayloadParsed(r,t,i)}appendJSONPayloadSource(t,i,r){const o=t.listItemElement;this.populateTreeElementWithSourceText(t,r);const s=function(e){o.removeEventListener("contextmenu",a),De.delete(t),this.refreshRequestJSONPayload(i,r),e.consume()},n=this.createViewSourceToggle(!0,s.bind(this));o.appendChild(n);const a=i=>{if(!t.expanded)return;const r=new e.ContextMenu.ContextMenu(i);r.newSection().appendItem(We(Be.viewParsed),s.bind(this,i),{jslogContext:"view-parsed"}),r.show()};o.addEventListener("contextmenu",a)}appendJSONPayloadParsed(t,i,r){const o=n.RemoteObject.RemoteObject.fromLocalObject(i),s=new x.ObjectPropertiesSection.RootElement(o);s.title=o.description,s.expand(),s.editable=!1,t.childrenListElement.classList.add("source-code","object-properties-section"),t.appendChild(s);const a=t.listItemElement,l=function(e){a.removeEventListener("contextmenu",d),De.add(t),this.refreshRequestJSONPayload(i,r),e.consume()},d=i=>{if(!t.expanded)return;const r=new e.ContextMenu.ContextMenu(i);r.newSection().appendItem(We(Be.viewSource),l.bind(this,i),{jslogContext:"view-source"}),r.show()},c=this.createViewSourceToggle(!1,l.bind(this));a.appendChild(c),a.addEventListener("contextmenu",d)}createViewSourceToggle(t,i){const r=We(t?Be.viewParsed:Be.viewSource);return e.UIUtils.createTextButton(r,i,{jslogContext:"source-parse",className:"payload-toggle"})}toggleURLDecoding(e){this.decodeRequestParameters=!this.decodeRequestParameters,this.refreshQueryString(),this.refreshFormData(),e.consume()}}const De=new WeakSet;let Ge=class extends e.TreeOutline.TreeElement{toggleOnClick;expandedSetting;expanded;constructor(e,i,r){super(r||"",!0),this.toggleOnClick=!0,this.hidden=!0,this.expandedSetting=t.Settings.Settings.instance().createSetting("request-info-"+i+"-category-expanded",!0),this.expanded=this.expandedSetting.get(),this.listItemElement.setAttribute("jslog",`${d.section().context(i)}`),e.appendChild(this)}createLeaf(){const t=new e.TreeOutline.TreeElement;return this.appendChild(t),t}onexpand(){this.expandedSetting.set(!0)}oncollapse(){this.expandedSetting.set(!1)}};var je=Object.freeze({__proto__:null,Category:Ge,RequestPayloadView:Oe}),ze={cssText:`.html-preview-frame{box-shadow:var(--drop-shadow);background:var(--ref-palette-neutral100);color-scheme:light;flex-grow:1;margin:20px}\n/*# sourceURL=${import.meta.resolve("./requestHTMLView.css")} */\n`};class _e extends e.Widget.VBox{dataURL;constructor(e){super(!0),this.registerRequiredCSS(ze),this.dataURL=e,this.contentElement.classList.add("html","request-view")}static create(e){const t=e.asDataUrl();return t?new _e(t):null}wasShown(){super.wasShown(),this.createIFrame()}willHide(){this.contentElement.removeChildren()}createIFrame(){this.contentElement.removeChildren();const t=document.createElement("iframe");t.className="html-preview-frame",t.setAttribute("sandbox",""),t.setAttribute("csp","default-src 'none';img-src data:;style-src 'unsafe-inline'"),t.setAttribute("src",this.dataURL),t.tabIndex=-1,e.ARIAUtils.markAsPresentation(t),this.contentElement.appendChild(t)}}var Ke=Object.freeze({__proto__:null,RequestHTMLView:_e});const $e={noPreview:"Nothing to preview",thisRequestHasNoResponseData:"This request has no response data available",failedToLoadResponseData:"Failed to load response data"},Xe=r.i18n.registerUIStrings("panels/network/RequestResponseView.ts",$e),Je=r.i18n.getLocalizedString.bind(void 0,Xe);class Ye extends e.Widget.VBox{request;contentViewPromise;constructor(e){super(),this.element.classList.add("request-view"),this.element.setAttribute("jslog",`${d.pane("response").track({resize:!0})}`),this.request=e,this.contentViewPromise=null}static#t(e,r){let s,n=Qe.get(e);if(void 0!==n)return n;s="application/json"===t.ResourceType.ResourceType.simplifyContentType(e.mimeType)?e.mimeType:e.resourceType().canonicalMimeType()||e.mimeType;const a="application/wasm"===r.mimeType,l=!(a||!r.isTextContent)&&R.TextUtils.isMinified(r.content().text),d=t.ResourceType.ResourceType.mediaTypeForMetrics(s,e.resourceType().isFromSourceMap(),l,!1,!1);return i.userMetrics.networkPanelResponsePreviewOpened(d),n=r.isTextContent||a?o.ResourceSourceFrame.ResourceSourceFrame.createSearchableView(e,s):new V(r,e.url(),e.resourceType()),Qe.set(e,n),n}wasShown(){this.doShowPreview()}doShowPreview(){return this.contentViewPromise||(this.contentViewPromise=this.showPreview()),this.contentViewPromise}async showPreview(){const e=await this.createPreview();return e.show(this.element),e}async createPreview(){const t=await this.request.requestStreamingContent();if(R.StreamingContentData.isError(t))return new e.EmptyWidget.EmptyWidget(Je($e.failedToLoadResponseData),t.error);const i=Ye.#t(this.request,t);return i&&204!==this.request.statusCode?i:new e.EmptyWidget.EmptyWidget(Je($e.noPreview),Je($e.thisRequestHasNoResponseData))}async revealPosition(e){const t=await this.doShowPreview();t instanceof o.ResourceSourceFrame.SearchableContainer&&t.revealPosition(e)}}const Qe=new WeakMap;var Ze=Object.freeze({__proto__:null,RequestResponseView:Ye}),et={cssText:`.tree-outline{padding-left:0}.tree-outline > ol{padding-bottom:5px;border-bottom:solid 1px var(--sys-color-divider)}.tree-outline > .parent{user-select:none;font-weight:bold;color:var(--sys-color-on-surface);margin-top:-1px;display:flex;align-items:center;height:26px}.tree-outline li{padding-left:5px;line-height:20px}.tree-outline li:not(.parent){display:block;margin-left:10px}.tree-outline li:not(.parent)::before{display:none}.tree-outline .header-name{color:var(--sys-color-token-subtle);display:inline-block;margin-right:0.25em;font-weight:bold;vertical-align:top;white-space:pre-wrap}.tree-outline .header-separator{user-select:none}.tree-outline .header-value{display:inline;margin-right:1em;white-space:pre-wrap;word-break:break-all;margin-top:1px}.tree-outline .header-toggle{display:inline;margin-left:30px;font-weight:normal;color:var(--sys-color-state-disabled)}.tree-outline .header-toggle:hover{color:var(--sys-color-state-hover-on-subtle)}.tree-outline .error-log{color:var(--sys-color-error);display:inline-block;margin-right:0.25em;margin-left:0.25em;font-weight:bold;vertical-align:top;white-space:pre-wrap}.tree-outline .hex-data{display:block;word-break:normal;overflow-wrap:anywhere;margin-left:20px}.tree-outline .error-field{color:var(--sys-color-error)}.prompt-icon{margin-top:2px}\n/*# sourceURL=${import.meta.resolve("./signedExchangeInfoTree.css")} */\n`},tt={cssText:`.signed-exchange-info-view{user-select:text;overflow:auto}.signed-exchange-info-tree{flex-grow:1;overflow-y:auto;margin:0}\n/*# sourceURL=${import.meta.resolve("./signedExchangeInfoView.css")} */\n`};const it={errors:"Errors",signedHttpExchange:"Signed HTTP exchange",learnmore:"Learn more",requestUrl:"Request URL",responseCode:"Response code",headerIntegrityHash:"Header integrity hash",responseHeaders:"Response headers",signature:"Signature",label:"Label",certificateUrl:"Certificate URL",viewCertificate:"View certificate",integrity:"Integrity",certificateSha:"Certificate SHA256",validityUrl:"Validity URL",date:"Date",expires:"Expires",certificate:"Certificate",subject:"Subject",validFrom:"Valid from",validUntil:"Valid until",issuer:"Issuer"},rt=r.i18n.registerUIStrings("panels/network/SignedExchangeInfoView.ts",it),ot=r.i18n.getLocalizedString.bind(void 0,rt);class st extends e.Widget.VBox{responseHeadersItem;constructor(t){super(),this.registerRequiredCSS(tt),console.assert(null!==t.signedExchangeInfo());const r=t.signedExchangeInfo();this.element.classList.add("signed-exchange-info-view");const o=new e.TreeOutline.TreeOutlineInShadow;o.registerRequiredCSS(et),o.element.classList.add("signed-exchange-info-tree"),o.setFocusable(!1),o.makeDense(),o.expandTreeElementsWhenArrowing=!0,this.element.appendChild(o.element);const s=new Map;if(r.errors?.length){const e=new nt(o,ot(it.errors));for(const t of r.errors){const i=document.createDocumentFragment(),r=new k.Icon.Icon;if(r.data={iconName:"cross-circle-filled",color:"var(--icon-error)",width:"14px",height:"14px"},r.classList.add("prompt-icon"),i.appendChild(r),i.createChild("div","error-log").textContent=t.message,e.createLeaf(i),t.errorField){let e=s.get(t.signatureIndex);e||(e=new Set,s.set(t.signatureIndex,e)),e.add(t.errorField)}}}const n=document.createDocumentFragment();n.createChild("div","header-name").textContent=ot(it.signedHttpExchange);const a=e.XLink.XLink.create("https://github.com/WICG/webpackage",ot(it.learnmore),"header-toggle",void 0,"learn-more");n.appendChild(a);const l=new nt(o,n);if(r.header){const n=r.header,a=t.redirectDestination(),d=this.formatHeader(ot(it.requestUrl),n.requestUrl);if(a){const e=b.Linkifier.Linkifier.linkifyRevealable(a,"View request",void 0,void 0,void 0,"redirect-destination-request");e.classList.add("header-toggle"),d.appendChild(e)}l.createLeaf(d),l.createLeaf(this.formatHeader(ot(it.responseCode),String(n.responseCode))),l.createLeaf(this.formatHeader(ot(it.headerIntegrityHash),n.headerIntegrity)),this.responseHeadersItem=l.createLeaf(this.formatHeader(ot(it.responseHeaders),""));const c=n.responseHeaders;for(const t in c){const i=new e.TreeOutline.TreeElement(this.formatHeader(t,c[t]));i.selectable=!1,this.responseHeadersItem.appendChild(i)}this.responseHeadersItem.expand();for(let e=0;e<n.signatures.length;++e){const t=s.get(e)||new Set,r=n.signatures[e],a=new nt(o,ot(it.signature));if(a.createLeaf(this.formatHeader(ot(it.label),r.label)),a.createLeaf(this.formatHeaderForHexData(ot(it.signature),r.signature,t.has("signatureSig"))),r.certUrl){const e=this.formatHeader(ot(it.certificateUrl),r.certUrl,t.has("signatureCertUrl"));if(r.certificates){const t=e.createChild("span","devtools-link header-toggle");t.textContent=ot(it.viewCertificate),t.addEventListener("click",i.InspectorFrontendHost.InspectorFrontendHostInstance.showCertificateViewer.bind(null,r.certificates),!1)}a.createLeaf(e)}a.createLeaf(this.formatHeader(ot(it.integrity),r.integrity,t.has("signatureIntegrity"))),r.certSha256&&a.createLeaf(this.formatHeaderForHexData(ot(it.certificateSha),r.certSha256,t.has("signatureCertSha256"))),a.createLeaf(this.formatHeader(ot(it.validityUrl),r.validityUrl,t.has("signatureValidityUrl"))),a.createLeaf().title=this.formatHeader(ot(it.date),new Date(1e3*r.date).toUTCString(),t.has("signatureTimestamps")),a.createLeaf().title=this.formatHeader(ot(it.expires),new Date(1e3*r.expires).toUTCString(),t.has("signatureTimestamps"))}}if(r.securityDetails){const e=r.securityDetails,t=new nt(o,ot(it.certificate));t.createLeaf(this.formatHeader(ot(it.subject),e.subjectName)),t.createLeaf(this.formatHeader(ot(it.validFrom),new Date(1e3*e.validFrom).toUTCString())),t.createLeaf(this.formatHeader(ot(it.validUntil),new Date(1e3*e.validTo).toUTCString())),t.createLeaf(this.formatHeader(ot(it.issuer),e.issuer))}}formatHeader(e,t,i){const r=document.createDocumentFragment(),o=r.createChild("div","header-name");o.textContent=e+": ",r.createChild("span","header-separator");const s=r.createChild("div","header-value source-code");return s.textContent=t,i&&(o.classList.add("error-field"),s.classList.add("error-field")),r}formatHeaderForHexData(e,t,i){const r=document.createDocumentFragment(),o=r.createChild("div","header-name");o.textContent=e+": ",r.createChild("span","header-separator");const s=r.createChild("div","header-value source-code hex-data");return s.textContent=t.replace(/(.{2})/g,"$1 "),i&&(o.classList.add("error-field"),s.classList.add("error-field")),r}}class nt extends e.TreeOutline.TreeElement{toggleOnClick;expanded;constructor(e,t){super(t,!0),this.selectable=!1,this.toggleOnClick=!0,this.expanded=!0,e.appendChild(this)}createLeaf(t){const i=new e.TreeOutline.TreeElement(t);return i.selectable=!1,this.appendChild(i),i}}var at=Object.freeze({__proto__:null,Category:nt,SignedExchangeInfoView:st});const lt={failedToLoadResponseData:"Failed to load response data",previewNotAvailable:"Preview not available"},dt=r.i18n.registerUIStrings("panels/network/RequestPreviewView.ts",lt),ct=r.i18n.getLocalizedString.bind(void 0,dt);class ht extends Ye{constructor(e){super(e),this.element.setAttribute("jslog",`${d.pane("preview").track({resize:!0})}`)}async showPreview(){const t=await super.showPreview();if(!(t instanceof e.View.SimpleView))return t;const i=this.element.createChild("devtools-toolbar","network-item-preview-toolbar");return t.toolbarItems().then((e=>{e.map((e=>i.appendToolbarItem(e)))})),t}async htmlPreview(){const t=await this.request.requestContentData();if(R.ContentData.ContentData.isError(t))return new e.EmptyWidget.EmptyWidget(ct(lt.failedToLoadResponseData),t.error);if(!new Set(["text/html","text/plain","application/xhtml+xml"]).has(this.request.mimeType))return null;const i=await o.JSONView.JSONView.createView(t.text);return i||_e.create(t)}async createPreview(){if(this.request.signedExchangeInfo())return new st(this.request);if(this.request.webBundleInfo())return S.LegacyWrapper.legacyWrapper(e.Widget.VBox,new y.WebBundleInfoView.WebBundleInfoView(this.request));const t=await this.htmlPreview();if(t)return t;const i=await o.PreviewFactory.PreviewFactory.createPreview(this.request,this.request.mimeType);return i||new e.EmptyWidget.EmptyWidget(ct(lt.previewNotAvailable),"")}}var ut=Object.freeze({__proto__:null,RequestPreviewView:ht}),pt={cssText:`.network-timing-table{width:380px;border-spacing:0;padding-left:10px;padding-right:10px;line-height:initial;table-layout:fixed}.network-timing-start{border-top:5px solid transparent}.network-timing-start th span.network-timing-hidden-header{height:1px;width:1px;position:absolute;overflow:hidden}.network-timing-table-header td,\n.network-timing-footer td{border-top:10px solid transparent}.network-timing-table-header td{color:var(--sys-color-token-subtle)}.network-timing-table td{padding:4px 0}.network-timing-table-header td:last-child{text-align:right}.network-timing-footer td:last-child{font-weight:bold;text-align:right}table.network-timing-table > tr:not(.network-timing-table-header, .network-timing-footer) > td:first-child{padding-left:12px}.network-timing-table col.labels{width:156px}.network-timing-table col.duration{width:80px}.network-timing-table td.caution{font-weight:bold;color:var(--issue-color-yellow);padding:2px 0}.network-timing-table hr.break{background-color:var(--sys-color-divider);border:none;height:1px}.network-timing-row{position:relative;height:15px}.network-timing-bar{position:absolute;min-width:1px;top:0;bottom:0}.network-timing-bar-title{color:var(--sys-color-on-surface);white-space:nowrap;text-align:right}.network-timing-bar.queueing,\n.network-timing-bar.total{border:1px solid var(--sys-color-token-subtle)}.network-timing-bar.blocking,\n.-theme-preserve{background-color:var(--network-overview-blocking)}.network-timing-bar.proxy,\n.-theme-preserve{background-color:var(--override-network-overview-proxy)}.network-timing-bar.dns,\n.-theme-preserve{background-color:var(--sys-color-cyan)}.network-timing-bar.connecting,\n.network-timing-bar.serviceworker,\n.network-timing-bar.serviceworker-preparation,\n.network-timing-bar.serviceworker-routerevaluation,\n.network-timing-bar.serviceworker-cachelookup,\n.-theme-preserve{background-color:var(--network-overview-service-worker)}.network-timing-bar.ssl,\n.-theme-preserve{background-color:var(--network-overview-ssl)}.network-timing-bar.serviceworker-respondwith,\n.-theme-preserve{background-color:var(--network-overview-service-worker-respond-with)}.network-fetch-timing-bar-clickable::before{user-select:none;mask-image:var(--image-file-triangle-right);float:left;width:14px;height:14px;margin-right:2px;content:"";position:relative;background-color:var(--icon-default);transition:transform 200ms}.network-fetch-timing-bar-clickable{position:relative;left:-12px}.network-fetch-timing-bar-clickable:focus-visible{background-color:var(--sys-color-state-focus-highlight)}.network-fetch-timing-bar-clickable[aria-checked="true"]::before{transform:rotate(90deg)}.network-fetch-timing-bar-details-collapsed{display:none}.network-fetch-timing-bar-details-expanded{display:block}.network-fetch-timing-bar-details,\n.router-evaluation-timing-bar-details{padding-left:11px;width:fit-content}.network-fetch-details-treeitem{width:max-content}.network-timing-bar.sending,\n.-theme-preserve{background-color:var(--override-network-overview-sending)}.network-timing-bar.waiting,\n.-theme-preserve{background-color:var(--network-overview-waiting)}.network-timing-bar.receiving,\n.network-timing-bar.receiving-push,\n.-theme-preserve{background-color:var(--network-overview-receiving)}.network-timing-bar.push,\n.-theme-preserve{background-color:var(--network-overview-push)}.server-timing-row:nth-child(even){background:var(--sys-color-surface1)}.network-timing-bar.server-timing,\n.-theme-preserve{background-color:var(--sys-color-neutral-container)}.network-timing-table td.network-timing-metric{white-space:nowrap;max-width:150px;overflow-x:hidden;text-overflow:ellipsis}.network-timing-bar.proxy,\n.network-timing-bar.dns,\n.network-timing-bar.ssl,\n.network-timing-bar.connecting,\n.network-timing-bar.blocking{height:10px;margin:auto}@media (forced-colors: active){.network-timing-bar.blocking,\n .network-timing-bar.proxy,\n .network-timing-bar.dns,\n .network-timing-bar.connecting,\n .network-timing-bar.serviceworker,\n .network-timing-bar.serviceworker-preparation,\n .network-timing-bar.ssl,\n .network-timing-bar.sending,\n .network-timing-bar.waiting,\n .network-timing-bar.receiving,\n .network-timing-bar.receiving-push,\n .network-timing-bar.push,\n .network-timing-bar.server-timing,\n .-theme-preserve{forced-color-adjust:none}.network-timing-table-header td,\n .network-timing-footer td{forced-color-adjust:none;color:ButtonText}}\n/*# sourceURL=${import.meta.resolve("./networkTimingTable.css")} */\n`};const gt={receivingPush:"Receiving `Push`",queueing:"Queueing",stalled:"Stalled",initialConnection:"Initial connection",dnsLookup:"DNS Lookup",proxyNegotiation:"Proxy negotiation",readingPush:"Reading `Push`",contentDownload:"Content Download",requestSent:"Request sent",requestToServiceworker:"Request to `ServiceWorker`",startup:"Startup",respondwith:"respondWith",ssl:"SSL",total:"Total",waitingTtfb:"Waiting for server response",label:"Label",routerEvaluation:"Router Evaluation",routerCacheLookup:"Cache Lookup",waterfall:"Waterfall",duration:"Duration",queuedAtS:"Queued at {PH1}",startedAtS:"Started at {PH1}",serverPush:"Server Push",resourceScheduling:"Resource Scheduling",connectionStart:"Connection Start",requestresponse:"Request/Response",cautionRequestIsNotFinishedYet:"CAUTION: request is not finished yet!",explanation:"Explanation",serverTiming:"Server Timing",time:"TIME",theServerTimingApi:"the Server Timing API",duringDevelopmentYouCanUseSToAdd:"During development, you can use {PH1} to add insights into the server-side timing of this request.",durationC:"DURATION",originalRequest:"Original Request",responseReceived:"Response Received",unknown:"Unknown",sourceOfResponseS:"Source of response: {PH1}",cacheStorageCacheNameS:"Cache storage cache name: {PH1}",cacheStorageCacheNameUnknown:"Cache storage cache name: Unknown",retrievalTimeS:"Retrieval Time: {PH1}",serviceworkerCacheStorage:"`ServiceWorker` cache storage",fromHttpCache:"From HTTP cache",networkFetch:"Network fetch",fallbackCode:"Fallback code",routerMatchedSource:"Matched source: {PH1}",routerActualSource:"Actual source: {PH1}"},mt=r.i18n.registerUIStrings("panels/network/RequestTimingView.ts",gt),wt=r.i18n.getLocalizedString.bind(void 0,mt);class kt extends e.Widget.VBox{request;calculator;lastMinimumBoundary;tableElement;constructor(e,t){super(),this.registerRequiredCSS(pt),this.element.classList.add("resource-timing-view"),this.request=e,this.calculator=t,this.lastMinimumBoundary=-1}static timeRangeTitle(e){switch(e){case"push":return wt(gt.receivingPush);case"queueing":return wt(gt.queueing);case"blocking":return wt(gt.stalled);case"connecting":return wt(gt.initialConnection);case"dns":return wt(gt.dnsLookup);case"proxy":return wt(gt.proxyNegotiation);case"receiving-push":return wt(gt.readingPush);case"receiving":return wt(gt.contentDownload);case"sending":return wt(gt.requestSent);case"serviceworker":return wt(gt.requestToServiceworker);case"serviceworker-preparation":return wt(gt.startup);case"serviceworker-routerevaluation":return wt(gt.routerEvaluation);case"serviceworker-cachelookup":return wt(gt.routerCacheLookup);case"serviceworker-respondwith":return wt(gt.respondwith);case"ssl":return wt(gt.ssl);case"total":return wt(gt.total);case"waiting":return wt(gt.waitingTtfb);default:return e}}static calculateRequestTimeRanges(e,t){const i=[];function r(e,t,r){t<Number.MAX_VALUE&&t<=r&&i.push({name:e,start:t,end:r})}function o(e){for(let t=0;t<e.length;++t)if(e[t]>0)return e[t]}function s(e,t,i){t>=0&&i>=0&&r(e,d+t/1e3,d+i/1e3)}function n(e,t,i){r(e,d+t/1e3,d+i/1e3)}const a=e.timing;if(!a){const t=-1!==e.issueTime()?e.issueTime():-1!==e.startTime?e.startTime:0,o=-1!==e.issueTime()&&-1!==e.startTime&&e.issueTime()!==e.startTime,s=-1===e.responseReceivedTime?o?e.startTime:Number.MAX_VALUE:e.responseReceivedTime,n=-1===e.endTime?Number.MAX_VALUE:e.endTime;r("total",t,n),r("blocking",t,s);return r(-1===e.responseReceivedTime?"connecting":"receiving",s,n),i}const l=e.issueTime(),d=a.requestTime,c=o([e.endTime,e.responseReceivedTime])||d;if(r("total",l<d?l:d,c),a.pushStart){const e=a.pushEnd||c;e>t&&r("push",Math.max(a.pushStart,t),e)}l<d&&r("queueing",l,d);const h=1e3*(e.responseReceivedTime-d);if(e.fetchedViaServiceWorker)s("blocking",0,a.workerStart),s("serviceworker-preparation",a.workerStart,a.workerReady),s("serviceworker-respondwith",a.workerFetchStart,a.workerRespondWithSettled),s("serviceworker",a.workerReady,a.sendEnd),s("waiting",a.sendEnd,h);else if(!a.pushStart){const e=o([a.dnsStart,a.connectStart,a.sendStart,h])||0;s("blocking",0,e),s("proxy",a.proxyStart,a.proxyEnd),s("dns",a.dnsStart,a.dnsEnd),s("connecting",a.connectStart,a.connectEnd),s("ssl",a.sslStart,a.sslEnd),s("sending",a.sendStart,a.sendEnd),s("waiting",Math.max(a.sendEnd,a.connectEnd,a.dnsEnd,a.proxyEnd,e),h)}const{serviceWorkerRouterInfo:u}=e;if(u){if(a.workerRouterEvaluationStart){let e=a.sendStart;"cache"===u?.matchedSourceType&&a.workerCacheLookupStart?e=a.workerCacheLookupStart:"fetch-event"===u?.actualSourceType&&(e=a.workerStart),n("serviceworker-routerevaluation",a.workerRouterEvaluationStart,e)}if(a.workerCacheLookupStart){let e=a.sendStart;"cache"===u?.actualSourceType&&(e=a.receiveHeadersStart),n("serviceworker-cachelookup",a.workerCacheLookupStart,e)}}return-1!==e.endTime&&r(a.pushStart?"receiving-push":"receiving",e.responseReceivedTime,c),i}static createTimingTable(i,o){const s=document.createElement("table");s.classList.add("network-timing-table"),s.setAttribute("jslog",`${d.pane("timing").track({resize:!0})}`);const n=s.createChild("colgroup");n.createChild("col","labels"),n.createChild("col","bars"),n.createChild("col","duration");const a=kt.calculateRequestTimeRanges(i,o.minimumBoundary()),l=a.map((e=>e.start)).reduce(((e,t)=>Math.min(e,t))),c=a.map((e=>e.end)).reduce(((e,t)=>Math.max(e,t))),h=100/(c-l);let u,p,g,m,w=0;const k=s.createChild("thead","network-timing-start"),v=k.createChild("tr"),b=v.createChild("th");b.createChild("span","network-timing-hidden-header").textContent=wt(gt.label),b.scope="col";const f=v.createChild("th");f.createChild("span","network-timing-hidden-header").textContent=wt(gt.waterfall),f.scope="col";const C=v.createChild("th");C.createChild("span","network-timing-hidden-header").textContent=wt(gt.duration),C.scope="col";const S=k.createChild("tr").createChild("td"),y=k.createChild("tr").createChild("td");let T;S.colSpan=y.colSpan=3,e.UIUtils.createTextChild(S,wt(gt.queuedAtS,{PH1:o.formatValue(i.issueTime(),2)})),e.UIUtils.createTextChild(y,wt(gt.startedAtS,{PH1:o.formatValue(i.startTime,2)}));for(let t=0;t<a.length;++t){const i=a[t],n=i.name;if("total"===n){w=i.end-i.start;continue}"push"===n?P(wt(gt.serverPush)):"queueing"===n?m||(m=P(wt(gt.resourceScheduling))):bt.has(n)?u||(u=P(wt(gt.connectionStart))):vt.has(n)?p||(p=P("Service Worker")):g||(g=P(wt(gt.requestresponse)));const d=h*(i.start-l);T=h*(c-i.end);const k=i.end-i.start,v=s.createChild("tr"),b=v.createChild("td");e.UIUtils.createTextChild(b,kt.timeRangeTitle(n));const f=v.createChild("td").createChild("div","network-timing-row"),C=f.createChild("span","network-timing-bar "+n);C.style.left=d+"%",C.style.right=T+"%",C.textContent="​",e.ARIAUtils.setLabel(f,wt(gt.startedAtS,{PH1:o.formatValue(i.start,2)}));v.createChild("td").createChild("div","network-timing-bar-title").textContent=r.TimeUtilities.secondsToString(k,!0),"serviceworker-respondwith"===i.name&&(b.classList.add("network-fetch-timing-bar-clickable"),s.createChild("tr","network-fetch-timing-bar-details"),b.setAttribute("tabindex","0"),b.setAttribute("role","switch"),e.ARIAUtils.setChecked(b,!1)),"serviceworker-routerevaluation"===i.name&&(b.classList.add("network-fetch-timing-bar-clickable"),s.createChild("tr","router-evaluation-timing-bar-details"),b.setAttribute("tabindex","0"),b.setAttribute("role","switch"),e.ARIAUtils.setChecked(b,!1))}if(!i.finished&&!i.preserved){const t=s.createChild("tr").createChild("td","caution");t.colSpan=3,e.UIUtils.createTextChild(t,wt(gt.cautionRequestIsNotFinishedYet))}const x=s.createChild("tr","network-timing-footer"),R=x.createChild("td");R.colSpan=1;const I=e.XLink.XLink.create("https://developer.chrome.com/docs/devtools/network/reference/#timing-explanation",wt(gt.explanation),void 0,void 0,"explanation");R.appendChild(I),x.createChild("td"),e.UIUtils.createTextChild(x.createChild("td"),r.TimeUtilities.secondsToString(w,!0));const q=i.serverTimings,L=void 0===T?100:T,F=s.createChild("tr","network-timing-table-header").createChild("td");F.colSpan=3,F.createChild("hr","break");const E=s.createChild("tr","network-timing-table-header");if(e.UIUtils.createTextChild(E.createChild("td"),wt(gt.serverTiming)),E.createChild("td"),e.UIUtils.createTextChild(E.createChild("td"),wt(gt.time)),!q){const t=s.createChild("tr").createChild("td");t.colSpan=3;const i=e.XLink.XLink.create("https://web.dev/custom-metrics/#server-timing-api",wt(gt.theServerTimingApi),void 0,void 0,"server-timing-api");return t.appendChild(r.i18n.getFormatLocalizedString(mt,gt.duringDevelopmentYouCanUseSToAdd,{PH1:i})),s}return q.filter((e=>"total"!==e.metric.toLowerCase())).forEach((e=>H(e,L))),q.filter((e=>"total"===e.metric.toLowerCase())).forEach((e=>H(e,L))),s;function H(i,o){const n=new t.Color.Generator({min:0,max:360,count:36},{min:50,max:80,count:void 0},80),a="total"===i.metric.toLowerCase(),d=s.createChild("tr",a?"network-timing-footer":"server-timing-row"),u=d.createChild("td","network-timing-metric"),p=i.description||i.metric;e.UIUtils.createTextChild(u,p),e.Tooltip.Tooltip.install(u,p);const g=d.createChild("td").createChild("div","network-timing-row");if(null===i.value)return;const m=h*(c-l-i.value/1e3);if(m>=0){const e=g.createChild("span","network-timing-bar server-timing");e.style.left=m+"%",e.style.right=o+"%",e.textContent="​",a||(e.style.backgroundColor=n.colorForID(i.metric))}d.createChild("td").createChild("div","network-timing-bar-title").textContent=r.TimeUtilities.millisToString(i.value,!0)}function P(t){const i=s.createChild("tr","network-timing-table-header"),r=i.createChild("td");return e.UIUtils.createTextChild(r,t),e.ARIAUtils.markAsHeading(r,2),e.UIUtils.createTextChild(i.createChild("td"),""),e.UIUtils.createTextChild(i.createChild("td"),wt(gt.durationC)),i}}constructFetchDetailsView(){if(!this.tableElement)return;const t=this.tableElement.ownerDocument,i=t.querySelector(".network-fetch-timing-bar-details");if(!i)return;i.classList.add("network-fetch-timing-bar-details-collapsed"),self.onInvokeElement(this.tableElement,this.onToggleFetchDetails.bind(this,i));const r=new e.TreeOutline.TreeOutlineInShadow;i.appendChild(r.element);const o=a.NetworkLog.NetworkLog.instance().originalRequestForURL(this.request.url());if(o){const e=n.RemoteObject.RemoteObject.fromLocalObject(o),t=new x.ObjectPropertiesSection.RootElement(e);t.title=wt(gt.originalRequest),r.appendChild(t)}const s=a.NetworkLog.NetworkLog.instance().originalResponseForURL(this.request.url());if(s){const e=n.RemoteObject.RemoteObject.fromLocalObject(s),t=new x.ObjectPropertiesSection.RootElement(e);t.title=wt(gt.responseReceived),r.appendChild(t)}const l=t.createElement("div");l.classList.add("network-fetch-details-treeitem");let d=wt(gt.unknown);const c=this.request.serviceWorkerResponseSource();c&&(d=this.getLocalizedResponseSourceForCode(c)),l.textContent=wt(gt.sourceOfResponseS,{PH1:d});const h=new e.TreeOutline.TreeElement(l);r.appendChild(h);const u=t.createElement("div");u.classList.add("network-fetch-details-treeitem");const p=this.request.getResponseCacheStorageCacheName();u.textContent=p?wt(gt.cacheStorageCacheNameS,{PH1:p}):wt(gt.cacheStorageCacheNameUnknown);const g=new e.TreeOutline.TreeElement(u);r.appendChild(g);const m=this.request.getResponseRetrievalTime();if(m){const i=t.createElement("div");i.classList.add("network-fetch-details-treeitem"),i.textContent=wt(gt.retrievalTimeS,{PH1:m.toString()});const o=new e.TreeOutline.TreeElement(i);r.appendChild(o)}}getLocalizedResponseSourceForCode(e){switch(e){case"cache-storage":return wt(gt.serviceworkerCacheStorage);case"http-cache":return wt(gt.fromHttpCache);case"network":return wt(gt.networkFetch);default:return wt(gt.fallbackCode)}}onToggleFetchDetails(e,t){if(!t.target)return;const r=t.target;if(r.classList.contains("network-fetch-timing-bar-clickable")){e.classList.contains("network-fetch-timing-bar-details-collapsed")&&i.userMetrics.actionTaken(i.UserMetrics.Action.NetworkPanelServiceWorkerRespondWith);const t="true"===r.getAttribute("aria-checked");r.setAttribute("aria-checked",String(!t)),e.classList.toggle("network-fetch-timing-bar-details-collapsed"),e.classList.toggle("network-fetch-timing-bar-details-expanded")}}constructRouterEvaluationView(){if(!this.tableElement)return;const t=this.tableElement.querySelector(".router-evaluation-timing-bar-details");if(!t)return;t.classList.add("network-fetch-timing-bar-details-collapsed"),self.onInvokeElement(this.tableElement,this.onToggleRouterEvaluationDetails.bind(this,t));const i=new e.TreeOutline.TreeOutlineInShadow;t.appendChild(i.element);const{serviceWorkerRouterInfo:r}=this.request;if(!r)return;const o=this.tableElement.ownerDocument,s=o.createElement("div");s.classList.add("network-fetch-details-treeitem");const n=r.matchedSourceType,a=String(n)||wt(gt.unknown);s.textContent=wt(gt.routerMatchedSource,{PH1:a});const l=new e.TreeOutline.TreeElement(s);i.appendChild(l);const d=o.createElement("div");d.classList.add("network-fetch-details-treeitem");const c=r.actualSourceType,h=String(c)||wt(gt.unknown);d.textContent=wt(gt.routerActualSource,{PH1:h});const u=new e.TreeOutline.TreeElement(d);i.appendChild(u)}onToggleRouterEvaluationDetails(e,t){if(!t.target)return;const i=t.target;if(i.classList.contains("network-fetch-timing-bar-clickable")){const t="true"===i.getAttribute("aria-checked");i.setAttribute("aria-checked",String(!t)),e.classList.toggle("network-fetch-timing-bar-details-collapsed"),e.classList.toggle("network-fetch-timing-bar-details-expanded")}}wasShown(){this.request.addEventListener(n.NetworkRequest.Events.TIMING_CHANGED,this.refresh,this),this.request.addEventListener(n.NetworkRequest.Events.FINISHED_LOADING,this.refresh,this),this.calculator.addEventListener("BoundariesChanged",this.boundaryChanged,this),this.refresh()}willHide(){this.request.removeEventListener(n.NetworkRequest.Events.TIMING_CHANGED,this.refresh,this),this.request.removeEventListener(n.NetworkRequest.Events.FINISHED_LOADING,this.refresh,this),this.calculator.removeEventListener("BoundariesChanged",this.boundaryChanged,this)}refresh(){this.tableElement&&this.tableElement.remove(),this.tableElement=kt.createTimingTable(this.request,this.calculator),this.tableElement.classList.add("resource-timing-table"),this.element.appendChild(this.tableElement),this.request.fetchedViaServiceWorker&&this.constructFetchDetailsView(),this.request.serviceWorkerRouterInfo&&this.constructRouterEvaluationView()}boundaryChanged(){const e=this.calculator.minimumBoundary();e!==this.lastMinimumBoundary&&(this.lastMinimumBoundary=e,this.refresh())}}const vt=new Set(["serviceworker","serviceworker-preparation","serviceworker-respondwith","serviceworker-routerevaluation","serviceworker-cachelookup"]),bt=new Set(["queueing","blocking","connecting","dns","proxy","ssl"]);var ft=Object.freeze({__proto__:null,ConnectionSetupRangeNames:bt,RequestTimingView:kt,ServiceWorkerRangeNames:vt}),Ct={cssText:`.websocket-frame-view{user-select:text}.websocket-frame-view .data-grid{flex:auto;border:none}.websocket-frame-view .data-grid .data{background-image:none}.websocket-frame-view-td{border-bottom:1px solid var(--sys-color-divider)}.websocket-frame-view .data-grid td,\n.websocket-frame-view .data-grid th{border-left-color:1px solid var(--sys-color-divider)}.websocket-frame-view-row-send td:first-child::before{content:"\\2B06";color:var(--sys-color-tertiary);padding-right:4px}.websocket-frame-view-row-receive td:first-child::before{content:"\\2B07";color:var(--sys-color-error);padding-right:4px}.websocket-frame-view-row-send{background-color:color-mix(in srgb,var(--sys-color-tertiary-container),transparent 50%)}.websocket-frame-view-row-error{background-color:var(--sys-color-surface-error);color:var(--sys-color-on-surface-error)}.websocket-frame-view devtools-toolbar{border-bottom:1px solid var(--sys-color-divider)}\n/*# sourceURL=${import.meta.resolve("./webSocketFrameView.css")} */\n`};const St={data:"Data",length:"Length",time:"Time",webSocketFrame:"Web Socket Frame",clearAll:"Clear All",filter:"Filter",noMessageSelected:"No message selected",selectMessageToBrowseItsContent:"Select message to browse its content.",copyMessageD:"Copy message...",copyMessage:"Copy message",clearAllL:"Clear all",sOpcodeSMask:"{PH1} (Opcode {PH2}, mask)",sOpcodeS:"{PH1} (Opcode {PH2})",continuationFrame:"Continuation Frame",textMessage:"Text Message",binaryMessage:"Binary Message",connectionCloseMessage:"Connection Close Message",pingMessage:"Ping Message",pongMessage:"Pong Message",all:"All",send:"Send",receive:"Receive",na:"N/A",filterUsingRegex:"Filter using regex (example: (web)?socket)"},yt=r.i18n.registerUIStrings("panels/network/ResourceWebSocketFrameView.ts",St),Tt=r.i18n.getLocalizedString.bind(void 0,yt),xt=r.i18n.getLazilyComputedLocalizedString.bind(void 0,yt);class Rt extends e.Widget.VBox{request;splitWidget;dataGrid;timeComparator;mainToolbar;clearAllButton;filterTypeCombobox;filterType;filterTextInput;filterRegex;frameEmptyWidget;selectedNode;currentSelectedNode;messageFilterSetting=t.Settings.Settings.instance().createSetting("network-web-socket-message-filter","");constructor(t){super(),this.registerRequiredCSS(Ct),this.element.classList.add("websocket-frame-view"),this.element.setAttribute("jslog",`${d.pane("web-socket-messages").track({resize:!0})}`),this.request=t,this.splitWidget=new e.SplitWidget.SplitWidget(!1,!0,"resource-web-socket-frame-split-view-state"),this.splitWidget.show(this.element);const r=[{id:"data",title:Tt(St.data),sortable:!1,weight:88},{id:"length",title:Tt(St.length),sortable:!1,align:"right",weight:5},{id:"time",title:Tt(St.time),sortable:!0,weight:7}];this.dataGrid=new c.SortableDataGrid.SortableDataGrid({displayName:Tt(St.webSocketFrame),columns:r,deleteCallback:void 0,refreshCallback:void 0}),this.dataGrid.setRowContextMenuCallback(function(e,t){const r=t,o=r.binaryView();o?o.addCopyToContextMenu(e,Tt(St.copyMessageD)):e.clipboardSection().appendItem(Tt(St.copyMessage),i.InspectorFrontendHost.InspectorFrontendHostInstance.copyText.bind(i.InspectorFrontendHost.InspectorFrontendHostInstance,r.data.data),{jslogContext:"copy"});e.footerSection().appendItem(Tt(St.clearAllL),this.clearFrames.bind(this),{jslogContext:"clear-all"})}.bind(this)),this.dataGrid.setEnableAutoScrollToBottom(!0),this.dataGrid.setCellClass("websocket-frame-view-td"),this.timeComparator=Ft,this.dataGrid.sortNodes(this.timeComparator,!1),this.dataGrid.markColumnAsSortedBy("time",c.DataGrid.Order.Ascending),this.dataGrid.addEventListener("SortingChanged",this.sortItems,this),this.dataGrid.setName("resource-web-socket-frame-view"),this.dataGrid.addEventListener("SelectedNode",(e=>{this.onFrameSelected(e)}),this),this.dataGrid.addEventListener("DeselectedNode",this.onFrameDeselected,this),this.mainToolbar=document.createElement("devtools-toolbar"),this.clearAllButton=new e.Toolbar.ToolbarButton(Tt(St.clearAll),"clear"),this.clearAllButton.addEventListener("Click",this.clearFrames,this),this.mainToolbar.appendToolbarItem(this.clearAllButton),this.filterTypeCombobox=new e.Toolbar.ToolbarComboBox(this.updateFilterSetting.bind(this),Tt(St.filter));for(const e of qt){const t=this.filterTypeCombobox.createOption(e.label(),e.name);this.filterTypeCombobox.addOption(t)}this.mainToolbar.appendToolbarItem(this.filterTypeCombobox),this.filterType=null;const o=Tt(St.filterUsingRegex);this.filterTextInput=new e.Toolbar.ToolbarFilter(o,.4),this.filterTextInput.addEventListener("TextChanged",this.updateFilterSetting,this);const s=this.messageFilterSetting.get();s&&this.filterTextInput.setValue(s),this.filterRegex=null,this.mainToolbar.appendToolbarItem(this.filterTextInput);const n=new e.Widget.VBox;n.element.appendChild(this.mainToolbar),this.dataGrid.asWidget().show(n.element),n.setMinimumSize(0,72),this.splitWidget.setMainWidget(n),this.frameEmptyWidget=new e.EmptyWidget.EmptyWidget(Tt(St.noMessageSelected),Tt(St.selectMessageToBrowseItsContent)),this.splitWidget.setSidebarWidget(this.frameEmptyWidget),this.selectedNode=null,s&&this.applyFilter(s)}static opCodeDescription(e,t){const i=It[e]||(()=>"");return Tt(t?St.sOpcodeSMask:St.sOpcodeS,{PH1:i(),PH2:e})}wasShown(){super.wasShown(),this.refresh(),this.request.addEventListener(n.NetworkRequest.Events.WEBSOCKET_FRAME_ADDED,this.frameAdded,this)}willHide(){this.request.removeEventListener(n.NetworkRequest.Events.WEBSOCKET_FRAME_ADDED,this.frameAdded,this)}frameAdded(e){const t=e.data;this.frameFilter(t)&&this.dataGrid.insertChild(new Lt(this.request.url(),t))}frameFilter(e){return(!this.filterType||e.type===this.filterType)&&(!this.filterRegex||this.filterRegex.test(e.text))}clearFrames(){Et.set(this.request,this.request.frames().length),this.refresh()}updateFilterSetting(){const e=this.filterTextInput.value();this.messageFilterSetting.set(e),this.applyFilter(e)}applyFilter(e){const t=this.filterTypeCombobox.selectedOption().value;if(e)try{this.filterRegex=new RegExp(e,"i")}catch{this.filterRegex=new RegExp(s.StringUtilities.escapeForRegExp(e),"i")}else this.filterRegex=null;this.filterType="all"===t?null:t,this.refresh()}async onFrameSelected(e){this.currentSelectedNode=e.data;const i=this.currentSelectedNode.dataText(),r=this.currentSelectedNode.binaryView();if(r)return void this.splitWidget.setSidebarWidget(r);const s=await o.JSONView.JSONView.createView(i);s?this.splitWidget.setSidebarWidget(s):this.splitWidget.setSidebarWidget(new o.ResourceSourceFrame.ResourceSourceFrame(R.StaticContentProvider.StaticContentProvider.fromString(this.request.url(),t.ResourceType.resourceTypes.WebSocket,i),""))}onFrameDeselected(){this.currentSelectedNode=null,this.splitWidget.setSidebarWidget(this.frameEmptyWidget)}refresh(){this.dataGrid.rootNode().removeChildren();const e=this.request.url();let t=this.request.frames();const i=Et.get(this.request)||0;t=t.slice(i),t=t.filter(this.frameFilter.bind(this)),t.forEach((t=>this.dataGrid.insertChild(new Lt(e,t))))}sortItems(){this.dataGrid.sortNodes(this.timeComparator,!this.dataGrid.isSortOrderAscending())}}const It=function(){const e=[];return e[0]=xt(St.continuationFrame),e[1]=xt(St.textMessage),e[2]=xt(St.binaryMessage),e[8]=xt(St.connectionCloseMessage),e[9]=xt(St.pingMessage),e[10]=xt(St.pongMessage),e}(),qt=[{name:"all",label:xt(St.all),jslogContext:"all"},{name:"send",label:xt(St.send),jslogContext:"send"},{name:"receive",label:xt(St.receive),jslogContext:"receive"}];class Lt extends c.SortableDataGrid.SortableDataGridNode{url;frame;isTextFrame;dataTextInternal;binaryViewInternal;constructor(t,i){let o=String(i.text.length);const a=new Date(1e3*i.time),l=("0"+a.getHours()).substr(-2)+":"+("0"+a.getMinutes()).substr(-2)+":"+("0"+a.getSeconds()).substr(-2)+"."+("00"+a.getMilliseconds()).substr(-3),d=document.createElement("div");e.UIUtils.createTextChild(d,l),e.Tooltip.Tooltip.install(d,a.toLocaleString());let c=i.text,h=Rt.opCodeDescription(i.opCode,i.mask);const u=1===i.opCode;i.type===n.NetworkRequest.WebSocketFrameType.Error?(h=c,o=Tt(St.na)):u?h=c:2===i.opCode?(o=r.ByteUtilities.bytesToString(s.StringUtilities.base64ToSize(i.text)),h=It[i.opCode]()):c=h,super({data:h,length:o,time:d}),this.url=t,this.frame=i,this.isTextFrame=u,this.dataTextInternal=c,this.binaryViewInternal=null}createCells(e){e.classList.toggle("websocket-frame-view-row-error",this.frame.type===n.NetworkRequest.WebSocketFrameType.Error),e.classList.toggle("websocket-frame-view-row-send",this.frame.type===n.NetworkRequest.WebSocketFrameType.Send),e.classList.toggle("websocket-frame-view-row-receive",this.frame.type===n.NetworkRequest.WebSocketFrameType.Receive),super.createCells(e)}nodeSelfHeight(){return 21}dataText(){return this.dataTextInternal}opCode(){return this.frame.opCode}binaryView(){return this.isTextFrame||this.frame.type===n.NetworkRequest.WebSocketFrameType.Error?null:(this.binaryViewInternal||this.dataTextInternal.length>0&&(this.binaryViewInternal=new V(R.StreamingContentData.StreamingContentData.from(new R.ContentData.ContentData(this.dataTextInternal,!0,"applicaiton/octet-stream")),s.DevToolsPath.EmptyUrlString,t.ResourceType.resourceTypes.WebSocket)),this.binaryViewInternal)}}function Ft(e,t){return e.frame.time-t.frame.time}const Et=new WeakMap;var Ht=Object.freeze({__proto__:null,ResourceWebSocketFrameNode:Lt,ResourceWebSocketFrameView:Rt,opCodeDescriptions:It});const Pt={headers:"Headers",payload:"Payload",messages:"Messages",websocketMessages:"WebSocket messages",eventstream:"EventStream",preview:"Preview",responsePreview:"Response preview",signedexchangeError:"SignedExchange error",response:"Response",rawResponseData:"Raw response data",initiator:"Initiator",requestInitiatorCallStack:"Request initiator call stack",timing:"Timing",requestAndResponseTimeline:"Request and response timeline",thirdPartyPhaseout:"Cookies blocked due to third-party cookie phaseout.",trustTokens:"Private state tokens",trustTokenOperationDetails:"Private State Token operation details",cookies:"Cookies",requestAndResponseCookies:"Request and response cookies",containsOverriddenHeaders:"This response contains headers which are overridden by DevTools",responseIsOverridden:"This response is overridden by DevTools"},Mt=r.i18n.registerUIStrings("panels/network/NetworkItemView.ts",Pt),At=r.i18n.getLocalizedString.bind(void 0,Mt);class Nt extends e.TabbedPane.TabbedPane{requestInternal;resourceViewTabSetting;headersViewComponent;payloadView;responseView;cookiesView;initialTab;constructor(i,r,o){super(),this.requestInternal=i,this.element.classList.add("network-item-view"),this.headerElement().setAttribute("jslog",`${d.toolbar("request-details").track({keydown:"ArrowUp|ArrowLeft|ArrowDown|ArrowRight|Enter|Space"})}`);if(this.resourceViewTabSetting=t.Settings.Settings.instance().createSetting("resource-view-tab","headers-component"),this.headersViewComponent=new y.RequestHeadersView.RequestHeadersView(i),this.appendTab("headers-component",At(Pt.headers),S.LegacyWrapper.legacyWrapper(e.Widget.VBox,this.headersViewComponent),At(Pt.headers)),this.requestInternal.hasOverriddenHeaders()){const e=document.createElement("div");e.className="status-dot",e.title=At(Pt.containsOverriddenHeaders),this.setSuffixElement("headers-component",e)}if(this.payloadView=null,this.maybeAppendPayloadPanel(),this.addEventListener(e.TabbedPane.Events.TabSelected,this.tabSelected,this),i.resourceType()===t.ResourceType.resourceTypes.WebSocket){const e=new Rt(i);this.appendTab("web-socket-frames",At(Pt.messages),e,At(Pt.websocketMessages))}else if("text/event-stream"===i.mimeType)this.appendTab("eventSource",At(Pt.eventstream),new Q(i)),this.responseView=new Ye(i),this.appendTab("response",At(Pt.response),this.responseView,At(Pt.rawResponseData));else{this.responseView=new Ye(i);const t=new ht(i);this.appendTab("preview",At(Pt.preview),t,At(Pt.responsePreview));const r=i.signedExchangeInfo();if(r?.errors?.length){const t=new k.Icon.Icon;t.data={iconName:"cross-circle-filled",color:"var(--icon-error)",width:"14px",height:"14px"},e.Tooltip.Tooltip.install(t,At(Pt.signedexchangeError)),this.setTabIcon("preview",t)}if(this.appendTab("response",At(Pt.response),this.responseView,At(Pt.rawResponseData)),this.requestInternal.hasOverriddenContent){const e=document.createElement("div");e.className="status-dot",e.title=At(Pt.responseIsOverridden),this.setSuffixElement("response",e)}}C.Runtime.conditions.reactNativeExpoNetworkPanel()||this.appendTab("initiator",At(Pt.initiator),new He(i),At(Pt.requestInitiatorCallStack)),this.appendTab("timing",At(Pt.timing),new kt(i,r),At(Pt.requestAndResponseTimeline)),i.trustTokenParams()&&this.appendTab("trust-tokens",At(Pt.trustTokens),S.LegacyWrapper.legacyWrapper(e.Widget.VBox,new y.RequestTrustTokensView.RequestTrustTokensView(i)),At(Pt.trustTokenOperationDetails)),this.cookiesView=null,this.initialTab=o||this.resourceViewTabSetting.get(),this.setAutoSelectFirstItemOnShow(!1)}wasShown(){super.wasShown(),this.requestInternal.addEventListener(n.NetworkRequest.Events.REQUEST_HEADERS_CHANGED,this.requestHeadersChanged,this),this.requestInternal.addEventListener(n.NetworkRequest.Events.RESPONSE_HEADERS_CHANGED,this.maybeAppendCookiesPanel,this),this.requestInternal.addEventListener(n.NetworkRequest.Events.TRUST_TOKEN_RESULT_ADDED,this.maybeShowErrorIconInTrustTokenTabHeader,this),this.maybeAppendCookiesPanel(),this.maybeShowErrorIconInTrustTokenTabHeader(),this.initialTab&&(this.selectTabInternal(this.initialTab),this.initialTab=void 0)}willHide(){this.requestInternal.removeEventListener(n.NetworkRequest.Events.REQUEST_HEADERS_CHANGED,this.requestHeadersChanged,this),this.requestInternal.removeEventListener(n.NetworkRequest.Events.RESPONSE_HEADERS_CHANGED,this.maybeAppendCookiesPanel,this),this.requestInternal.removeEventListener(n.NetworkRequest.Events.TRUST_TOKEN_RESULT_ADDED,this.maybeShowErrorIconInTrustTokenTabHeader,this)}async requestHeadersChanged(){this.maybeAppendCookiesPanel(),this.maybeAppendPayloadPanel()}maybeAppendCookiesPanel(){const e=this.requestInternal.hasRequestCookies()||this.requestInternal.responseCookies.length>0;if(console.assert(e||!this.cookiesView,"Cookies were introduced in headers and then removed!"),e&&!this.cookiesView&&(this.cookiesView=new xe(this.requestInternal),this.appendTab("cookies",At(Pt.cookies),this.cookiesView,At(Pt.requestAndResponseCookies))),this.requestInternal.hasThirdPartyCookiePhaseoutIssue()){const e=new k.Icon.Icon;e.data={iconName:"warning-filled",color:"var(--icon-warning)",width:"14px",height:"14px"},e.title=At(Pt.thirdPartyPhaseout),this.setTrailingTabIcon("cookies",e)}}async maybeAppendPayloadPanel(){this.hasTab("payload")||(this.requestInternal.queryParameters||await this.requestInternal.requestFormData())&&(this.payloadView=new Oe(this.requestInternal),this.appendTab("payload",At(Pt.payload),this.payloadView,At(Pt.payload),void 0,void 0,void 0,1))}maybeShowErrorIconInTrustTokenTabHeader(){const e=this.requestInternal.trustTokenOperationDoneEvent();if(e&&!y.RequestTrustTokensView.statusConsideredSuccess(e.status)){const e=new k.Icon.Icon;e.data={iconName:"cross-circle-filled",color:"var(--icon-error)",width:"14px",height:"14px"},this.setTabIcon("trust-tokens",e)}}selectTabInternal(e){this.selectTab(e)||window.setTimeout((()=>{this.selectTab(e)||this.selectTab("headers-component")}),0)}tabSelected(e){e.data.isUserGesture&&this.resourceViewTabSetting.set(e.data.tabId)}request(){return this.requestInternal}async revealResponseBody(e){this.selectTabInternal("response"),await(this.responseView?.revealPosition(e))}revealHeader(e,t){this.selectTabInternal("headers-component"),this.headersViewComponent.revealHeader(e,t)}getHeadersViewComponent(){return this.headersViewComponent}}var Ut=Object.freeze({__proto__:null,NetworkItemView:Nt});const Bt={sLatencySDownloadSTotal:"{PH1} latency, {PH2} download ({PH3} total)",sLatency:"{PH1} latency",sDownload:"{PH1} download",sFromServiceworker:"{PH1} (from `ServiceWorker`)",sFromCache:"{PH1} (from cache)"},Vt=r.i18n.registerUIStrings("panels/network/NetworkTimeCalculator.ts",Bt),Wt=r.i18n.getLocalizedString.bind(void 0,Vt);class Ot{minimum;maximum;constructor(e,t){this.minimum=e,this.maximum=t}equals(e){return this.minimum===e.minimum&&this.maximum===e.maximum}}class Dt extends t.ObjectWrapper.ObjectWrapper{startAtZero;minimumBoundaryInternal;maximumBoundaryInternal;boundryChangedEventThrottler;window;workingArea;constructor(e){super(),this.startAtZero=e,this.minimumBoundaryInternal=-1,this.maximumBoundaryInternal=-1,this.boundryChangedEventThrottler=new t.Throttler.Throttler(0),this.window=null}setWindow(e){this.window=e,this.boundaryChanged()}computePosition(e){return(e-this.minimumBoundary())/this.boundarySpan()*(this.workingArea||0)}formatValue(e,t){return r.TimeUtilities.secondsToString(e,Boolean(t))}minimumBoundary(){return this.window?this.window.minimum:this.minimumBoundaryInternal}zeroTime(){return this.minimumBoundaryInternal}maximumBoundary(){return this.window?this.window.maximum:this.maximumBoundaryInternal}boundary(){return new Ot(this.minimumBoundary(),this.maximumBoundary())}boundarySpan(){return this.maximumBoundary()-this.minimumBoundary()}reset(){this.minimumBoundaryInternal=-1,this.maximumBoundaryInternal=-1,this.boundaryChanged()}value(){return 0}setDisplayWidth(e){this.workingArea=e}computeBarGraphPercentages(e){let t,i,r;return t=-1!==e.startTime?(e.startTime-this.minimumBoundary())/this.boundarySpan()*100:0,i=-1!==e.responseReceivedTime?(e.responseReceivedTime-this.minimumBoundary())/this.boundarySpan()*100:this.startAtZero?t:100,r=-1!==e.endTime?(e.endTime-this.minimumBoundary())/this.boundarySpan()*100:this.startAtZero?i:100,this.startAtZero&&(r-=t,i-=t,t=0),{start:t,middle:i,end:r}}boundaryChanged(){this.boundryChangedEventThrottler.schedule((async()=>{this.dispatchEventToListeners("BoundariesChanged")}))}updateBoundariesForEventTime(e){-1===e||this.startAtZero||(void 0===this.maximumBoundaryInternal||e>this.maximumBoundaryInternal)&&(this.maximumBoundaryInternal=e,this.boundaryChanged())}computeBarGraphLabels(e){let t="";-1!==e.responseReceivedTime&&-1!==e.endTime&&(t=r.TimeUtilities.secondsToString(e.endTime-e.responseReceivedTime));const i=e.latency>0,o=i?r.TimeUtilities.secondsToString(e.latency):t;if(e.timing)return{left:o,right:t,tooltip:void 0};let s;if(i&&t){const i=r.TimeUtilities.secondsToString(e.duration);s=Wt(Bt.sLatencySDownloadSTotal,{PH1:o,PH2:t,PH3:i})}else i?s=Wt(Bt.sLatency,{PH1:o}):t&&(s=Wt(Bt.sDownload,{PH1:t}));return e.fetchedViaServiceWorker?s=Wt(Bt.sFromServiceworker,{PH1:String(s)}):e.cached()&&(s=Wt(Bt.sFromCache,{PH1:String(s)})),{left:o,right:t,tooltip:s}}updateBoundaries(e){const t=this.lowerBound(e),i=this.upperBound(e);let r=!1;(-1!==t||this.startAtZero)&&(r=this.extendBoundariesToIncludeTimestamp(this.startAtZero?0:t)),-1!==i&&(r=this.extendBoundariesToIncludeTimestamp(i)||r),r&&this.boundaryChanged()}extendBoundariesToIncludeTimestamp(e){const t=this.minimumBoundaryInternal,i=this.maximumBoundaryInternal,r=Gt;return-1===this.minimumBoundaryInternal||-1===this.maximumBoundaryInternal?(this.minimumBoundaryInternal=e,this.maximumBoundaryInternal=e+r):(this.minimumBoundaryInternal=Math.min(e,this.minimumBoundaryInternal),this.maximumBoundaryInternal=Math.max(e,this.minimumBoundaryInternal+r,this.maximumBoundaryInternal)),t!==this.minimumBoundaryInternal||i!==this.maximumBoundaryInternal}lowerBound(e){return 0}upperBound(e){return 0}}const Gt=.1;class jt extends Dt{constructor(){super(!1)}formatValue(e,t){return r.TimeUtilities.secondsToString(e-this.zeroTime(),Boolean(t))}lowerBound(e){return e.issueTime()}upperBound(e){return e.endTime}}class zt extends Dt{constructor(){super(!0)}formatValue(e,t){return r.TimeUtilities.secondsToString(e,Boolean(t))}upperBound(e){return e.duration}}var _t=Object.freeze({__proto__:null,NetworkTimeBoundary:Ot,NetworkTimeCalculator:Dt,NetworkTransferDurationCalculator:zt,NetworkTransferTimeCalculator:jt});class Kt{parentView;activeGroups;constructor(e){this.parentView=e,this.activeGroups=new Map}groupNodeForRequest(e){const t=n.ResourceTreeModel.ResourceTreeModel.frameForRequest(e);if(!t||t.isOutermostFrame())return null;let i=this.activeGroups.get(t);return i||(i=new $t(this.parentView,t),this.activeGroups.set(t,i),i)}reset(){this.activeGroups.clear()}}class $t extends be{frame;constructor(e,t){super(e),this.frame=t}displayName(){return new t.ParsedURL.ParsedURL(this.frame.url).domain()||this.frame.name||"<iframe>"}renderCell(t,i){super.renderCell(t,i);if(0===this.dataGrid.indexOfVisibleColumn(i)){const r=this.displayName();t.appendChild(k.Icon.create("frame","network-frame-group-icon")),e.UIUtils.createTextChild(t,r),e.Tooltip.Tooltip.install(t,r),this.setCellAccessibleName(t.textContent||"",t,i)}}}var Xt=Object.freeze({__proto__:null,FrameGroupNode:$t,NetworkFrameGrouper:Kt}),Jt={cssText:`.network-log-grid.data-grid{border:none!important;flex:auto}.network-log-grid.data-grid.no-selection:focus-visible{border:none!important}#network-container{overflow:hidden}#network-container.grid-focused.no-node-selected:focus-within{border:1px solid var(--sys-color-state-focus-ring)}.network-summary-bar{flex:0 0 27px;line-height:27px;padding-left:5px;background-color:var(--sys-color-cdt-base-container);border-top:1px solid var(--sys-color-divider);white-space:nowrap;text-overflow:ellipsis;overflow:hidden;user-select:text}.panel.network devtools-toolbar.network-summary-bar{border-bottom:0}.network-summary-bar dt-icon-label{margin-right:6px}.network-summary-bar > *{flex:none}.network-log-grid.data-grid tbody{background:transparent}.network-log-grid.data-grid td{height:41px;border-left:1px solid var(--sys-color-divider);vertical-align:middle}.network-log-grid.data-grid .corner{display:none}.network-log-grid.data-grid.small td{height:21px}.network-log-grid.data-grid th{border-bottom:none}.network-waterfall-header,\n.network-log-grid.data-grid thead th{border-bottom:1px solid var(--sys-color-divider);border-left:1px solid var(--sys-color-divider)}.network-waterfall-header,\n.network-log-grid.data-grid thead{height:31px;background-color:var(--sys-color-surface1)}.network-waterfall-header.small,\n.network-log-grid.data-grid.small thead{height:27px}.network-log-grid.data-grid select{appearance:none;border:none;width:100%;color:inherit}.network-log-grid.data-grid .waterfall-column{padding:1px 0}.network-log-grid.data-grid .waterfall-column .sort-order-icon-container{right:15px;pointer-events:none}.network-log-grid.data-grid th.sortable:active{background-image:none!important}.network-cell-subtitle{font-weight:normal;color:var(--sys-color-token-subtle)}.network-badge{margin-right:4px}.status-column .devtools-link{color:inherit}.initiator-column .text-button.devtools-link,\n.initiator-column .text-button.devtools-link:focus-visible{color:inherit;background-color:transparent;outline-offset:0;height:16px}.network-error-row,\n.network-error-row .network-cell-subtitle{color:var(--sys-color-error)!important}.network-warning-row,\n.network-warning-row .network-cell-subtitle{color:var(--sys-color-yellow)}.network-log-grid.data-grid tr.selected.network-error-row,\n.network-log-grid.data-grid tr.selected.network-error-row .network-cell-subtitle,\n.network-log-grid.data-grid tr.selected.network-error-row .network-dim-cell{color:var(--sys-color-error)}.network-log-grid.data-grid tr.selected.network-warning-row,\n.network-log-grid.data-grid tr.selected.network-warning-row .network-cell-subtitle,\n.network-log-grid.data-grid tr.selected.network-warning-row .network-dim-cell{color:var(--sys-color-yellow)}.network-log-grid.data-grid:focus-within tr.selected.network-error-row,\n.network-log-grid.data-grid:focus-within tr.selected.network-error-row .devtools-link,\n.network-log-grid.data-grid:focus-within tr.selected.network-error-row .network-cell-subtitle,\n.network-log-grid.data-grid:focus-within tr.selected.network-error-row .network-dim-cell{color:var(--sys-color-error)}.network-log-grid.data-grid:focus-within tr.selected.network-warning-row,\n.network-log-grid.data-grid:focus-within tr.selected.network-warning-row .devtools-link,\n.network-log-grid.data-grid:focus-within tr.selected.network-warning-row .network-cell-subtitle,\n.network-log-grid.data-grid:focus-within tr.selected.network-warning-row .network-dim-cell{color:var(--sys-color-yellow)}.network-log-grid.data-grid tr.selected,\n.network-log-grid.data-grid tr.selected .network-cell-subtitle,\n.network-log-grid.data-grid tr.selected .network-dim-cell{color:inherit}.network-log-grid.data-grid:focus tr.selected,\n.network-log-grid.data-grid:focus tr.selected .network-cell-subtitle,\n.network-log-grid.data-grid:focus tr.selected .network-dim-cell{color:var(--sys-color-on-tonal-container)}.network-header-subtitle{color:var(--sys-color-token-subtle)}.network-log-grid.data-grid.small .network-cell-subtitle,\n.network-log-grid.data-grid.small .network-header-subtitle{display:none}.network-log-grid.data-grid.small .network-cell-subtitle.always-visible{display:inline;margin-left:4px}.network-log-grid tr.highlighted-row{animation:network-row-highlight-fadeout 2s 0s}@keyframes network-row-highlight-fadeout{from{background-color:var(--sys-color-yellow-container)}to{background-color:transparent}}.network-log-grid.data-grid .icon.image{position:relative}.network-log-grid.data-grid .icon{float:left;width:32px;height:32px;margin-top:1px;margin-right:3px}.network-log-grid.data-grid:focus-within .network-error-row.selected div.icon:not(.image){filter:none}.network-log-grid.data-grid .network-error-row.data-grid-data-grid-node img.icon,\n.network-log-grid.data-grid .network-error-row.data-grid-data-grid-node.selected img.icon{filter:brightness(0) saturate(100%) invert(35%) sepia(76%) saturate(1413%) hue-rotate(338deg) brightness(92%) contrast(103%)}.data-grid-data-grid-node devtools-icon[name="arrow-up-down-circle"],\n.network-log-grid.data-grid.small .icon{width:16px;height:16px;vertical-align:sub}.data-grid-data-grid-node .ai-button-container{display:none;float:right}.data-grid-data-grid-node:hover .ai-button-container{display:inline-flex}.image-network-icon-preview{inset:0;margin:auto;overflow:hidden}.network-log-grid.data-grid .image-network-icon-preview{position:absolute;max-width:18px;max-height:21px;min-width:1px;min-height:1px}.network-log-grid.data-grid.small .image-network-icon-preview{left:2px;right:2px;max-width:10px;max-height:12px}.network-log-grid.data-grid .trailing-link-icon{padding-left:0.5ex}.network-dim-cell{color:var(--sys-color-token-subtle)}.network-frame-divider{width:2px;background-color:var(--network-frame-divider-color);z-index:10;visibility:hidden}#network-container.has-waterfall .data-container{overflow:hidden}.network-log-grid.data-grid .resources-dividers{z-index:0}.network-log-grid.data-grid .resources-dividers-label-bar{background-color:transparent;border:none;height:30px;pointer-events:none}.network-log-grid.data-grid span.separator-in-cell{user-select:none;min-width:1ex;display:inline-block}.network-status-pane{position:absolute;inset:0;background-color:var(--sys-color-cdt-base-container);z-index:500;overflow:auto}.network-waterfall-header{position:absolute;border-left:0;width:100%;display:table;z-index:200;& > div.hover-layer{display:none;background-color:var(--sys-color-state-hover-on-subtle);position:absolute;top:0;left:0;width:100%;height:100%}&:hover > div.hover-layer{display:block}}.network-waterfall-header div{display:table-cell;line-height:14px;margin:auto 0;vertical-align:middle;text-align:left;font-weight:normal;padding:0 4px}.network-waterfall-header .sort-order-icon-container{position:absolute;top:1px;right:0;bottom:1px;display:flex;align-items:center}.network-waterfall-header .sort-order-icon{align-items:center;margin-right:4px;margin-bottom:-2px}.network-frame-group-icon{display:inline-block;margin:-7px 1px;vertical-align:baseline}.network-frame-group-badge{margin-right:4px}.network-override-marker{position:relative;float:left}.network-override-marker::before{background-color:var(--sys-color-purple-bright);content:var(--image-file-empty);width:6px;height:6px;border-radius:50%;outline:1px solid var(--icon-gap-toolbar);left:8px;position:absolute;top:10px;z-index:1}@media (forced-colors: active){.initiator-column .devtools-link{color:linktext}.network-log-grid.data-grid tbody tr.revealed.selected,\n .network-log-grid.data-grid:focus-within tbody tr.revealed.selected,\n .network-log-grid.data-grid:focus-within tr.selected .network-dim-cell,\n .network-log-grid.data-grid tr.selected .network-dim-cell,\n .network-log-grid.data-grid:focus-within tr.selected .initiator-column .devtools-link,\n .network-log-grid.data-grid tr.selected .initiator-column .devtools-link,\n .network-waterfall-header:hover *{color:HighlightText}.network-log-grid{--color-grid-default:canvas;--color-grid-stripe:canvas;--color-grid-hovered:Highlight;--color-grid-selected:ButtonText;--color-grid-focus-selected:Highlight}#network-container.no-node-selected:focus-within{forced-color-adjust:none;border-color:Highlight;background-color:canvas!important}.network-waterfall-header:hover{forced-color-adjust:none;background-color:Highlight!important;& > div.hover-layer{display:none}}.network-waterfall-header.small,\n .network-log-grid.data-grid.small thead .network-waterfall-header,\n .network-log-grid.data-grid thead{background-color:canvas}.network-waterfall-header .sort-order-icon-container devtools-icon{background-color:inherit}.network-waterfall-header:hover .sort-order-icon-container devtools-icon{color:HighlightText}}\n/*# sourceURL=${import.meta.resolve("./networkLogView.css")} */\n`},Yt={cssText:`.custom-headers-list{height:272px;width:var(--sys-size-29);margin:0 var(--sys-size-8)}.header{margin:var(--sys-size-5) var(--sys-size-5) var(--sys-size-5) var(--sys-size-8);padding-top:var(--sys-size-3);font:var(--sys-typescale-body2-medium);flex:none}.custom-headers-header{padding:2px}.custom-headers-list-item{padding-left:5px}.editor-container{padding:5px 0 0 5px}.add-button{margin:var(--sys-size-6) auto var(--sys-size-8) var(--sys-size-8);align-items:flex-start}\n/*# sourceURL=${import.meta.resolve("./networkManageCustomHeadersView.css")} */\n`};const Qt={manageHeaderColumns:"Manage Header Columns",noCustomHeaders:"No custom headers",addCustomHeader:"Add custom header…",headerName:"Header Name"},Zt=r.i18n.registerUIStrings("panels/network/NetworkManageCustomHeadersView.ts",Qt),ei=r.i18n.getLocalizedString.bind(void 0,Zt);class ti extends e.Widget.VBox{list;columnConfigs;addHeaderColumnCallback;changeHeaderColumnCallback;removeHeaderColumnCallback;editor;constructor(t,i,r,o){super(!0),this.registerRequiredCSS(Yt),this.contentElement.createChild("div","header").textContent=ei(Qt.manageHeaderColumns),this.list=new e.ListWidget.ListWidget(this),this.list.registerRequiredCSS(Yt),this.list.element.classList.add("custom-headers-list");const s=document.createElement("div");s.classList.add("custom-headers-list-list-empty"),s.textContent=ei(Qt.noCustomHeaders),this.list.setEmptyPlaceholder(s),this.list.show(this.contentElement),this.contentElement.appendChild(e.UIUtils.createTextButton(ei(Qt.addCustomHeader),this.addButtonClicked.bind(this),{className:"add-button",jslogContext:"network.add-custom-header"})),this.columnConfigs=new Map,t.forEach((e=>this.columnConfigs.set(e.title.toLowerCase(),e))),this.addHeaderColumnCallback=i,this.changeHeaderColumnCallback=r,this.removeHeaderColumnCallback=o,this.contentElement.tabIndex=0}wasShown(){super.wasShown(),this.headersUpdated()}headersUpdated(){this.list.clear(),this.columnConfigs.forEach((e=>this.list.appendItem({header:e.title},e.editable)))}addButtonClicked(){this.list.addNewItem(this.columnConfigs.size,{header:""})}renderItem(t,i){const r=document.createElement("div");r.classList.add("custom-headers-list-item");const o=r.createChild("div","custom-header-name");return o.textContent=t.header,e.Tooltip.Tooltip.install(o,t.header),r}removeItemRequested(e,t){this.removeHeaderColumnCallback(e.header),this.columnConfigs.delete(e.header.toLowerCase()),this.headersUpdated()}commitEdit(e,t,i){const r=t.control("header").value.trim();let o;o=i?this.addHeaderColumnCallback(r):this.changeHeaderColumnCallback(e.header,r),o&&!i&&this.columnConfigs.delete(e.header.toLowerCase()),o&&this.columnConfigs.set(r.toLowerCase(),{title:r,editable:!0}),this.headersUpdated()}beginEdit(e){const t=this.createEditor();return t.control("header").value=e.header,t}createEditor(){if(this.editor)return this.editor;const t=new e.ListWidget.Editor;this.editor=t;const i=t.contentElement();i.createChild("div","custom-headers-edit-row").createChild("div","custom-headers-header").textContent=ei(Qt.headerName);return i.createChild("div","custom-headers-edit-row").createChild("div","custom-headers-header").appendChild(t.createInput("header","text","x-custom-header",function(e,i,r){let o=!0;const s=t.control("header").value.trim().toLowerCase();this.columnConfigs.has(s)&&e.header!==s&&(o=!1);return{valid:o,errorMessage:void 0}}.bind(this))),t}}var ii=Object.freeze({__proto__:null,NetworkManageCustomHeadersView:ti});class ri extends v.TimelineOverviewPane.TimelineOverviewBase{selectedFilmStripTime;numBands;highlightedRequest;loadEvents;domContentLoadedEvents;nextBand;bandMap;requestsList;requestsSet;span;lastBoundary;constructor(){super(),this.selectedFilmStripTime=-1,this.element.classList.add("network-overview"),this.numBands=1,this.highlightedRequest=null,n.TargetManager.TargetManager.instance().addModelListener(n.ResourceTreeModel.ResourceTreeModel,n.ResourceTreeModel.Events.Load,this.loadEventFired,this,{scoped:!0}),n.TargetManager.TargetManager.instance().addModelListener(n.ResourceTreeModel.ResourceTreeModel,n.ResourceTreeModel.Events.DOMContentLoaded,this.domContentLoadedEventFired,this,{scoped:!0}),this.reset()}setHighlightedRequest(e){this.highlightedRequest=e,this.scheduleUpdate()}selectFilmStripFrame(e){this.selectedFilmStripTime=e,this.scheduleUpdate()}clearFilmStripFrame(){this.selectedFilmStripTime=-1,this.scheduleUpdate()}loadEventFired(e){const t=e.data.loadTime;t&&this.loadEvents.push(1e3*t),this.scheduleUpdate()}domContentLoadedEventFired(e){const{data:t}=e;t&&this.domContentLoadedEvents.push(1e3*t),this.scheduleUpdate()}bandId(e){if(!e||"0"===e)return-1;if(this.bandMap.has(e))return this.bandMap.get(e);const t=this.nextBand++;return this.bandMap.set(e,t),t}updateRequest(e){this.requestsSet.has(e)||(this.requestsSet.add(e),this.requestsList.push(e)),this.scheduleUpdate()}wasShown(){this.onResize()}calculator(){return super.calculator()}onResize(){const e=this.element.offsetWidth,t=this.element.offsetHeight;this.calculator().setDisplayWidth(e),this.resetCanvas();const i=(t-ni-1)/si-1|0;this.numBands=i>0?i:1,this.scheduleUpdate()}reset(){this.span=1,this.lastBoundary=null,this.nextBand=0,this.bandMap=new Map,this.requestsList=[],this.requestsSet=new Set,this.loadEvents=[],this.domContentLoadedEvents=[],this.resetCanvas()}scheduleUpdate(){this.isShowing()&&E.write("NetworkOverview.render",this.update.bind(this))}update(){const e=this.calculator(),t=new Ot(e.minimumBoundary(),e.maximumBoundary());if(!this.lastBoundary||!t.equals(this.lastBoundary)){const t=e.boundarySpan();for(;this.span<t;)this.span*=1.25;e.setBounds(e.minimumBoundary(),P.Types.Timing.Milli(e.minimumBoundary()+this.span)),this.lastBoundary=new Ot(e.minimumBoundary(),e.maximumBoundary())}const i=this.context(),r=new Map,o=ni;function s(t){const s=r.get(t);if(!s)return;const n=s.length;i.beginPath(),i.strokeStyle=H.ThemeSupport.instance().getComputedValue("--color-background-opacity-80"),i.lineWidth=li,i.fillStyle=H.ThemeSupport.instance().getComputedValue(oi[t]);for(let t=0;t<n;){const r=s[t++]*si+o,n=s[t++];let a=s[t++];a===Number.MAX_VALUE&&(a=e.maximumBoundary());const l=e.computePosition(P.Types.Timing.Milli(n)),d=e.computePosition(P.Types.Timing.Milli(a))+1;i.fillRect(l,r,Math.max(d-l,ai),si),i.strokeRect(l,r,Math.max(d-l,ai),si)}}function n(e,t,i,o){let s=r.get(e);s||(s=[],r.set(e,s)),s.push(t,i,o)}const a=this.requestsList,l=a.length;for(let e=0;e<l;++e){const t=a[e],i=this.bandId(t.connectionId),r=-1===i?0:i%this.numBands+1,o=kt.calculateRequestTimeRanges(t,this.calculator().minimumBoundary());for(let e=0;e<o.length;++e){const t=o[e].name;-1===i&&"total"!==t||n(t,r,1e3*o[e].start,1e3*o[e].end)}}if(i.clearRect(0,0,this.width(),this.height()),i.save(),i.scale(window.devicePixelRatio,window.devicePixelRatio),i.lineWidth=2,s("total"),s("blocking"),s("connecting"),s("serviceworker"),s("serviceworker-preparation"),s("serviceworker-respondwith"),s("push"),s("proxy"),s("dns"),s("ssl"),s("sending"),s("waiting"),s("receiving"),this.highlightedRequest){const t=5,r=2,s=this.highlightedRequest,n=this.bandId(s.connectionId),a=(-1===n?0:n%this.numBands+1)*si+o,l=kt.calculateRequestTimeRanges(s,this.calculator().minimumBoundary());i.fillStyle=H.ThemeSupport.instance().getComputedValue("--sys-color-tonal-container");const d=P.Types.Timing.Milli(1e3*l[0].start),c=P.Types.Timing.Milli(1e3*l[0].end);i.fillRect(e.computePosition(d)-r,a-t/2-r,e.computePosition(c)-e.computePosition(d)+1+2*r,t*r);for(let r=0;r<l.length;++r){const o=l[r].name;if(-1!==n||"total"===o){i.beginPath(),i.strokeStyle=H.ThemeSupport.instance().getComputedValue(oi[o]),i.lineWidth=t;const s=P.Types.Timing.Milli(1e3*l[r].start),n=P.Types.Timing.Milli(1e3*l[r].end);i.moveTo(Number(e.computePosition(s))-0,a),i.lineTo(Number(e.computePosition(n))+1,a),i.stroke()}}}const d=this.element.offsetHeight;i.lineWidth=1,i.beginPath(),i.strokeStyle=H.ThemeSupport.instance().getComputedValue(Ii.getDCLEventColor());for(let t=this.domContentLoadedEvents.length-1;t>=0;--t){const r=e.computePosition(P.Types.Timing.Milli(this.domContentLoadedEvents[t])),o=Math.round(r)+.5;i.moveTo(o,0),i.lineTo(o,d)}i.stroke(),i.beginPath(),i.strokeStyle=H.ThemeSupport.instance().getComputedValue(Ii.getLoadEventColor());for(let t=this.loadEvents.length-1;t>=0;--t){const r=e.computePosition(P.Types.Timing.Milli(this.loadEvents[t])),o=Math.round(r)+.5;i.moveTo(o,0),i.lineTo(o,d)}if(i.stroke(),-1!==this.selectedFilmStripTime){i.lineWidth=2,i.beginPath(),i.strokeStyle=H.ThemeSupport.instance().getComputedValue("--network-frame-divider-color");const t=P.Types.Timing.Milli(this.selectedFilmStripTime),r=Math.round(e.computePosition(t));i.moveTo(r,0),i.lineTo(r,d),i.stroke()}i.restore()}}const oi={total:"--network-overview-total",blocking:"--network-overview-blocking",connecting:"--network-overview-connecting",serviceworker:"--network-overview-service-worker","serviceworker-preparation":"--network-overview-service-worker","serviceworker-respondwith":"--network-overview-service-worker-respond-with",push:"--network-overview-push",proxy:"--override-network-overview-proxy",dns:"--network-overview-dns",ssl:"--network-overview-ssl",sending:"--override-network-overview-sending",waiting:"--network-overview-waiting",receiving:"--network-overview-receiving",queueing:"--network-overview-queueing"},si=3,ni=5,ai=10,li=1;var di=Object.freeze({__proto__:null,NetworkOverview:ri,RequestTimeRangeNameToColor:oi}),ci={cssText:`.network-waterfall-v-scroll{position:absolute;top:0;right:0;bottom:0;overflow-x:hidden;margin-top:31px;z-index:200}.theme-with-dark-background .network-waterfall-v-scroll{background:rgb(0 0 0/1%)}.network-waterfall-v-scroll.small{margin-top:27px}.network-waterfall-v-scroll-content{width:15px;pointer-events:none}\n/*# sourceURL=${import.meta.resolve("./networkWaterfallColumn.css")} */\n`};class hi extends e.Widget.VBox{canvas;canvasPosition;leftPadding;fontSize;rightPadding;scrollTop;headerHeight;calculator;rawRowHeight;rowHeight;offsetWidth;offsetHeight;startTime;endTime;popoverHelper;nodes;hoveredNode;eventDividers;styleForTimeRangeName;styleForWaitingResourceType;styleForDownloadingResourceType;wiskerStyle;hoverDetailsStyle;pathForStyle;textLayers;constructor(t){super(!1),this.registerRequiredCSS(ci),this.canvas=this.contentElement.createChild("canvas"),this.canvas.tabIndex=-1,this.setDefaultFocusedElement(this.canvas),this.canvasPosition=this.canvas.getBoundingClientRect(),this.leftPadding=5,this.fontSize=10,this.rightPadding=0,this.scrollTop=0,this.headerHeight=0,this.calculator=t,this.rawRowHeight=0,this.rowHeight=0,this.offsetWidth=0,this.offsetHeight=0,this.startTime=this.calculator.minimumBoundary(),this.endTime=this.calculator.maximumBoundary(),this.popoverHelper=new e.PopoverHelper.PopoverHelper(this.element,this.getPopoverRequest.bind(this),"network.timing"),this.popoverHelper.setTimeout(300,300),this.nodes=[],this.hoveredNode=null,this.eventDividers=new Map,this.element.addEventListener("mousemove",this.onMouseMove.bind(this),!0),this.element.addEventListener("mouseleave",(e=>this.setHoveredNode(null,!1)),!0),this.element.addEventListener("click",this.onClick.bind(this),!0),this.styleForTimeRangeName=hi.buildRequestTimeRangeStyle();const i=hi.buildResourceTypeStyle();this.styleForWaitingResourceType=i[0],this.styleForDownloadingResourceType=i[1];const r=H.ThemeSupport.instance().getComputedValue("--sys-color-state-disabled");this.wiskerStyle={borderColor:r,lineWidth:1,fillStyle:void 0},this.hoverDetailsStyle={fillStyle:r,lineWidth:1,borderColor:r},this.pathForStyle=new Map,this.textLayers=[]}static buildRequestTimeRangeStyle(){const e=new Map;return e.set("connecting",{fillStyle:oi.connecting}),e.set("ssl",{fillStyle:oi.ssl}),e.set("dns",{fillStyle:oi.dns}),e.set("proxy",{fillStyle:oi.proxy}),e.set("blocking",{fillStyle:oi.blocking}),e.set("push",{fillStyle:oi.push}),e.set("queueing",{fillStyle:oi.queueing,lineWidth:2,borderColor:"lightgrey"}),e.set("receiving",{fillStyle:oi.receiving,lineWidth:2,borderColor:"#03A9F4"}),e.set("waiting",{fillStyle:oi.waiting}),e.set("receiving-push",{fillStyle:oi["receiving-push"]}),e.set("serviceworker",{fillStyle:oi.serviceworker}),e.set("serviceworker-preparation",{fillStyle:oi["serviceworker-preparation"]}),e.set("serviceworker-respondwith",{fillStyle:oi["serviceworker-respondwith"]}),e}static buildResourceTypeStyle(){const e=new Map([["document","hsl(215, 100%, 80%)"],["font","hsl(8, 100%, 80%)"],["media","hsl(90, 50%, 80%)"],["image","hsl(90, 50%, 80%)"],["script","hsl(31, 100%, 80%)"],["stylesheet","hsl(272, 64%, 80%)"],["texttrack","hsl(8, 100%, 80%)"],["websocket","hsl(0, 0%, 95%)"],["xhr","hsl(53, 100%, 80%)"],["fetch","hsl(53, 100%, 80%)"],["other","hsl(0, 0%, 95%)"]]),i=new Map,r=new Map;for(const n of Object.values(t.ResourceType.resourceTypes)){let t=e.get(n.name());t||(t=e.get("other"));const a=o(t);i.set(n,{fillStyle:s(t),lineWidth:1,borderColor:a}),r.set(n,{fillStyle:t,lineWidth:1,borderColor:a})}return[i,r];function o(e){const i=t.Color.parse(e)?.as("hsl");if(!i)return"";let{s:r,l:o}=i;return r/=2,o-=Math.min(o,.2),new t.Color.HSL(i.h,r,o,i.alpha).asString()}function s(e){const i=t.Color.parse(e)?.as("hsl");if(!i)return"";let{l:r}=i;return r*=1.1,new t.Color.HSL(i.h,i.s,r,i.alpha).asString()}}resetPaths(){this.pathForStyle.clear(),this.pathForStyle.set(this.wiskerStyle,new Path2D),this.styleForTimeRangeName.forEach((e=>this.pathForStyle.set(e,new Path2D))),this.styleForWaitingResourceType.forEach((e=>this.pathForStyle.set(e,new Path2D))),this.styleForDownloadingResourceType.forEach((e=>this.pathForStyle.set(e,new Path2D))),this.pathForStyle.set(this.hoverDetailsStyle,new Path2D)}willHide(){this.popoverHelper.hidePopover(),super.willHide()}wasShown(){super.wasShown(),this.update()}onMouseMove(e){this.setHoveredNode(this.getNodeFromPoint(e.offsetX,e.offsetY),e.shiftKey)}onClick(e){this.setSelectedNode(this.getNodeFromPoint(e.offsetX,e.offsetY))&&e.consume(!0)}getPopoverRequest(e){if(e instanceof KeyboardEvent)return null;if(!this.hoveredNode)return null;const i=this.hoveredNode.request();if(!i)return null;let r,o,s;if(!t.Settings.Settings.instance().moduleSetting("network-color-code-resource-types").get()&&!this.calculator.startAtZero?(r=kt.calculateRequestTimeRanges(i,0).find((e=>"total"===e.name)),o=this.timeToPosition(r.start),s=this.timeToPosition(r.end)):(r=this.getSimplifiedBarRange(i,0),o=r.start,s=r.end),s-o<50){const e=(s-o)/2;o=o+e-25,s=s-e+25}if(e.clientX<this.canvasPosition.left+o||e.clientX>this.canvasPosition.left+s)return null;const n=this.nodes.findIndex((e=>e.hovered())),a=this.getBarHeight(r.name),l=this.headerHeight+(this.rowHeight*n-this.scrollTop)+(this.rowHeight-a)/2;if(e.clientY<this.canvasPosition.top+l||e.clientY>this.canvasPosition.top+l+a)return null;const d=this.element.boxInWindow();return d.x+=o,d.y+=l,d.width=s-o,d.height=a,{box:d,show:e=>{const t=kt.createTimingTable(i,this.calculator);return e.registerRequiredCSS(pt),e.contentElement.appendChild(t),Promise.resolve(!0)},hide:void 0}}setHoveredNode(e,t){this.hoveredNode&&this.hoveredNode.setHovered(!1,!1),this.hoveredNode=e,this.hoveredNode&&this.hoveredNode.setHovered(!0,t)}setSelectedNode(e){return!!e?.dataGrid&&(e.select(),e.dataGrid.element.focus(),!0)}setRowHeight(e){this.rawRowHeight=e,this.updateRowHeight()}updateRowHeight(){this.rowHeight=Math.round(this.rawRowHeight*window.devicePixelRatio)/window.devicePixelRatio}setHeaderHeight(e){this.headerHeight=e}setRightPadding(e){this.rightPadding=e,this.calculateCanvasSize()}setCalculator(e){this.calculator=e}getNodeFromPoint(e,t){return t<=this.headerHeight?null:this.nodes[Math.floor((this.scrollTop+t-this.headerHeight)/this.rowHeight)]}scheduleDraw(){E.write("NetworkWaterfallColumn.render",(()=>this.update()))}update(e,t,i){void 0!==e&&this.scrollTop!==e&&(this.popoverHelper.hidePopover(),this.scrollTop=e),i&&(this.nodes=i,this.calculateCanvasSize()),void 0!==t&&(this.eventDividers=t),this.startTime=this.calculator.minimumBoundary(),this.endTime=this.calculator.maximumBoundary(),this.resetCanvas(),this.resetPaths(),this.textLayers=[],this.draw()}resetCanvas(){const e=window.devicePixelRatio;this.canvas.width=this.offsetWidth*e,this.canvas.height=this.offsetHeight*e,this.canvas.style.width=this.offsetWidth+"px",this.canvas.style.height=this.offsetHeight+"px"}onResize(){super.onResize(),this.updateRowHeight(),this.calculateCanvasSize(),this.scheduleDraw()}calculateCanvasSize(){this.offsetWidth=this.contentElement.offsetWidth-this.rightPadding,this.offsetHeight=this.contentElement.offsetHeight,this.calculator.setDisplayWidth(this.offsetWidth),this.canvasPosition=this.canvas.getBoundingClientRect()}timeToPosition(e){const t=(this.offsetWidth-this.leftPadding)/(this.endTime-this.startTime);return Math.floor(this.leftPadding+(e-this.startTime)*t)}didDrawForTest(){}draw(){const e=!t.Settings.Settings.instance().moduleSetting("network-color-code-resource-types").get()&&!this.calculator.startAtZero,i=this.nodes,r=this.canvas.getContext("2d");if(!r)return;r.save(),r.scale(window.devicePixelRatio,window.devicePixelRatio),r.translate(0,this.headerHeight),r.rect(0,0,this.offsetWidth,this.offsetHeight),r.clip();const o=Math.floor(this.scrollTop/this.rowHeight),s=Math.min(i.length,o+Math.ceil(this.offsetHeight/this.rowHeight));for(let t=o;t<s;t++){const o=this.rowHeight*t,s=i[t];this.decorateRow(r,s,o-this.scrollTop);let n=[];s.hasChildren()&&!s.expanded&&(n=s.flatChildren()),n.push(s);for(const t of n)e?this.buildTimingBarLayers(t,o-this.scrollTop):this.buildSimplifiedBarLayers(r,t,o-this.scrollTop)}this.drawLayers(r,e),r.save(),r.fillStyle=H.ThemeSupport.instance().getComputedValue("--sys-color-state-disabled");for(const e of this.textLayers)r.fillText(e.text,e.x,e.y);r.restore(),this.drawEventDividers(r),r.restore();const n=v.TimelineGrid.TimelineGrid.calculateGridOffsets(this.calculator);v.TimelineGrid.TimelineGrid.drawCanvasGrid(r,n),v.TimelineGrid.TimelineGrid.drawCanvasHeaders(r,n,(e=>this.calculator.formatValue(e,n.precision)),this.fontSize,this.headerHeight,75),r.save(),r.scale(window.devicePixelRatio,window.devicePixelRatio),r.clearRect(this.offsetWidth-18,0,18,this.headerHeight),r.restore(),this.didDrawForTest()}drawLayers(e,t){for(const i of this.pathForStyle){const r=i[0],o=i[1];e.save(),e.beginPath(),r.lineWidth&&(e.lineWidth=r.lineWidth,r.borderColor&&(e.strokeStyle=r.borderColor),e.stroke(o)),r.fillStyle&&(e.fillStyle=t?H.ThemeSupport.instance().getComputedValue(r.fillStyle):r.fillStyle,e.fill(o)),e.restore()}}drawEventDividers(e){e.save(),e.lineWidth=1;for(const t of this.eventDividers.keys()){e.strokeStyle=t;for(const i of this.eventDividers.get(t)||[]){e.beginPath();const t=this.timeToPosition(i);e.moveTo(t,0),e.lineTo(t,this.offsetHeight)}e.stroke()}e.restore()}getBarHeight(e){switch(e){case"connecting":case"ssl":case"dns":case"proxy":case"blocking":case"push":case"queueing":return 7;default:return 13}}getSimplifiedBarRange(e,t){const i=this.offsetWidth-this.leftPadding,r=this.calculator.computeBarGraphPercentages(e);return{start:this.leftPadding+Math.floor(r.start/100*i)+t,mid:this.leftPadding+Math.floor(r.middle/100*i)+t,end:this.leftPadding+Math.floor(r.end/100*i)+t}}buildSimplifiedBarLayers(e,t,i){const r=t.request();if(!r)return;const o=.5,s=this.getSimplifiedBarRange(r,o),n=this.getBarHeight();i+=Math.floor(this.rowHeight/2-n/2+1)-.5;const a=this.styleForWaitingResourceType.get(r.resourceType());this.pathForStyle.get(a).rect(s.start,i,s.mid-s.start,n-1);const l=Math.max(2,s.end-s.mid),d=this.styleForDownloadingResourceType.get(r.resourceType());this.pathForStyle.get(d).rect(s.mid,i,l,n-1);let c=null;if(t.hovered()){c=this.calculator.computeBarGraphLabels(r);const t=10,a=e.measureText(c.left).width,d=e.measureText(c.right).width,h=this.pathForStyle.get(this.hoverDetailsStyle);if(a<s.mid-s.start){const e=s.start+(s.mid-s.start-a)/2;this.textLayers.push({text:c.left,x:e,y:i+this.fontSize})}else t+a+this.leftPadding<s.start&&(this.textLayers.push({text:c.left,x:s.start-a-t-1,y:i+this.fontSize}),h.moveTo(s.start-t,i+Math.floor(n/2)),h.arc(s.start,i+Math.floor(n/2),2,0,2*Math.PI),h.moveTo(s.start-t,i+Math.floor(n/2)),h.lineTo(s.start,i+Math.floor(n/2)));const u=s.mid+l+o;if(d<u-s.mid){const e=s.mid+(u-s.mid-d)/2;this.textLayers.push({text:c.right,x:e,y:i+this.fontSize})}else u+t+d<this.offsetWidth-this.leftPadding&&(this.textLayers.push({text:c.right,x:u+t+1,y:i+this.fontSize}),h.moveTo(u,i+Math.floor(n/2)),h.arc(u,i+Math.floor(n/2),2,0,2*Math.PI),h.moveTo(u,i+Math.floor(n/2)),h.lineTo(u+t,i+Math.floor(n/2)))}if(!this.calculator.startAtZero){const t=kt.calculateRequestTimeRanges(r,0).find((e=>"total"===e.name)),a=c?e.measureText(c.left).width:0,l=a<s.mid-s.start,d=c&&!l?a+13:0,h=this.timeToPosition(t.start);if(s.start-d>h){const e=this.pathForStyle.get(this.wiskerStyle);e.moveTo(h,i+Math.floor(n/2)),e.lineTo(s.start-d,i+Math.floor(n/2));const t=n/2;e.moveTo(h+o,i+t/2),e.lineTo(h+o,i+n-t/2-1)}}}buildTimingBarLayers(e,t){const i=e.request();if(!i)return;const r=kt.calculateRequestTimeRanges(i,0);let o=0;for(const e of r){if("total"===e.name||"sending"===e.name||e.end-e.start==0)continue;const i=this.styleForTimeRangeName.get(e.name),r=this.pathForStyle.get(i),s=i.lineWidth||0,n=this.getBarHeight(e.name),a=t+Math.floor(this.rowHeight/2-n/2)+s/2,l=this.timeToPosition(e.start),d=this.timeToPosition(e.end);r.rect(l+1*o,a,d-l,n-s),o++}}decorateRow(e,t,i){const r=t.backgroundColor();e.save(),e.beginPath(),e.fillStyle=H.ThemeSupport.instance().getComputedValue(r),e.rect(0,i,this.offsetWidth,this.rowHeight),e.fill(),e.restore()}}var ui=Object.freeze({__proto__:null,NetworkWaterfallColumn:hi});const pi={networkLog:"Network Log",waterfall:"Waterfall",responseHeaders:"Response Headers",manageHeaderColumns:"Manage Header Columns…",startTime:"Start Time",responseTime:"Response Time",endTime:"End Time",totalDuration:"Total Duration",latency:"Latency",name:"Name",path:"Path",url:"Url",method:"Method",status:"Status",text:"Text",protocol:"Protocol",scheme:"Scheme",domain:"Domain",remoteAddress:"Remote Address",type:"Type",initiator:"Initiator",hasOverrides:"Has overrides",initiatorAddressSpace:"Initiator Address Space",cookies:"Cookies",setCookies:"Set Cookies",size:"Size",content:"Content",time:"Time",priority:"Priority",connectionId:"Connection ID",remoteAddressSpace:"Remote Address Space"},gi=r.i18n.registerUIStrings("panels/network/NetworkLogViewColumns.ts",pi),mi=r.i18n.getLocalizedString.bind(void 0,gi),wi=r.i18n.getLazilyComputedLocalizedString.bind(void 0,gi);class ki{networkLogView;persistentSettings;networkLogLargeRowsSetting;eventDividers;eventDividersShown;gridMode;columns;waterfallRequestsAreStale;waterfallScrollerWidthIsStale;popupLinkifier;calculatorsMap;lastWheelTime;dataGridInternal;splitWidget;waterfallColumn;activeScroller;dataGridScroller;waterfallScroller;waterfallScrollerContent;waterfallHeaderElement;waterfallColumnSortIcon;activeWaterfallSortId;popoverHelper;hasScrollerTouchStarted;scrollerTouchStartPos;constructor(e,i,r,o){this.networkLogView=e,this.persistentSettings=t.Settings.Settings.instance().createSetting("network-log-columns",{}),this.networkLogLargeRowsSetting=o,this.networkLogLargeRowsSetting.addChangeListener(this.updateRowsSize,this),this.eventDividers=new Map,this.eventDividersShown=!1,this.gridMode=!0,this.columns=[],this.waterfallRequestsAreStale=!1,this.waterfallScrollerWidthIsStale=!0,this.popupLinkifier=new b.Linkifier.Linkifier,this.calculatorsMap=new Map,this.calculatorsMap.set("Time",i),this.calculatorsMap.set("Duration",r),this.lastWheelTime=0,this.setupDataGrid(),this.setupWaterfall(),H.ThemeSupport.instance().addEventListener(H.ThemeChangeEvent.eventName,(()=>{this.scheduleRefresh()}))}static convertToDataGridDescriptor(e){const t=e.title instanceof Function?e.title():e.title;return{id:e.id,title:t,sortable:e.sortable,align:e.align,nonSelectable:e.nonSelectable,weight:e.weight,allowInSortByEvenWhenHidden:e.allowInSortByEvenWhenHidden}}wasShown(){this.updateRowsSize()}willHide(){this.popoverHelper&&this.popoverHelper.hidePopover()}reset(){this.popoverHelper&&this.popoverHelper.hidePopover(),this.eventDividers.clear()}setupDataGrid(){const t=fi,i=bi;this.columns=[];for(const e of t){const t=Object.assign({},i,e);if(t.id=t.id,t.subtitle){const e=t.title instanceof Function?t.title():t.title,i=t.subtitle instanceof Function?t.subtitle():t.subtitle;t.titleDOMFragment=this.makeHeaderFragment(e,i)}this.columns.push(t)}this.loadCustomColumnsAndSettings(),this.popoverHelper=new e.PopoverHelper.PopoverHelper(this.networkLogView.element,this.getPopoverRequest.bind(this),"network.initiator-stacktrace"),this.popoverHelper.setTimeout(300,300),this.dataGridInternal=new c.SortableDataGrid.SortableDataGrid({displayName:mi(pi.networkLog),columns:this.columns.map(ki.convertToDataGridDescriptor),deleteCallback:void 0,refreshCallback:void 0}),this.dataGridInternal.element.addEventListener("mousedown",(e=>{!this.dataGridInternal.selectedNode&&e.button&&e.consume()}),!0),this.dataGridScroller=this.dataGridInternal.scrollContainer,this.updateColumns(),this.dataGridInternal.addEventListener("SortingChanged",this.sortHandler,this),this.dataGridInternal.setHeaderContextMenuCallback(this.innerHeaderContextMenu.bind(this)),this.activeWaterfallSortId=Si.StartTime,this.dataGridInternal.markColumnAsSortedBy(vi,c.DataGrid.Order.Ascending),this.splitWidget=new e.SplitWidget.SplitWidget(!0,!0,"network-panel-split-view-waterfall",200);const r=this.dataGridInternal.asWidget();r.setMinimumSize(150,0),this.splitWidget.setMainWidget(r)}setupWaterfall(){this.waterfallColumn=new hi(this.networkLogView.calculator()),this.waterfallColumn.element.addEventListener("contextmenu",function(t){const i=t,r=this.waterfallColumn.getNodeFromPoint(i.offsetX,i.offsetY);if(!r)return;const o=r.request();if(!o)return;const s=new e.ContextMenu.ContextMenu(i);this.networkLogView.handleContextMenuForRequest(s,o),s.show()}.bind(this)),this.waterfallColumn.element.addEventListener("wheel",this.onMouseWheel.bind(this,!1),{passive:!0}),this.waterfallColumn.element.addEventListener("touchstart",this.onTouchStart.bind(this)),this.waterfallColumn.element.addEventListener("touchmove",this.onTouchMove.bind(this)),this.waterfallColumn.element.addEventListener("touchend",this.onTouchEnd.bind(this)),this.dataGridScroller.addEventListener("wheel",this.onMouseWheel.bind(this,!0),!0),this.dataGridScroller.addEventListener("touchstart",this.onTouchStart.bind(this)),this.dataGridScroller.addEventListener("touchmove",this.onTouchMove.bind(this)),this.dataGridScroller.addEventListener("touchend",this.onTouchEnd.bind(this)),this.waterfallScroller=this.waterfallColumn.contentElement.createChild("div","network-waterfall-v-scroll"),this.waterfallScrollerContent=this.waterfallScroller.createChild("div","network-waterfall-v-scroll-content"),this.dataGridInternal.addEventListener("PaddingChanged",(()=>{this.waterfallScrollerWidthIsStale=!0,this.syncScrollers()})),this.dataGridInternal.addEventListener("ViewportCalculated",this.redrawWaterfallColumn.bind(this)),this.createWaterfallHeader(),this.waterfallColumn.contentElement.classList.add("network-waterfall-view"),this.waterfallColumn.setMinimumSize(100,0),this.splitWidget.setSidebarWidget(this.waterfallColumn),this.switchViewMode(!1)}onMouseWheel(e,t){e&&t.consume(!0);const i=t,r=Date.now()-this.lastWheelTime<80;this.activeScroller.scrollBy({top:i.deltaY,behavior:r?"auto":"smooth"}),this.syncScrollers(),this.lastWheelTime=Date.now()}onTouchStart(e){const t=e;this.hasScrollerTouchStarted=!0,this.scrollerTouchStartPos=t.changedTouches[0].pageY}onTouchMove(e){if(!this.hasScrollerTouchStarted)return;const t=e.changedTouches[0].pageY,i=this.scrollerTouchStartPos-t;this.activeScroller.scrollBy({top:i,behavior:"auto"}),this.syncScrollers(),this.scrollerTouchStartPos=t}onTouchEnd(){this.hasScrollerTouchStarted=!1}syncScrollers(){this.waterfallColumn.isShowing()&&(this.waterfallScrollerContent.style.height=this.dataGridScroller.scrollHeight-this.dataGridInternal.headerHeight()+"px",this.updateScrollerWidthIfNeeded(),this.dataGridScroller.scrollTop=this.waterfallScroller.scrollTop)}updateScrollerWidthIfNeeded(){this.waterfallScrollerWidthIsStale&&(this.waterfallScrollerWidthIsStale=!1,this.waterfallColumn.setRightPadding(this.waterfallScroller.offsetWidth-this.waterfallScrollerContent.offsetWidth))}redrawWaterfallColumn(){if(!this.waterfallRequestsAreStale)return this.updateScrollerWidthIfNeeded(),void this.waterfallColumn.update(this.activeScroller.scrollTop,this.eventDividersShown?this.eventDividers:void 0);this.syncScrollers();const e=this.networkLogView.flatNodesList();this.waterfallColumn.update(this.activeScroller.scrollTop,this.eventDividers,e)}createWaterfallHeader(){this.waterfallHeaderElement=this.waterfallColumn.contentElement.createChild("div","network-waterfall-header"),this.waterfallHeaderElement.setAttribute("jslog",`${d.tableHeader("waterfall").track({click:!0})}`),this.waterfallHeaderElement.addEventListener("click",function(){const e=c.DataGrid.Order,t="waterfall"===this.dataGridInternal.sortColumnId(),i=this.dataGridInternal.isSortOrderAscending(),r=t&&i?e.Descending:e.Ascending;this.dataGridInternal.markColumnAsSortedBy("waterfall",r),this.sortHandler()}.bind(this)),this.waterfallHeaderElement.addEventListener("contextmenu",(t=>{const i=new e.ContextMenu.ContextMenu(t);this.innerHeaderContextMenu(i),i.show()})),this.waterfallHeaderElement.createChild("div","hover-layer");this.waterfallHeaderElement.createChild("div").textContent=mi(pi.waterfall),this.waterfallColumnSortIcon=new k.Icon.Icon,this.waterfallColumnSortIcon.className="sort-order-icon",this.waterfallHeaderElement.createChild("div","sort-order-icon-container").appendChild(this.waterfallColumnSortIcon)}setCalculator(e){this.waterfallColumn.setCalculator(e)}scheduleRefresh(){this.waterfallColumn.scheduleDraw()}updateRowsSize(){const e=Boolean(this.networkLogLargeRowsSetting.get());this.dataGridInternal.element.classList.toggle("small",!e),this.dataGridInternal.scheduleUpdate(),this.waterfallScrollerWidthIsStale=!0,this.waterfallColumn.setRowHeight(e?41:21),this.waterfallScroller.classList.toggle("small",!e),this.waterfallHeaderElement.classList.toggle("small",!e),window.requestAnimationFrame((()=>{this.waterfallColumn.setHeaderHeight(this.waterfallScroller.offsetTop),this.waterfallColumn.scheduleDraw()}))}show(e){this.splitWidget.show(e)}setHidden(t){e.ARIAUtils.setHidden(this.splitWidget.element,t)}dataGrid(){return this.dataGridInternal}sortByCurrentColumn(){this.sortHandler()}sortHandler(){const e=this.dataGridInternal.sortColumnId();if(this.networkLogView.removeAllNodeHighlights(),this.waterfallRequestsAreStale=!0,"waterfall"===e){this.dataGridInternal.sortOrder()===c.DataGrid.Order.Ascending?this.waterfallColumnSortIcon.name="triangle-up":this.waterfallColumnSortIcon.name="triangle-down",this.waterfallColumnSortIcon.hidden=!1;const e=ve.RequestPropertyComparator.bind(null,this.activeWaterfallSortId);return this.dataGridInternal.sortNodes(e,!this.dataGridInternal.isSortOrderAscending()),void this.dataGridSortedForTest()}this.waterfallColumnSortIcon.hidden=!0,this.waterfallColumnSortIcon.name=null;const t=this.columns.find((t=>t.id===e));if(!t?.sortingFunction)return;const i=t.sortingFunction;i&&(this.dataGridInternal.sortNodes(i,!this.dataGridInternal.isSortOrderAscending()),this.dataGridSortedForTest())}dataGridSortedForTest(){}updateColumns(){if(!this.dataGridInternal)return;const e=new Set;if(this.gridMode)for(const t of this.columns)"waterfall"===t.id?this.setWaterfallVisibility(t.visible):t.visible&&e.add(t.id);else{const t=this.columns.find((e=>"path"===e.hideableGroup&&e.visible));t?e.add(t.id):e.add("name"),this.setWaterfallVisibility(!1)}this.dataGridInternal.setColumnsVisibility(e)}switchViewMode(e){this.gridMode!==e&&(this.gridMode=e,this.updateColumns(),this.updateRowsSize())}toggleColumnVisibility(e){this.loadCustomColumnsAndSettings(),e.visible=!e.visible,this.saveColumnsSettings(),this.updateColumns(),this.updateRowsSize()}setWaterfallVisibility(e){this.splitWidget&&(this.networkLogView.element.classList.toggle("has-waterfall",e),e?(this.splitWidget.showBoth(),this.activeScroller=this.waterfallScroller,this.waterfallScroller.scrollTop=this.dataGridScroller.scrollTop,this.dataGridInternal.setScrollContainer(this.waterfallScroller)):(this.networkLogView.removeAllNodeHighlights(),this.splitWidget.hideSidebar(),this.activeScroller=this.dataGridScroller,this.dataGridInternal.setScrollContainer(this.dataGridScroller)))}saveColumnsSettings(){const e={};for(const t of this.columns)e[t.id]={visible:t.visible,title:t.title};this.persistentSettings.set(e)}loadCustomColumnsAndSettings(){const e=this.persistentSettings.get(),t=Object.keys(e);for(const i of t){const t=e[i];let r=this.columns.find((e=>e.id===i));!r&&t.title&&(r=this.addCustomHeader(t.title,i)||void 0),r&&r.hideable&&"boolean"==typeof t.visible&&(r.visible=Boolean(t.visible)),r&&"string"==typeof t.title&&(r.title=t.title)}}makeHeaderFragment(t,i){const r=document.createDocumentFragment();e.UIUtils.createTextChild(r,t);const o=r.createChild("div","network-header-subtitle");return e.UIUtils.createTextChild(o,i),r}innerHeaderContextMenu(e){const t=this.columns.filter((e=>e.hideable)),i=t.filter((e=>!e.isResponseHeader)),r=new Map,o=[];for(const e of i)if(e.hideableGroup){const t=e.hideableGroup;let i=r.get(t);i||(i=[],r.set(t,i)),i.push(e)}else o.push(e);for(const t of r.values()){const i=t.filter((e=>e.visible));for(const r of t){const t=1===i.length&&i[0]===r,o=r.title instanceof Function?r.title():r.title;e.headerSection().appendCheckboxItem(o,this.toggleColumnVisibility.bind(this,r),{checked:r.visible,disabled:t,jslogContext:r.id})}e.headerSection().appendSeparator()}for(const t of o){const i=t.title instanceof Function?t.title():t.title;e.headerSection().appendCheckboxItem(i,this.toggleColumnVisibility.bind(this,t),{checked:t.visible,jslogContext:t.id})}const s=e.footerSection().appendSubMenuItem(mi(pi.responseHeaders),!1,"response-headers"),n=t.filter((e=>e.isResponseHeader));for(const e of n){const t=e.title instanceof Function?e.title():e.title;s.defaultSection().appendCheckboxItem(t,this.toggleColumnVisibility.bind(this,e),{checked:e.visible,jslogContext:e.id})}s.footerSection().appendItem(mi(pi.manageHeaderColumns),this.manageCustomHeaderDialog.bind(this),{jslogContext:"manage-header-columns"});const a=Si,l=e.footerSection().appendSubMenuItem(mi(pi.waterfall),!1,"waterfall");function d(e){let t=this.calculatorsMap.get("Time");const i=Si;e!==i.Duration&&e!==i.Latency||(t=this.calculatorsMap.get("Duration")),this.networkLogView.setCalculator(t),this.activeWaterfallSortId=e,this.dataGridInternal.markColumnAsSortedBy("waterfall",c.DataGrid.Order.Ascending),this.sortHandler()}l.defaultSection().appendCheckboxItem(mi(pi.startTime),d.bind(this,a.StartTime),{checked:this.activeWaterfallSortId===a.StartTime,jslogContext:"start-time"}),l.defaultSection().appendCheckboxItem(mi(pi.responseTime),d.bind(this,a.ResponseTime),{checked:this.activeWaterfallSortId===a.ResponseTime,jslogContext:"response-time"}),l.defaultSection().appendCheckboxItem(mi(pi.endTime),d.bind(this,a.EndTime),{checked:this.activeWaterfallSortId===a.EndTime,jslogContext:"end-time"}),l.defaultSection().appendCheckboxItem(mi(pi.totalDuration),d.bind(this,a.Duration),{checked:this.activeWaterfallSortId===a.Duration,jslogContext:"total-duration"}),l.defaultSection().appendCheckboxItem(mi(pi.latency),d.bind(this,a.Latency),{checked:this.activeWaterfallSortId===a.Latency,jslogContext:"latency"})}manageCustomHeaderDialog(){const t=[];for(const e of this.columns){const i=e.title instanceof Function?e.title():e.title;e.isResponseHeader&&t.push({title:i,editable:e.isCustomHeader})}const i=new ti(t,(e=>Boolean(this.addCustomHeader(e))),this.changeCustomHeader.bind(this),this.removeCustomHeader.bind(this)),r=new e.Dialog.Dialog("manage-custom-headers");i.show(r.contentElement),r.setSizeBehavior("MeasureContent"),r.show(this.networkLogView.element)}removeCustomHeader(e){e=e.toLowerCase();const t=this.columns.findIndex((t=>t.id===e));return-1!==t&&(this.columns.splice(t,1),this.dataGridInternal.removeColumn(e),this.saveColumnsSettings(),this.updateColumns(),!0)}addCustomHeader(e,t,i){t||(t=e.toLowerCase()),void 0===i&&(i=this.columns.length-1);const r=this.columns.find((e=>e.id===t));if(r)return null;const o=Object.assign({},bi,{id:t,title:e,isResponseHeader:!0,isCustomHeader:!0,visible:!0,sortingFunction:ve.ResponseHeaderStringComparator.bind(null,t)});return this.columns.splice(i,0,o),this.dataGridInternal&&this.dataGridInternal.addColumn(ki.convertToDataGridDescriptor(o),i),this.saveColumnsSettings(),this.updateColumns(),o}changeCustomHeader(e,t,i){i||(i=t.toLowerCase()),e=e.toLowerCase();const r=this.columns.findIndex((t=>t.id===e)),o=this.columns[r],s=this.columns.find((e=>e.id===i));return!(!o||s&&e!==i)&&(this.removeCustomHeader(e),this.addCustomHeader(t,i,r),!0)}getPopoverRequest(e){if(!this.gridMode)return null;const t=this.networkLogView.hoveredNode();if(!t||!e.target)return null;const i=e.target.enclosingNodeOrSelfWithClass("network-script-initiated");if(!i)return null;const r=t.request();return r?{box:i.boxInWindow(),show:async e=>{this.popupLinkifier.addEventListener("liveLocationUpdated",(()=>{e.setSizeBehavior("MeasureContent")}));const t=He.createStackTracePreview(r,this.popupLinkifier,!1);return!!t&&(e.contentElement.appendChild(t.element),!0)},hide:this.popupLinkifier.reset.bind(this.popupLinkifier)}:null}addEventDividers(e,t){let i="transparent";switch(t){case"network-dcl-divider":i=H.ThemeSupport.instance().getComputedValue("--sys-color-blue");break;case"network-load-divider":i=H.ThemeSupport.instance().getComputedValue("--sys-color-error");break;default:return}const r=this.eventDividers.get(i)||[];this.eventDividers.set(i,r.concat(e)),this.networkLogView.scheduleRefresh()}hideEventDividers(){this.eventDividersShown=!0,this.redrawWaterfallColumn()}showEventDividers(){this.eventDividersShown=!1,this.redrawWaterfallColumn()}selectFilmStripFrame(e){this.eventDividers.set(Ci,[e]),this.redrawWaterfallColumn()}clearFilmStripFrame(){this.eventDividers.delete(Ci),this.redrawWaterfallColumn()}}const vi="waterfall",bi={subtitle:null,visible:!1,weight:6,sortable:!0,hideable:!0,hideableGroup:null,nonSelectable:!1,isResponseHeader:!1,isCustomHeader:!1,allowInSortByEvenWhenHidden:!1},fi=[{id:"name",title:wi(pi.name),subtitle:wi(pi.path),visible:!0,weight:20,hideable:!0,hideableGroup:"path",sortingFunction:ve.NameComparator},{id:"path",title:wi(pi.path),hideable:!0,hideableGroup:"path",sortingFunction:ve.RequestPropertyComparator.bind(null,"pathname")},{id:"url",title:wi(pi.url),hideable:!0,hideableGroup:"path",sortingFunction:ve.RequestURLComparator},{id:"method",title:wi(pi.method),sortingFunction:ve.RequestPropertyComparator.bind(null,"requestMethod")},{id:"status",title:wi(pi.status),visible:!0,subtitle:wi(pi.text),sortingFunction:ve.RequestPropertyComparator.bind(null,"statusCode")},{id:"protocol",title:wi(pi.protocol),sortingFunction:ve.RequestPropertyComparator.bind(null,"protocol")},{id:"scheme",title:wi(pi.scheme),sortingFunction:ve.RequestPropertyComparator.bind(null,"scheme")},{id:"domain",title:wi(pi.domain),sortingFunction:ve.RequestPropertyComparator.bind(null,"domain")},{id:"remote-address",title:wi(pi.remoteAddress),weight:10,align:"right",sortingFunction:ve.RemoteAddressComparator},{id:"remote-address-space",title:wi(pi.remoteAddressSpace),visible:!1,weight:10,sortingFunction:ve.RemoteAddressSpaceComparator},{id:"type",title:wi(pi.type),visible:!0,sortingFunction:ve.TypeComparator},{id:"initiator",title:wi(pi.initiator),visible:!0,weight:10,sortingFunction:ve.InitiatorComparator},{id:"initiator-address-space",title:wi(pi.initiatorAddressSpace),visible:!1,weight:10,sortingFunction:ve.InitiatorAddressSpaceComparator},{id:"cookies",title:wi(pi.cookies),align:"right",sortingFunction:ve.RequestCookiesCountComparator},{id:"set-cookies",title:wi(pi.setCookies),align:"right",sortingFunction:ve.ResponseCookiesCountComparator},{id:"size",title:wi(pi.size),visible:!0,subtitle:wi(pi.content),align:"right",sortingFunction:ve.SizeComparator},{id:"time",title:wi(pi.time),visible:!0,subtitle:wi(pi.latency),align:"right",sortingFunction:ve.RequestPropertyComparator.bind(null,"duration")},{id:"priority",title:wi(pi.priority),sortingFunction:ve.PriorityComparator},{id:"connection-id",title:wi(pi.connectionId),sortingFunction:ve.RequestPropertyComparator.bind(null,"connectionId")},{id:"cache-control",isResponseHeader:!0,title:r.i18n.lockedLazyString("Cache-Control"),sortingFunction:ve.ResponseHeaderStringComparator.bind(null,"cache-control")},{id:"connection",isResponseHeader:!0,title:r.i18n.lockedLazyString("Connection"),sortingFunction:ve.ResponseHeaderStringComparator.bind(null,"connection")},{id:"content-encoding",isResponseHeader:!0,title:r.i18n.lockedLazyString("Content-Encoding"),sortingFunction:ve.ResponseHeaderStringComparator.bind(null,"content-encoding")},{id:"content-length",isResponseHeader:!0,title:r.i18n.lockedLazyString("Content-Length"),align:"right",sortingFunction:ve.ResponseHeaderNumberComparator.bind(null,"content-length")},{id:"etag",isResponseHeader:!0,title:r.i18n.lockedLazyString("ETag"),sortingFunction:ve.ResponseHeaderStringComparator.bind(null,"etag")},{id:"has-overrides",title:wi(pi.hasOverrides),sortingFunction:ve.ResponseHeaderStringComparator.bind(null,"has-overrides")},{id:"keep-alive",isResponseHeader:!0,title:r.i18n.lockedLazyString("Keep-Alive"),sortingFunction:ve.ResponseHeaderStringComparator.bind(null,"keep-alive")},{id:"last-modified",isResponseHeader:!0,title:r.i18n.lockedLazyString("Last-Modified"),sortingFunction:ve.ResponseHeaderDateComparator.bind(null,"last-modified")},{id:"server",isResponseHeader:!0,title:r.i18n.lockedLazyString("Server"),sortingFunction:ve.ResponseHeaderStringComparator.bind(null,"server")},{id:"vary",isResponseHeader:!0,title:r.i18n.lockedLazyString("Vary"),sortingFunction:ve.ResponseHeaderStringComparator.bind(null,"vary")},{id:"waterfall",title:wi(pi.waterfall),allowInSortByEvenWhenHidden:!0}],Ci="#fccc49";var Si;!function(e){e.StartTime="startTime",e.ResponseTime="responseReceivedTime",e.EndTime="endTime",e.Duration="duration",e.Latency="latency"}(Si||(Si={}));var yi=Object.freeze({__proto__:null,NetworkLogViewColumns:ki});const Ti={invertFilter:"Invert",invertsFilter:"Inverts the search filter",hideDataUrls:"Hide data URLs",hidesDataAndBlobUrls:"Hide 'data:' and 'blob:' URLs",chromeExtensions:"Hide extension URLs",hideChromeExtension:"Hide 'chrome-extension://' URLs",requestTypesToInclude:"Request types to include",hasBlockedCookies:"Blocked response cookies",onlyShowRequestsWithBlockedCookies:"Show only requests with blocked response cookies",blockedRequests:"Blocked requests",onlyShowBlockedRequests:"Show only blocked requests",thirdParty:"3rd-party requests",onlyShowThirdPartyRequests:"Show only requests with origin different from page origin",dropHarFilesHere:"Drop HAR files here",recordingNetworkActivity:"Currently recording network activity",performARequestOrHitSToRecordThe:'Perform a request or reload the page by using the "{PH1}" button or by hitting {PH2}.',recordToDisplayNetworkActivity:'Record network log to display network activity by using the "{PH1}" button or by hitting {PH2}.',reloadPage:"Reload page",startRecording:"Start recording",noNetworkActivityRecorded:"No network activity recorded",networkDataAvailable:"Network Data Available",sSRequests:"{PH1} / {PH2} requests",sSTransferred:"{PH1} / {PH2} transferred",sBSBTransferredOverNetwork:"{PH1} B / {PH2} B transferred over network",sSResources:"{PH1} / {PH2} resources",sBSBResourcesLoadedByThePage:"{PH1} B / {PH2} B resources loaded by the page",sRequests:"{PH1} requests",sTransferred:"{PH1} transferred",sBTransferredOverNetwork:"{PH1} B transferred over network",sResources:"{PH1} resources",sBResourcesLoadedByThePage:"{PH1} B resources loaded by the page",finishS:"Finish: {PH1}",domcontentloadedS:"DOMContentLoaded: {PH1}",loadS:"Load: {PH1}",copy:"Copy",copyURL:"Copy URL",copyRequestHeaders:"Copy request headers",copyResponseHeaders:"Copy response headers",copyResponse:"Copy response",copyStacktrace:"Copy stack trace",copyAsPowershell:"Copy as `PowerShell`",copyAsFetch:"Copy as `fetch`",copyAsNodejsFetch:"Copy as `fetch` (`Node.js`)",copyAsCurlCmd:"Copy as `cURL` (`cmd`)",copyAsCurlBash:"Copy as `cURL` (`bash`)",copyAllURLs:"Copy all URLs",copyAllListedURLs:"Copy all listed URLs",copyAllAsPowershell:"Copy all as `PowerShell`",copyAllListedAsPowershell:"Copy all listed as `PowerShell`",copyAllAsFetch:"Copy all as `fetch`",copyAllListedAsFetch:"Copy all listed as `fetch`",copyAllAsNodejsFetch:"Copy all as `fetch` (`Node.js`)",copyAllListedAsNodejsFetch:"Copy all listed as `fetch` (`Node.js`)",copyAllAsCurlCmd:"Copy all as `cURL` (`cmd`)",copyAllListedAsCurlCmd:"Copy all listed as `cURL` (`cmd`)",copyAllAsCurlBash:"Copy all as `cURL` (`bash`)",copyAllListedAsCurlBash:"Copy all listed as `cURL` (`bash`)",copyAsCurl:"Copy as `cURL`",copyAllAsCurl:"Copy all as `cURL`",copyAllListedAsCurl:"Copy all listed as `cURL`",copyAllAsHarSanitized:"Copy all as `HAR` (sanitized)",copyAllAsHarWithSensitiveData:"Copy all as `HAR` (with sensitive data)",copyAllListedAsHarSanitized:"Copy all listed as `HAR` (sanitized)",copyAllListedAsHarWithSensitiveData:"Copy all listed as `HAR` (with sensitive data)",clearBrowserCache:"Clear browser cache",clearBrowserCookies:"Clear browser cookies",blockRequestUrl:"Block request URL",unblockS:"Unblock {PH1}",blockRequestDomain:"Block request domain",replayXhr:"Replay XHR",areYouSureYouWantToClearBrowser:"Are you sure you want to clear browser cache?",areYouSureYouWantToClearBrowserCookies:"Are you sure you want to clear browser cookies?",overrideHeaders:"Override headers",showOnlyHideRequests:"Show only/hide requests",moreFilters:"More filters"},xi=r.i18n.registerUIStrings("panels/network/NetworkLogView.ts",Ti),Ri=r.i18n.getLocalizedString.bind(void 0,xi);class Ii extends(t.ObjectWrapper.eventMixin(e.Widget.VBox)){networkInvertFilterSetting;networkHideDataURLSetting;networkHideChromeExtensions;networkShowBlockedCookiesOnlySetting;networkOnlyBlockedRequestsSetting;networkOnlyThirdPartySetting;networkResourceTypeFiltersSetting;networkShowOptionsToGenerateHarWithSensitiveData;rawRowHeight;progressBarContainer;networkLogLargeRowsSetting;rowHeightInternal;timeCalculatorInternal;durationCalculator;calculatorInternal;columnsInternal;staleRequests;mainRequestLoadTime;mainRequestDOMContentLoadedTime;filters;timeFilter;hoveredNodeInternal;recordingHint;highlightedNode;linkifierInternal;recording;needsRefresh;headerHeightInternal;groupLookups;activeGroupLookup;textFilterUI;invertFilterUI;dataURLFilterUI;moreFiltersDropDownUI;onlyBlockedResponseCookiesFilterUI;onlyBlockedRequestsUI;onlyThirdPartyFilterUI;hideChromeExtensionsUI;resourceCategoryFilterUI;filterParser;suggestionBuilder;dataGrid;summaryToolbarInternal;filterBar;textFilterSetting;isReactNative=!1;constructor(i,r,o){function l(){this.rawRowHeight=Boolean(this.networkLogLargeRowsSetting.get())?41:21,this.rowHeightInternal=this.computeRowHeight()}super(),this.isReactNative=C.Runtime.experiments.isEnabled("react-native-specific-ui"),this.registerRequiredCSS(Jt),this.setMinimumSize(50,64),this.element.id="network-container",this.element.classList.add("no-node-selected"),this.networkInvertFilterSetting=t.Settings.Settings.instance().createSetting("network-invert-filter",!1),this.networkHideDataURLSetting=t.Settings.Settings.instance().createSetting("network-hide-data-url",!1),this.networkHideChromeExtensions=t.Settings.Settings.instance().createSetting("network-hide-chrome-extensions",!1),this.networkShowBlockedCookiesOnlySetting=t.Settings.Settings.instance().createSetting("network-show-blocked-cookies-only-setting",!1),this.networkOnlyBlockedRequestsSetting=t.Settings.Settings.instance().createSetting("network-only-blocked-requests",!1),this.networkOnlyThirdPartySetting=t.Settings.Settings.instance().createSetting("network-only-third-party-setting",!1),this.networkResourceTypeFiltersSetting=t.Settings.Settings.instance().createSetting("network-resource-type-filters",{}),this.networkShowOptionsToGenerateHarWithSensitiveData=t.Settings.Settings.instance().createSetting("network.show-options-to-generate-har-with-sensitive-data",!1),this.rawRowHeight=0,this.progressBarContainer=r,this.networkLogLargeRowsSetting=o,this.networkLogLargeRowsSetting.addChangeListener(l.bind(this),this),this.rawRowHeight=0,this.rowHeightInternal=0,l.call(this),this.timeCalculatorInternal=new jt,this.durationCalculator=new zt,this.calculatorInternal=this.timeCalculatorInternal,this.columnsInternal=new ki(this,this.timeCalculatorInternal,this.durationCalculator,o),this.columnsInternal.show(this.element),this.staleRequests=new Set,this.mainRequestLoadTime=-1,this.mainRequestDOMContentLoadedTime=-1,this.filters=[],this.timeFilter=null,this.hoveredNodeInternal=null,this.recordingHint=null,this.highlightedNode=null,this.linkifierInternal=new b.Linkifier.Linkifier,this.recording=!1,this.needsRefresh=!1,this.headerHeightInternal=0,this.groupLookups=new Map,this.groupLookups.set("Frame",new Kt(this)),this.activeGroupLookup=null,this.textFilterUI=new e.FilterBar.TextFilterUI,this.textFilterUI.addEventListener("FilterChanged",this.filterChanged,this),i.addFilter(this.textFilterUI),this.invertFilterUI=new e.FilterBar.CheckboxFilterUI("invert-filter",Ri(Ti.invertFilter),!0,this.networkInvertFilterSetting,"invert-filter"),this.invertFilterUI.addEventListener("FilterChanged",this.filterChanged.bind(this),this),e.Tooltip.Tooltip.install(this.invertFilterUI.element(),Ri(Ti.invertsFilter)),i.addFilter(this.invertFilterUI),i.addDivider();const d=Object.entries(this.isReactNative?t.ResourceType.resourceCategoriesReactNative:t.ResourceType.resourceCategories).map((([e,t])=>({name:t.name,label:()=>t.shortTitle(),title:t.title(),jslogContext:s.StringUtilities.toKebabCase(e)})));C.Runtime.experiments.isEnabled("network-panel-filter-bar-redesign")?(this.moreFiltersDropDownUI=new Mi,this.moreFiltersDropDownUI.addEventListener("FilterChanged",this.filterChanged,this),i.addFilter(this.moreFiltersDropDownUI),this.resourceCategoryFilterUI=new e.FilterBar.NamedBitSetFilterUI(d,this.networkResourceTypeFiltersSetting),e.ARIAUtils.setLabel(this.resourceCategoryFilterUI.element(),Ri(Ti.requestTypesToInclude)),this.resourceCategoryFilterUI.addEventListener("FilterChanged",this.filterChanged.bind(this),this),i.addFilter(this.resourceCategoryFilterUI)):(this.dataURLFilterUI=new e.FilterBar.CheckboxFilterUI("hide-data-url",Ri(Ti.hideDataUrls),!0,this.networkHideDataURLSetting,"hide-data-urls"),this.dataURLFilterUI.addEventListener("FilterChanged",this.filterChanged.bind(this),this),e.Tooltip.Tooltip.install(this.dataURLFilterUI.element(),Ri(Ti.hidesDataAndBlobUrls)),i.addFilter(this.dataURLFilterUI),this.isReactNative||(this.hideChromeExtensionsUI=new e.FilterBar.CheckboxFilterUI("chrome-extension",Ri(Ti.chromeExtensions),!0,this.networkHideChromeExtensions,"hide-extension-urls"),this.hideChromeExtensionsUI.addEventListener("FilterChanged",this.filterChanged.bind(this),this),e.Tooltip.Tooltip.install(this.hideChromeExtensionsUI.element(),Ri(Ti.hideChromeExtension)),i.addFilter(this.hideChromeExtensionsUI)),this.resourceCategoryFilterUI=new e.FilterBar.NamedBitSetFilterUI(d,this.networkResourceTypeFiltersSetting),e.ARIAUtils.setLabel(this.resourceCategoryFilterUI.element(),Ri(Ti.requestTypesToInclude)),this.resourceCategoryFilterUI.addEventListener("FilterChanged",this.filterChanged.bind(this),this),i.addFilter(this.resourceCategoryFilterUI),this.isReactNative||(this.onlyBlockedResponseCookiesFilterUI=new e.FilterBar.CheckboxFilterUI("only-show-blocked-cookies",Ri(Ti.hasBlockedCookies),!0,this.networkShowBlockedCookiesOnlySetting,"only-show-blocked-cookies"),this.onlyBlockedResponseCookiesFilterUI.addEventListener("FilterChanged",this.filterChanged.bind(this),this),e.Tooltip.Tooltip.install(this.onlyBlockedResponseCookiesFilterUI.element(),Ri(Ti.onlyShowRequestsWithBlockedCookies)),i.addFilter(this.onlyBlockedResponseCookiesFilterUI)),this.onlyBlockedRequestsUI=new e.FilterBar.CheckboxFilterUI("only-show-blocked-requests",Ri(Ti.blockedRequests),!0,this.networkOnlyBlockedRequestsSetting,"only-show-blocked-requests"),this.onlyBlockedRequestsUI.addEventListener("FilterChanged",this.filterChanged.bind(this),this),e.Tooltip.Tooltip.install(this.onlyBlockedRequestsUI.element(),Ri(Ti.onlyShowBlockedRequests)),i.addFilter(this.onlyBlockedRequestsUI),this.isReactNative||(this.onlyThirdPartyFilterUI=new e.FilterBar.CheckboxFilterUI("only-show-third-party",Ri(Ti.thirdParty),!0,this.networkOnlyThirdPartySetting,"only-show-third-party"),this.onlyThirdPartyFilterUI.addEventListener("FilterChanged",this.filterChanged.bind(this),this),e.Tooltip.Tooltip.install(this.onlyThirdPartyFilterUI.element(),Ri(Ti.onlyShowThirdPartyRequests)),i.addFilter(this.onlyThirdPartyFilterUI))),this.filterParser=new R.TextUtils.FilterParser(Hi),this.suggestionBuilder=new e.FilterSuggestionBuilder.FilterSuggestionBuilder(Hi,Ii.sortSearchValues),this.resetSuggestionBuilder(),this.dataGrid=this.columnsInternal.dataGrid(),this.setupDataGrid(),this.columnsInternal.sortByCurrentColumn(),i.filterButton().addEventListener("Click",this.dataGrid.scheduleUpdate.bind(this.dataGrid,!0)),this.summaryToolbarInternal=this.element.createChild("devtools-toolbar","network-summary-bar"),this.summaryToolbarInternal.setAttribute("role","status"),new e.DropTarget.DropTarget(this.element,[e.DropTarget.Type.File],Ri(Ti.dropHarFilesHere),this.handleDrop.bind(this)),t.Settings.Settings.instance().moduleSetting("network-color-code-resource-types").addChangeListener(this.invalidateAllItems.bind(this,!1),this),n.TargetManager.TargetManager.instance().observeModels(n.NetworkManager.NetworkManager,this,{scoped:!0}),a.NetworkLog.NetworkLog.instance().addEventListener(a.NetworkLog.Events.RequestAdded,this.onRequestUpdated,this),a.NetworkLog.NetworkLog.instance().addEventListener(a.NetworkLog.Events.RequestUpdated,this.onRequestUpdated,this),a.NetworkLog.NetworkLog.instance().addEventListener(a.NetworkLog.Events.RequestRemoved,this.onRequestRemoved,this),a.NetworkLog.NetworkLog.instance().addEventListener(a.NetworkLog.Events.Reset,this.reset,this),this.updateGroupByFrame(),t.Settings.Settings.instance().moduleSetting("network.group-by-frame").addChangeListener((()=>this.updateGroupByFrame())),this.filterBar=i,this.textFilterSetting=t.Settings.Settings.instance().createSetting("network-text-filter",""),this.textFilterSetting.get()&&this.textFilterUI.setValue(this.textFilterSetting.get())}getMoreFiltersDropdown(){return this.moreFiltersDropDownUI}updateGroupByFrame(){const e=t.Settings.Settings.instance().moduleSetting("network.group-by-frame").get();this.setGrouping(e?"Frame":null)}static sortSearchValues(e,t){e===m.UIFilter.FilterType.Priority?t.sort(((e,t)=>{const i=v.NetworkPriorities.uiLabelToNetworkPriority(e),r=v.NetworkPriorities.uiLabelToNetworkPriority(t);return v.NetworkPriorities.networkPriorityWeight(i)-v.NetworkPriorities.networkPriorityWeight(r)})):t.sort()}static negativeFilter(e,t){return!e(t)}static requestPathFilter(e,t){return!!e&&e.test(t.path()+"/"+t.name())}static subdomains(e){const t=[e];let i=e.indexOf(".");for(;-1!==i;)t.push("*"+e.substring(i)),i=e.indexOf(".",i+1);return t}static createRequestDomainFilter(e){const t=e.split("*").map(s.StringUtilities.escapeForRegExp).join(".*");return Ii.requestDomainFilter.bind(null,new RegExp("^"+t+"$","i"))}static requestDomainFilter(e,t){return e.test(t.domain)}static runningRequestFilter(e){return!e.finished}static fromCacheRequestFilter(e){return e.cached()}static interceptedByServiceWorkerFilter(e){return e.fetchedViaServiceWorker}static initiatedByServiceWorkerFilter(e){return e.initiatedByServiceWorker()}static requestResponseHeaderFilter(e,t){return void 0!==t.responseHeaderValue(e)}static requestResponseHeaderSetCookieFilter(e,t){return Boolean(t.responseHeaderValue("Set-Cookie")?.includes(e))}static requestMethodFilter(e,t){return t.requestMethod===e}static requestPriorityFilter(e,t){return t.priority()===e}static requestMimeTypeFilter(e,t){return t.mimeType===e}static requestMixedContentFilter(e,t){return"displayed"===e?"optionally-blockable"===t.mixedContentType:"blocked"===e?"blockable"===t.mixedContentType&&t.wasBlocked():"block-overridden"===e?"blockable"===t.mixedContentType&&!t.wasBlocked():"all"===e&&"none"!==t.mixedContentType}static requestSchemeFilter(e,t){return t.scheme===e}static requestCookieDomainFilter(e,t){return t.allCookiesIncludingBlockedOnes().some((t=>t.domain()===e))}static requestCookieNameFilter(e,t){return t.allCookiesIncludingBlockedOnes().some((t=>t.name()===e))}static requestCookiePathFilter(e,t){return t.allCookiesIncludingBlockedOnes().some((t=>t.path()===e))}static requestCookieValueFilter(e,t){return t.allCookiesIncludingBlockedOnes().some((t=>t.value()===e))}static requestSetCookieDomainFilter(e,t){return t.responseCookies.some((t=>t.domain()===e))}static requestSetCookieNameFilter(e,t){return t.responseCookies.some((t=>t.name()===e))}static requestSetCookieValueFilter(e,t){return t.responseCookies.some((t=>t.value()===e))}static requestSizeLargerThanFilter(e,t){return t.transferSize>=e}static statusCodeFilter(e,t){return String(t.statusCode)===e}static hasOverridesFilter(e,t){return!!e&&(e===Pi.no?0===t.overrideTypes.length:e===Pi.yes?t.overrideTypes.length>0:e===Pi.content?t.overrideTypes.includes("content"):e===Pi.headers?t.overrideTypes.includes("headers"):t.overrideTypes.join(",").includes(e))}static getHTTPRequestsFilter(e){return e.parsedURL.isValid&&e.scheme in Ei}static resourceTypeFilter(e,t){return t.resourceType().name()===e}static requestUrlFilter(e,t){return new RegExp(s.StringUtilities.escapeForRegExp(e),"i").test(t.url())}static requestTimeFilter(e,t,i){return!(i.issueTime()>t)&&!(-1!==i.endTime&&i.endTime<e)}static copyRequestHeaders(e){i.InspectorFrontendHost.InspectorFrontendHostInstance.copyText(e.requestHeadersText())}static copyResponseHeaders(e){i.InspectorFrontendHost.InspectorFrontendHostInstance.copyText(e.responseHeadersText)}static async copyResponse(e){const t=await e.requestContentData();let r;r=R.ContentData.ContentData.isError(t)?"":t.isTextContent?t.text:t.asDataUrl()??"",i.InspectorFrontendHost.InspectorFrontendHostInstance.copyText(r)}handleDrop(e){const t=e.items;if(!t.length)return;const i=t[0].getAsFile();i&&this.onLoadFromFile(i)}async onLoadFromFile(e){const i=new t.StringOutputStream.StringOutputStream,r=new p.FileUtils.ChunkedFileReader(e,1e7);if(!await r.read(i)){const e=r.error();return void(e&&this.harLoadFailed(e.message))}let o;try{o=new I.HARFormat.HARRoot(JSON.parse(i.data()))}catch(e){return void this.harLoadFailed(e)}a.NetworkLog.NetworkLog.instance().importRequests(I.Importer.Importer.requestsFromHARLog(o.log))}harLoadFailed(e){t.Console.Console.instance().error("Failed to load HAR file with following error: "+e)}setGrouping(e){this.activeGroupLookup&&this.activeGroupLookup.reset();const t=e&&this.groupLookups.get(e)||null;this.activeGroupLookup=t,this.invalidateAllItems()}computeRowHeight(){return this.rawRowHeight}nodeForRequest(e){return Fi.get(e)||null}headerHeight(){return this.headerHeightInternal}setRecording(e){this.recording=e,this.updateSummaryBar()}columns(){return this.columnsInternal}summaryToolbar(){return this.summaryToolbarInternal}modelAdded(e){const t=e.target();if(t.outermostTarget()!==t)return;const i=t.model(n.ResourceTreeModel.ResourceTreeModel);i&&(i.addEventListener(n.ResourceTreeModel.Events.Load,this.loadEventFired,this),i.addEventListener(n.ResourceTreeModel.Events.DOMContentLoaded,this.domContentLoadedEventFired,this));for(const e of a.NetworkLog.NetworkLog.instance().requests())this.isInScope(e)&&this.refreshRequest(e)}modelRemoved(e){const i=e.target();if(i.outermostTarget()!==i)return;const r=i.model(n.ResourceTreeModel.ResourceTreeModel);r&&(r.removeEventListener(n.ResourceTreeModel.Events.Load,this.loadEventFired,this),r.removeEventListener(n.ResourceTreeModel.Events.DOMContentLoaded,this.domContentLoadedEventFired,this));t.Settings.Settings.instance().moduleSetting("network-log.preserve-log").get()||this.reset()}linkifier(){return this.linkifierInternal}setWindow(e,t){e||t?(this.timeFilter=Ii.requestTimeFilter.bind(null,e,t),this.timeCalculatorInternal.setWindow(new Ot(e,t))):(this.timeFilter=null,this.timeCalculatorInternal.setWindow(null)),this.filterRequests()}resetFocus(){this.dataGrid.element.focus()}resetSuggestionBuilder(){this.suggestionBuilder.clear(),this.suggestionBuilder.addItem(m.UIFilter.FilterType.Is,"running"),this.suggestionBuilder.addItem(m.UIFilter.FilterType.Is,"from-cache"),this.suggestionBuilder.addItem(m.UIFilter.FilterType.Is,"service-worker-intercepted"),this.suggestionBuilder.addItem(m.UIFilter.FilterType.Is,"service-worker-initiated"),this.suggestionBuilder.addItem(m.UIFilter.FilterType.LargerThan,"100"),this.suggestionBuilder.addItem(m.UIFilter.FilterType.LargerThan,"10k"),this.suggestionBuilder.addItem(m.UIFilter.FilterType.LargerThan,"1M"),this.textFilterUI.setSuggestionProvider(this.suggestionBuilder.completions.bind(this.suggestionBuilder)),this.suggestionBuilder.addItem(m.UIFilter.FilterType.HasOverrides,Pi.yes),this.suggestionBuilder.addItem(m.UIFilter.FilterType.HasOverrides,Pi.no),this.suggestionBuilder.addItem(m.UIFilter.FilterType.HasOverrides,Pi.content),this.suggestionBuilder.addItem(m.UIFilter.FilterType.HasOverrides,Pi.headers)}filterChanged(){this.removeAllNodeHighlights(),this.parseFilterQuery(this.textFilterUI.value(),this.invertFilterUI.checked()),this.filterRequests(),this.textFilterSetting.set(this.textFilterUI.value()),this.moreFiltersDropDownUI?.updateActiveFiltersCount(),this.moreFiltersDropDownUI?.updateTooltip()}async resetFilter(){this.textFilterUI.clear()}showRecordingHint(){this.hideRecordingHint();const t=e.ActionRegistry.ActionRegistry.instance(),i=this.recording?"inspector-main.reload":"network.toggle-recording",r=t.hasAction(i)?t.getAction(i):null,o=e.ShortcutRegistry.ShortcutRegistry.instance().shortcutTitleForAction(i)??"",s=this.recording?Ri(Ti.recordingNetworkActivity):Ri(Ti.noNetworkActivityRecorded),n=this.recording?Ti.performARequestOrHitSToRecordThe:Ti.recordToDisplayNetworkActivity,a=this.recording?Ri(Ti.reloadPage):Ri(Ti.startRecording),l=Ri(n,{PH1:a,PH2:o});if(this.recordingHint=new e.EmptyWidget.EmptyWidget(s,o?l:""),this.recordingHint.element.classList.add("network-status-pane"),this.recordingHint.appendLink("https://developer.chrome.com/docs/devtools/network/"),o&&r){const t=e.UIUtils.createTextButton(a,(()=>r.execute()),{jslogContext:i,variant:"tonal"});this.recordingHint.contentElement.appendChild(t)}this.recordingHint.show(this.element),this.setHidden(!0)}hideRecordingHint(){this.setHidden(!1),this.recordingHint&&(this.recordingHint.detach(),this.recordingHint=null),e.ARIAUtils.alert(Ri(Ti.networkDataAvailable))}setHidden(t){this.columnsInternal.setHidden(t),e.ARIAUtils.setHidden(this.summaryToolbarInternal,t)}elementsToRestoreScrollPositionsFor(){return this.dataGrid?[this.dataGrid.scrollContainer]:[]}columnExtensionResolved(){this.invalidateAllItems(!0)}setupDataGrid(){return this.dataGrid.setRowContextMenuCallback(((e,t)=>{const i=t.request();i&&this.handleContextMenuForRequest(e,i)})),this.dataGrid.setEnableAutoScrollToBottom(!0),this.dataGrid.setName("network-log"),this.dataGrid.setResizeMethod("last"),this.dataGrid.element.classList.add("network-log-grid"),this.dataGrid.element.addEventListener("mousedown",this.dataGridMouseDown.bind(this),!0),this.dataGrid.element.addEventListener("mousemove",this.dataGridMouseMove.bind(this),!0),this.dataGrid.element.addEventListener("mouseleave",(()=>this.setHoveredNode(null)),!0),this.dataGrid.element.addEventListener("keydown",(e=>{if("ArrowRight"===e.key&&this.dataGrid.selectedNode){const e=this.dataGrid.selectedNode.element().querySelector("button.devtools-link");e&&e.focus()}s.KeyboardUtilities.isEnterOrSpaceKey(e)&&(this.dispatchEventToListeners("RequestActivated",{showPanel:!0,takeFocus:!0}),e.consume(!0))})),this.dataGrid.element.addEventListener("keyup",(e=>{if(("r"===e.key||"R"===e.key)&&this.dataGrid.selectedNode){const t=this.dataGrid.selectedNode.request();if(!t)return;n.NetworkManager.NetworkManager.canReplayRequest(t)&&(n.NetworkManager.NetworkManager.replayRequest(t),d.logKeyDown(this.dataGrid.selectedNode.element(),e,"replay-xhr"))}})),this.dataGrid.element.addEventListener("focus",this.onDataGridFocus.bind(this),!0),this.dataGrid.element.addEventListener("blur",this.onDataGridBlur.bind(this),!0),this.dataGrid}dataGridMouseMove(e){const t=e,i=this.dataGrid.dataGridNodeFromNode(t.target),r=t.shiftKey;this.setHoveredNode(i,r)}hoveredNode(){return this.hoveredNodeInternal}setHoveredNode(e,t){this.hoveredNodeInternal&&this.hoveredNodeInternal.setHovered(!1,!1),this.hoveredNodeInternal=e,this.hoveredNodeInternal&&this.hoveredNodeInternal.setHovered(!0,Boolean(t))}dataGridMouseDown(e){const t=e;!this.dataGrid.selectedNode&&t.button&&t.consume()}updateSummaryBar(){this.hideRecordingHint();let i=0,o=0,s=0,l=0,d=0,c=-1,h=-1,u=0;for(const e of a.NetworkLog.NetworkLog.instance().requests()){const r=Fi.get(e);if(!r)continue;u++;const a=e.transferSize;i+=a;const p=e.resourceSize;o+=p,Li.has(r)||(s++,l+=a,d+=p);const g=n.NetworkManager.NetworkManager.forRequest(e);g&&e.url()===g.target().inspectedURL()&&e.resourceType()===t.ResourceType.resourceTypes.Document&&g.target().parentTarget()?.type()!==n.Target.Type.FRAME&&(c=e.fromPrefetchCache()?e.issueTime():e.startTime),e.endTime>h&&(h=e.endTime)}if(!u)return void this.showRecordingHint();this.summaryToolbarInternal.removeToolbarItems();const p=(t,i)=>{const r=new e.Toolbar.ToolbarText(t);return r.setTitle(i||t),this.summaryToolbarInternal.appendToolbarItem(r),r.element};if(s!==u?(p(Ri(Ti.sSRequests,{PH1:s,PH2:u})),this.summaryToolbarInternal.appendSeparator(),p(Ri(Ti.sSTransferred,{PH1:r.ByteUtilities.formatBytesToKb(l),PH2:r.ByteUtilities.formatBytesToKb(i)}),Ri(Ti.sBSBTransferredOverNetwork,{PH1:l,PH2:i})),this.summaryToolbarInternal.appendSeparator(),p(Ri(Ti.sSResources,{PH1:r.ByteUtilities.formatBytesToKb(d),PH2:r.ByteUtilities.formatBytesToKb(o)}),Ri(Ti.sBSBResourcesLoadedByThePage,{PH1:d,PH2:o}))):(p(Ri(Ti.sRequests,{PH1:u})),this.summaryToolbarInternal.appendSeparator(),p(Ri(Ti.sTransferred,{PH1:r.ByteUtilities.bytesToString(i)}),Ri(Ti.sBTransferredOverNetwork,{PH1:i})),this.summaryToolbarInternal.appendSeparator(),p(Ri(Ti.sResources,{PH1:r.ByteUtilities.bytesToString(o)}),Ri(Ti.sBResourcesLoadedByThePage,{PH1:o}))),-1!==c&&-1!==h){if(this.summaryToolbarInternal.appendSeparator(),p(Ri(Ti.finishS,{PH1:r.TimeUtilities.secondsToString(h-c)})),-1!==this.mainRequestDOMContentLoadedTime&&this.mainRequestDOMContentLoadedTime>c){this.summaryToolbarInternal.appendSeparator();p(Ri(Ti.domcontentloadedS,{PH1:r.TimeUtilities.secondsToString(this.mainRequestDOMContentLoadedTime-c)})).style.color=`var(${Ii.getDCLEventColor()})`}if(-1!==this.mainRequestLoadTime){this.summaryToolbarInternal.appendSeparator();p(Ri(Ti.loadS,{PH1:r.TimeUtilities.secondsToString(this.mainRequestLoadTime-c)})).style.color=`var(${Ii.getLoadEventColor()})`}}}scheduleRefresh(){this.needsRefresh||(this.needsRefresh=!0,this.isShowing()&&E.write("NetworkLogView.render",this.refresh.bind(this)))}addFilmStripFrames(e){this.columnsInternal.addEventDividers(e,"network-frame-divider")}selectFilmStripFrame(e){this.columnsInternal.selectFilmStripFrame(e)}clearFilmStripFrame(){this.columnsInternal.clearFilmStripFrame()}refreshIfNeeded(){this.needsRefresh&&this.refresh()}invalidateAllItems(e){this.staleRequests=new Set(a.NetworkLog.NetworkLog.instance().requests().filter(this.isInScope)),e?this.scheduleRefresh():this.refresh()}timeCalculator(){return this.timeCalculatorInternal}calculator(){return this.calculatorInternal}setCalculator(e){e&&this.calculatorInternal!==e&&(this.calculatorInternal!==e&&(this.calculatorInternal=e,this.columnsInternal.setCalculator(this.calculatorInternal)),this.calculatorInternal.reset(),this.calculatorInternal.startAtZero?this.columnsInternal.hideEventDividers():this.columnsInternal.showEventDividers(),this.invalidateAllItems())}loadEventFired(e){if(!this.recording)return;const t=e.data.loadTime;t&&(this.mainRequestLoadTime=t,this.columnsInternal.addEventDividers([t],"network-load-divider"))}domContentLoadedEventFired(e){if(!this.recording)return;const{data:t}=e;t&&(this.mainRequestDOMContentLoadedTime=t,this.columnsInternal.addEventDividers([t],"network-dcl-divider"))}wasShown(){super.wasShown(),this.refreshIfNeeded(),this.columnsInternal.wasShown()}willHide(){this.columnsInternal.willHide()}onResize(){this.rowHeightInternal=this.computeRowHeight()}flatNodesList(){return this.dataGrid.rootNode().flatChildren()}onDataGridFocus(){this.dataGrid.element.matches(":focus-visible")&&this.element.classList.add("grid-focused"),this.updateNodeBackground()}onDataGridBlur(){this.element.classList.remove("grid-focused"),this.updateNodeBackground()}updateNodeBackground(){this.dataGrid.selectedNode&&this.dataGrid.selectedNode.updateBackgroundColor()}updateNodeSelectedClass(e){e?this.element.classList.remove("no-node-selected"):this.element.classList.add("no-node-selected")}stylesChanged(){this.columnsInternal.scheduleRefresh()}removeNodeAndMaybeAncestors(e){let t=e.parent;if(t)for(t.removeChild(e);t&&!t.hasChildren()&&t.dataGrid&&t.dataGrid.rootNode()!==t;){const e=t.parent;e.removeChild(t),t=e}}refresh(){this.needsRefresh=!1,this.removeAllNodeHighlights(),this.timeCalculatorInternal.updateBoundariesForEventTime(this.mainRequestLoadTime),this.durationCalculator.updateBoundariesForEventTime(this.mainRequestLoadTime),this.timeCalculatorInternal.updateBoundariesForEventTime(this.mainRequestDOMContentLoadedTime),this.durationCalculator.updateBoundariesForEventTime(this.mainRequestDOMContentLoadedTime);const e=new Map,t=[],i=new Set;for(;this.staleRequests.size;){const e=this.staleRequests.values().next().value;this.staleRequests.delete(e);let t=Fi.get(e);t||(t=this.createNodeForRequest(e)),i.add(t)}for(const r of i){const i=r.request(),o=!this.applyFilter(i);o?(r===this.hoveredNodeInternal&&this.setHoveredNode(null),r.selected=!1):t.push(r),this.timeCalculatorInternal.updateBoundaries(i),this.durationCalculator.updateBoundaries(i);const s=this.parentNodeForInsert(r);if(Li.has(r)===o&&r.parent===s)continue;o?Li.add(r):Li.delete(r);r.parent&&(o||r.parent!==s)&&this.removeNodeAndMaybeAncestors(r),s&&!o&&(s.dataGrid||e.has(s)||(e.set(s,this.dataGrid.rootNode()),t.push(s)),e.set(r,s))}for(const t of e.keys())e.get(t).appendChild(t);for(const e of t)e.refresh();this.updateSummaryBar(),e.size&&this.columnsInternal.sortByCurrentColumn(),this.dataGrid.updateInstantly(),this.didRefreshForTest()}didRefreshForTest(){}parentNodeForInsert(e){if(!this.activeGroupLookup)return this.dataGrid.rootNode();const t=this.activeGroupLookup.groupNodeForRequest(e.request());return t||this.dataGrid.rootNode()}reset(){this.dispatchEventToListeners("RequestActivated",{showPanel:!1}),this.setHoveredNode(null),this.columnsInternal.reset(),this.timeFilter=null,this.calculatorInternal.reset(),this.timeCalculatorInternal.setWindow(null),this.linkifierInternal.reset(),this.activeGroupLookup&&this.activeGroupLookup.reset(),this.staleRequests.clear(),this.resetSuggestionBuilder(),this.mainRequestLoadTime=-1,this.mainRequestDOMContentLoadedTime=-1,this.dataGrid.rootNode().removeChildren(),this.updateSummaryBar(),this.scheduleRefresh()}setTextFilterValue(e){this.textFilterUI.setValue(e),C.Runtime.experiments.isEnabled("network-panel-filter-bar-redesign")?(this.networkHideDataURLSetting.set(!1),this.networkShowBlockedCookiesOnlySetting.set(!1),this.networkOnlyBlockedRequestsSetting.set(!1),this.networkOnlyThirdPartySetting.set(!1),this.networkHideChromeExtensions.set(!1)):(this.dataURLFilterUI?.setChecked(!1),this.onlyBlockedResponseCookiesFilterUI?.setChecked(!1),this.onlyBlockedRequestsUI?.setChecked(!1),this.onlyThirdPartyFilterUI?.setChecked(!1),this.hideChromeExtensionsUI?.setChecked(!1)),this.resourceCategoryFilterUI.reset()}createNodeForRequest(e){const t=new ve(this,e);Fi.set(e,t),Li.add(t);for(let t=e.redirectSource();t;t=t.redirectSource())this.refreshRequest(t);return t}isInScope(e){const t=n.NetworkManager.NetworkManager.forRequest(e);return!t||n.TargetManager.TargetManager.instance().isInScope(t)}onRequestUpdated(e){const{request:t,preserveLog:i}=e.data;(this.isInScope(t)||i)&&this.refreshRequest(t)}onRequestRemoved(e){const{request:t}=e.data;this.staleRequests.delete(t);const i=Fi.get(t);i&&this.removeNodeAndMaybeAncestors(i)}refreshRequest(e){Ii.subdomains(e.domain).forEach(this.suggestionBuilder.addItem.bind(this.suggestionBuilder,m.UIFilter.FilterType.Domain)),this.suggestionBuilder.addItem(m.UIFilter.FilterType.Method,e.requestMethod),this.suggestionBuilder.addItem(m.UIFilter.FilterType.MimeType,e.mimeType),this.suggestionBuilder.addItem(m.UIFilter.FilterType.Scheme,String(e.scheme)),this.suggestionBuilder.addItem(m.UIFilter.FilterType.StatusCode,String(e.statusCode)),this.suggestionBuilder.addItem(m.UIFilter.FilterType.ResourceType,e.resourceType().name()),this.suggestionBuilder.addItem(m.UIFilter.FilterType.Url,e.securityOrigin());const t=e.priority();if(t&&this.suggestionBuilder.addItem(m.UIFilter.FilterType.Priority,v.NetworkPriorities.uiLabelForNetworkPriority(t)),"none"!==e.mixedContentType&&this.suggestionBuilder.addItem(m.UIFilter.FilterType.MixedContent,"all"),"optionally-blockable"===e.mixedContentType&&this.suggestionBuilder.addItem(m.UIFilter.FilterType.MixedContent,"displayed"),"blockable"===e.mixedContentType){const t=e.wasBlocked()?"blocked":"block-overridden";this.suggestionBuilder.addItem(m.UIFilter.FilterType.MixedContent,t)}const i=e.responseHeaders;for(const e of i)this.suggestionBuilder.addItem(m.UIFilter.FilterType.HasResponseHeader,e.name),"Set-Cookie"===e.name&&this.suggestionBuilder.addItem(m.UIFilter.FilterType.ResponseHeaderValueSetCookie);for(const t of e.responseCookies)this.suggestionBuilder.addItem(m.UIFilter.FilterType.SetCookieDomain,t.domain()),this.suggestionBuilder.addItem(m.UIFilter.FilterType.SetCookieName,t.name()),this.suggestionBuilder.addItem(m.UIFilter.FilterType.SetCookieValue,t.value());for(const t of e.allCookiesIncludingBlockedOnes())this.suggestionBuilder.addItem(m.UIFilter.FilterType.CookieDomain,t.domain()),this.suggestionBuilder.addItem(m.UIFilter.FilterType.CookieName,t.name()),this.suggestionBuilder.addItem(m.UIFilter.FilterType.CookiePath,t.path()),this.suggestionBuilder.addItem(m.UIFilter.FilterType.CookieValue,t.value());this.staleRequests.add(e),this.scheduleRefresh()}rowHeight(){return this.rowHeightInternal}switchViewMode(e){this.columnsInternal.switchViewMode(e)}handleContextMenuForRequest(t,r){t.appendApplicableItems(r);const o=this.filterBar.hasActiveFilter(),a=t.clipboardSection().appendSubMenuItem(Ri(Ti.copy),!1,"copy");if(r){e.ActionRegistry.ActionRegistry.instance().hasAction("drjones.network-panel-context")&&(e.Context.Context.instance().setFlavor(n.NetworkRequest.NetworkRequest,r),t.footerSection().appendAction("drjones.network-panel-context")),a.defaultSection().appendItem(Ri(Ti.copyURL),i.InspectorFrontendHost.InspectorFrontendHostInstance.copyText.bind(i.InspectorFrontendHost.InspectorFrontendHostInstance,r.contentURL()),{jslogContext:"copy-url"}),a.footerSection().appendItem(Ri(o?Ti.copyAllListedURLs:Ti.copyAllURLs),this.copyAllURLs.bind(this),{jslogContext:"copy-all-urls"}),r.requestHeadersText()&&a.saveSection().appendItem(Ri(Ti.copyRequestHeaders),Ii.copyRequestHeaders.bind(null,r),{jslogContext:"copy-request-headers"}),r.responseHeadersText&&a.saveSection().appendItem(Ri(Ti.copyResponseHeaders),Ii.copyResponseHeaders.bind(null,r),{jslogContext:"copy-response-headers"}),r.finished&&a.saveSection().appendItem(Ri(Ti.copyResponse),Ii.copyResponse.bind(null,r),{jslogContext:"copy-response"});const l=r.initiator();if(l){const c=l.stack;if(c){const h=qi(c);""!==h&&a.saveSection().appendItem(Ri(Ti.copyStacktrace),(()=>{i.InspectorFrontendHost.InspectorFrontendHostInstance.copyText(h)}),{jslogContext:"copy-stacktrace"})}}const d=r.isBlobRequest();i.Platform.isWin()?(a.defaultSection().appendItem(Ri(Ti.copyAsCurlCmd),this.copyCurlCommand.bind(this,r,"win"),{disabled:d,jslogContext:"copy-as-curl-cmd"}),a.defaultSection().appendItem(Ri(Ti.copyAsCurlBash),this.copyCurlCommand.bind(this,r,"unix"),{disabled:d,jslogContext:"copy-as-curl-bash"})):a.defaultSection().appendItem(Ri(Ti.copyAsCurl),this.copyCurlCommand.bind(this,r,"unix"),{disabled:d,jslogContext:"copy-as-curl"}),a.defaultSection().appendItem(Ri(Ti.copyAsPowershell),this.copyPowerShellCommand.bind(this,r),{disabled:d,jslogContext:"copy-as-powershell"}),a.defaultSection().appendItem(Ri(Ti.copyAsFetch),this.copyFetchCall.bind(this,r,0),{disabled:d,jslogContext:"copy-as-fetch"}),a.defaultSection().appendItem(Ri(Ti.copyAsNodejsFetch),this.copyFetchCall.bind(this,r,1),{disabled:d,jslogContext:"copy-as-nodejs-fetch"}),i.Platform.isWin()?(a.footerSection().appendItem(Ri(o?Ti.copyAllListedAsCurlCmd:Ti.copyAllAsCurlCmd),this.copyAllCurlCommand.bind(this,"win"),{jslogContext:"copy-all-as-curl-cmd"}),a.footerSection().appendItem(Ri(o?Ti.copyAllListedAsCurlBash:Ti.copyAllAsCurlBash),this.copyAllCurlCommand.bind(this,"unix"),{jslogContext:"copy-all-as-curl-bash"})):a.footerSection().appendItem(Ri(o?Ti.copyAllListedAsCurl:Ti.copyAllAsCurl),this.copyAllCurlCommand.bind(this,"unix"),{jslogContext:"copy-all-as-curl"}),a.footerSection().appendItem(Ri(o?Ti.copyAllListedAsPowershell:Ti.copyAllAsPowershell),this.copyAllPowerShellCommand.bind(this),{jslogContext:"copy-all-as-powershell"}),a.footerSection().appendItem(Ri(o?Ti.copyAllListedAsFetch:Ti.copyAllAsFetch),this.copyAllFetchCall.bind(this,0),{jslogContext:"copy-all-as-fetch"}),a.footerSection().appendItem(Ri(o?Ti.copyAllListedAsNodejsFetch:Ti.copyAllAsNodejsFetch),this.copyAllFetchCall.bind(this,1),{jslogContext:"copy-all-as-nodejs-fetch"})}if(a.footerSection().appendItem(Ri(o?Ti.copyAllListedAsHarSanitized:Ti.copyAllAsHarSanitized),this.copyAllAsHAR.bind(this,{sanitize:!0}),{jslogContext:"copy-all-as-har"}),this.networkShowOptionsToGenerateHarWithSensitiveData.get()&&a.footerSection().appendItem(Ri(o?Ti.copyAllListedAsHarWithSensitiveData:Ti.copyAllAsHarWithSensitiveData),this.copyAllAsHAR.bind(this,{sanitize:!1}),{jslogContext:"copy-all-as-har-with-sensitive-data"}),t.overrideSection().appendItem(Ri(Ti.overrideHeaders),this.#i.bind(this,r),{disabled:q.NetworkPersistenceManager.NetworkPersistenceManager.isForbiddenNetworkUrl(r.url()),jslogContext:"override-headers"}),t.editSection().appendItem(Ri(Ti.clearBrowserCache),this.clearBrowserCache.bind(this),{jslogContext:"clear-browser-cache"}),t.editSection().appendItem(Ri(Ti.clearBrowserCookies),this.clearBrowserCookies.bind(this),{jslogContext:"clear-browser-cookies"}),r){const u=20,p=n.NetworkManager.MultitargetNetworkManager.instance();let g=p.blockedPatterns();function m(t){g.push({enabled:!0,url:t}),p.setBlockedPatterns(g),p.setBlockingEnabled(!0),e.ViewManager.ViewManager.instance().showView("network.blocked-urls")}function w(t){g=g.filter((e=>e.url!==t)),p.setBlockedPatterns(g),e.ViewManager.ViewManager.instance().showView("network.blocked-urls")}const k=r.parsedURL.urlWithoutScheme();if(k&&!g.find((e=>e.url===k)))t.debugSection().appendItem(Ri(Ti.blockRequestUrl),m.bind(null,k),{jslogContext:"block-request-url"});else if(k){const b=s.StringUtilities.trimMiddle(k,u);t.debugSection().appendItem(Ri(Ti.unblockS,{PH1:b}),w.bind(null,k),{jslogContext:"unblock"})}const v=r.parsedURL.domain();if(v&&!g.find((e=>e.url===v)))t.debugSection().appendItem(Ri(Ti.blockRequestDomain),m.bind(null,v),{jslogContext:"block-request-domain"});else if(v){const f=s.StringUtilities.trimMiddle(v,u);t.debugSection().appendItem(Ri(Ti.unblockS,{PH1:f}),w.bind(null,v),{jslogContext:"unblock"})}n.NetworkManager.NetworkManager.canReplayRequest(r)&&t.debugSection().appendItem(Ri(Ti.replayXhr),n.NetworkManager.NetworkManager.replayRequest.bind(null,r),{jslogContext:"replay-xhr"})}}harRequests(){return a.NetworkLog.NetworkLog.instance().requests().filter((e=>this.applyFilter(e))).filter(Ii.getHTTPRequestsFilter).filter((e=>e.finished||e.resourceType()===t.ResourceType.resourceTypes.WebSocket&&e.responseReceivedTime))}async copyAllAsHAR(e){const t={log:await I.Log.Log.build(this.harRequests(),e)};i.InspectorFrontendHost.InspectorFrontendHostInstance.copyText(JSON.stringify(t,null,2))}copyAllURLs(){const e=a.NetworkLog.NetworkLog.instance().requests().filter((e=>this.applyFilter(e))),t=this.filterOutBlobRequests(e).map((e=>e.url()));i.InspectorFrontendHost.InspectorFrontendHostInstance.copyText(t.join("\n"))}async copyCurlCommand(e,t){const r=await Ii.generateCurlCommand(e,t);i.InspectorFrontendHost.InspectorFrontendHostInstance.copyText(r)}async copyAllCurlCommand(e){const t=a.NetworkLog.NetworkLog.instance().requests().filter((e=>this.applyFilter(e))),r=await this.generateAllCurlCommand(t,e);i.InspectorFrontendHost.InspectorFrontendHostInstance.copyText(r)}async copyFetchCall(e,t){const r=await this.generateFetchCall(e,t);i.InspectorFrontendHost.InspectorFrontendHostInstance.copyText(r)}async copyAllFetchCall(e){const t=a.NetworkLog.NetworkLog.instance().requests().filter((e=>this.applyFilter(e))),r=await this.generateAllFetchCall(t,e);i.InspectorFrontendHost.InspectorFrontendHostInstance.copyText(r)}async copyPowerShellCommand(e){const t=await this.generatePowerShellCommand(e);i.InspectorFrontendHost.InspectorFrontendHostInstance.copyText(t)}async copyAllPowerShellCommand(){const e=a.NetworkLog.NetworkLog.instance().requests().filter((e=>this.applyFilter(e))),t=await this.generateAllPowerShellCommand(e);i.InspectorFrontendHost.InspectorFrontendHostInstance.copyText(t)}async exportAll(i){const r=n.TargetManager.TargetManager.instance().scopeTarget();if(!r)return;const o=r.inspectedURL(),s=t.ParsedURL.ParsedURL.fromString(o),a=s?s.host:"network-log",l=new p.FileUtils.FileOutputStream;if(!await l.open(t.ParsedURL.ParsedURL.concatenate(a,".har")))return;const d=new e.ProgressIndicator.ProgressIndicator;this.progressBarContainer.appendChild(d.element),await I.Writer.Writer.write(l,this.harRequests(),i,d),d.done(),l.close()}async#i(i){const r=m.UIRequestLocation.UIRequestLocation.responseHeaderMatch(i,{name:"",value:""}),o=q.NetworkPersistenceManager.NetworkPersistenceManager.instance();o.project()?(t.Settings.Settings.instance().moduleSetting("persistence-network-overrides-enabled").set(!0),await o.getOrCreateHeadersUISourceCodeFromUrl(i.url()),await t.Revealer.reveal(r)):e.InspectorView.InspectorView.instance().displaySelectOverrideFolderInfobar((async()=>{await L.SourcesNavigator.OverridesNavigatorView.instance().setupNewWorkspace(),await o.getOrCreateHeadersUISourceCodeFromUrl(i.url()),await t.Revealer.reveal(r)}))}clearBrowserCache(){confirm(Ri(Ti.areYouSureYouWantToClearBrowser))&&n.NetworkManager.MultitargetNetworkManager.instance().clearBrowserCache()}clearBrowserCookies(){confirm(Ri(Ti.areYouSureYouWantToClearBrowserCookies))&&n.NetworkManager.MultitargetNetworkManager.instance().clearBrowserCookies()}applyFilter(e){if(this.timeFilter&&!this.timeFilter(e))return!1;const t=e.resourceType().category().name;if(!this.resourceCategoryFilterUI.accept(t))return!1;const[i,r,o,s,n]=C.Runtime.experiments.isEnabled("network-panel-filter-bar-redesign")?[this.networkHideDataURLSetting.get(),this.networkShowBlockedCookiesOnlySetting.get(),this.networkOnlyBlockedRequestsSetting.get(),this.networkOnlyThirdPartySetting.get(),this.networkHideChromeExtensions.get()]:[this.dataURLFilterUI?.checked(),this.onlyBlockedResponseCookiesFilterUI?.checked(),this.onlyBlockedRequestsUI?.checked(),this.onlyThirdPartyFilterUI?.checked(),this.hideChromeExtensionsUI?.checked()];if(i&&(e.parsedURL.isDataURL()||e.parsedURL.isBlobURL()))return!1;if(r&&!e.blockedResponseCookies().length)return!1;if(o&&!e.wasBlocked()&&!e.corsErrorStatus())return!1;if(s&&e.isSameSite())return!1;if(n&&"chrome-extension"===e.scheme)return!1;for(let t=0;t<this.filters.length;++t)if(!this.filters[t](e))return!1;return!0}isValidUrl(e){try{return new URL(e),!0}catch{return!1}}parseFilterQuery(e,t){const i=this.filterParser.parse(e);this.filters=i.map((e=>{const i=e.key,r=e.text||"",o=e.regex;let n;if(i){const e=s.StringUtilities.escapeForRegExp(i+":"+r);n=this.createSpecialFilter(i,r)||Ii.requestPathFilter.bind(null,new RegExp(e,"i"))}else n=e.regex?Ii.requestPathFilter.bind(null,o):this.isValidUrl(r)?Ii.requestUrlFilter.bind(null,r):Ii.requestPathFilter.bind(null,new RegExp(s.StringUtilities.escapeForRegExp(r),"i"));return e.negative&&!t||!e.negative&&t?Ii.negativeFilter.bind(null,n):n}))}createSpecialFilter(e,t){switch(e){case m.UIFilter.FilterType.Domain:return Ii.createRequestDomainFilter(t);case m.UIFilter.FilterType.HasResponseHeader:return Ii.requestResponseHeaderFilter.bind(null,t);case m.UIFilter.FilterType.ResponseHeaderValueSetCookie:return Ii.requestResponseHeaderSetCookieFilter.bind(null,t);case m.UIFilter.FilterType.Is:if("running"===t.toLowerCase())return Ii.runningRequestFilter;if("from-cache"===t.toLowerCase())return Ii.fromCacheRequestFilter;if("service-worker-intercepted"===t.toLowerCase())return Ii.interceptedByServiceWorkerFilter;if("service-worker-initiated"===t.toLowerCase())return Ii.initiatedByServiceWorkerFilter;break;case m.UIFilter.FilterType.LargerThan:return this.createSizeFilter(t.toLowerCase());case m.UIFilter.FilterType.Method:return Ii.requestMethodFilter.bind(null,t);case m.UIFilter.FilterType.MimeType:return Ii.requestMimeTypeFilter.bind(null,t);case m.UIFilter.FilterType.MixedContent:return Ii.requestMixedContentFilter.bind(null,t);case m.UIFilter.FilterType.Scheme:return Ii.requestSchemeFilter.bind(null,t);case m.UIFilter.FilterType.SetCookieDomain:return Ii.requestSetCookieDomainFilter.bind(null,t);case m.UIFilter.FilterType.SetCookieName:return Ii.requestSetCookieNameFilter.bind(null,t);case m.UIFilter.FilterType.SetCookieValue:return Ii.requestSetCookieValueFilter.bind(null,t);case m.UIFilter.FilterType.CookieDomain:return Ii.requestCookieDomainFilter.bind(null,t);case m.UIFilter.FilterType.CookieName:return Ii.requestCookieNameFilter.bind(null,t);case m.UIFilter.FilterType.CookiePath:return Ii.requestCookiePathFilter.bind(null,t);case m.UIFilter.FilterType.CookieValue:return Ii.requestCookieValueFilter.bind(null,t);case m.UIFilter.FilterType.Priority:return Ii.requestPriorityFilter.bind(null,v.NetworkPriorities.uiLabelToNetworkPriority(t));case m.UIFilter.FilterType.StatusCode:return Ii.statusCodeFilter.bind(null,t);case m.UIFilter.FilterType.HasOverrides:return Ii.hasOverridesFilter.bind(null,t);case m.UIFilter.FilterType.ResourceType:return Ii.resourceTypeFilter.bind(null,t);case m.UIFilter.FilterType.Url:return Ii.requestUrlFilter.bind(null,t)}return null}createSizeFilter(e){let t=1;e.endsWith("k")?(t=1e3,e=e.substring(0,e.length-1)):e.endsWith("m")&&(t=1e6,e=e.substring(0,e.length-1));const i=Number(e);return isNaN(i)?null:Ii.requestSizeLargerThanFilter.bind(null,i*t)}filterRequests(){this.removeAllNodeHighlights(),this.invalidateAllItems()}reveal(e){this.removeAllNodeHighlights();const t=Fi.get(e);return t?.dataGrid?(t.parent&&t.parent instanceof be&&(t.parent.reveal(),t.parent.expand()),t.reveal(),t):null}revealAndHighlightRequest(e){const t=this.reveal(e);t&&this.highlightNode(t)}revealAndHighlightRequestWithId(e){const t=a.NetworkLog.NetworkLog.instance().requestByManagerAndId(e.manager,e.requestId);t&&this.revealAndHighlightRequest(t)}selectRequest(e,t){const{clearFilter:i}=t||{clearFilter:!0};i&&this.setTextFilterValue("");const r=this.reveal(e);r&&r.select()}removeAllNodeHighlights(){this.highlightedNode&&(this.highlightedNode.element().classList.remove("highlighted-row"),this.highlightedNode=null)}highlightNode(t){e.UIUtils.runCSSAnimationOnce(t.element(),"highlighted-row"),this.highlightedNode=t}filterOutBlobRequests(e){return e.filter((e=>!e.isBlobRequest()))}async generateFetchCall(e,t){const i=new Set(["method","path","scheme","version","accept-charset","accept-encoding","access-control-request-headers","access-control-request-method","connection","content-length","cookie","cookie2","date","dnt","expect","host","keep-alive","origin","referer","te","trailer","transfer-encoding","upgrade","via","user-agent"]),r=new Set(["cookie","authorization"]),o=JSON.stringify(e.url()),s=e.requestHeaders(),n=s.reduce(((e,t)=>{const r=t.name;return i.has(r.toLowerCase())||r.includes(":")||e.append(r,t.value),e}),new Headers),a={};for(const e of n)a[e[0]]=e[1];const l=e.includedRequestCookies().length||s.some((({name:e})=>r.has(e.toLowerCase())))?"include":"omit",d=s.find((({name:e})=>"referer"===e.toLowerCase())),c=d?d.value:void 0,h=e.referrerPolicy()||void 0,u=await e.requestFormData(),p={headers:Object.keys(a).length?a:void 0,referrer:c,referrerPolicy:h,body:u,method:e.requestMethod,mode:"cors"};if(1===t){const e=s.find((e=>"cookie"===e.name.toLowerCase())),t={};delete p.mode,e&&(t.cookie=e.value),c&&(delete p.referrer,t.Referer=c),c&&(delete p.referrerPolicy,t["Referrer-Policy"]=h),Object.keys(t).length&&(p.headers={...a,...t})}else p.credentials=l;return`fetch(${o}, ${JSON.stringify(p,null,2)});`}async generateAllFetchCall(e,t){const i=this.filterOutBlobRequests(e);return(await Promise.all(i.map((e=>this.generateFetchCall(e,t))))).join(" ;\n")}static async generateCurlCommand(e,t){let i=[];const r=new Set(["accept-encoding","host","method","path","scheme","version","authority","protocol"]);const o="win"===t?function(e){return'^"'+e.replace(/\\/g,"\\\\").replace(/"/g,'\\"').replace(/[^a-zA-Z0-9\s_\-:=+~'\/.',?;()*`]/g,"^$&").replace(/%(?=[a-zA-Z0-9_])/g,"%^").replace(/\r?\n/g,"^\n\n")+'^"'}:function(e){return/[\0-\x1F\x7F-\x9F!]|\'/.test(e)?"$'"+e.replace(/\\/g,"\\\\").replace(/\'/g,"\\'").replace(/\n/g,"\\n").replace(/\r/g,"\\r").replace(/[\0-\x1F\x7F-\x9F!]/g,(function(e){let t=e.charCodeAt(0).toString(16);for(;t.length<4;)t="0"+t;return"\\u"+t}))+"'":"'"+e+"'"};i.push(o(e.url()).replace(/[[{}\]]/g,"\\$&"));let s="GET";const n=[],a=await e.requestFormData();a&&(n.push("--data-raw "+o(a)),r.add("content-length"),s="POST"),e.requestMethod!==s&&i.push("-X "+o(e.requestMethod));const l=e.requestHeaders();for(let e=0;e<l.length;e++){const t=l[e],s=t.name.replace(/^:/,"");if(r.has(s.toLowerCase()))continue;const n=t.value;n.trim()?"cookie"===s.toLowerCase()?i.push("-b "+o(n)):i.push("-H "+o(s+": "+n)):i.push("-H "+o(s+";"))}return i=i.concat(n),"insecure"===e.securityState()&&i.push("--insecure"),"curl "+i.join(i.length>=3?"win"===t?" ^\n ":" \\\n ":" ")}async generateAllCurlCommand(e,t){const i=this.filterOutBlobRequests(e),r=await Promise.all(i.map((e=>Ii.generateCurlCommand(e,t))));return"win"===t?r.join(" &\r\n"):r.join(" ;\n")}async generatePowerShellCommand(e){const t=[],i=new Set(["host","connection","proxy-connection","content-length","expect","range","content-type","user-agent","cookie"]);function r(e){return'"'+e.replace(/[`\$"]/g,"`$&").replace(/[^\x20-\x7E]/g,(e=>"$([char]"+e.charCodeAt(0)+")"))+'"'}t.push("-Uri "+r(e.url())),"GET"!==e.requestMethod&&t.push("-Method "+r(e.requestMethod));const o=function(e){const t=[],i=e.requestHeaders().find((({name:e})=>"user-agent"===e.toLowerCase()));i&&t.push(`$session.UserAgent = ${r(i.value)}`);for(const i of e.includedRequestCookies()){const e=r(i.cookie.name()),o=r(i.cookie.value()),s=r(i.cookie.domain());t.push(`$session.Cookies.Add((New-Object System.Net.Cookie(${e}, ${o}, "/", ${s})))`)}return t.length?"$session = New-Object Microsoft.PowerShell.Commands.WebRequestSession\n"+t.join("\n")+"\n":null}(e);o&&t.push("-WebSession $session");const s=e.requestHeaders(),n=[];for(const e of s){const t=e.name.replace(/^:/,"");i.has(t.toLowerCase())||n.push(r(t)+"="+r(e.value))}n.length&&t.push("-Headers @{\n"+n.join("\n ")+"\n}");const a=s.find((({name:e})=>"content-type"===e.toLowerCase()));a&&t.push("-ContentType "+r(a.value));const l=await e.requestFormData();if(l){const e=r(l);/[^\x20-\x7E]/.test(l)?t.push("-Body ([System.Text.Encoding]::UTF8.GetBytes("+e+"))"):t.push("-Body "+e)}return(o||"")+"Invoke-WebRequest -UseBasicParsing "+t.join(t.length>=3?" `\n":" ")}async generateAllPowerShellCommand(e){const t=this.filterOutBlobRequests(e);return(await Promise.all(t.map((e=>this.generatePowerShellCommand(e))))).join(";\r\n")}static getDCLEventColor(){return"--sys-color-blue"}static getLoadEventColor(){return"--sys-color-error"}}function qi(t){let i="";for(const r of t.callFrames){i+=`${e.UIUtils.beautifyFunctionName(r.functionName)} @ ${r.url}:${r.lineNumber+1}\n`}return t.parent&&(i+=qi(t.parent)),i}const Li=new WeakSet,Fi=new WeakMap;const Ei={http:!0,https:!0,ws:!0,wss:!0},Hi=Object.values(m.UIFilter.FilterType),Pi={yes:"yes",no:"no",content:"content",headers:"headers"};class Mi extends t.ObjectWrapper.ObjectWrapper{filterElement;dropDownButton;networkHideDataURLSetting;networkHideChromeExtensionsSetting;networkShowBlockedCookiesOnlySetting;networkOnlyBlockedRequestsSetting;networkOnlyThirdPartySetting;contextMenu;activeFiltersCount;activeFiltersCountAdorner;isReactNative=!1;constructor(){super(),this.isReactNative=C.Runtime.experiments.isEnabled("react-native-specific-ui"),this.networkHideDataURLSetting=t.Settings.Settings.instance().createSetting("network-hide-data-url",!1),this.networkHideChromeExtensionsSetting=t.Settings.Settings.instance().createSetting("network-hide-chrome-extensions",!1),this.networkShowBlockedCookiesOnlySetting=t.Settings.Settings.instance().createSetting("network-show-blocked-cookies-only-setting",!1),this.networkOnlyBlockedRequestsSetting=t.Settings.Settings.instance().createSetting("network-only-blocked-requests",!1),this.networkOnlyThirdPartySetting=t.Settings.Settings.instance().createSetting("network-only-third-party-setting",!1),this.filterElement=document.createElement("div"),this.filterElement.setAttribute("aria-label","Show only/hide requests dropdown"),this.filterElement.setAttribute("jslog",`${d.dropDown("more-filters").track({click:!0})}`),this.activeFiltersCountAdorner=new F.Adorner.Adorner,this.activeFiltersCount=document.createElement("span"),this.activeFiltersCountAdorner.data={name:"countWrapper",content:this.activeFiltersCount},this.activeFiltersCountAdorner.classList.add("active-filters-count"),this.updateActiveFiltersCount(),this.dropDownButton=new e.Toolbar.ToolbarMenuButton(this.showMoreFiltersContextMenu.bind(this),!1,!0,void 0,void 0,!0),this.dropDownButton.setTitle(Ri(Ti.showOnlyHideRequests)),this.dropDownButton.setText(Ri(Ti.moreFilters)),this.dropDownButton.setAdorner(this.activeFiltersCountAdorner),this.filterElement.appendChild(this.dropDownButton.element),this.dropDownButton.element.classList.add("dropdown-filterbar"),this.updateTooltip()}#r(){this.dispatchEventToListeners("FilterChanged")}showMoreFiltersContextMenu(e){this.networkHideDataURLSetting.addChangeListener(this.#r.bind(this)),this.networkHideChromeExtensionsSetting.addChangeListener(this.#r.bind(this)),this.networkShowBlockedCookiesOnlySetting.addChangeListener(this.#r.bind(this)),this.networkOnlyBlockedRequestsSetting.addChangeListener(this.#r.bind(this)),this.networkOnlyThirdPartySetting.addChangeListener(this.#r.bind(this)),e.defaultSection().appendCheckboxItem(Ri(Ti.hideDataUrls),(()=>this.networkHideDataURLSetting.set(!this.networkHideDataURLSetting.get())),{checked:this.networkHideDataURLSetting.get(),tooltip:Ri(Ti.hidesDataAndBlobUrls),jslogContext:"hide-data-urls"}),this.isReactNative||(e.defaultSection().appendCheckboxItem(Ri(Ti.chromeExtensions),(()=>this.networkHideChromeExtensionsSetting.set(!this.networkHideChromeExtensionsSetting.get())),{checked:this.networkHideChromeExtensionsSetting.get(),tooltip:Ri(Ti.hideChromeExtension),jslogContext:"hide-extension-urls"}),e.defaultSection().appendSeparator()),this.isReactNative||e.defaultSection().appendCheckboxItem(Ri(Ti.hasBlockedCookies),(()=>this.networkShowBlockedCookiesOnlySetting.set(!this.networkShowBlockedCookiesOnlySetting.get())),{checked:this.networkShowBlockedCookiesOnlySetting.get(),tooltip:Ri(Ti.onlyShowRequestsWithBlockedCookies),jslogContext:"only-blocked-response-cookies"}),e.defaultSection().appendCheckboxItem(Ri(Ti.blockedRequests),(()=>this.networkOnlyBlockedRequestsSetting.set(!this.networkOnlyBlockedRequestsSetting.get())),{checked:this.networkOnlyBlockedRequestsSetting.get(),tooltip:Ri(Ti.onlyShowBlockedRequests),jslogContext:"only-blocked-requests"}),this.isReactNative||e.defaultSection().appendCheckboxItem(Ri(Ti.thirdParty),(()=>this.networkOnlyThirdPartySetting.set(!this.networkOnlyThirdPartySetting.get())),{checked:this.networkOnlyThirdPartySetting.get(),tooltip:Ri(Ti.onlyShowThirdPartyRequests),jslogContext:"only-3rd-party-requests"})}selectedFilters(){return[...this.networkHideDataURLSetting.get()?[Ri(Ti.hideDataUrls)]:[],...this.networkHideChromeExtensionsSetting.get()?[Ri(Ti.chromeExtensions)]:[],...this.networkShowBlockedCookiesOnlySetting.get()?[Ri(Ti.hasBlockedCookies)]:[],...this.networkOnlyBlockedRequestsSetting.get()?[Ri(Ti.blockedRequests)]:[],...this.networkOnlyThirdPartySetting.get()?[Ri(Ti.thirdParty)]:[]]}updateActiveFiltersCount(){const e=this.selectedFilters().length;this.activeFiltersCount.textContent=e.toString(),e?this.activeFiltersCountAdorner.classList.remove("hidden"):this.activeFiltersCountAdorner.classList.add("hidden")}updateTooltip(){this.selectedFilters().length?this.dropDownButton.setTitle(this.selectedFilters().join(", ")):this.dropDownButton.setTitle(Ri(Ti.showOnlyHideRequests))}isActive(){return 0!==this.selectedFilters().length}element(){return this.filterElement}}var Ai=Object.freeze({__proto__:null,HTTPSchemas:Ei,MoreFiltersDropDownUI:Mi,NetworkLogView:Ii,computeStackTraceText:qi,isRequestFilteredOut:function(e){return Li.has(e)},overrideFilter:Pi});const Ni={url:"URL"},Ui=r.i18n.registerUIStrings("panels/network/NetworkSearchScope.ts",Ni),Bi=r.i18n.getLocalizedString.bind(void 0,Ui);class Vi{#o;constructor(e){this.#o=e}performIndexing(e){queueMicrotask((()=>{e.done()}))}async performSearch(e,t,i,r){const o=[],s=this.#o.requests().filter((t=>e.filePathMatchesFileQuery(t.url())));t.setTotalWork(s.length);for(const i of s){const r=this.searchRequest(e,i,t);o.push(r)}const n=(await Promise.all(o)).filter((e=>null!==e));if(t.isCanceled())r(!1);else{for(const e of n.sort(((e,t)=>e.label().localeCompare(t.label()))))e.matchesCount()>0&&i(e);t.done(),r(!0)}}async searchRequest(e,t,i){const r=await Vi.#s(e,t);if(i.isCanceled())return null;const o=[];a(t.url())&&o.push(m.UIRequestLocation.UIRequestLocation.urlMatch(t));for(const e of t.requestHeaders())n(e)&&o.push(m.UIRequestLocation.UIRequestLocation.requestHeaderMatch(t,e));for(const e of t.responseHeaders)n(e)&&o.push(m.UIRequestLocation.UIRequestLocation.responseHeaderMatch(t,e));for(const e of r)o.push(m.UIRequestLocation.UIRequestLocation.bodyMatch(t,e));return i.incrementWorked(),new Wi(t,o);function n(e){return a(`${e.name}: ${e.value}`)}function a(t){const i=e.ignoreCase()?"i":"",r=e.queries().map((e=>new RegExp(s.StringUtilities.escapeForRegExp(e),i)));let o=0;for(const e of r){const i=t.substr(o).match(e);if(void 0===i?.index)return!1;o+=i.index+i[0].length}return!0}}static async#s(e,t){if(!t.contentType().isTextType())return[];let i=[];for(const r of e.queries()){const o=await t.searchInContent(r,!e.ignoreCase(),e.isRegex());if(0===o.length)return[];i=s.ArrayUtilities.mergeOrdered(i,o,R.ContentProvider.SearchMatch.comparator)}return i}stopSearch(){}}class Wi{request;locations;constructor(e,t){this.request=e,this.locations=t}matchesCount(){return this.locations.length}label(){return this.request.displayName}description(){const e=this.request.parsedURL;return e?e.urlWithoutScheme():this.request.url()}matchLineContent(e){const t=this.locations[e];if(t.isUrlMatch)return this.request.url();const i=t?.header?.header;return i?i.value:t.searchMatch.lineContent}matchRevealable(e){return this.locations[e]}matchLabel(e){const t=this.locations[e];if(t.isUrlMatch)return Bi(Ni.url);const i=t?.header?.header;return i?`${i.name}:`:(t.searchMatch.lineNumber+1).toString()}matchColumn(e){const t=this.locations[e];return t.searchMatch?.columnNumber}matchLength(e){const t=this.locations[e];return t.searchMatch?.matchLength}}var Oi=Object.freeze({__proto__:null,NetworkSearchResult:Wi,NetworkSearchScope:Vi}),Di={cssText:`:root{--network-overview-total:var(--sys-color-surface-variant);--network-overview-blocking:var(--sys-color-neutral-bright);--network-overview-connecting:var(--ref-palette-yellow60);--network-overview-service-worker:var(--sys-color-orange-bright);--network-overview-service-worker-respond-with:var(--sys-color-cyan-bright);--network-overview-push:var(--ref-palette-blue60);--override-network-overview-proxy:var(--ref-palette-neutral60);--network-overview-dns:var(--sys-color-cyan);--network-overview-ssl:var(--ref-palette-purple70);--override-network-overview-sending:var(--ref-palette-cyan60);--network-overview-waiting:var(--ref-palette-green70);--network-overview-receiving:var(--ref-palette-blue60);--network-overview-queueing:var(--ref-palette-neutral100);--network-grid-navigation-color:var(--ref-palette-blue90);--network-grid-initiator-path-color:var(--ref-palette-green90);--network-grid-initiated-path-color:var(--ref-palette-error80);--network-grid-focus-selected-color-has-error:var(--sys-color-surface-error);--network-grid-focus-selected-color-has-warning:var(--sys-color-surface-yellow);--network-grid-from-frame-color:var(--ref-palette-cyan95);--network-grid-is-product-color:var(--ref-palette-yellow95);--network-frame-divider-color:var(--ref-palette-yellow60)}.theme-with-dark-background{--network-grid-initiator-path-color:var(--ref-palette-green40);--network-grid-initiated-path-color:var(--ref-palette-error20);--network-grid-from-frame-color:var(--ref-palette-neutral50);--network-grid-is-product-color:var(--ref-palette-neutral70)}.network-details-view{background:var(--app-color-toolbar-background)}.network-details-view-tall-header{border-top:4px solid var(--app-color-toolbar-background)}.network-item-view{display:flex;background:var(--sys-color-cdt-base-container)}.network-item-preview-toolbar{border-top:1px solid var(--sys-color-divider);background-color:var(--sys-color-surface1)}.resource-timing-view{display:block;margin:6px;color:var(--sys-color-on-surface);overflow:auto;background-color:var(--sys-color-cdt-base-container)}.resource-timing-table{width:100%!important}#network-overview-panel{flex:none;position:relative}#network-overview-container{overflow:hidden;flex:auto;display:flex;flex-direction:column;position:relative;border-bottom:1px solid var(--sys-color-divider)}#network-overview-container canvas{width:100%;height:100%}.resources-dividers-label-bar{background-color:var(--sys-color-cdt-base-container)}#network-overview-grid .resources-dividers-label-bar{pointer-events:auto}.network .network-overview{flex:0 0 60px}.network-overview .resources-dividers-label-bar .resources-divider{background-color:transparent}.network-overview .resources-dividers{z-index:250}.request-view.html iframe{width:100%;height:100%;position:absolute}.network-film-strip{border-bottom:solid 1px var(--sys-color-divider);flex:none!important}.network-film-strip-placeholder{flex-shrink:0}.network-tabbed-pane{background-color:var(--sys-color-cdt-base-container)}.network-settings-pane{display:grid;grid-template-columns:50% 50%;flex:none;background-color:var(--sys-color-cdt-base-container);border-bottom:1px solid var(--sys-color-divider)}.network-toolbar-container{display:flex;align-items:flex-start;flex:none;background-color:var(--sys-color-cdt-base-container);border-bottom:1px solid var(--sys-color-divider);& > :first-child{flex:1 1 auto}}@media (forced-colors: active){.panel.network devtools-toolbar{background-color:canvas}}devtools-request-headers{min-width:360px}\n/*# sourceURL=${import.meta.resolve("./networkPanel.css")} */\n`};const Gi={close:"Close",search:"Search",doNotClearLogOnPageReload:"Do not clear log on page reload / navigation",preserveLog:"Preserve log",disableCacheWhileDevtoolsIsOpen:"Disable cache while DevTools is open",disableCache:"Disable cache",networkSettings:"Network settings",showMoreInformationInRequestRows:"Show more information in request rows",useLargeRequestRows:"Big request rows",showOverviewOfNetworkRequests:"Show overview of network requests",showOverview:"Overview",groupRequestsByTopLevelRequest:"Group requests by top level request frame",groupByFrame:"Group by frame",captureScreenshotsWhenLoadingA:"Capture screenshots when loading a page",captureScreenshots:"Screenshots",importHarFile:"Import `HAR` file...",exportHar:"Export `HAR` (either sanitized or with sensitive data)",exportHarSanitized:"Export `HAR` (sanitized)...",exportHarWithSensitiveData:"Export `HAR` (with sensitive data)...",throttling:"Throttling",hitSToReloadAndCaptureFilmstrip:"Hit {PH1} to reload and capture filmstrip.",openInNetworkPanel:"Open in Network panel",openInNetworkPanelMissingRequest:"Open in Network panel (missing request)",recordingFrames:"Recording frames...",fetchingFrames:"Fetching frames...",moreNetworkConditions:"More network conditions…"},ji=r.i18n.registerUIStrings("panels/network/NetworkPanel.ts",Gi),zi=r.i18n.getLocalizedString.bind(void 0,ji);let _i,Ki;class $i extends e.Panel.Panel{networkLogShowOverviewSetting;networkLogLargeRowsSetting;networkRecordFilmStripSetting;toggleRecordAction;pendingStopTimer;networkItemView;filmStripView;filmStripRecorder;currentRequest;panelToolbar;rightToolbar;filterBar;showSettingsPaneSetting;filmStripPlaceholderElement;overviewPane;networkOverview;overviewPlaceholderElement;calculator;splitWidget;sidebarLocation;progressBarContainer;networkLogView;fileSelectorElement;detailsWidget;closeButtonElement;preserveLogSetting;recordLogSetting;throttlingSelect;displayScreenshotDelay;isReactNative=!1;constructor(i){super("network"),this.registerRequiredCSS(Di),this.isReactNative=C.Runtime.experiments.isEnabled("react-native-specific-ui"),this.displayScreenshotDelay=i,this.networkLogShowOverviewSetting=t.Settings.Settings.instance().createSetting("network-log-show-overview",!0),this.networkLogLargeRowsSetting=t.Settings.Settings.instance().createSetting("network-log-large-rows",!1),this.networkRecordFilmStripSetting=t.Settings.Settings.instance().createSetting("network-record-film-strip-setting",!1),this.toggleRecordAction=e.ActionRegistry.ActionRegistry.instance().getAction("network.toggle-recording"),this.networkItemView=null,this.filmStripView=null,this.filmStripRecorder=null,this.currentRequest=null;const r=new e.Widget.VBox,o=r.contentElement.createChild("div","network-toolbar-container");o.role="toolbar",this.panelToolbar=o.createChild("devtools-toolbar"),this.panelToolbar.role="presentation",this.panelToolbar.wrappable=!0,this.panelToolbar.setAttribute("jslog",`${d.toolbar("network-main")}`),this.rightToolbar=o.createChild("devtools-toolbar"),this.rightToolbar.role="presentation",this.filterBar=new e.FilterBar.FilterBar("network-panel",!0),this.filterBar.show(r.contentElement),this.filterBar.addEventListener("Changed",this.handleFilterChanged.bind(this));const l=r.contentElement.createChild("div","network-settings-pane");l.append(e.SettingsUI.createSettingCheckbox(zi(Gi.useLargeRequestRows),this.networkLogLargeRowsSetting,zi(Gi.showMoreInformationInRequestRows)),e.SettingsUI.createSettingCheckbox(zi(Gi.groupByFrame),t.Settings.Settings.instance().moduleSetting("network.group-by-frame"),zi(Gi.groupRequestsByTopLevelRequest)),e.SettingsUI.createSettingCheckbox(zi(Gi.showOverview),this.networkLogShowOverviewSetting,zi(Gi.showOverviewOfNetworkRequests))),this.isReactNative||l.append(e.SettingsUI.createSettingCheckbox(zi(Gi.captureScreenshots),this.networkRecordFilmStripSetting,zi(Gi.captureScreenshotsWhenLoadingA))),this.showSettingsPaneSetting=t.Settings.Settings.instance().createSetting("network-show-settings-toolbar",!1),l.classList.toggle("hidden",!this.showSettingsPaneSetting.get()),this.showSettingsPaneSetting.addChangeListener((()=>l.classList.toggle("hidden",!this.showSettingsPaneSetting.get()))),this.filmStripPlaceholderElement=r.contentElement.createChild("div","network-film-strip-placeholder"),this.overviewPane=new v.TimelineOverviewPane.TimelineOverviewPane("network"),this.overviewPane.addEventListener("OverviewPaneWindowChanged",this.onWindowChanged.bind(this)),this.overviewPane.element.id="network-overview-panel",this.networkOverview=new ri,this.overviewPane.setOverviewControls([this.networkOverview]),this.overviewPlaceholderElement=r.contentElement.createChild("div"),this.calculator=new jt,this.splitWidget=new e.SplitWidget.SplitWidget(!0,!1,"network-panel-split-view-state"),this.splitWidget.hideMain(),this.splitWidget.show(r.contentElement),r.setDefaultFocusedChild(this.filterBar);const c=new e.SplitWidget.SplitWidget(!0,!1,"network-panel-sidebar-state",225);c.hideSidebar(),c.enableShowModeSaving(),c.show(this.element),this.sidebarLocation=e.ViewManager.ViewManager.instance().createTabbedLocation((async()=>{e.ViewManager.ViewManager.instance().showView("network"),c.showBoth()}),"network-sidebar",!0);const h=this.sidebarLocation.tabbedPane();h.setMinimumSize(100,25),h.element.classList.add("network-tabbed-pane"),h.element.addEventListener("keydown",(e=>{e.key===s.KeyboardUtilities.ESCAPE_KEY&&(c.hideSidebar(),e.consume(),d.logKeyDown(e.currentTarget,e,"hide-sidebar"))}));const u=new e.Toolbar.ToolbarButton(zi(Gi.close),"cross");u.addEventListener("Click",(()=>c.hideSidebar())),u.element.setAttribute("jslog",`${d.close().track({click:!0})}`),h.rightToolbar().appendToolbarItem(u),c.setSidebarWidget(h),c.setMainWidget(r),c.setDefaultFocusedChild(r),this.setDefaultFocusedChild(c),this.progressBarContainer=document.createElement("div"),this.networkLogView=new Ii(this.filterBar,this.progressBarContainer,this.networkLogLargeRowsSetting),this.splitWidget.setSidebarWidget(this.networkLogView),this.fileSelectorElement=e.UIUtils.createFileSelectorElement(this.networkLogView.onLoadFromFile.bind(this.networkLogView)),r.element.appendChild(this.fileSelectorElement),this.detailsWidget=new e.Widget.VBox,this.detailsWidget.element.classList.add("network-details-view"),this.splitWidget.setMainWidget(this.detailsWidget),this.closeButtonElement=document.createElement("dt-close-button"),this.closeButtonElement.addEventListener("click",(async()=>{const t=e.ActionRegistry.ActionRegistry.instance().getAction("network.hide-request-details");await t.execute()}),!1),this.closeButtonElement.style.margin="0 5px",this.networkLogShowOverviewSetting.addChangeListener(this.toggleShowOverview,this),this.networkLogLargeRowsSetting.addChangeListener(this.toggleLargerRequests,this),this.networkRecordFilmStripSetting.addChangeListener(this.toggleRecordFilmStrip,this),this.preserveLogSetting=t.Settings.Settings.instance().moduleSetting("network-log.preserve-log"),this.recordLogSetting=t.Settings.Settings.instance().moduleSetting("network-log.record-log"),this.recordLogSetting.addChangeListener((({data:e})=>this.toggleRecord(e))),this.throttlingSelect=this.createThrottlingConditionsSelect(),this.setupToolbarButtons(c),this.toggleRecord(this.recordLogSetting.get()),this.toggleShowOverview(),this.toggleLargerRequests(),this.toggleRecordFilmStrip(),this.updateUI(),n.TargetManager.TargetManager.instance().addModelListener(n.ResourceTreeModel.ResourceTreeModel,n.ResourceTreeModel.Events.WillReloadPage,this.willReloadPage,this,{scoped:!0}),n.TargetManager.TargetManager.instance().addModelListener(n.ResourceTreeModel.ResourceTreeModel,n.ResourceTreeModel.Events.Load,this.load,this,{scoped:!0}),this.networkLogView.addEventListener("RequestSelected",this.onRequestSelected,this),this.networkLogView.addEventListener("RequestActivated",this.onRequestActivated,this),a.NetworkLog.NetworkLog.instance().addEventListener(a.NetworkLog.Events.RequestAdded,this.onUpdateRequest,this),a.NetworkLog.NetworkLog.instance().addEventListener(a.NetworkLog.Events.RequestUpdated,this.onUpdateRequest,this),a.NetworkLog.NetworkLog.instance().addEventListener(a.NetworkLog.Events.Reset,this.onNetworkLogReset,this)}static instance(e){return _i&&!e?.forceNew||(_i=new $i(e?.displayScreenshotDelay??1e3)),_i}static revealAndFilter(t){const i=$i.instance();let r="";for(const e of t)e.filterType?r+=`${e.filterType}:${e.filterValue} `:r+=`${e.filterValue} `;return i.networkLogView.setTextFilterValue(r),e.ViewManager.ViewManager.instance().showView("network")}throttlingSelectForTest(){return this.throttlingSelect}onWindowChanged(e){const t=Math.max(this.calculator.minimumBoundary(),e.data.startTime/1e3),i=Math.min(this.calculator.maximumBoundary(),e.data.endTime/1e3);t===this.calculator.minimumBoundary()&&i===this.calculator.maximumBoundary()?this.networkLogView.setWindow(0,0):this.networkLogView.setWindow(t,i)}async searchToggleClick(){const t=e.ActionRegistry.ActionRegistry.instance().getAction("network.search");await t.execute()}setupToolbarButtons(i){const r=new e.Toolbar.ToolbarToggle(zi(Gi.search),"search",void 0,"search");function o(){const e="OnlyMain"!==i.showMode();r.setToggled(e),e||r.element.focus()}if(this.panelToolbar.appendToolbarItem(e.Toolbar.Toolbar.createActionButton(this.toggleRecordAction)),this.panelToolbar.appendToolbarItem(e.Toolbar.Toolbar.createActionButton("network.clear")),this.panelToolbar.appendSeparator(),this.panelToolbar.appendToolbarItem(this.filterBar.filterButton()),o(),i.addEventListener("ShowModeChanged",o),r.addEventListener("Click",(()=>{this.searchToggleClick()})),this.panelToolbar.appendToolbarItem(r),this.panelToolbar.appendSeparator(),this.panelToolbar.appendToolbarItem(new e.Toolbar.ToolbarSettingCheckbox(this.preserveLogSetting,zi(Gi.doNotClearLogOnPageReload),zi(Gi.preserveLog))),!this.isReactNative){this.panelToolbar.appendSeparator();const i=new e.Toolbar.ToolbarSettingCheckbox(t.Settings.Settings.instance().moduleSetting("cache-disabled"),zi(Gi.disableCacheWhileDevtoolsIsOpen),zi(Gi.disableCache));this.panelToolbar.appendToolbarItem(i),this.panelToolbar.appendToolbarItem(this.throttlingSelect);const r=new e.Toolbar.ToolbarButton(zi(Gi.moreNetworkConditions),"network-settings",void 0,"network-conditions");r.addEventListener("Click",(()=>{e.ViewManager.ViewManager.instance().showView("network.config")}),this),this.panelToolbar.appendToolbarItem(r)}this.rightToolbar.appendToolbarItem(new e.Toolbar.ToolbarItem(this.progressBarContainer)),this.rightToolbar.appendSeparator(),this.rightToolbar.appendToolbarItem(new e.Toolbar.ToolbarSettingToggle(this.showSettingsPaneSetting,"gear",zi(Gi.networkSettings),"gear-filled","network-settings"));this.panelToolbar.appendSeparator();const s=new e.Toolbar.ToolbarButton(zi(Gi.importHarFile),"import",void 0,"import-har");s.addEventListener("Click",(()=>this.fileSelectorElement.click()),this),this.panelToolbar.appendToolbarItem(s);const n=new e.Toolbar.ToolbarButton(zi(Gi.exportHarSanitized),"download",void 0,"export-har");n.addEventListener("Click",this.networkLogView.exportAll.bind(this.networkLogView,{sanitize:!0}),this),this.panelToolbar.appendToolbarItem(n);const a=new e.Toolbar.ToolbarMenuButton((e=>{e.defaultSection().appendItem(zi(Gi.exportHarSanitized),this.networkLogView.exportAll.bind(this.networkLogView,{sanitize:!0}),{jslogContext:"export-har"}),e.defaultSection().appendItem(zi(Gi.exportHarWithSensitiveData),this.networkLogView.exportAll.bind(this.networkLogView,{sanitize:!1}),{jslogContext:"export-har-with-sensitive-data"})}),!0,!1,"export-har-menu","download");a.setTitle(zi(Gi.exportHar)),this.panelToolbar.appendToolbarItem(a);const l=t.Settings.Settings.instance().createSetting("network.show-options-to-generate-har-with-sensitive-data",!1),d=()=>{const e=l.get();n.setVisible(!e),a.setVisible(e)};l.addChangeListener(d),d()}createThrottlingConditionsSelect(){const t=new e.Toolbar.ToolbarComboBox(null,zi(Gi.throttling));return t.setMaxWidth(160),h.ThrottlingManager.throttlingManager().createNetworkThrottlingSelector(t.element),t}toggleRecord(e){this.toggleRecordAction.setToggled(e),this.recordLogSetting.get()!==e&&this.recordLogSetting.set(e),this.networkLogView.setRecording(e),!e&&this.filmStripRecorder&&this.filmStripRecorder.stopRecording(this.filmStripAvailable.bind(this))}filmStripAvailable(e){this.filmStripView&&this.filmStripView.setModel(e);const t=e.frames.map((e=>P.Helpers.Timing.microToSeconds(e.screenshotEvent.ts)));this.networkLogView.addFilmStripFrames(t)}onNetworkLogReset(e){const{clearIfPreserved:t}=e.data;this.preserveLogSetting.get()&&!t||(this.calculator.reset(),this.overviewPane.reset()),this.filmStripView&&this.resetFilmStripView()}willReloadPage(){this.pendingStopTimer&&(clearTimeout(this.pendingStopTimer),delete this.pendingStopTimer),this.isShowing()&&this.filmStripRecorder&&this.filmStripRecorder.startRecording()}load(){this.filmStripRecorder?.isRecording()&&(this.pendingStopTimer&&window.clearTimeout(this.pendingStopTimer),this.pendingStopTimer=window.setTimeout(this.stopFilmStripRecording.bind(this),this.displayScreenshotDelay))}stopFilmStripRecording(){this.filmStripRecorder&&this.filmStripRecorder.stopRecording(this.filmStripAvailable.bind(this)),delete this.pendingStopTimer}toggleLargerRequests(){this.updateUI()}toggleShowOverview(){this.networkLogShowOverviewSetting.get()?this.overviewPane.show(this.overviewPlaceholderElement):this.overviewPane.detach(),this.doResize()}toggleRecordFilmStrip(){const e=this.networkRecordFilmStripSetting.get();e&&!this.filmStripRecorder&&(this.filmStripView=new v.FilmStripView.FilmStripView,this.filmStripView.element.classList.add("network-film-strip"),this.filmStripView.element.setAttribute("jslog",`${d.section("film-strip")}`),this.filmStripRecorder=new Xi(this.networkLogView.timeCalculator(),this.filmStripView),this.filmStripView.show(this.filmStripPlaceholderElement),this.filmStripView.addEventListener("FrameSelected",this.onFilmFrameSelected,this),this.filmStripView.addEventListener("FrameEnter",this.onFilmFrameEnter,this),this.filmStripView.addEventListener("FrameExit",this.onFilmFrameExit,this),this.resetFilmStripView()),!e&&this.filmStripRecorder&&(this.filmStripView&&this.filmStripView.detach(),this.filmStripView=null,this.filmStripRecorder=null)}resetFilmStripView(){const t=e.ShortcutRegistry.ShortcutRegistry.instance().shortcutsForAction("inspector-main.reload")[0];this.filmStripView&&(this.filmStripView.reset(),t&&this.filmStripView.setStatusText(zi(Gi.hitSToReloadAndCaptureFilmstrip,{PH1:t.title()})))}elementsToRestoreScrollPositionsFor(){return this.networkLogView.elementsToRestoreScrollPositionsFor()}wasShown(){super.wasShown(),e.Context.Context.instance().setFlavor($i,this),i.userMetrics.panelLoaded("network","DevTools.Launch.Network")}willHide(){e.Context.Context.instance().setFlavor($i,null),super.willHide()}revealAndHighlightRequest(e){this.hideRequestPanel(),e&&this.networkLogView.revealAndHighlightRequest(e)}revealAndHighlightRequestWithId(e){this.hideRequestPanel(),e&&this.networkLogView.revealAndHighlightRequestWithId(e)}async selectAndActivateRequest(t,i,r){return await e.ViewManager.ViewManager.instance().showView("network"),this.networkLogView.selectRequest(t,r),this.showRequestPanel(i),this.networkLogView.revealAndHighlightRequest(t),this.networkItemView}handleFilterChanged(){this.hideRequestPanel()}onRequestSelected(t){const i=t.data;this.currentRequest=i,this.networkOverview.setHighlightedRequest(i),this.updateNetworkItemView(),e.Context.Context.instance().setFlavor(n.NetworkRequest.NetworkRequest,i)}onRequestActivated(e){const{showPanel:t,tab:i,takeFocus:r}=e.data;t?this.showRequestPanel(i,r):this.hideRequestPanel()}showRequestPanel(e,t){if("Both"!==this.splitWidget.showMode()||e||t){if(this.clearNetworkItemView(),this.currentRequest){const i=this.createNetworkItemView(e);i&&t&&i.focus()}this.updateUI()}}hideRequestPanel(){this.clearNetworkItemView(),this.splitWidget.hideMain(),this.updateUI()}updateNetworkItemView(){"Both"===this.splitWidget.showMode()&&(this.clearNetworkItemView(),this.createNetworkItemView(),this.updateUI())}clearNetworkItemView(){this.networkItemView&&(this.networkItemView.detach(),this.networkItemView=null)}createNetworkItemView(t){if(this.currentRequest)return this.networkItemView=new Nt(this.currentRequest,this.networkLogView.timeCalculator(),t),this.networkItemView.leftToolbar().appendToolbarItem(new e.Toolbar.ToolbarItem(this.closeButtonElement)),this.networkItemView.show(this.detailsWidget.element),this.splitWidget.showBoth(),this.networkItemView}updateUI(){this.detailsWidget&&this.detailsWidget.element.classList.toggle("network-details-view-tall-header",this.networkLogLargeRowsSetting.get()),this.networkLogView&&this.networkLogView.switchViewMode(!this.splitWidget.isResizable())}appendApplicableItems(t,i,r){const o=t=>{i.revealSection().appendItem(zi(Gi.openInNetworkPanel),(()=>e.ViewManager.ViewManager.instance().showView("network").then(this.networkLogView.resetFilter.bind(this.networkLogView)).then(this.revealAndHighlightRequest.bind(this,t))),{jslogContext:"reveal-in-network"})},s=()=>{i.revealSection().appendItem(zi(Gi.openInNetworkPanelMissingRequest),(()=>{}),{disabled:!0,jslogContext:"reveal-in-network"})},a=t=>{i.revealSection().appendItem(zi(Gi.openInNetworkPanel),(()=>e.ViewManager.ViewManager.instance().showView("network").then(this.networkLogView.resetFilter.bind(this.networkLogView)).then(this.selectAndActivateRequest.bind(this,t.networkRequest,"headers-component",void 0))),{jslogContext:"timeline.reveal-in-network"})};if(!t.target.isSelfOrDescendant(this.element))if(r instanceof n.Resource.Resource)r.request?o(r.request):s();else if(r instanceof g.UISourceCode.UISourceCode){const e=n.ResourceTreeModel.ResourceTreeModel.resourceForURL(r.url());e?.request?o(e.request):s()}else r instanceof n.TraceObject.RevealableNetworkRequest?a(r):this.networkItemView&&this.networkItemView.isShowing()&&this.networkItemView.request()===r||o(r)}onFilmFrameSelected(e){const t=e.data;this.overviewPane.setWindowTimes(0,t)}onFilmFrameEnter(e){const t=e.data;this.networkOverview.selectFilmStripFrame(t),this.networkLogView.selectFilmStripFrame(t/1e3)}onFilmFrameExit(){this.networkOverview.clearFilmStripFrame(),this.networkLogView.clearFilmStripFrame()}onUpdateRequest(e){const{request:t}=e.data;this.calculator.updateBoundaries(t),this.overviewPane.setBounds(P.Types.Timing.Milli(1e3*this.calculator.minimumBoundary()),P.Types.Timing.Milli(1e3*this.calculator.maximumBoundary())),this.networkOverview.updateRequest(t)}resolveLocation(e){return"network-sidebar"===e?this.sidebarLocation:null}}class Xi{tracingManager;resourceTreeModel;timeCalculator;filmStripView;callback;#n;#a=[];constructor(e,t){this.#n=P.TraceModel.Model.createWithSubsetOfHandlers({Screenshots:P.Handlers.ModelHandlers.Screenshots}),this.tracingManager=null,this.resourceTreeModel=null,this.timeCalculator=e,this.filmStripView=t,this.callback=null}traceEventsCollected(e){this.#a.push(...e)}async tracingComplete(){if(!this.tracingManager)return;this.tracingManager=null,await this.#n.parse(this.#a);const e=this.#n.parsedTrace(this.#n.size()-1);if(!e)return;const t=P.Types.Timing.Seconds(this.timeCalculator.minimumBoundary()),i=P.Extras.FilmStrip.fromParsedTrace(e,P.Helpers.Timing.secondsToMicro(t));this.callback&&this.callback(i),this.callback=null,this.#n.resetProcessor(),this.resourceTreeModel&&this.resourceTreeModel.resumeReload(),this.resourceTreeModel=null}tracingBufferUsage(){}eventsRetrievalProgress(e){}startRecording(){this.#a=[],this.filmStripView.reset(),this.filmStripView.setStatusText(zi(Gi.recordingFrames));const e=n.TargetManager.TargetManager.instance().scopeTarget()?.model(P.TracingManager.TracingManager);!this.tracingManager&&e&&(this.tracingManager=e,this.resourceTreeModel=this.tracingManager.target().model(n.ResourceTreeModel.ResourceTreeModel),this.tracingManager.start(this,"-*,disabled-by-default-devtools.screenshot",""),i.userMetrics.actionTaken(i.UserMetrics.Action.FilmStripStartedRecording))}isRecording(){return Boolean(this.tracingManager)}stopRecording(e){this.tracingManager&&(this.tracingManager.stop(),this.resourceTreeModel&&this.resourceTreeModel.suspendReload(),this.callback=e,this.filmStripView.setStatusText(zi(Gi.fetchingFrames)))}}class Ji extends M.SearchView.SearchView{constructor(){super("network",new t.Throttler.Throttler(200))}static instance(e={forceNew:null}){const{forceNew:t}=e;return Ki&&!t||(Ki=new Ji),Ki}static async openSearch(t,i){await e.ViewManager.ViewManager.instance().showView("network.search-network-tab");const r=Ji.instance();return r.toggle(t,Boolean(i)),r}createScope(){return new Vi(a.NetworkLog.NetworkLog.instance())}}var Yi=Object.freeze({__proto__:null,ActionDelegate:class{handleAction(t,i){const r=t.flavor($i);if(null===r)return!1;switch(i){case"network.toggle-recording":return r.toggleRecord(!r.recordLogSetting.get()),!0;case"network.hide-request-details":return!!r.networkItemView&&(r.hideRequestPanel(),r.networkLogView.resetFocus(),!0);case"network.search":{const t=e.InspectorView.InspectorView.instance().element.window().getSelection();if(!t)return!1;let i="";return t.rangeCount&&(i=t.toString().replace(/\r?\n.*/,"")),Ji.openSearch(i),!0}case"network.clear":return a.NetworkLog.NetworkLog.instance().reset(!0),!0}return!1}},FilmStripRecorder:Xi,NetworkLogWithFilterRevealer:class{reveal(e){return"filters"in e?$i.revealAndFilter(e.filters):$i.revealAndFilter(e.filter?[{filterType:null,filterValue:e.filter}]:[])}},NetworkPanel:$i,RequestIdRevealer:class{reveal(t){const i=$i.instance();return e.ViewManager.ViewManager.instance().showView("network").then(i.revealAndHighlightRequestWithId.bind(i,t))}},RequestLocationRevealer:class{async reveal(e){const t=await $i.instance().selectAndActivateRequest(e.request,e.tab,e.filterOptions);if(t){if(e.searchMatch){const{lineNumber:i,columnNumber:r,matchLength:o}=e.searchMatch,s={from:{lineNumber:i,columnNumber:r},to:{lineNumber:i,columnNumber:r+o}};await t.revealResponseBody(s)}e.header&&t.revealHeader(e.header.section,e.header.header?.name)}}},RequestRevealer:class{reveal(t){const i=$i.instance();return e.ViewManager.ViewManager.instance().showView("network").then(i.revealAndHighlightRequest.bind(i,t))}},SearchNetworkView:Ji});export{O as BinaryResourceView,K as BlockedURLsPane,re as EventSourceMessagesView,ue as NetworkConfigView,fe as NetworkDataGridNode,Xt as NetworkFrameGrouper,Ut as NetworkItemView,Ai as NetworkLogView,yi as NetworkLogViewColumns,ii as NetworkManageCustomHeadersView,di as NetworkOverview,Yi as NetworkPanel,Oi as NetworkSearchScope,_t as NetworkTimeCalculator,ui as NetworkWaterfallColumn,Re as RequestCookiesView,Ke as RequestHTMLView,Pe as RequestInitiatorView,je as RequestPayloadView,ut as RequestPreviewView,Ze as RequestResponseView,ft as RequestTimingView,Ht as ResourceWebSocketFrameView,at as SignedExchangeInfoView};