diff --git a/packages/debugger-frontend/BUILD_INFO b/packages/debugger-frontend/BUILD_INFO index 744a8bfd3379f9..4b9c8dc6343216 100644 --- a/packages/debugger-frontend/BUILD_INFO +++ b/packages/debugger-frontend/BUILD_INFO @@ -1,5 +1,5 @@ -@generated SignedSource<<634e06e29a06ec6a22c087e7f8b01796>> -Git revision: 35c4630bd58bbcbc6f4c54c084b4e52994dc4940 +@generated SignedSource<<8c4db6a5e1ba269169ac93cc53f95538>> +Git revision: 51a91a2ad62e7f585912ed314a350a72de84d6ed Built with --nohooks: false Is local checkout: false Remote URL: https://github.com/facebook/react-native-devtools-frontend diff --git a/packages/debugger-frontend/dist/third-party/front_end/panels/console/console.js b/packages/debugger-frontend/dist/third-party/front_end/panels/console/console.js index dc167f5fa39123..e4bcc233efaaec 100644 --- a/packages/debugger-frontend/dist/third-party/front_end/panels/console/console.js +++ b/packages/debugger-frontend/dist/third-party/front_end/panels/console/console.js @@ -3,4 +3,4 @@ import*as e from"../../core/common/common.js";import*as t from"../../core/i18n/i ${this.deletePinIcon}
- `;this.pinElement=i.element(),this.pinPreview=i.$("preview");const r=i.$("name");o.Tooltip.Tooltip.install(r,t),z.set(this.pinElement,this),this.lastResult=null,this.lastExecutionContext=null,this.committedExpression=t,this.hovered=!1,this.lastNode=null,this.editor=this.createEditor(t,r),this.pinPreview.addEventListener("mouseenter",this.setHovered.bind(this,!0),!1),this.pinPreview.addEventListener("mouseleave",this.setHovered.bind(this,!1),!1),this.pinPreview.addEventListener("click",(t=>{this.lastNode&&(e.Revealer.reveal(this.lastNode),t.consume())}),!1),r.addEventListener("keydown",(e=>{"Escape"===e.key&&e.consume()}))}createEditor(e,t){const s=[a.EditorView.contentAttributes.of({"aria-label":_(D.liveExpressionEditor)}),a.EditorView.lineWrapping,a.javascript.javascriptLanguage,l.Config.showCompletionHint,a.placeholder(_(D.expression)),a.keymap.of([{key:"Escape",run:e=>(e.dispatch({changes:{from:0,to:e.state.doc.length,insert:this.committedExpression}}),this.focusOut(),!0)},{key:"Enter",run:()=>(this.focusOut(),!0)},{key:"Mod-Enter",run:()=>(this.focusOut(),!0)},{key:"Tab",run:e=>null===a.completionStatus(this.editor.state)&&(e.dispatch({changes:{from:0,to:e.state.doc.length,insert:this.committedExpression}}),this.focusOut(),!0)},{key:"Shift-Tab",run:e=>null===a.completionStatus(this.editor.state)&&(e.dispatch({changes:{from:0,to:e.state.doc.length,insert:this.committedExpression}}),this.focusOut(),!0)}]),a.EditorView.domEventHandlers({blur:(e,t)=>this.onBlur(t)}),l.Config.baseConfiguration(e),l.Config.closeBrackets.instance(),l.Config.autocompletion.instance()];"true"!==r.Runtime.Runtime.queryParam("noJavaScriptCompletion")&&s.push(l.JavaScript.completion());const n=new l.TextEditor.TextEditor(a.EditorState.create({doc:e,extensions:s}));return t.appendChild(n),n}onBlur(e){const t=e.state.doc.toString(),s=t.trim();this.committedExpression=s,this.pinPane.savePins(),this.committedExpression.length?this.deletePinIcon.setAccessibleName(_(D.removeExpressionS,{PH1:this.committedExpression})):this.deletePinIcon.setAccessibleName(_(D.removeBlankExpression)),e.dispatch({selection:{anchor:s.length},changes:s!==t?{from:0,to:t.length,insert:s}:void 0})}setHovered(e){this.hovered!==e&&(this.hovered=e,!e&&this.lastNode&&n.OverlayModel.OverlayModel.hideDOMNodeHighlight())}expression(){return this.committedExpression}element(){return this.pinElement}async focus(){const e=this.editor;e.editor.focus(),e.dispatch({selection:{anchor:e.state.doc.length}})}appendToContextMenu(e){this.lastResult&&!("error"in this.lastResult)&&this.lastResult.object&&(e.appendApplicableItems(this.lastResult.object),this.lastResult=null)}async updatePreview(){if(!this.editor)return;const e=l.Config.contentIncludingHint(this.editor.editor),t=this.pinElement.hasFocus(),s=t&&e!==this.committedExpression,i=s?250:void 0,r=o.Context.Context.instance().flavor(n.RuntimeModel.ExecutionContext),{preview:a,result:d}=await c.JavaScriptREPL.JavaScriptREPL.evaluateAndBuildPreview(e,s,!0,i,!t,"live-expression",!0,!0);this.lastResult&&this.lastExecutionContext&&this.lastExecutionContext.runtimeModel.releaseEvaluationResult(this.lastResult),this.lastResult=d||null,this.lastExecutionContext=r||null;const h=a.deepTextContent();if(!h||h!==this.pinPreview.deepTextContent()){if(this.pinPreview.removeChildren(),d&&n.RuntimeModel.RuntimeModel.isSideEffectFailure(d)){const e=this.pinPreview.createChild("span","object-value-calculate-value-button");e.textContent="(…)",o.Tooltip.Tooltip.install(e,_(D.evaluateAllowingSideEffects))}else h?this.pinPreview.appendChild(a):t||o.UIUtils.createTextChild(this.pinPreview,_(D.notAvailable));o.Tooltip.Tooltip.install(this.pinPreview,h)}let u=null;d&&!("error"in d)&&"object"===d.object.type&&"node"===d.object.subtype&&(u=d.object),this.hovered&&(u?n.OverlayModel.OverlayModel.highlightObjectAsDOMNode(u):this.lastNode&&n.OverlayModel.OverlayModel.hideDOMNodeHighlight()),this.lastNode=u||null;const m=d&&!("error"in d)&&d.exceptionDetails&&!n.RuntimeModel.RuntimeModel.isSideEffectFailure(d);this.pinElement.classList.toggle("error-level",Boolean(m))}}var K=Object.freeze({__proto__:null,ConsolePin:q,ConsolePinPane:$}),J={cssText:`:host{overflow:auto}.count{flex:none;margin:0 var(--sys-size-3)}devtools-icon{&[name="cross-circle"]{color:var(--sys-color-error-bright)}&[name="warning"]{color:var(--icon-warning)}&[name="info"]{color:var(--icon-info)}}.tree-element-title{flex-grow:1}\n/*# sourceURL=${import.meta.resolve("./consoleSidebar.css")} */\n`};const X={other:"",dUserMessages:"{n, plural, =0 {No user messages} =1 {# user message} other {# user messages}}",dMessages:"{n, plural, =0 {No messages} =1 {# message} other {# messages}}",dErrors:"{n, plural, =0 {No errors} =1 {# error} other {# errors}}",dWarnings:"{n, plural, =0 {No warnings} =1 {# warning} other {# warnings}}",dInfo:"{n, plural, =0 {No info} =1 {# info} other {# info}}",dVerbose:"{n, plural, =0 {No verbose} =1 {# verbose} other {# verbose}}"},Z=t.i18n.registerUIStrings("panels/console/ConsoleSidebar.ts",X),Q=t.i18n.getLocalizedString.bind(void 0,Z);class Y extends(e.ObjectWrapper.eventMixin(o.Widget.VBox)){tree;selectedTreeElement;treeElements;constructor(){super(!0),this.setMinimumSize(125,0),this.tree=new o.TreeOutline.TreeOutlineInShadow("NavigationTree"),this.tree.addEventListener(o.TreeOutline.Events.ElementSelected,this.selectionChanged.bind(this)),this.tree.registerRequiredCSS(J),this.tree.hideOverflow(),this.contentElement.setAttribute("jslog",`${d.pane("sidebar").track({resize:!0})}`),this.contentElement.appendChild(this.tree.element),this.selectedTreeElement=null,this.treeElements=[];const t=e.Settings.Settings.instance().createSetting("console.sidebar-selected-filter",null),s=[{key:R.Source,text:e.Console.FrontendMessageSource.ConsoleAPI,negative:!1,regex:void 0}];this.appendGroup("message",[],P.allLevelsFilterValue(),h.Icon.create("list"),t),this.appendGroup("user message",s,P.allLevelsFilterValue(),h.Icon.create("profile"),t),this.appendGroup("error",[],P.singleLevelMask("error"),h.Icon.create("cross-circle"),t),this.appendGroup("warning",[],P.singleLevelMask("warning"),h.Icon.create("warning"),t),this.appendGroup("info",[],P.singleLevelMask("info"),h.Icon.create("info"),t),this.appendGroup("verbose",[],P.singleLevelMask("verbose"),h.Icon.create("bug"),t);const n=t.get();(this.treeElements.find((e=>e.name()===n))||this.treeElements[0]).select()}appendGroup(e,t,s,n,o){const i=new P(e,t,null,s),r=new ne(i,n,o);this.tree.appendChild(r),this.treeElements.push(r)}clear(){for(const e of this.treeElements)e.clear()}onMessageAdded(e){for(const t of this.treeElements)t.onMessageAdded(e)}shouldBeVisible(e){return!(this.selectedTreeElement instanceof ee)||this.selectedTreeElement.filter().shouldBeVisible(e)}selectionChanged(e){this.selectedTreeElement=e.data,this.dispatchEventToListeners("FilterSelected")}}class ee extends o.TreeOutline.TreeElement{filterInternal;constructor(e,t){super(e),this.filterInternal=t}filter(){return this.filterInternal}}class te extends ee{countElement;messageCount;constructor(e){super(e.name,e),this.countElement=this.listItemElement.createChild("span","count");const t=h.Icon.create("document");this.setLeadingIcons([t]),this.messageCount=0}incrementAndUpdateCounter(){this.messageCount++,this.countElement.textContent=`${this.messageCount}`}}const se=new Map([["user message",X.dUserMessages],["message",X.dMessages],["error",X.dErrors],["warning",X.dWarnings],["info",X.dInfo],["verbose",X.dVerbose]]);class ne extends ee{selectedFilterSetting;urlTreeElements;messageCount;uiStringForFilterCount;constructor(e,t,s){super(e.name,e),this.uiStringForFilterCount=se.get(e.name)||"",this.selectedFilterSetting=s,this.urlTreeElements=new Map,this.setLeadingIcons([t]),this.messageCount=0,this.updateCounter()}clear(){this.urlTreeElements.clear(),this.removeChildren(),this.messageCount=0,this.updateCounter()}name(){return this.filterInternal.name}onselect(e){return this.selectedFilterSetting.set(this.filterInternal.name),super.onselect(e)}updateCounter(){this.title=this.updateGroupTitle(this.messageCount),this.setExpandable(Boolean(this.childCount()))}updateGroupTitle(e){return this.uiStringForFilterCount?Q(this.uiStringForFilterCount,{n:e}):""}onMessageAdded(e){const t=e.consoleMessage(),s=t.type!==n.ConsoleModel.FrontendMessageType.Command&&t.type!==n.ConsoleModel.FrontendMessageType.Result&&!t.isGroupMessage();if(!this.filterInternal.shouldBeVisible(e)||!s)return;this.childElement(t.url).incrementAndUpdateCounter(),this.messageCount++,this.updateCounter()}childElement(t){const s=t||null;let n=this.urlTreeElements.get(s);if(n)return n;const o=this.filterInternal.clone(),i=s?e.ParsedURL.ParsedURL.fromString(s):null;return o.name=s?i?i.displayName:s:Q(X.other),o.parsedFilters.push({key:R.Url,text:s,negative:!1,regex:void 0}),n=new te(o),s&&(n.tooltip=s),this.urlTreeElements.set(s,n),this.appendChild(n),n}}var oe=Object.freeze({__proto__:null,ConsoleSidebar:Y,FilterTreeElement:ne,URLGroupTreeElement:te}),ie={cssText:`.console-view{background-color:var(--sys-color-cdt-base-container);overflow:hidden;--override-error-text-color:var(--sys-color-on-error-container);--message-corner-rounder-background:var(--sys-color-cdt-base-container)}.console-toolbar-container{display:flex;flex:none}.console-main-toolbar{flex:1 1 auto}#console-issues-counter{margin-top:0}.console-toolbar-container > devtools-toolbar{background-color:var(--sys-color-cdt-base-container);border-bottom:1px solid var(--sys-color-divider)}.console-view-fix-select-all{height:0;overflow:hidden}.console-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)}#console-messages{flex:1 1;overflow-y:auto;word-wrap:break-word;user-select:text;transform:translateZ(0);overflow-anchor:none;background-color:var(--sys-color-cdt-base-container)}#console-prompt{clear:right;position:relative;margin:0 22px 0 20px}.console-prompt-editor-container{min-height:21px}.console-message,\n.console-user-command{clear:right;position:relative;padding:3px 22px 1px 0;margin-left:24px;min-height:17px;flex:auto;display:flex}.console-message > *{flex:auto}.console-timestamp{color:var(--sys-color-token-subtle);user-select:none;flex:none;margin-right:5px}.message-level-icon,\n.command-result-icon{position:absolute;left:-17px;top:2px;user-select:none}.console-message-repeat-count{margin:1.4px 0 0 10px;flex:none}.repeated-message{margin-left:4px}.repeated-message .message-level-icon{display:none}.console-message-stack-trace-toggle{display:flex;flex-direction:row;align-items:flex-start;margin-top:-1px}.console-error-level .repeated-message,\n.console-warning-level .repeated-message,\n.console-verbose-level .repeated-message,\n.console-info-level .repeated-message{display:flex}.console-info{color:var(--sys-color-token-subtle);font-style:italic;padding-bottom:2px}.console-group .console-group > .console-group-messages{margin-left:16px}.console-group-title.console-from-api{font-weight:bold}.console-group-title .console-message{margin-left:12px}.expand-group-icon{user-select:none;flex:none;position:relative;left:8px;top:3px;margin-right:2px}.console-group-title .message-level-icon{display:none}.console-message-repeat-count .expand-group-icon{position:static;color:var(--sys-color-cdt-base-container);margin-left:-1px}.console-group{position:relative}.console-message-wrapper{display:flex;flex-direction:column;margin:4px;border-radius:5px;--console-color-black:#000;--console-color-red:#a00;--console-color-green:#0a0;--console-color-yellow:#a50;--console-color-blue:#00a;--console-color-magenta:#a0a;--console-color-cyan:#0aa;--console-color-gray:#aaa;--console-color-darkgray:#555;--console-color-lightred:#f55;--console-color-lightgreen:#5f5;--console-color-lightyellow:#ff5;--console-color-lightblue:#55f;--console-color-ightmagenta:#f5f;--console-color-lightcyan:#5ff;--console-color-white:#fff;&:focus{background-color:var(--sys-color-tonal-container);& ::selection{background-color:var(--sys-color-state-focus-select);color:currentcolor}}}.console-row-wrapper{display:flex;flex-direction:row}.theme-with-dark-background .console-message-wrapper{--console-color-red:rgb(237 78 76);--console-color-green:rgb(1 200 1);--console-color-yellow:rgb(210 192 87);--console-color-blue:rgb(39 116 240);--console-color-magenta:rgb(161 66 244);--console-color-cyan:rgb(18 181 203);--console-color-gray:rgb(207 208 208);--console-color-darkgray:rgb(137 137 137);--console-color-lightred:rgb(242 139 130);--console-color-lightgreen:rgb(161 247 181);--console-color-lightyellow:rgb(221 251 85);--console-color-lightblue:rgb(102 157 246);--console-color-lightmagenta:rgb(214 112 214);--console-color-lightcyan:rgb(132 240 255)}.console-message-wrapper.console-warning-level + .console-message-wrapper,\n.console-message-wrapper.console-error-level + .console-message-wrapper{& .console-message::before,\n & .console-user-command::before{display:none!important}}.console-message-wrapper:not(.console-error-level, .console-warning-level){& .console-message::before,\n & .console-user-command::before{width:calc(100% - 25px);content:"";display:block;position:absolute;top:-2px;border-top:1px solid var(--sys-color-divider)}&:first-of-type .console-message::before,\n &:first-of-type .console-user-command::before{display:none}}.console-message-wrapper.console-adjacent-user-command-result:not(.console-error-level, .console-warning-level){border-top-width:0}.console-message-wrapper:focus + .console-message-wrapper{border-top-color:transparent}.console-message-wrapper.console-adjacent-user-command-result:not(.console-error-level, .console-warning-level):focus{border-top-width:1px}.console-message-wrapper.console-adjacent-user-command-result:not(.console-error-level, .console-warning-level):focus .console-message{padding-top:2px;min-height:16px}.console-message-wrapper.console-adjacent-user-command-result:not(.console-error-level, .console-warning-level):focus .command-result-icon{top:3px}.console-message-wrapper .nesting-level-marker{width:14px;flex:0 0 auto;position:relative;margin-bottom:-1px;margin-top:-1px;background-color:var(--sys-color-cdt-base-container)}.console-message-wrapper .nesting-level-marker + .console-message::after{position:absolute;left:-30px;top:0;width:6px;height:100%;box-sizing:border-box;background-color:var(--sys-color-surface-yellow);border-top-left-radius:5px;border-bottom-left-radius:5px;content:""}.console-error-level{background-color:var(--sys-color-surface-error);--message-corner-rounder-background:var(--sys-color-surface-error)}.console-warning-level{background-color:var(--sys-color-surface-yellow);--message-corner-rounder-background:var(--sys-color-surface-yellow)}.console-view-object-properties-section{padding:0;position:relative;vertical-align:baseline;color:inherit;display:inline-block;overflow-wrap:break-word;max-width:100%}.info-note{background-color:var(--sys-color-tonal-container)}.info-note::before{content:"i"}.console-view-object-properties-section:not(.expanded) .info-note{display:none}.console-system-type.console-info-level{color:var(--sys-color-primary)}#console-messages .link{cursor:pointer;text-decoration:underline}#console-messages .link,\n#console-messages .devtools-link:not(.invalid-link){color:var(--sys-color-primary);word-break:break-all}#console-messages .devtools-link.ignore-list-link{opacity:60%}#console-messages .devtools-link:focus-visible{background-color:transparent}#console-messages .resource-links{margin-top:-1px;margin-bottom:-2px}.console-object-preview{white-space:normal;word-wrap:break-word;font-style:italic}.console-object-preview .name{flex-shrink:0}.console-message-text{.object-value-node{display:inline-block}.object-value-string,\n .object-value-regexp,\n .object-value-symbol{white-space:pre-wrap;word-break:break-all}.formatted-stack-frame:has(.ignore-list-link){display:var(--display-ignored-formatted-stack-frame);opacity:60%;& + .formatted-builtin-stack-frame{display:var(--display-ignored-formatted-stack-frame);opacity:60%}}}.console-message-stack-trace-wrapper{--override-display-stack-preview-toggle-link:none;flex:1 1 auto;display:flex;flex-direction:column;align-items:stretch;&:has(div > .stack-preview-container.show-hidden-rows){--display-ignored-formatted-stack-frame:inherit}&:has(.formatted-stack-frame .ignore-list-link):has(.formatted-stack-frame .devtools-link:not(.ignore-list-link)){--override-display-stack-preview-toggle-link:table-row;--override-display-stack-preview-hidden-div:block;&:not(:has(div > .stack-preview-container.show-hidden-rows)){--display-ignored-formatted-stack-frame:none}}& > .hidden-stack-trace{display:var(--override-display-stack-preview-hidden-div,none);--override-display-stack-preview-tbody:none}}.repeated-message .console-message-stack-trace-toggle,\n.repeated-message > .console-message-text{flex:1}.console-warning-level .console-message-text{color:var(--sys-color-on-surface-yellow)}.console-error-level .console-message-text,\n.console-error-level .console-view-object-properties-section{color:var(--override-error-text-color)!important}.console-message-formatted-table{clear:both}.console-message .source-code{line-height:1.2}.console-message-anchor{float:right;text-align:right;max-width:100%;margin-left:4px}.cookie-report-anchor{margin-top:-3px;margin-bottom:-5px}.console-message-nowrap-below,\n.console-message-nowrap-below div,\n.console-message-nowrap-below span{white-space:nowrap!important}.object-state-note{display:inline-block;width:11px;height:11px;color:var(--sys-color-on-tonal-container);text-align:center;border-radius:3px;line-height:13px;margin:0 6px;font-size:9px}.console-object{white-space:pre-wrap;word-break:break-all}.console-message-stack-trace-wrapper > *{flex:none}.console-message-expand-icon{margin-bottom:-4px}.console-searchable-view{max-height:100%}.console-view-pinpane{flex:none;max-height:50%}.message-count{width:0;height:0}devtools-console-insight{margin:9px 22px 11px 24px}.hover-button{--width:24px;align-items:center;border-radius:50%;border:none;box-shadow:0 1px 3px 1px rgb(0 0 0/15%),0 1px 2px 0 rgb(0 0 0/30%);box-sizing:border-box;background-color:var(--sys-color-tonal-container);color:var(--sys-color-on-tonal-container);font:var(--sys-typescale-body4-medium);height:var(--width);justify-content:center;margin:0;max-height:var(--width);max-width:var(--width);min-height:var(--width);min-width:var(--width);overflow:hidden;padding:var(--sys-size-3) var(--sys-size-4);position:absolute;right:6px;display:none;width:var(--width);z-index:1;.theme-with-dark-background &{border:1px solid var(--sys-color-neutral-outline);background-color:var(--sys-color-primary);color:var(--sys-color-on-primary)}& devtools-icon{box-sizing:border-box;flex-shrink:0;height:var(--sys-size-8);min-height:var(--sys-size-8);min-width:var(--sys-size-8);width:var(--sys-size-8);--devtools-icon-color:var(--sys-color-on-tonal-container)}.theme-with-dark-background & devtools-icon{--devtools-icon-color:var(--sys-color-on-primary)}}.hover-button:focus,\n.hover-button:hover{border-radius:4px;max-width:200px;transition:max-width var(--sys-motion-duration-short4) var(--sys-motion-easing-emphasized),border-radius 50ms linear;width:fit-content;gap:var(--sys-size-3)}.hover-button:focus-visible{outline:2px solid var(--sys-color-primary);outline-offset:2px}.button-label{display:block;overflow:hidden;white-space:nowrap;& div{display:inline-block;vertical-align:-1px}}.console-message-wrapper:not(.has-insight){&:hover,\n &:focus,\n &.console-selected{.hover-button{display:flex;&:focus,\n &:hover{display:inline-flex}}}}@media (forced-colors: active){.console-message-expand-icon,\n .console-warning-level .expand-group-icon{forced-color-adjust:none;color:ButtonText}.console-message-wrapper:focus,\n .console-message-wrapper:focus:last-of-type{forced-color-adjust:none;background-color:Highlight;border-top-color:Highlight;border-bottom-color:Highlight}.console-message-wrapper:focus *,\n .console-message-wrapper:focus:last-of-type *,\n .console-message-wrapper:focus .devtools-link,\n .console-message-wrapper:focus:last-of-type .devtools-link{color:HighlightText!important}#console-messages .devtools-link,\n #console-messages .devtools-link:hover{color:linktext}#console-messages .link:focus-visible,\n #console-messages .devtools-link:focus-visible{background:Highlight;color:HighlightText}.console-message-wrapper:focus devtools-icon{color:HighlightText}.console-message-wrapper.console-error-level:focus,\n .console-message-wrapper.console-error-level:focus:last-of-type{--override-error-text-color:HighlightText}}\n/*# sourceURL=${import.meta.resolve("./consoleView.css")} */\n`};function re(t,s){if(!/^[\w.]*Error\b/.test(s))return null;const n=t.debuggerModel(),o=t.target().inspectedURL(),i=s.split("\n"),r=[];for(const t of i){const i=/^\s*at\s(async\s)?/.exec(t);if(!i){if(r.length&&r[r.length-1].isCallFrame)return m.rnPerfMetrics.stackTraceSymbolicationFailed(s,t,'"at (url)" not found'),null;r.push({line:t});continue}const a=!0;let l=i[0].length,c=t.length,d=!1;for(;")"===t[c-1];)for(c--,d=!0;;){if(l=t.indexOf(" (",l),l<0)return m.rnPerfMetrics.stackTraceSymbolicationFailed(s,t,'left "(" not found'),null;if(l+=2,!t.substring(l).startsWith("eval at "))break;if(l+=8,c=t.lastIndexOf(", ",c)-1,c<0)return m.rnPerfMetrics.stackTraceSymbolicationFailed(s,t,'right "(" not found'),null}const h=t.substring(l,c),u=e.ParsedURL.ParsedURL.splitLineAndColumn(h);if(""===u.url||"native"===u.url){r.length&&r[r.length-1].isCallFrame&&!r[r.length-1].link?r[r.length-1].line+=`\n${t}`:r.push({line:t,isCallFrame:a});continue}let p=ae(n,u.url);if(!p&&e.ParsedURL.ParsedURL.isRelativeURL(u.url)&&(p=ae(n,e.ParsedURL.ParsedURL.completeURL(o,u.url))),!p)return m.rnPerfMetrics.stackTraceSymbolicationFailed(s,t,"url parsing failed"),null;r.push({line:t,isCallFrame:a,link:{url:p,prefix:t.substring(0,l),suffix:t.substring(c),enclosedInBraces:d,lineNumber:u.lineNumber,columnNumber:u.columnNumber}})}return r}function ae(t,s){if(!s)return null;if(e.ParsedURL.ParsedURL.isValidUrlString(s))return s;if(t.scriptsForSourceURL(s).length)return s;const n=new URL(s,"file://");return t.scriptsForSourceURL(n.href).length?n.href:null}function le(e,t){for(const s of e){const e=t.callFrames.find((e=>ce(s,e)));e&&s.link&&(s.link.scriptId=e.scriptId)}}function ce(e,t){if(!e.link)return!1;const{url:s,lineNumber:n,columnNumber:o}=e.link;return s===t.url&&n===t.lineNumber&&o===t.columnNumber}var de=Object.freeze({__proto__:null,augmentErrorStackWithScriptIds:le,parseSourcePositionsFromErrorStack:re});const he={consoleclearWasPreventedDueTo:"`console.clear()` was prevented due to 'Preserve log'",consoleWasCleared:"Console was cleared",clearAllMessagesWithS:"Clear all messages with {PH1}",assertionFailed:"Assertion failed: ",violationS:"`[Violation]` {PH1}",interventionS:"`[Intervention]` {PH1}",deprecationS:"`[Deprecation]` {PH1}",thisValueWillNotBeCollectedUntil:"This value will not be collected until console is cleared.",thisValueWasEvaluatedUponFirst:"This value was evaluated upon first expanding. It may have changed since then.",functionWasResolvedFromBound:"Function was resolved from bound function.",exception:"",warning:"Warning",error:"Error",logpoint:"Logpoint",cndBreakpoint:"Conditional Breakpoint",repeatS:"{n, plural, =1 {Repeated # time} other {Repeated # times}}",warningS:"{n, plural, =1 {Warning, Repeated # time} other {Warning, Repeated # times}}",errorS:"{n, plural, =1 {Error, Repeated # time} other {Error, Repeated # times}}",url:"",tookNms:"took ms",someEvent:" event",Mxx:" M",attribute:"",index:"(index)",value:"Value",console:"Console",stackMessageExpanded:"Stack table expanded",stackMessageCollapsed:"Stack table collapsed",explainThisError:"Understand this error",explainThisWarning:"Understand this warning",explainThisMessage:"Understand this message",explainThisErrorWithAI:"Understand this error. Powered by AI.",explainThisWarningWithAI:"Understand this warning. Powered by AI.",explainThisMessageWithAI:"Understand this message. Powered by AI",SeeIssueInCookieReport:"Click to open privacy and security panel and show third-party cookie report"},ue=t.i18n.registerUIStrings("panels/console/ConsoleViewMessage.ts",he),me=t.i18n.getLocalizedString.bind(void 0,ue),pe=new WeakMap,ge=e=>pe.get(e),ve=(e,t)=>{const s=e.indexOf("\n"),n=-1===s?e:e.substring(0,s),o=-1===s?"":e.substring(s);return e=`${n}. ${t}${o}`},fe=e=>t=>t instanceof n.RemoteObject.RemoteObject?t:e?"object"==typeof t?e.createRemoteObject(t):e.createRemoteObjectFromPrimitiveValue(t):n.RemoteObject.RemoteObject.fromLocalObject(t),be="explain.console-message.hover",Ce=new IntersectionObserver((e=>{for(const t of e)t.intersectionRatio>0&&m.userMetrics.actionTaken(m.UserMetrics.Action.InsightHoverButtonShown)}));class xe{message;linkifier;repeatCountInternal;closeGroupDecorationCount;consoleGroupInternal;selectableChildren;messageResized;elementInternal;consoleRowWrapper=null;previewFormatter;searchRegexInternal;messageIcon;traceExpanded;expandTrace;anchorElement;contentElementInternal;nestingLevelMarkers;searchHighlightNodes;searchHighlightNodeChanges;isVisibleInternal;cachedHeight;messagePrefix;timestampElement;inSimilarGroup;similarGroupMarker;lastInSimilarGroup;groupKeyInternal;repeatCountElement;requestResolver;issueResolver;#e=!1;#t=Promise.resolve();constructor(e,t,s,n,o){this.message=e,this.linkifier=t,this.requestResolver=s,this.issueResolver=n,this.repeatCountInternal=1,this.closeGroupDecorationCount=0,this.selectableChildren=[],this.messageResized=o,this.elementInternal=null,this.previewFormatter=new c.RemoteObjectPreviewFormatter.RemoteObjectPreviewFormatter,this.searchRegexInternal=null,this.messageIcon=null,this.traceExpanded=!1,this.expandTrace=null,this.anchorElement=null,this.contentElementInternal=null,this.nestingLevelMarkers=null,this.searchHighlightNodes=[],this.searchHighlightNodeChanges=[],this.isVisibleInternal=!1,this.cachedHeight=0,this.messagePrefix="",this.timestampElement=null,this.inSimilarGroup=!1,this.similarGroupMarker=null,this.lastInSimilarGroup=!1,this.groupKeyInternal="",this.repeatCountElement=null,this.consoleGroupInternal=null}setInsight(e){this.elementInternal?.querySelector("devtools-console-insight")?.remove(),this.elementInternal?.append(e),this.elementInternal?.classList.toggle("has-insight",!0),e.addEventListener("close",(()=>{m.userMetrics.actionTaken(m.UserMetrics.Action.InsightClosed),this.elementInternal?.classList.toggle("has-insight",!1),this.elementInternal?.removeChild(e)}),{once:!0})}element(){return this.toMessageElement()}wasShown(){this.isVisibleInternal=!0}onResize(){}willHide(){this.isVisibleInternal=!1,this.cachedHeight=this.element().offsetHeight}isVisible(){return this.isVisibleInternal}fastHeight(){return this.cachedHeight?this.cachedHeight:this.approximateFastHeight()}approximateFastHeight(){return 19}consoleMessage(){return this.message}formatErrorStackPromiseForTest(){return this.#t}buildMessage(){let t,s=this.message.messageText;if(this.message.source===e.Console.FrontendMessageSource.ConsoleAPI)switch(this.message.type){case"trace":t=this.format(this.message.parameters||["console.trace"]);break;case"clear":t=document.createElement("span"),t.classList.add("console-info"),e.Settings.Settings.instance().moduleSetting("preserve-console-log").get()?t.textContent=me(he.consoleclearWasPreventedDueTo):t.textContent=me(he.consoleWasCleared),o.Tooltip.Tooltip.install(t,me(he.clearAllMessagesWithS,{PH1:String(o.ShortcutRegistry.ShortcutRegistry.instance().shortcutTitleForAction("console.clear"))}));break;case"dir":{const e=["%O",this.message.parameters?this.message.parameters[0]:void 0];t=this.format(e);break}case"profile":case"profileEnd":t=this.format([s]);break;default:{if("assert"===this.message.type&&(this.messagePrefix=me(he.assertionFailed)),this.message.parameters&&1===this.message.parameters.length){const e=this.message.parameters[0];"string"!=typeof e&&"string"===e.type&&(t=this.tryFormatAsError(e.value))}const e=this.message.parameters||[s];t=t||this.format(e)}}else if("network"===this.message.source)t=this.formatAsNetworkRequest()||this.format([s]);else{const e=this.message.parameters&&s===this.message.parameters[0];"violation"===this.message.source?s=me(he.violationS,{PH1:s}):"intervention"===this.message.source?s=me(he.interventionS,{PH1:s}):"deprecation"===this.message.source&&(s=me(he.deprecationS,{PH1:s}));const n=this.message.parameters||[s];e&&(n[0]=s),t=this.format(n)}t.classList.add("console-message-text");const n=document.createElement("span");if(n.classList.add("source-code"),this.anchorElement=this.buildMessageAnchor(),this.anchorElement&&n.appendChild(this.anchorElement),n.appendChild(t),"fusebox_preserve_log_rec"===this.message.context){const t=document.createElement("button");t.classList.add("devtools-link","text-button","link-style"),t.appendChild(t.ownerDocument.createTextNode("show settings")),t.addEventListener("click",(async()=>{await e.Revealer.reveal(e.Settings.Settings.instance().moduleSetting("preserve-console-log"))})),n.appendChild(t)}return n}formatAsNetworkRequest(){const e=g.NetworkLog.NetworkLog.requestForConsoleMessage(this.message);if(!e)return null;const t=document.createElement("span");if("error"===this.message.level){o.UIUtils.createTextChild(t,e.requestMethod+" ");const s=u.Linkifier.Linkifier.linkifyRevealable(e,e.url(),e.url(),void 0,void 0,"network-request");s.tabIndex=-1,this.selectableChildren.push({element:s,forceSelect:()=>s.focus()}),t.appendChild(s),e.failed&&o.UIUtils.createTextChildren(t," ",e.localizedFailDescription||""),0!==e.statusCode&&o.UIUtils.createTextChildren(t," ",String(e.statusCode));const n=e.getInferredStatusText();n&&o.UIUtils.createTextChildren(t," (",n,")")}else{const s=this.message.messageText,n=this.linkifyWithCustomLinkifier(s,((t,s,n,o)=>{const i=s===e.url()?u.Linkifier.Linkifier.linkifyRevealable(e,s,e.url(),void 0,void 0,"network-request"):u.Linkifier.Linkifier.linkifyURL(s,{text:t,lineNumber:n,columnNumber:o});return i.tabIndex=-1,this.selectableChildren.push({element:i,forceSelect:()=>i.focus()}),i}));t.appendChild(n)}return t}createAffectedResourceLinks(){const e=[],t=this.message.getAffectedResources()?.requestId;if(t){const s=new x.RequestLinkIcon.RequestLinkIcon;s.classList.add("resource-links"),s.data={affectedRequest:{requestId:t},requestResolver:this.requestResolver,displayURL:!1},e.push(s)}const s=this.message.getAffectedResources()?.issueId;if(s){const t=new C.IssueLinkIcon.IssueLinkIcon;t.classList.add("resource-links"),t.data={issueId:s,issueResolver:this.issueResolver},e.push(t)}return e}#s(t){const s=new f.Button.Button;s.data={size:"SMALL",variant:"icon",iconName:"cookie",jslogContext:"privacy",title:me(he.SeeIssueInCookieReport)},s.addEventListener("click",(()=>{e.Revealer.reveal(new S.CookieReportView.CookieReportView)})),t.appendChild(s)}#n(){const e=g.NetworkLog.NetworkLog.requestForConsoleMessage(this.message);if(e?.resourceType().isStyleSheet())return m.UserMetrics.Action.StyleSheetInitiatorLinkClicked}buildMessageAnchor(){const e=this.message.runtimeModel();if(!e)return null;if(this.message.isCookieReportIssue&&r.Runtime.hostConfig.devToolsPrivacyUI?.enabled){const e=document.createElement("span");return e.classList.add("console-message-anchor","cookie-report-anchor"),this.#s(e),o.UIUtils.createTextChild(e," "),e}const t=(({stackFrameWithBreakpoint:t,scriptId:n,stackTrace:o,url:i,line:r,column:a})=>{const l=this.#n();return t?this.linkifier.maybeLinkifyConsoleCallFrame(e.target(),t,{inlineFrameIndex:0,revealBreakpoint:!0,userMetric:l}):n?this.linkifier.linkifyScriptLocation(e.target(),n,i||s.DevToolsPath.EmptyUrlString,r,{columnNumber:a,inlineFrameIndex:0,userMetric:l}):o?.callFrames.length?this.linkifier.linkifyStackTraceTopFrame(e.target(),o):i&&"undefined"!==i?this.linkifier.linkifyScriptLocation(e.target(),null,i,r,{columnNumber:a,inlineFrameIndex:0,userMetric:l}):null})(this.message);if(t){t.tabIndex=-1,this.selectableChildren.push({element:t,forceSelect:()=>t.focus()});const e=document.createElement("span");e.classList.add("console-message-anchor"),e.appendChild(t);for(const t of this.createAffectedResourceLinks())o.UIUtils.createTextChild(e," "),e.append(t);return o.UIUtils.createTextChild(e," "),e}return null}buildMessageWithStackTrace(t){const s=h.Icon.create("triangle-right","console-message-expand-icon"),{stackTraceElement:n,contentElement:i,messageElement:r,clickableElement:a,toggleElement:l}=this.buildMessageHelper(t.target(),this.message.stackTrace,s);let c;this.expandTrace=e=>{e?c=window.setTimeout((()=>{m.userMetrics.actionTaken(m.UserMetrics.Action.TraceExpanded)}),300):clearTimeout(c),s.name=e?"triangle-down":"triangle-right",n.classList.toggle("hidden-stack-trace",!e);const t=me(e?he.stackMessageExpanded:he.stackMessageCollapsed);o.ARIAUtils.setLabel(i,`${r.textContent} ${t}`),o.ARIAUtils.alert(t),o.ARIAUtils.setExpanded(a,e),this.traceExpanded=e};return a.addEventListener("click",(e=>{o.UIUtils.isEditing()||i.hasSelection()||(this.expandTrace&&this.expandTrace(n.classList.contains("hidden-stack-trace")),e.consume())}),!1),"trace"===this.message.type&&e.Settings.Settings.instance().moduleSetting("console-trace-expand").get()&&this.expandTrace(!0),l._expandStackTraceForTest=this.expandTrace.bind(this,!0),l}buildMessageWithIgnoreLinks(){const{toggleElement:e}=this.buildMessageHelper(null,void 0,null);return e}buildMessageHelper(e,t,s){const n=document.createElement("div");n.classList.add("console-message-stack-trace-toggle");const i=n.createChild("div","console-message-stack-trace-wrapper"),r=this.buildMessage(),a=i.createChild("div");o.ARIAUtils.setExpanded(a,!1),s&&a.appendChild(s),a.tabIndex=-1,a.appendChild(r);const l=i.createChild("div"),c=u.JSPresentationUtils.buildStackTracePreviewContents(e,this.linkifier,{stackTrace:t,tabStops:void 0,widthConstrained:!0});l.appendChild(c.element);for(const e of c.links)this.selectableChildren.push({element:e,forceSelect:()=>e.focus()});return l.classList.add("hidden-stack-trace"),o.ARIAUtils.setLabel(i,`${r.textContent} ${me(he.stackMessageCollapsed)}`),o.ARIAUtils.markAsGroup(l),{stackTraceElement:l,contentElement:i,messageElement:r,clickableElement:a,toggleElement:n}}format(e){const t=document.createElement("span");if(this.messagePrefix&&(t.createChild("span").textContent=this.messagePrefix),!e.length)return t;let s=e.map(fe(this.message.runtimeModel()));const i="string"===n.RemoteObject.RemoteObject.type(s[0])&&(this.message.type!==n.ConsoleModel.FrontendMessageType.Result||"error"===this.message.level);i&&(s=this.formatWithSubstitutionString(s[0].description,s.slice(1),t),s.length&&o.UIUtils.createTextChild(t," "));for(let e=0;eRe()){const e=new c.ObjectPropertiesSection.ExpandableTextPropertyValue(document.createElement("span"),s,Ae());t.appendChild(e.element)}else o.UIUtils.createTextChild(t,s);return t.addEventListener("contextmenu",this.contextMenuEventFired.bind(this,e),!1),t}formatParameterAsTrustedType(e){const t=document.createElement("span"),s=document.createElement("span");return s.appendChild(this.formatParameterAsString(e)),s.classList.add("object-value-string"),o.UIUtils.createTextChild(t,`${e.className} `),t.appendChild(s),t}formatParameterAsObject(e,t){const s=document.createElement("span");if(s.classList.add("console-object"),t&&e.preview)s.classList.add("console-object-preview"),this.previewFormatter.appendObjectPreview(s,e.preview,!1),c.ObjectPropertiesSection.ObjectPropertiesSection.appendMemoryIcon(s,e);else if("function"===e.type){const t=s.createChild("span");c.ObjectPropertiesSection.ObjectPropertiesSection.formatObjectAsFunction(e,t,!1),s.classList.add("object-value-function")}else"trustedtype"===e.subtype?s.appendChild(this.formatParameterAsTrustedType(e)):o.UIUtils.createTextChild(s,e.description||"");if(!e.hasChildren||e.customPreview())return s;const i=s.createChild("span","object-state-note info-note");this.message.type===n.ConsoleModel.FrontendMessageType.QueryObjectResult?o.Tooltip.Tooltip.install(i,me(he.thisValueWillNotBeCollectedUntil)):o.Tooltip.Tooltip.install(i,me(he.thisValueWasEvaluatedUponFirst));const r=new c.ObjectPropertiesSection.ObjectPropertiesSection(e,s,this.linkifier);return r.element.classList.add("console-view-object-properties-section"),r.enableContextMenu(),r.setShowSelectionOnKeyboardFocus(!0,!0),this.selectableChildren.push(r),r.addEventListener(o.TreeOutline.Events.ElementAttached,this.messageResized),r.addEventListener(o.TreeOutline.Events.ElementExpanded,this.messageResized),r.addEventListener(o.TreeOutline.Events.ElementCollapsed,this.messageResized),r.element}formatParameterAsFunction(e,t){const s=document.createElement("span");return n.RemoteObject.RemoteFunction.objectAsFunction(e).targetFunction().then(function(n){const i=document.createElement("span"),r=c.ObjectPropertiesSection.ObjectPropertiesSection.formatObjectAsFunction(n,i,!0,t);if(s.appendChild(i),n!==e){const e=s.createChild("span","object-state-note info-note");o.Tooltip.Tooltip.install(e,me(he.functionWasResolvedFromBound))}s.addEventListener("contextmenu",this.contextMenuEventFired.bind(this,e),!1),r.then((()=>this.formattedParameterAsFunctionForTest()))}.bind(this)),s}formattedParameterAsFunctionForTest(){}contextMenuEventFired(e,t){const s=new o.ContextMenu.ContextMenu(t);s.appendApplicableItems(e),s.show()}renderPropertyPreviewOrAccessor(e,t,s){return"accessor"===t.type?this.formatAsAccessorProperty(e,s.map((e=>e.name.toString())),!1):this.previewFormatter.renderPropertyPreview(t.type,"subtype"in t?t.subtype:void 0,null,t.value)}formatParameterAsNode(e){const t=document.createElement("span"),s=e.runtimeModel().target().model(n.DOMModel.DOMModel);return s?(s.pushObjectAsNodeToFrontend(e).then((async s=>{if(!s)return void t.appendChild(this.formatParameterAsObject(e,!1));const n=await o.UIUtils.Renderer.render(s);n?(n.tree&&(this.selectableChildren.push(n.tree),n.tree.addEventListener(o.TreeOutline.Events.ElementAttached,this.messageResized),n.tree.addEventListener(o.TreeOutline.Events.ElementExpanded,this.messageResized),n.tree.addEventListener(o.TreeOutline.Events.ElementCollapsed,this.messageResized)),t.appendChild(n.node)):t.appendChild(this.formatParameterAsObject(e,!1)),this.formattedParameterAsNodeForTest()})),t):t}formattedParameterAsNodeForTest(){}formatParameterAsString(e){const t=e.description??"",n=s.StringUtilities.formatAsJSLiteral(t),o=document.createElement("span");return o.addEventListener("contextmenu",this.contextMenuEventFired.bind(this,e),!1),o.appendChild(this.linkifyStringAsFragment(n)),o}formatParameterAsError(e){const t=document.createElement("span"),s=async(e,o)=>{const i=n.RemoteObject.RemoteError.objectAsError(e),[r,a]=await Promise.all([i.exceptionDetails(),i.cause()]),l=o?"div":"span";let c=this.tryFormatAsError(i.errorStack,r,l);c||(c=document.createElement(l),c.append(this.linkifyStringAsFragment(i.errorStack))),o&&c.prepend("Caused by: "),t.appendChild(c),a&&"error"===a.subtype?await s(a,!0):a&&"string"===a.type&&t.append(`Caused by: ${a.value}`)};return this.#t=s(e,!1),t}formatAsArrayEntry(e){return this.previewFormatter.renderPropertyPreview(e.type,e.subtype,e.className,e.description)}formatAsAccessorProperty(e,t,n){const i=c.ObjectPropertiesSection.ObjectPropertyTreeElement.createRemoteObjectAccessorPropertySpan(e,t,function(e){const t=e.wasThrown,r=e.object;if(!r)return;if(i.removeChildren(),t){const e=i.createChild("span");e.textContent=me(he.exception),o.Tooltip.Tooltip.install(e,r.description)}else if(n)i.appendChild(this.formatAsArrayEntry(r));else{const e=100,t=r.type,n=r.subtype;let o="";"function"!==t&&r.description&&(o="string"===t||"regexp"===n||"trustedtype"===n?s.StringUtilities.trimMiddle(r.description,e):s.StringUtilities.trimEndWithMaxLength(r.description,e)),i.appendChild(this.previewFormatter.renderPropertyPreview(t,n,r.className,o))}}.bind(this));return i}formatWithSubstitutionString(e,t,s){const n=new Map,{tokens:o,args:i}=j(e,t);for(const e of o)switch(e.type){case"generic":s.append(this.formatParameter(e.value,!0,!1));break;case"optimal":s.append(this.formatParameter(e.value,!1,!0));break;case"string":if(0===n.size)s.append(this.linkifyStringAsFragment(e.value));else{const t=e.value.split("\n");for(let e=0;e0&&s.append(document.createElement("br"));const o=document.createElement("span");o.style.setProperty("contain","paint"),o.style.setProperty("display","inline-block"),o.style.setProperty("max-width","100%"),o.appendChild(this.linkifyStringAsFragment(t[e]));for(const[e,{value:t,priority:s}]of n)o.style.setProperty(e,t,s);s.append(o)}}break;case"style":O(n,e.value)}return i}matchesFilterRegex(e){e.lastIndex=0;const t=this.contentElement(),s=this.anchorElement?this.anchorElement.deepTextContent():"";return Boolean(s)&&e.test(s.trim())||e.test(t.deepTextContent().slice(s.length))}matchesFilterText(e){return this.contentElement().deepTextContent().toLowerCase().includes(e.toLowerCase())}updateTimestamp(){this.contentElementInternal&&(e.Settings.Settings.instance().moduleSetting("console-timestamps-enabled").get()?(this.timestampElement||(this.timestampElement=document.createElement("span"),this.timestampElement.classList.add("console-timestamp")),this.timestampElement.textContent=o.UIUtils.formatTimestamp(this.message.timestamp,!1)+" ",o.Tooltip.Tooltip.install(this.timestampElement,o.UIUtils.formatTimestamp(this.message.timestamp,!0)),this.contentElementInternal.insertBefore(this.timestampElement,this.contentElementInternal.firstChild)):this.timestampElement&&(this.timestampElement.remove(),this.timestampElement=null))}nestingLevel(){let e=0;for(let t=this.consoleGroup();null!==t;t=t.consoleGroup())e++;return e}setConsoleGroup(e){this.consoleGroupInternal=e}clearConsoleGroup(){this.consoleGroupInternal=null}consoleGroup(){return this.consoleGroupInternal}setInSimilarGroup(e,t){this.inSimilarGroup=e,this.lastInSimilarGroup=e&&Boolean(t),this.similarGroupMarker&&!e?(this.similarGroupMarker.remove(),this.similarGroupMarker=null):this.elementInternal&&!this.similarGroupMarker&&e&&(this.similarGroupMarker=document.createElement("div"),this.similarGroupMarker.classList.add("nesting-level-marker"),this.consoleRowWrapper?.insertBefore(this.similarGroupMarker,this.consoleRowWrapper.firstChild),this.similarGroupMarker.classList.toggle("group-closed",this.lastInSimilarGroup))}isLastInSimilarGroup(){return Boolean(this.inSimilarGroup)&&Boolean(this.lastInSimilarGroup)}resetCloseGroupDecorationCount(){this.closeGroupDecorationCount&&(this.closeGroupDecorationCount=0,this.updateCloseGroupDecorations())}incrementCloseGroupDecorationCount(){++this.closeGroupDecorationCount,this.updateCloseGroupDecorations()}updateCloseGroupDecorations(){if(this.nestingLevelMarkers)for(let e=0,t=this.nestingLevelMarkers.length;ee.element.hasFocus())):-1}onKeyDown(e){!o.UIUtils.isEditing()&&this.elementInternal&&this.elementInternal.hasFocus()&&!this.elementInternal.hasSelection()&&this.maybeHandleOnKeyDown(e)&&e.consume(!0)}maybeHandleOnKeyDown(e){const t=this.focusedChildIndex(),s=-1===t;if(this.expandTrace&&s&&("ArrowLeft"===e.key&&this.traceExpanded||"ArrowRight"===e.key&&!this.traceExpanded))return this.expandTrace(!this.traceExpanded),!0;if(!this.selectableChildren.length)return!1;if("ArrowLeft"===e.key)return this.elementInternal&&this.elementInternal.focus(),!0;if("ArrowRight"===e.key&&s&&this.selectNearestVisibleChild(0))return!0;if("ArrowUp"===e.key){const e=this.nearestVisibleChild(0);if(this.selectableChildren[t]===e&&e)return this.elementInternal&&this.elementInternal.focus(),!0;if(this.selectNearestVisibleChild(t-1,!0))return!0}if("ArrowDown"===e.key){if(s&&this.selectNearestVisibleChild(0))return!0;if(!s&&this.selectNearestVisibleChild(t+1))return!0}return!1}selectNearestVisibleChild(e,t){const s=this.nearestVisibleChild(e,t);return!!s&&(s.forceSelect(),!0)}nearestVisibleChild(e,t){const s=this.selectableChildren.length;if(e<0||e>=s)return null;const n=t?-1:1;let o=e;for(;!this.selectableChildren[o].element.offsetParent;)if(o+=n,o<0||o>=s)return null;return this.selectableChildren[o]}focusLastChildOrSelf(){this.elementInternal&&!this.selectNearestVisibleChild(this.selectableChildren.length-1,!0)&&this.elementInternal.focus()}setContentElement(e){console.assert(!this.contentElementInternal,"Cannot set content element twice"),this.contentElementInternal=e}getContentElement(){return this.contentElementInternal}contentElement(){if(this.contentElementInternal)return this.contentElementInternal;const e=document.createElement("div");e.classList.add("console-message"),this.messageIcon&&e.appendChild(this.messageIcon),this.contentElementInternal=e;const t=this.message.runtimeModel();let s;const n=Boolean(this.message.stackTrace)&&("network"===this.message.source||"violation"===this.message.source||"error"===this.message.level||"warning"===this.message.level||"trace"===this.message.type);return s=t&&n?this.buildMessageWithStackTrace(t):this.buildMessageWithIgnoreLinks(),e.appendChild(s),this.updateTimestamp(),this.contentElementInternal}toMessageElement(){return this.elementInternal||(this.elementInternal=document.createElement("div"),this.elementInternal.tabIndex=-1,this.elementInternal.addEventListener("keydown",this.onKeyDown.bind(this)),this.updateMessageElement(),this.elementInternal.classList.toggle("console-adjacent-user-command-result",this.#e)),this.elementInternal}updateMessageElement(){if(this.elementInternal){this.elementInternal.className="console-message-wrapper",this.elementInternal.setAttribute("jslog",`${d.item("console-message").track({click:!0,keydown:"ArrowUp|ArrowDown|ArrowLeft|ArrowRight|Enter|Space|Home|End"})}`),this.elementInternal.removeChildren(),this.consoleRowWrapper=this.elementInternal.createChild("div"),this.consoleRowWrapper.classList.add("console-row-wrapper"),this.message.isGroupStartMessage()&&this.elementInternal.classList.add("console-group-title"),this.message.source===e.Console.FrontendMessageSource.ConsoleAPI&&this.elementInternal.classList.add("console-from-api"),this.inSimilarGroup&&(this.similarGroupMarker=this.consoleRowWrapper.createChild("div","nesting-level-marker"),this.similarGroupMarker.classList.toggle("group-closed",this.lastInSimilarGroup)),this.nestingLevelMarkers=[];for(let e=0;e1&&this.showRepeatCountElement()}}shouldShowInsights(){return(this.message.source!==e.Console.FrontendMessageSource.ConsoleAPI||""!==this.message.stackTrace?.callFrames[0]?.url)&&(""!==this.message.messageText&&this.message.source!==e.Console.FrontendMessageSource.SELF_XSS&&("error"===this.message.level||"warning"===this.message.level))}getExplainLabel(){return"error"===this.message.level?me(he.explainThisError):"warning"===this.message.level?me(he.explainThisWarning):me(he.explainThisMessage)}#i(){return"error"===this.message.level?me(he.explainThisErrorWithAI):"warning"===this.message.level?me(he.explainThisWarningWithAI):me(he.explainThisMessageWithAI)}getExplainActionId(){return"error"===this.message.level?"explain.console-message.context.error":"warning"===this.message.level?"explain.console-message.context.warning":"explain.console-message.context.other"}#o(){const e=new h.Icon.Icon;e.data={iconName:"lightbulb-spark",color:"var(--devtools-icon-color)",width:"16px",height:"16px"};const t=document.createElement("button");t.append(e),t.onclick=e=>{e.stopPropagation(),o.Context.Context.instance().setFlavor(xe,this);o.ActionRegistry.ActionRegistry.instance().getAction(be).execute()};const s=document.createElement("div");s.classList.add("button-label");const n=document.createElement("div");return n.innerText=this.getExplainLabel(),s.append(n),t.append(s),t.classList.add("hover-button"),t.ariaLabel=this.#i(),t.tabIndex=0,t.setAttribute("jslog",`${d.action(be).track({click:!0})}`),Ce.observe(t),t}shouldRenderAsWarning(){return!("verbose"!==this.message.level&&"info"!==this.message.level||"violation"!==this.message.source&&"deprecation"!==this.message.source&&"intervention"!==this.message.source&&"recommendation"!==this.message.source)}updateMessageIcon(){this.messageIcon&&(this.messageIcon.remove(),this.messageIcon=null);let e="",t="",s="";"warning"===this.message.level?(e="var(--icon-warning)",t="warning-filled",s=me(he.warning)):"error"===this.message.level?(e="var(--icon-error)",t="cross-circle-filled",s=me(he.error)):this.message.originatesFromLogpoint?(t="console-logpoint",s=me(he.logpoint)):this.message.originatesFromConditionalBreakpoint&&(t="console-conditional-breakpoint",s=me(he.cndBreakpoint)),t&&(this.messageIcon=new h.Icon.Icon,this.messageIcon.data={iconName:t,color:e,width:"14px",height:"14px"},this.messageIcon.classList.add("message-level-icon"),this.contentElementInternal&&this.contentElementInternal.insertBefore(this.messageIcon,this.contentElementInternal.firstChild),o.ARIAUtils.setLabel(this.messageIcon,s))}setAdjacentUserCommandResult(e){this.#e=e,this.elementInternal?.classList.toggle("console-adjacent-user-command-result",this.#e)}repeatCount(){return this.repeatCountInternal||1}resetIncrementRepeatCount(){this.repeatCountInternal=1,this.repeatCountElement&&(this.repeatCountElement.remove(),this.contentElementInternal&&this.contentElementInternal.classList.remove("repeated-message"),this.repeatCountElement=null)}incrementRepeatCount(){this.repeatCountInternal++,this.showRepeatCountElement()}setRepeatCount(e){this.repeatCountInternal=e,this.showRepeatCountElement()}showRepeatCountElement(){if(!this.elementInternal)return;if(!this.repeatCountElement){switch(this.repeatCountElement=document.createElement("dt-small-bubble"),this.repeatCountElement.classList.add("console-message-repeat-count"),this.message.level){case"warning":this.repeatCountElement.type="warning";break;case"error":this.repeatCountElement.type="error";break;case"verbose":this.repeatCountElement.type="verbose";break;default:this.repeatCountElement.type="info"}this.shouldRenderAsWarning()&&(this.repeatCountElement.type="warning"),this.consoleRowWrapper?.insertBefore(this.repeatCountElement,this.contentElementInternal),this.contentElement().classList.add("repeated-message")}let e;this.repeatCountElement.textContent=`${this.repeatCountInternal}`,e="warning"===this.message.level?me(he.warningS,{n:this.repeatCountInternal}):"error"===this.message.level?me(he.errorS,{n:this.repeatCountInternal}):me(he.repeatS,{n:this.repeatCountInternal}),o.ARIAUtils.setLabel(this.repeatCountElement,e)}get text(){return this.message.messageText}toExportString(){const e=[],t=this.contentElement().childTextNodes().map(u.Linkifier.Linkifier.untruncatedNodeText).join("");for(let s=0;se.uiSourceCodeForURL(t))).flat().filter((e=>!!e)).map((e=>i.scriptsForUISourceCode(e))).flat();if(r.length){const t=new n.DebuggerModel.Location(e,r[0].scriptId,s||0,o),a=await i.pluginManager.getFunctionInfo(r[0],t);return a&&"frames"in a?a:{frames:[]}}return{frames:[]}}async expandInlineStackFrames(e,t,s,n,o,i,r,a){const{frames:l}=await this.getInlineFrames(e,n,o,i);if(!l.length)return!1;for(let c=0;cu.focus()}),h.appendChild(u),h.appendChild(this.linkifyStringAsFragment(s)),h.classList.add("formatted-stack-frame"),r.insertBefore(h,a)}return!0}createScriptLocationLinkForSyntaxError(e,t){const{scriptId:s,lineNumber:n,columnNumber:o}=t;if(!s)return;const i=t.url||e.scriptForId(s)?.sourceURL;if(!i)return;const r=this.linkifier.linkifyScriptLocation(e.target(),t.scriptId||null,i,n,{columnNumber:o,inlineFrameIndex:0,showColumnNumber:!0});return r.tabIndex=-1,r}tryFormatAsError(e,t,s="span"){const n=this.message.runtimeModel();if(!n)return null;const o=t?.exceptionMetaData?.issueSummary;"string"==typeof o&&(e=ve(e,o));const i=re(n,e);if(!i?.length)return null;t?.stackTrace&&le(i,t.stackTrace);const r=n.debuggerModel(),a=document.createElement(s);for(let e=0;eh.focus()}),c.appendChild(h),c.appendChild(this.linkifyStringAsFragment(d)),c.classList.add("formatted-stack-frame"),a.appendChild(c),!o.enclosedInBraces)continue;const u=o.prefix.substring(0,o.prefix.lastIndexOf(" ",o.prefix.length-3)),m=this.selectableChildren.length-1;this.expandInlineStackFrames(r,u,d,o.url,o.lineNumber,o.columnNumber,a,c).then((e=>{e&&(a.removeChild(c),this.selectableChildren.splice(m,1))}))}return a}linkifyWithCustomLinkifier(t,n){if(t.length>Re()){const e=new c.ObjectPropertiesSection.ExpandableTextPropertyValue(document.createElement("span"),t,Ae()),s=document.createDocumentFragment();return s.appendChild(e.element),s}const o=document.createDocumentFragment(),i=xe.tokenizeMessageText(t);let r=!1;for(const t of i)if(t.text)switch(r&&(t.text=`blob:${t.text}`,r=!r),"'blob:"===t.text&&t===i[0]&&(r=!0,t.text="'"),t.type){case"url":{const i=t.text.startsWith("www.")?"http://"+t.text:t.text,r=e.ParsedURL.ParsedURL.splitLineAndColumn(i),a=e.ParsedURL.ParsedURL.removeWasmFunctionInfoFromURL(r.url);let l;l=r?n(t.text,a,r.lineNumber,r.columnNumber):n(t.text,s.DevToolsPath.EmptyUrlString),o.appendChild(l);break}default:o.appendChild(document.createTextNode(t.text))}return o}linkifyStringAsFragment(e){return this.linkifyWithCustomLinkifier(e,((e,t,s,n)=>{const o={text:e,lineNumber:s,columnNumber:n},i=u.Linkifier.Linkifier.linkifyURL(t,o);return i.tabIndex=-1,this.selectableChildren.push({element:i,forceSelect:()=>i.focus()}),i}))}static tokenizeMessageText(e){const{tokenizerRegexes:t,tokenizerTypes:s}=Ie();if(e.length>Re())return[{text:e,type:void 0}];return i.TextUtils.Utils.splitStringByRegexes(e,t).map((e=>({text:e.value,type:s[e.regexIndex]})))}groupKey(){return this.groupKeyInternal||(this.groupKeyInternal=this.message.groupCategoryKey()+":"+this.groupTitle()),this.groupKeyInternal}groupTitle(){return xe.tokenizeMessageText(this.message.messageText).reduce(((e,t)=>{let s=t.text;return"url"===t.type?s=me(he.url):"time"===t.type?s=me(he.tookNms):"event"===t.type?s=me(he.someEvent):"milestone"===t.type?s=me(he.Mxx):"autofill"===t.type&&(s=me(he.attribute)),e+s}),"").replace(/[%]o/g,"")}}let we=null,Se=null;function Ie(){if(!we||!Se){const e="\\u0000-\\u0020\\u007f-\\u009f",t=new RegExp("(?:[a-zA-Z][a-zA-Z0-9+.-]{2,}:\\/\\/|data:|www\\.)[^\\s"+e+'"]{2,}[^\\s'+e+"\"')}\\],:;.!?]","u"),s=/(?:\/[\w\.-]*)+\:[\d]+/,n=/took [\d]+ms/,o=/'\w+' event/,i=/\sM[6-7]\d/,r=/\(suggested: \"[\w-]+\"\)/,a=new Map;return a.set(t,"url"),a.set(s,"url"),a.set(n,"time"),a.set(o,"event"),a.set(i,"milestone"),a.set(r,"autofill"),we=Array.from(a.keys()),Se=Array.from(a.values()),{tokenizerRegexes:we,tokenizerTypes:Se}}return{tokenizerRegexes:we,tokenizerTypes:Se}}class ye extends xe{collapsedInternal;expandGroupIcon;onToggle;groupEndMessageInternal;constructor(e,t,s,n,o,i){console.assert(e.isGroupStartMessage()),super(e,t,s,n,i),this.collapsedInternal="startGroupCollapsed"===e.type,this.expandGroupIcon=null,this.onToggle=o,this.groupEndMessageInternal=null}setCollapsed(e){this.collapsedInternal=e,this.expandGroupIcon&&(this.expandGroupIcon.name=this.collapsedInternal?"triangle-right":"triangle-down"),this.onToggle.call(null)}collapsed(){return this.collapsedInternal}maybeHandleOnKeyDown(e){return-1===this.focusedChildIndex()&&("ArrowLeft"===e.key&&!this.collapsedInternal||"ArrowRight"===e.key&&this.collapsedInternal)?(this.setCollapsed(!this.collapsedInternal),!0):super.maybeHandleOnKeyDown(e)}toMessageElement(){let e=this.elementInternal||null;if(!e){e=super.toMessageElement();const t=this.collapsedInternal?"triangle-right":"triangle-down";this.expandGroupIcon=h.Icon.create(t,"expand-group-icon"),this.contentElement().tabIndex=-1,this.repeatCountElement?this.repeatCountElement.insertBefore(this.expandGroupIcon,this.repeatCountElement.firstChild):this.consoleRowWrapper?.insertBefore(this.expandGroupIcon,this.contentElementInternal),e.addEventListener("click",(()=>this.setCollapsed(!this.collapsedInternal)))}return e}showRepeatCountElement(){super.showRepeatCountElement(),this.repeatCountElement&&this.expandGroupIcon&&this.repeatCountElement.insertBefore(this.expandGroupIcon,this.repeatCountElement.firstChild)}messagesHidden(){if(this.collapsed())return!0;const e=this.consoleGroup();return Boolean(e?.messagesHidden())}setGroupEnd(e){if("endGroup"!==e.consoleMessage().type)throw new Error("Invalid console message as group end");if(null!==this.groupEndMessageInternal)throw new Error("Console group already has an end");this.groupEndMessageInternal=e}groupEnd(){return this.groupEndMessageInternal}}class Me extends xe{formattedCommand;constructor(e,t,s,n,o){super(e,t,s,n,o),this.formattedCommand=null}contentElement(){const e=this.getContentElement();if(e)return e;const t=document.createElement("div");this.setContentElement(t),t.classList.add("console-user-command");const n=new h.Icon.Icon;return n.data={iconName:"chevron-right",color:"var(--icon-default)",width:"16px",height:"16px"},n.classList.add("command-result-icon"),t.appendChild(n),pe.set(t,this),this.formattedCommand=document.createElement("span"),this.formattedCommand.classList.add("source-code"),this.formattedCommand.textContent=s.StringUtilities.replaceControlCharacters(this.text),t.appendChild(this.formattedCommand),this.formattedCommand.textContent.lengthe===n?me(he.value):e.toString()));if(a.length&&(this.dataGrid=w.SortableDataGrid.SortableDataGrid.create(l,a,me(he.console)),this.dataGrid)){this.dataGrid.setStriped(!0),this.dataGrid.setFocusable(!1);const t=document.createElement("span");t.classList.add("console-message-text");const n=t.createChild("div","console-message-formatted-table"),o=n.createChild("span");n.appendChild(this.formatParameter(s,!0,!1));const i=o.attachShadow({mode:"open"}),r=this.dataGrid.asWidget();r.markAsRoot(),r.show(i),r.registerRequiredCSS(ie,N),e.appendChild(t),this.dataGrid.renderInline()}return e}approximateFastHeight(){const e=this.message.parameters?.[0];return e&&"string"!=typeof e&&e.preview?19*e.preview.properties.length:19}}const Te=1e4;let Le=1e4,Fe=5e3;const Re=()=>Le,Ae=()=>Fe;var Pe=Object.freeze({__proto__:null,ConsoleCommand:Me,ConsoleCommandResult:Ee,ConsoleGroupViewMessage:ye,ConsoleTableMessageView:ke,ConsoleViewMessage:xe,MaxLengthForLinks:40,concatErrorDescriptionAndIssueSummary:ve,getLongStringVisibleLength:Ae,getMaxTokenizableStringLength:Re,getMessageForElement:ge,setLongStringVisibleLength:e=>{Fe=e},setMaxTokenizableStringLength:e=>{Le=e}});class Ue{element;topGapElement;topGapElementActive;contentElementInternal;bottomGapElement;bottomGapElementActive;provider;virtualSelectedIndex;firstActiveIndex;lastActiveIndex;renderedItems;anchorSelection;headSelection;itemCount;cumulativeHeights;muteCopyHandler;observer;observerConfig;stickToBottomInternal;selectionIsBackward;lastSelectedElement;cachedProviderElements;constructor(e){this.element=document.createElement("div"),this.element.style.overflow="auto",this.topGapElement=this.element.createChild("div"),this.topGapElement.style.height="0px",this.topGapElement.style.color="transparent",this.topGapElementActive=!1,this.contentElementInternal=this.element.createChild("div"),this.bottomGapElement=this.element.createChild("div"),this.bottomGapElement.style.height="0px",this.bottomGapElement.style.color="transparent",this.bottomGapElementActive=!1,this.topGapElement.textContent="\ufeff",this.bottomGapElement.textContent="\ufeff",o.ARIAUtils.setHidden(this.topGapElement,!0),o.ARIAUtils.setHidden(this.bottomGapElement,!0),this.provider=e,this.element.addEventListener("scroll",this.onScroll.bind(this),!1),this.element.addEventListener("copy",this.onCopy.bind(this),!1),this.element.addEventListener("dragstart",this.onDragStart.bind(this),!1),this.contentElementInternal.addEventListener("focusin",this.onFocusIn.bind(this),!1),this.contentElementInternal.addEventListener("focusout",this.onFocusOut.bind(this),!1),this.contentElementInternal.addEventListener("keydown",this.onKeyDown.bind(this),!1),this.virtualSelectedIndex=-1,this.contentElementInternal.tabIndex=-1,this.firstActiveIndex=-1,this.lastActiveIndex=-1,this.renderedItems=[],this.anchorSelection=null,this.headSelection=null,this.itemCount=0,this.cumulativeHeights=new Int32Array(0),this.muteCopyHandler=!1,this.observer=new MutationObserver(this.refresh.bind(this)),this.observerConfig={childList:!0,subtree:!0},this.stickToBottomInternal=!1,this.selectionIsBackward=!1}stickToBottom(){return this.stickToBottomInternal}setStickToBottom(e){this.stickToBottomInternal=e,this.stickToBottomInternal?this.observer.observe(this.contentElementInternal,this.observerConfig):this.observer.disconnect()}hasVirtualSelection(){return-1!==this.virtualSelectedIndex}copyWithStyles(){this.muteCopyHandler=!0,this.element.ownerDocument.execCommand("copy"),this.muteCopyHandler=!1}onCopy(e){if(this.muteCopyHandler)return;const t=this.selectedText();t&&(e.preventDefault(),this.selectionContainsTable()?this.copyWithStyles():e.clipboardData&&e.clipboardData.setData("text/plain",t))}onFocusIn(e){const t=this.renderedItems.findIndex((t=>t.element().isSelfOrAncestor(e.target)));-1!==t&&(this.virtualSelectedIndex=this.firstActiveIndex+t);let s=!1;-1===this.virtualSelectedIndex&&this.isOutsideViewport(e.relatedTarget)&&e.target===this.contentElementInternal&&this.itemCount&&(s=!0,this.virtualSelectedIndex=this.itemCount-1,this.refresh(),this.scrollItemIntoView(this.virtualSelectedIndex)),this.updateFocusedItem(s)}onFocusOut(e){this.isOutsideViewport(e.relatedTarget)&&(this.virtualSelectedIndex=-1),this.updateFocusedItem()}isOutsideViewport(e){return null!==e&&!e.isSelfOrDescendant(this.contentElementInternal)}onDragStart(e){const t=this.selectedText();return!!t&&(e.dataTransfer&&(e.dataTransfer.clearData(),e.dataTransfer.setData("text/plain",t),e.dataTransfer.effectAllowed="copy"),!0)}onKeyDown(e){if(o.UIUtils.isEditing()||!this.itemCount||e.shiftKey)return;let t=!1;switch(e.key){case"ArrowUp":if(!(this.virtualSelectedIndex>0))return;t=!0,this.virtualSelectedIndex--;break;case"ArrowDown":if(!(this.virtualSelectedIndexthis.itemCount-1&&(this.virtualSelectedIndex=this.itemCount-1),this.rebuildCumulativeHeights(),this.refresh()}providerElement(e){this.cachedProviderElements||(this.cachedProviderElements=new Array(this.itemCount));let t=this.cachedProviderElements[e];return t||(t=this.provider.itemElement(e),this.cachedProviderElements[e]=t),t}rebuildCumulativeHeights(){const e=this.firstActiveIndex,t=this.lastActiveIndex;let s=0;this.cumulativeHeights=new Int32Array(this.itemCount);for(let n=0;n1)return void this.rebuildCumulativeHeights();if(t+=o,e+=n,Math.abs(e-t)>1)return void this.rebuildCumulativeHeights()}}cachedItemHeight(e){return 0===e?this.cumulativeHeights[0]:this.cumulativeHeights[e]-this.cumulativeHeights[e-1]}isSelectionBackwards(e){if(!e?.rangeCount||!e.anchorNode||!e.focusNode)return!1;const t=document.createRange();return t.setStart(e.anchorNode,e.anchorOffset),t.setEnd(e.focusNode,e.focusOffset),t.collapsed}createSelectionModel(e,t,s){return{item:e,node:t,offset:s}}updateSelectionModel(e){const t=e?.rangeCount?e.getRangeAt(0):null;if(!t||!e||e.isCollapsed||!this.element.hasSelection())return this.headSelection=null,this.anchorSelection=null,!1;let s=Number.MAX_VALUE,n=-1,o=!1;for(let e=0;ec.item?h:c):o?i?d=a?this.headSelection:this.anchorSelection:r&&(h=a?this.anchorSelection:this.headSelection):(d=l,h=c),a?(this.anchorSelection=h,this.headSelection=d):(this.anchorSelection=d,this.headSelection=h),this.selectionIsBackward=a,!0}restoreSelection(e){if(!e||!this.anchorSelection||!this.headSelection)return;const t=(e,t)=>{if(this.firstActiveIndex<=e.item&&e.item<=this.lastActiveIndex)return{element:e.node,offset:e.offset};return{element:e.item!t.has(e)));for(let e=0;e0&&(s[s.length-1]=s[s.length-1].substring(0,e))}const i=this.providerElement(e.item),r=i?.element();if(r&&e.node?.isSelfOrDescendant(r)){const t=this.textOffsetInNode(r,e.node,e.offset);s[0]=s[0].substring(t)}return s.join("\n")}textOffsetInNode(e,t,s){const n=t.textContent?t.textContent.length:0;t.nodeType!==Node.TEXT_NODE&&(s0&&r!==n&&(s=r),o+s}onScroll(e){this.refresh()}firstVisibleIndex(){return this.cumulativeHeights.length?(this.rebuildCumulativeHeightsIfNeeded(),s.ArrayUtilities.lowerBound(this.cumulativeHeights,this.element.scrollTop+1,s.ArrayUtilities.DEFAULT_COMPARATOR)):-1}lastVisibleIndex(){if(!this.cumulativeHeights.length)return-1;this.rebuildCumulativeHeightsIfNeeded();const e=this.element.scrollTop+this.element.clientHeight,t=this.itemCount-1;return s.ArrayUtilities.lowerBound(this.cumulativeHeights,e,s.ArrayUtilities.DEFAULT_COMPARATOR,void 0,t)}renderedElementAt(e){return-1===e||ethis.lastActiveIndex?null:this.renderedItems[e-this.firstActiveIndex].element()}scrollItemIntoView(e,t){const s=this.firstVisibleIndex(),n=this.lastVisibleIndex();e>s&&e=n&&this.forceScrollItemToBeLast(e))}forceScrollItemToBeFirst(e){console.assert(e>=0&&e0?this.cumulativeHeights[e-1]:0,o.UIUtils.isScrolledToBottom(this.element)&&this.setStickToBottom(!0),this.refresh();const t=this.renderedElementAt(e);t&&t.scrollIntoView(!0)}forceScrollItemToBeLast(e){console.assert(e>=0&&e{this.isSidebarOpen="Both"===e.data,this.isSidebarOpen&&(this.userHasOpenedSidebarAtLeastOnce||(m.userMetrics.actionTaken(m.UserMetrics.Action.ConsoleSidebarOpened),this.userHasOpenedSidebarAtLeastOnce=!0),this.pendingSidebarMessages.forEach((e=>{this.sidebar.onMessageAdded(e)})),this.pendingSidebarMessages=[]),this.filter.setLevelMenuOverridden(this.isSidebarOpen),this.onFilterChanged()})),this.contentsElement=this.searchableViewInternal.element,this.element.classList.add("console-view"),this.visibleViewMessages=[],this.hiddenByFilterCount=0,this.shouldBeHiddenCache=new Set,this.groupableMessages=new Map,this.groupableMessageTitle=new Map,this.shortcuts=new Map,this.regexMatchRanges=[],this.consoleContextSelector=new F,this.filterStatusText=new o.Toolbar.ToolbarText,this.filterStatusText.element.classList.add("dimmed"),this.showSettingsPaneSetting=e.Settings.Settings.instance().createSetting("console-show-settings-toolbar",!1),this.showSettingsPaneButton=new o.Toolbar.ToolbarSettingToggle(this.showSettingsPaneSetting,"gear",Oe(He.consoleSettings),"gear-filled"),this.showSettingsPaneButton.element.setAttribute("jslog",`${d.toggleSubpane("console-settings").track({click:!0})}`),this.progressToolbarItem=new o.Toolbar.ToolbarItem(document.createElement("div")),this.groupSimilarSetting=e.Settings.Settings.instance().moduleSetting("console-group-similar"),this.groupSimilarSetting.addChangeListener((()=>this.updateMessageList())),this.showCorsErrorsSetting=e.Settings.Settings.instance().moduleSetting("console-shows-cors-errors"),this.showCorsErrorsSetting.addChangeListener((()=>this.updateMessageList()));const s=this.consoleToolbarContainer.createChild("devtools-toolbar","console-main-toolbar");s.setAttribute("jslog",`${d.toolbar()}`),s.role="presentation",s.wrappable=!0,s.appendToolbarItem(this.splitWidget.createShowHideSidebarButton(Oe(He.showConsoleSidebar),Oe(He.hideConsoleSidebar),Oe(He.consoleSidebarShown),Oe(He.consoleSidebarHidden),"console-sidebar")),s.appendToolbarItem(o.Toolbar.Toolbar.createActionButton("console.clear")),s.appendSeparator(),s.appendToolbarItem(this.consoleContextSelector.toolbarItem()),s.appendSeparator(),s.appendSeparator(),s.appendToolbarItem(this.filter.textFilterUI),s.appendToolbarItem(this.filter.levelMenuButton),s.appendToolbarItem(this.progressToolbarItem),s.appendSeparator(),this.issueCounter=new C.IssueCounter.IssueCounter,this.issueCounter.id="console-issues-counter",this.issueCounter.setAttribute("jslog",`${d.counter("issues").track({click:!0})}`);const i=new o.Toolbar.ToolbarItem(this.issueCounter);this.issueCounter.data={clickHandler:()=>{m.userMetrics.issuesPanelOpenedFrom(2),o.ViewManager.ViewManager.instance().showView("issues-pane")},issuesManager:M.IssuesManager.IssuesManager.instance(),accessibleName:Oe(He.issueToolbarTooltipGeneral),displayMode:"OmitEmpty"},s.appendToolbarItem(i),s.appendSeparator(),s.appendToolbarItem(this.filterStatusText),s.appendToolbarItem(this.showSettingsPaneButton);const r=e.Settings.Settings.instance().moduleSetting("monitoring-xhr-enabled");this.timestampsSetting=e.Settings.Settings.instance().moduleSetting("console-timestamps-enabled"),this.consoleHistoryAutocompleteSetting=e.Settings.Settings.instance().moduleSetting("console-history-autocomplete"),this.selfXssWarningDisabledSetting=e.Settings.Settings.instance().createSetting("disable-self-xss-warning",!1,"Synced");const a=this.contentsElement.createChild("div","console-settings-pane");o.ARIAUtils.setLabel(a,Oe(He.consoleSettings)),o.ARIAUtils.markAsGroup(a);const l=e.Settings.Settings.instance().moduleSetting("preserve-console-log"),c=e.Settings.Settings.instance().moduleSetting("console-user-activation-eval");a.append(o.SettingsUI.createSettingCheckbox(Oe(He.hideNetwork),this.filter.hideNetworkMessagesSetting,this.filter.hideNetworkMessagesSetting.title()),o.SettingsUI.createSettingCheckbox(Oe(He.logXMLHttpRequests),r),o.SettingsUI.createSettingCheckbox(Oe(He.preserveLog),l,Oe(He.doNotClearLogOnPageReload)),o.SettingsUI.createSettingCheckbox(Oe(He.selectedContextOnly),this.filter.filterByExecutionContextSetting,Oe(He.onlyShowMessagesFromTheCurrentContext)),o.SettingsUI.createSettingCheckbox(this.consoleHistoryAutocompleteSetting.title(),this.consoleHistoryAutocompleteSetting,Oe(He.autocompleteFromHistory)),o.SettingsUI.createSettingCheckbox(this.groupSimilarSetting.title(),this.groupSimilarSetting,Oe(He.groupSimilarMessagesInConsole)),o.SettingsUI.createSettingCheckbox(c.title(),c,Oe(He.treatEvaluationAsUserActivation)),o.SettingsUI.createSettingCheckbox(this.showCorsErrorsSetting.title(),this.showCorsErrorsSetting,Oe(He.showCorsErrorsInConsole))),this.showSettingsPaneSetting.get()||a.classList.add("hidden"),this.showSettingsPaneSetting.addChangeListener((()=>a.classList.toggle("hidden",!this.showSettingsPaneSetting.get()))),this.viewport=new Ue(this),this.viewport.setStickToBottom(!0),this.viewport.contentElement().classList.add("console-group","console-group-messages"),this.contentsElement.appendChild(this.viewport.element),this.messagesElement=this.viewport.element,this.messagesElement.id="console-messages",this.messagesElement.classList.add("monospace"),this.messagesElement.addEventListener("click",this.messagesClicked.bind(this),!1),["paste","clipboard-paste","drop"].forEach((e=>{this.messagesElement.addEventListener(e,this.messagesPasted.bind(this),!0)})),this.messagesCountElement=this.consoleToolbarContainer.createChild("div","message-count"),o.ARIAUtils.markAsPoliteLiveRegion(this.messagesCountElement,!1),this.viewportThrottler=new e.Throttler.Throttler(t),this.pendingBatchResize=!1,this.onMessageResizedBound=e=>{this.onMessageResized(e)},this.promptElement=this.messagesElement.createChild("div","source-code"),this.promptElement.id="console-prompt";const h=this.messagesElement.createChild("div","console-view-fix-select-all");h.textContent=".",o.ARIAUtils.setHidden(h,!0),this.registerShortcuts(),this.messagesElement.addEventListener("contextmenu",this.handleContextMenuEvent.bind(this),!1);const p=new e.Throttler.Throttler(100);this.linkifier=new u.Linkifier.Linkifier(40),this.linkifier.addEventListener("liveLocationUpdated",(()=>p.schedule((async()=>this.onFilterChanged())))),this.consoleMessages=[],this.consoleGroupStarts=[],this.prompt=new tt,this.prompt.show(this.promptElement),this.prompt.element.addEventListener("keydown",this.promptKeyDown.bind(this),!0),this.prompt.addEventListener("TextChanged",this.promptTextChanged,this),this.messagesElement.addEventListener("keydown",this.messagesKeyDown.bind(this),!1),this.prompt.element.addEventListener("focusin",(()=>{this.isScrolledToBottom()&&this.viewport.setStickToBottom(!0)})),this.consoleHistoryAutocompleteSetting.addChangeListener(this.consoleHistoryAutocompleteChanged,this),this.consoleHistoryAutocompleteChanged(),this.updateFilterStatus(),this.timestampsSetting.addChangeListener(this.consoleTimestampsSettingChanged,this),this.registerWithMessageSink(),o.Context.Context.instance().addFlavorChangeListener(n.RuntimeModel.ExecutionContext,this.executionContextChanged,this),this.messagesElement.addEventListener("mousedown",(e=>this.updateStickToBottomOnPointerDown(2===e.button)),!1),this.messagesElement.addEventListener("mouseup",this.updateStickToBottomOnPointerUp.bind(this),!1),this.messagesElement.addEventListener("mouseleave",this.updateStickToBottomOnPointerUp.bind(this),!1),this.messagesElement.addEventListener("wheel",this.updateStickToBottomOnWheel.bind(this),!1),this.messagesElement.addEventListener("touchstart",this.updateStickToBottomOnPointerDown.bind(this,!1),!1),this.messagesElement.addEventListener("touchend",this.updateStickToBottomOnPointerUp.bind(this),!1),this.messagesElement.addEventListener("touchcancel",this.updateStickToBottomOnPointerUp.bind(this),!1),n.TargetManager.TargetManager.instance().addModelListener(n.ConsoleModel.ConsoleModel,n.ConsoleModel.Events.ConsoleCleared,this.consoleCleared,this,{scoped:!0}),n.TargetManager.TargetManager.instance().addModelListener(n.ConsoleModel.ConsoleModel,n.ConsoleModel.Events.MessageAdded,this.onConsoleMessageAdded,this,{scoped:!0}),n.TargetManager.TargetManager.instance().addModelListener(n.ConsoleModel.ConsoleModel,n.ConsoleModel.Events.MessageUpdated,this.onConsoleMessageUpdated,this,{scoped:!0}),n.TargetManager.TargetManager.instance().addModelListener(n.ConsoleModel.ConsoleModel,n.ConsoleModel.Events.CommandEvaluated,this.commandEvaluated,this,{scoped:!0}),n.TargetManager.TargetManager.instance().observeModels(n.ConsoleModel.ConsoleModel,this,{scoped:!0});const g=M.IssuesManager.IssuesManager.instance();this.issueToolbarThrottle=new e.Throttler.Throttler(100),g.addEventListener("IssuesCountUpdated",this.#a)}static instance(e){return Ve&&!e?.forceNew||(Ve=new Ne(e?.viewportThrottlerTimeout??50)),Ve}static clearConsole(){n.ConsoleModel.ConsoleModel.requestClearMessages()}#l(){this.issueToolbarThrottle.schedule((async()=>this.updateIssuesToolbarItem())),this.issuesCountUpdatedForTest()}issuesCountUpdatedForTest(){}modelAdded(e){e.messages().forEach(this.addConsoleMessage,this)}modelRemoved(t){e.Settings.Settings.instance().moduleSetting("preserve-console-log").get()||t.target().outermostTarget()!==t.target()||this.consoleCleared()}onFilterChanged(){if(this.filter.currentFilter.levelsMask=this.isSidebarOpen?P.allLevelsFilterValue():this.filter.messageLevelFiltersSetting.get(),this.cancelBuildHiddenCache(),this.immediatelyFilterMessagesForTest){for(const e of this.consoleMessages)this.computeShouldMessageBeVisible(e);this.updateMessageList()}else this.buildHiddenCache(0,this.consoleMessages.slice())}setImmediatelyFilterMessagesForTest(){this.immediatelyFilterMessagesForTest=!0}searchableView(){return this.searchableViewInternal}clearHistory(){this.prompt.history().clear()}consoleHistoryAutocompleteChanged(){this.prompt.setAddCompletionsFromHistory(this.consoleHistoryAutocompleteSetting.get())}itemCount(){return this.visibleViewMessages.length}itemElement(e){return this.visibleViewMessages[e]}fastHeight(e){return this.visibleViewMessages[e].fastHeight()}minimumRowHeight(){return 16}registerWithMessageSink(){e.Console.Console.instance().messages().forEach(this.addSinkMessage,this),e.Console.Console.instance().addEventListener("messageAdded",(({data:e})=>{this.addSinkMessage(e)}),this)}addSinkMessage(e){let t="verbose";switch(e.level){case"info":t="info";break;case"error":t="error";break;case"warning":t="warning"}const s=e.source||"other",o=new n.ConsoleModel.ConsoleMessage(null,s,t,e.text,{type:n.ConsoleModel.FrontendMessageType.System,timestamp:e.timestamp});this.addConsoleMessage(o)}consoleTimestampsSettingChanged(){this.updateMessageList(),this.consoleMessages.forEach((e=>e.updateTimestamp())),this.groupableMessageTitle.forEach((e=>e.updateTimestamp()))}executionContextChanged(){this.prompt.clearAutocomplete()}willHide(){this.hidePromptSuggestBox()}wasShown(){if(super.wasShown(),this.#r){M.IssuesManager.IssuesManager.instance().addEventListener("IssuesCountUpdated",this.#a)}this.#r=!1,this.updateIssuesToolbarItem(),this.viewport.refresh()}focus(){this.viewport.hasVirtualSelection()?this.viewport.contentElement().focus():this.focusPrompt()}focusPrompt(){if(!this.prompt.hasFocus()){const e=this.viewport.stickToBottom(),t=this.viewport.element.scrollTop;this.prompt.focus(),this.viewport.setStickToBottom(e),this.viewport.element.scrollTop=t}}restoreScrollPositions(){this.viewport.stickToBottom()?this.immediatelyScrollToBottom():super.restoreScrollPositions()}onResize(){this.scheduleViewportRefresh(),this.hidePromptSuggestBox(),this.viewport.stickToBottom()&&this.immediatelyScrollToBottom();for(let e=0;e0?this.consoleMessages.length:s.ArrayUtilities.upperBound(this.consoleMessages,t,l);const i=o=5&&!this.selfXssWarningDisabledSetting.get()&&this.selfXssWarningDisabledSetting.set(!0);else if(e.type!==n.ConsoleModel.FrontendMessageType.Result){const n=s.ArrayUtilities.upperBound(this.consoleGroupStarts,t,l)-1;if(n>=0){!function e(t,s){const n=s.groupEnd();if(null!==n&&l(t,n)>0){const n=s.consoleGroup();if(null===n)return;return void e(t,n)}"endGroup"===t.consoleMessage().type?s.setGroupEnd(t):t.setConsoleGroup(s)}(t,this.consoleGroupStarts[n])}e.isGroupStartMessage()&&(o=s.ArrayUtilities.upperBound(this.consoleGroupStarts,t,l),this.consoleGroupStarts.splice(o,0,t))}this.filter.onMessageAdded(e),this.isSidebarOpen?this.sidebar.onMessageAdded(t):this.pendingSidebarMessages.push(t);let r=!1;const a=this.groupSimilarSetting.get();if(e.isGroupable()){const e=t.groupKey();r=a&&this.groupableMessages.has(e);let s=this.groupableMessages.get(e);s||(s=[],this.groupableMessages.set(e,s)),s.push(t)}function l(e,t){return(De.get(e)||0)-(De.get(t)||0)}this.computeShouldMessageBeVisible(t),r||i?this.needsFullUpdate=!0:(this.appendMessageToEnd(t,!a),this.updateFilterStatus(),this.searchableViewInternal.updateSearchMatchesCount(this.regexMatchRanges.length)),this.scheduleViewportRefresh(),this.consoleMessageAddedForTest(t)}onConsoleMessageUpdated(e){const t=e.data,s=We.get(t);s&&(s.updateMessageElement(),this.computeShouldMessageBeVisible(s),this.updateMessageList())}consoleMessageAddedForTest(e){}shouldMessageBeVisible(e){return!this.shouldBeHiddenCache.has(e)}computeShouldMessageBeVisible(e){!this.filter.shouldBeVisible(e)||this.isSidebarOpen&&!this.sidebar.shouldBeVisible(e)?this.shouldBeHiddenCache.add(e):this.shouldBeHiddenCache.delete(e)}appendMessageToEnd(e,t){if("cors"===e.consoleMessage().category&&!this.showCorsErrorsSetting.get())return;const s=this.visibleViewMessages[this.visibleViewMessages.length-1];if("endGroup"===e.consoleMessage().type){if(s){const e=s.consoleGroup();e&&!e.messagesHidden()&&s.incrementCloseGroupDecorationCount()}return}if(!this.shouldMessageBeVisible(e))return void this.hiddenByFilterCount++;if(!t&&this.tryToCollapseMessages(e,this.visibleViewMessages[this.visibleViewMessages.length-1]))return;const n=e.consoleGroup();if(!n?.messagesHidden()){const t=e.consoleMessage().originatingMessage(),o=Boolean(t&&s?.consoleMessage()===t);e.setAdjacentUserCommandResult(o),function e(t,s){if(null===t)return;if(s.includes(t))return;const n=t.consoleGroup();n&&e(n,s);s.push(t)}(n,this.visibleViewMessages),this.visibleViewMessages.push(e),this.searchMessage(this.visibleViewMessages.length-1)}this.messageAppendedForTests()}messageAppendedForTests(){}createViewMessage(e){switch(e.type){case n.ConsoleModel.FrontendMessageType.Command:return new Me(e,this.linkifier,this.requestResolver,this.issueResolver,this.onMessageResizedBound);case n.ConsoleModel.FrontendMessageType.Result:return new Ee(e,this.linkifier,this.requestResolver,this.issueResolver,this.onMessageResizedBound);case"startGroupCollapsed":case"startGroup":return new ye(e,this.linkifier,this.requestResolver,this.issueResolver,this.updateMessageList.bind(this),this.onMessageResizedBound);case"table":return new ke(e,this.linkifier,this.requestResolver,this.issueResolver,this.onMessageResizedBound);default:return new xe(e,this.linkifier,this.requestResolver,this.issueResolver,this.onMessageResizedBound)}}async onMessageResized(e){const t=e.data;if(this.pendingBatchResize||!t.treeOutline)return;this.pendingBatchResize=!0,await Promise.resolve();const s=t.treeOutline.element;this.viewport.setStickToBottom(this.isScrolledToBottom()),s.offsetHeight<=this.messagesElement.offsetHeight&&s.scrollIntoViewIfNeeded(),this.pendingBatchResize=!1}consoleCleared(){const e=this.viewport.element.hasFocus();this.cancelBuildHiddenCache(),this.currentMatchRangeIndex=-1,this.consoleMessages=[],this.groupableMessages.clear(),this.groupableMessageTitle.clear(),this.sidebar.clear(),this.pendingSidebarMessages=[],this.updateMessageList(),this.hidePromptSuggestBox(),this.viewport.setStickToBottom(!0),this.linkifier.reset(),this.filter.clear(),this.requestResolver.clear(),this.consoleGroupStarts=[],e&&this.prompt.focus(),o.ARIAUtils.alert(Oe(He.consoleCleared))}handleContextMenuEvent(t){const s=new o.ContextMenu.ContextMenu(t),i=t.target;if(i.isSelfOrDescendant(this.promptElement))return void s.show();const r=i.enclosingNodeOrSelfWithClass("console-message-wrapper"),a=r&&ge(r),l=a?a.consoleMessage():null;if(a&&o.Context.Context.instance().setFlavor(xe,a),l&&!a?.element()?.matches(".has-insight")&&a?.shouldShowInsights()&&s.headerSection().appendAction(a?.getExplainActionId(),void 0,!0),l&&l.url){const t=Oe(He.hideMessagesFromS,{PH1:new e.ParsedURL.ParsedURL(l.url).displayName});s.headerSection().appendItem(t,this.filter.addMessageURLFilter.bind(this.filter,l.url),{jslogContext:"hide-messages-from"})}if(s.defaultSection().appendAction("console.clear"),s.defaultSection().appendAction("console.clear.history"),s.saveSection().appendItem(Oe(He.copyConsole),this.copyConsole.bind(this),{jslogContext:"copy-console"}),s.saveSection().appendItem(Oe(He.saveAs),this.saveConsole.bind(this),{jslogContext:"save-as"}),this.element.hasSelection()&&s.clipboardSection().appendItem(Oe(He.copyVisibleStyledSelection),this.viewport.copyWithStyles.bind(this.viewport),{jslogContext:"copy-visible-styled-selection"}),l){const e=g.NetworkLog.NetworkLog.requestForConsoleMessage(l);e&&n.NetworkManager.NetworkManager.canReplayRequest(e)&&s.debugSection().appendItem(Oe(He.replayXhr),n.NetworkManager.NetworkManager.replayRequest.bind(null,e),{jslogContext:"replay-xhr"})}s.show()}async saveConsole(){const t=n.TargetManager.TargetManager.instance().scopeTarget().inspectedURL(),i=e.ParsedURL.ParsedURL.fromString(t),r=s.StringUtilities.sprintf("%s-%d.log",i?i.host:"console",Date.now()),a=new p.FileUtils.FileOutputStream,l=new o.ProgressIndicator.ProgressIndicator;l.setTitle(Oe(He.writingFile)),l.setTotalWork(this.itemCount());if(!await a.open(r))return;this.progressToolbarItem.element.appendChild(l.element);let c=0;for(;c12));++n);n!==t.length?this.buildHiddenCacheTimeout=this.element.window().requestAnimationFrame(this.buildHiddenCache.bind(this,n+1,t)):this.updateMessageList()}cancelBuildHiddenCache(){this.shouldBeHiddenCache.clear(),this.buildHiddenCacheTimeout&&(this.element.window().cancelAnimationFrame(this.buildHiddenCacheTimeout),delete this.buildHiddenCacheTimeout)}updateMessageList(){this.regexMatchRanges=[],this.hiddenByFilterCount=0;for(const e of this.visibleViewMessages)e.resetCloseGroupDecorationCount(),e.resetIncrementRepeatCount();if(this.visibleViewMessages=[],this.groupSimilarSetting.get())this.addGroupableMessagesToEnd();else for(const e of this.consoleMessages)e.setInSimilarGroup(!1),e.consoleMessage().isGroupable()&&e.clearConsoleGroup(),this.appendMessageToEnd(e,!0);this.updateFilterStatus(),this.searchableViewInternal.updateSearchMatchesCount(this.regexMatchRanges.length),this.viewport.invalidate(),this.messagesCountElement.setAttribute("aria-label",Oe(He.filteredMessagesInConsole,{PH1:this.visibleViewMessages.length}))}addGroupableMessagesToEnd(){const e=new Set,t=new Set;for(const s of this.consoleMessages){const o=s.consoleMessage();if(e.has(o))continue;if(!o.isGroupable()){this.appendMessageToEnd(s),e.add(o);continue}const i=s.groupKey(),r=this.groupableMessages.get(i);if(!r||r.length<5){s.setInSimilarGroup(!1),this.appendMessageToEnd(s),e.add(o);continue}if(t.has(i))continue;if(!r.find((e=>this.shouldMessageBeVisible(e)))){for(const t of r)e.add(t.consoleMessage());t.add(i);continue}let a=this.groupableMessageTitle.get(i);if(!a){const e=new n.ConsoleModel.ConsoleMessage(null,o.source,o.level,s.groupTitle(),{type:"startGroupCollapsed"});a=this.createViewMessage(e),this.groupableMessageTitle.set(i,a)}a.setRepeatCount(r.length),this.appendMessageToEnd(a);for(const t of r)t.setInSimilarGroup(!0,r[r.length-1]===t),t.setConsoleGroup(a),this.appendMessageToEnd(t,!0),e.add(t.consoleMessage());const l=new n.ConsoleModel.ConsoleMessage(null,o.source,o.level,o.messageText,{type:"endGroup"});this.appendMessageToEnd(this.createViewMessage(l))}}messagesClicked(e){const t=e.target;if(!this.messagesElement.hasSelection()){(t===this.messagesElement||this.prompt.belowEditorElement().isSelfOrAncestor(t))&&(this.prompt.moveCaretToEndOfPrompt(),this.focusPrompt())}}messagesKeyDown(e){const t=e;t.ctrlKey||t.altKey||t.metaKey||1!==t.key.length||o.UIUtils.isEditing()||this.messagesElement.hasSelection()||(this.prompt.moveCaretToEndOfPrompt(),this.focusPrompt())}messagesPasted(e){r.Runtime.Runtime.queryParam("isChromeForTesting")||r.Runtime.Runtime.queryParam("disableSelfXssWarnings")||this.selfXssWarningDisabledSetting.get()||(e.preventDefault(),this.prompt.showSelfXssWarning()),o.UIUtils.isEditing()||this.prompt.focus()}registerShortcuts(){this.shortcuts.set(o.KeyboardShortcut.KeyboardShortcut.makeKey("u",o.KeyboardShortcut.Modifiers.Ctrl.value),this.clearPromptBackwards.bind(this))}clearPromptBackwards(e){this.prompt.clear(),d.logKeyDown(e.currentTarget,e,"clear-prompt")}promptKeyDown(e){const t=e;if("PageUp"===t.key)return void this.updateStickToBottomOnWheel();const s=o.KeyboardShortcut.KeyboardShortcut.makeKeyFromEvent(t),n=this.shortcuts.get(s);n&&(n(t),t.preventDefault())}printResult(e,t,s){if(!e)return;const o=Boolean(s)?"error":"info";let i;i=s?n.ConsoleModel.ConsoleMessage.fromException(e.runtimeModel(),s,n.ConsoleModel.FrontendMessageType.Result,void 0,void 0):new n.ConsoleModel.ConsoleMessage(e.runtimeModel(),"javascript",o,"",{type:n.ConsoleModel.FrontendMessageType.Result,parameters:[e]}),i.setOriginatingMessage(t),e.runtimeModel().target().model(n.ConsoleModel.ConsoleModel)?.addMessage(i)}commandEvaluated(e){const{data:t}=e;this.printResult(t.result,t.commandMessage,t.exceptionDetails)}elementsToRestoreScrollPositionsFor(){return[this.messagesElement]}onSearchCanceled(){this.cleanupAfterSearch();for(const e of this.visibleViewMessages)e.setSearchRegex(null);this.currentMatchRangeIndex=-1,this.regexMatchRanges=[],this.searchRegex=null,this.viewport.refresh()}performSearch(e,t,s){this.onSearchCanceled(),this.searchableViewInternal.updateSearchMatchesCount(0),this.searchRegex=e.toSearchRegex(!0).regex,this.regexMatchRanges=[],this.currentMatchRangeIndex=-1,t&&(this.searchShouldJumpBackwards=Boolean(s)),this.searchProgressIndicator=new o.ProgressIndicator.ProgressIndicator,this.searchProgressIndicator.setTitle(Oe(He.searching)),this.searchProgressIndicator.setTotalWork(this.visibleViewMessages.length),this.progressToolbarItem.element.appendChild(this.searchProgressIndicator.element),this.innerSearch(0)}cleanupAfterSearch(){delete this.searchShouldJumpBackwards,this.innerSearchTimeoutId&&(clearTimeout(this.innerSearchTimeoutId),delete this.innerSearchTimeoutId),this.searchProgressIndicator&&(this.searchProgressIndicator.done(),delete this.searchProgressIndicator)}searchFinishedForTests(){}innerSearch(e){if(delete this.innerSearchTimeoutId,this.searchProgressIndicator?.isCanceled())return void this.cleanupAfterSearch();const t=Date.now();for(;e=0){t=this.regexMatchRanges[this.currentMatchRangeIndex];this.visibleViewMessages[t.messageIndex].searchHighlightNode(t.matchIndex).classList.remove(o.UIUtils.highlightedCurrentSearchResultClassName)}e=s.NumberUtilities.mod(e,this.regexMatchRanges.length),this.currentMatchRangeIndex=e,this.searchableViewInternal.updateCurrentMatchIndex(e),t=this.regexMatchRanges[e];const n=this.visibleViewMessages[t.messageIndex].searchHighlightNode(t.matchIndex);n.classList.add(o.UIUtils.highlightedCurrentSearchResultClassName),this.viewport.scrollItemIntoView(t.messageIndex),n.scrollIntoViewIfNeeded()}updateStickToBottomOnPointerDown(e){this.muteViewportUpdates=!e,this.viewport.setStickToBottom(!1),this.waitForScrollTimeout&&(clearTimeout(this.waitForScrollTimeout),delete this.waitForScrollTimeout)}updateStickToBottomOnPointerUp(){this.muteViewportUpdates&&(this.waitForScrollTimeout=window.setTimeout(function(){this.muteViewportUpdates=!1,this.isShowing()&&this.viewport.setStickToBottom(this.isScrolledToBottom());this.maybeDirtyWhileMuted&&(this.scheduleViewportRefresh(),delete this.maybeDirtyWhileMuted);delete this.waitForScrollTimeout,this.updateViewportStickinessForTest()}.bind(this),200))}updateViewportStickinessForTest(){}updateStickToBottomOnWheel(){this.updateStickToBottomOnPointerDown(),this.updateStickToBottomOnPointerUp()}promptTextChanged(){const e=this.viewport.stickToBottom(),t=this.isScrolledToBottom();this.viewport.setStickToBottom(t),t&&!e&&this.scheduleViewportRefresh(),this.promptTextChangedForTest()}promptTextChangedForTest(){}isScrolledToBottom(){return this.messagesElement.scrollHeight-this.messagesElement.scrollTop-this.messagesElement.clientHeight-this.prompt.belowEditorElement().offsetHeight<=2}}globalThis.Console=globalThis.Console||{},globalThis.Console.ConsoleView=Ne;class Ge{filterChanged;messageLevelFiltersSetting;hideNetworkMessagesSetting;filterByExecutionContextSetting;suggestionBuilder;textFilterUI;textFilterSetting;filterParser;currentFilter;levelLabels;levelMenuButton;constructor(t){this.filterChanged=t,this.messageLevelFiltersSetting=Ge.levelFilterSetting(),this.hideNetworkMessagesSetting=e.Settings.Settings.instance().moduleSetting("hide-network-messages"),this.filterByExecutionContextSetting=e.Settings.Settings.instance().moduleSetting("selected-context-filter-enabled"),this.messageLevelFiltersSetting.addChangeListener(this.onFilterChanged.bind(this)),this.hideNetworkMessagesSetting.addChangeListener(this.onFilterChanged.bind(this)),this.filterByExecutionContextSetting.addChangeListener(this.onFilterChanged.bind(this)),o.Context.Context.instance().addFlavorChangeListener(n.RuntimeModel.ExecutionContext,this.onFilterChanged,this);const s=Object.values(R);this.suggestionBuilder=new o.FilterSuggestionBuilder.FilterSuggestionBuilder(s),this.textFilterUI=new o.Toolbar.ToolbarFilter(void 0,1,1,Oe(He.egEventdCdnUrlacom),this.suggestionBuilder.completions.bind(this.suggestionBuilder),!0),this.textFilterSetting=e.Settings.Settings.instance().createSetting("console.text-filter",""),this.textFilterSetting.get()&&this.textFilterUI.setValue(this.textFilterSetting.get()),this.textFilterUI.addEventListener("TextChanged",(()=>{this.textFilterSetting.set(this.textFilterUI.value()),this.onFilterChanged()})),this.filterParser=new i.TextUtils.FilterParser(s),this.currentFilter=new P("",[],null,this.messageLevelFiltersSetting.get()),this.updateCurrentFilter(),this.levelLabels=new Map([["verbose",Oe(He.verbose)],["info",Oe(He.info)],["warning",Oe(He.warnings)],["error",Oe(He.errors)]]),this.levelMenuButton=new o.Toolbar.ToolbarMenuButton(this.appendLevelMenuItems.bind(this),void 0,void 0,"log-level"),this.updateLevelMenuButtonText(),this.messageLevelFiltersSetting.addChangeListener(this.updateLevelMenuButtonText.bind(this))}onMessageAdded(e){e.type===n.ConsoleModel.FrontendMessageType.Command||e.type===n.ConsoleModel.FrontendMessageType.Result||e.isGroupMessage()||(e.context&&this.suggestionBuilder.addItem(R.Context,e.context),e.source&&this.suggestionBuilder.addItem(R.Source,e.source),e.url&&this.suggestionBuilder.addItem(R.Url,e.url))}setLevelMenuOverridden(e){this.levelMenuButton.setEnabled(!e),e?this.levelMenuButton.setTitle(Oe(He.overriddenByFilterSidebar)):this.updateLevelMenuButtonText()}static levelFilterSetting(){return e.Settings.Settings.instance().createSetting("message-level-filters",P.defaultLevelsFilterValue())}updateCurrentFilter(){const e=this.filterParser.parse(this.textFilterUI.value());for(const{key:t}of e)switch(t){case R.Context:m.userMetrics.actionTaken(m.UserMetrics.Action.ConsoleFilterByContext);break;case R.Source:m.userMetrics.actionTaken(m.UserMetrics.Action.ConsoleFilterBySource);break;case R.Url:m.userMetrics.actionTaken(m.UserMetrics.Action.ConsoleFilterByUrl)}this.hideNetworkMessagesSetting.get()&&e.push({key:R.Source,text:"network",negative:!0,regex:void 0}),this.currentFilter.executionContext=this.filterByExecutionContextSetting.get()?o.Context.Context.instance().flavor(n.RuntimeModel.ExecutionContext):null,this.currentFilter.parsedFilters=e,this.currentFilter.levelsMask=this.messageLevelFiltersSetting.get()}onFilterChanged(){this.updateCurrentFilter(),this.filterChanged()}updateLevelMenuButtonText(){let e=!0,t=!0;const s=P.allLevelsFilterValue(),n=P.defaultLevelsFilterValue();let o=null;const i=this.messageLevelFiltersSetting.get(),r={Verbose:"verbose",Info:"info",Warning:"warning",Error:"error"};for(const a of Object.values(r))e=e&&i[a]===s[a],t=t&&i[a]===n[a],i[a]&&(o=o?Oe(He.customLevels):Oe(He.sOnly,{PH1:String(this.levelLabels.get(a))}));o=e?Oe(He.allLevels):t?Oe(He.defaultLevels):o||Oe(He.hideAll),this.levelMenuButton.element.classList.toggle("warning",!e&&!t),this.levelMenuButton.setText(o),this.levelMenuButton.setTitle(Oe(He.logLevelS,{PH1:o}))}appendLevelMenuItems(e){const t=this.messageLevelFiltersSetting,s=t.get();e.headerSection().appendItem(Oe(He.default),(()=>t.set(P.defaultLevelsFilterValue())),{jslogContext:"default"});for(const[t,o]of this.levelLabels.entries())e.defaultSection().appendCheckboxItem(o,n.bind(null,t),{checked:s[t],jslogContext:t});function n(e){s[e]=!s[e],t.set(s)}}addMessageURLFilter(e){if(!e)return;const t=this.textFilterUI.value()?` ${this.textFilterUI.value()}`:"";this.textFilterUI.setValue(`-url:${e}${t}`),this.textFilterSetting.set(this.textFilterUI.value()),this.onFilterChanged()}shouldBeVisible(e){return this.currentFilter.shouldBeVisible(e)}clear(){this.suggestionBuilder.clear()}reset(){this.messageLevelFiltersSetting.set(P.defaultLevelsFilterValue()),this.filterByExecutionContextSetting.set(!1),this.hideNetworkMessagesSetting.set(!1),this.textFilterUI.setValue(""),this.onFilterChanged()}}const De=new WeakMap,We=new WeakMap;var _e=Object.freeze({__proto__:null,ActionDelegate:class{handleAction(t,s){switch(s){case"console.toggle":return Ne.instance().hasFocus()&&o.InspectorView.InspectorView.instance().drawerVisible()?(o.InspectorView.InspectorView.instance().closeDrawer(),!0):(m.InspectorFrontendHost.InspectorFrontendHostInstance.bringToFront(),e.Console.Console.instance().show(),Ne.instance().focusPrompt(),!0);case"console.clear":return Ne.clearConsole(),!0;case"console.clear.history":return Ne.instance().clearHistory(),!0}return!1}},ConsoleView:Ne,ConsoleViewFilter:Ge});let ze;class $e extends o.Panel.Panel{view;constructor(){super("console"),this.view=Ne.instance()}static instance(e={forceNew:null}){const{forceNew:t}=e;return ze&&!t||(ze=new $e),ze}static updateContextFlavor(){const e=$e.instance().view;o.Context.Context.instance().setFlavor(Ne,e.isShowing()?e:null)}wasShown(){super.wasShown();const e=qe;e?.isShowing()&&o.InspectorView.InspectorView.instance().setDrawerMinimized(!0),this.view.show(this.element),$e.updateContextFlavor()}willHide(){super.willHide(),o.InspectorView.InspectorView.instance().setDrawerMinimized(!1),qe&&qe.showViewInWrapper(),$e.updateContextFlavor()}searchableView(){return Ne.instance().searchableView()}}let qe=null;class Ke extends o.Widget.VBox{view;constructor(){super(),this.view=Ne.instance(),this.element.setAttribute("jslog",`${d.panel("console").track({resize:!0})}`)}static instance(){return qe||(qe=new Ke),qe}wasShown(){$e.instance().isShowing()?o.InspectorView.InspectorView.instance().setDrawerMinimized(!0):this.showViewInWrapper(),$e.updateContextFlavor()}willHide(){o.InspectorView.InspectorView.instance().setDrawerMinimized(!1),$e.updateContextFlavor()}showViewInWrapper(){this.view.show(this.element)}}var Je=Object.freeze({__proto__:null,ConsolePanel:$e,ConsoleRevealer:class{async reveal(e){const t=Ne.instance();t.isShowing()?t.focus():await o.ViewManager.ViewManager.instance().showView("console-view")}},WrapperView:Ke}),Xe={cssText:`#console-prompt .CodeMirror{padding:3px 0 1px}#console-prompt .CodeMirror-line{padding-top:0}#console-prompt .CodeMirror-lines{padding-top:0}#console-prompt .console-prompt-icon{position:absolute;left:-13px;top:2px;user-select:none}.console-eager-preview{padding-bottom:2px;opacity:60%;position:relative}.console-eager-inner-preview{text-overflow:ellipsis;overflow:hidden;margin-left:4px;height:100%;white-space:nowrap}.preview-result-icon{position:absolute;left:-13px;top:-1px}.console-eager-inner-preview:empty,\n.console-eager-inner-preview:empty + .preview-result-icon{opacity:0%}.console-prompt-icon.console-prompt-incomplete{opacity:65%}\n/*# sourceURL=${import.meta.resolve("./consolePrompt.css")} */\n`};const{Direction:Ze}=l.TextEditorHistory,Qe={consolePrompt:"Console prompt",selfXssWarning:"Warning: Don’t paste code into the DevTools Console that you don’t understand or haven’t reviewed yourself. This could allow attackers to steal your identity or take control of your computer. Please type ‘{PH1}’ below and hit Enter to allow pasting.",allowPasting:"allow pasting"},Ye=t.i18n.registerUIStrings("panels/console/ConsolePrompt.ts",Qe),et=t.i18n.getLocalizedString.bind(void 0,Ye);class tt extends(e.ObjectWrapper.eventMixin(o.Widget.Widget)){addCompletionsFromHistory;historyInternal;initialText;editor;eagerPreviewElement;textChangeThrottler;formatter;requestPreviewBound;requestPreviewCurrent=0;innerPreviewElement;promptIcon;iconThrottler;previewRequestForTest;highlightingNode;#c;#d;#h=!1;#u=new a.Compartment;#m(){return this.#h?[]:"true"!==r.Runtime.Runtime.queryParam("noJavaScriptCompletion")?[a.javascript.javascript(),l.JavaScript.completion()]:[a.javascript.javascriptLanguage]}#p(){const e=this.#m(),t=this.#u.reconfigure(e);this.editor.dispatch({effects:t})}constructor(){super(),this.registerRequiredCSS(Xe),this.addCompletionsFromHistory=!0,this.historyInternal=new l.AutocompleteHistory.AutocompleteHistory(e.Settings.Settings.instance().createLocalSetting("console-history",[])),this.initialText="",this.eagerPreviewElement=document.createElement("div"),this.eagerPreviewElement.classList.add("console-eager-preview"),this.textChangeThrottler=new e.Throttler.Throttler(150),this.formatter=new c.RemoteObjectPreviewFormatter.RemoteObjectPreviewFormatter,this.requestPreviewBound=this.requestPreview.bind(this),this.innerPreviewElement=this.eagerPreviewElement.createChild("div","console-eager-inner-preview");const t=new h.Icon.Icon;t.data={iconName:"chevron-left-dot",color:"var(--icon-default)",width:"16px",height:"16px"},t.classList.add("preview-result-icon"),this.eagerPreviewElement.appendChild(t);const s=this.element.createChild("div","console-prompt-editor-container");this.element.appendChild(this.eagerPreviewElement),this.promptIcon=new h.Icon.Icon,this.promptIcon.data={iconName:"chevron-right",color:"var(--icon-action)",width:"16px",height:"16px"},this.promptIcon.classList.add("console-prompt-icon"),this.element.appendChild(this.promptIcon),this.iconThrottler=new e.Throttler.Throttler(0),this.element.tabIndex=0,this.previewRequestForTest=null,this.highlightingNode=!1;const n=l.JavaScript.argumentHints();this.#c=n[0];const o=l.Config.DynamicSetting.bool("console-autocomplete-on-enter",[],l.Config.conservativeCompletion),i=[a.keymap.of(this.editorKeymap()),a.EditorView.updateListener.of((e=>this.editorUpdate(e))),n,o.instance(),l.Config.showCompletionHint,l.Config.baseConfiguration(this.initialText),l.Config.autocompletion.instance(),a.javascript.javascriptLanguage.data.of({autocomplete:e=>this.addCompletionsFromHistory?this.#d.historyCompletions(e):null}),a.EditorView.contentAttributes.of({"aria-label":et(Qe.consolePrompt)}),a.EditorView.lineWrapping,a.autocompletion({aboveCursor:!0}),this.#u.of(this.#m())],r=this.initialText,u=a.EditorState.create({doc:r,extensions:i});this.editor=new l.TextEditor.TextEditor(u),this.editor.addEventListener("keydown",(e=>{e.defaultPrevented&&e.stopPropagation()})),s.appendChild(this.editor),this.#d=new l.TextEditorHistory.TextEditorHistory(this.editor,this.historyInternal),this.hasFocus()&&this.focus(),this.element.removeAttribute("tabindex"),this.editorSetForTest(),m.userMetrics.panelLoaded("console","DevTools.Launch.Console"),this.element.setAttribute("jslog",`${d.textField("console-prompt").track({change:!0,keydown:"Enter|ArrowUp|ArrowDown|PageUp"})}`)}belowEditorElement(){return this.eagerPreviewElement}onTextChanged(){this.updatePromptIcon(),this.dispatchEventToListeners("TextChanged")}async requestPreview(){const e=++this.requestPreviewCurrent,t=l.Config.contentIncludingHint(this.editor.editor).trim(),s=o.Context.Context.instance().flavor(n.RuntimeModel.ExecutionContext),{preview:i,result:r}=await c.JavaScriptREPL.JavaScriptREPL.evaluateAndBuildPreview(t,!0,!0,500);this.requestPreviewCurrent===e&&(this.innerPreviewElement.removeChildren(),i.deepTextContent()!==l.Config.contentIncludingHint(this.editor.editor).trim()&&this.innerPreviewElement.appendChild(i),r&&"object"in r&&r.object&&"node"===r.object.subtype?(this.highlightingNode=!0,n.OverlayModel.OverlayModel.highlightObjectAsDOMNode(r.object)):this.highlightingNode&&(this.highlightingNode=!1,n.OverlayModel.OverlayModel.hideDOMNodeHighlight()),r&&s&&s.runtimeModel.releaseEvaluationResult(r))}willHide(){super.willHide(),this.highlightingNode&&(this.highlightingNode=!1,n.OverlayModel.OverlayModel.hideDOMNodeHighlight())}history(){return this.historyInternal}clearAutocomplete(){a.closeCompletion(this.editor.editor)}isCaretAtEndOfPrompt(){return this.editor.state.selection.main.head===this.editor.state.doc.length}moveCaretToEndOfPrompt(){this.editor.dispatch({selection:a.EditorSelection.cursor(this.editor.state.doc.length)})}clear(){this.editor.dispatch({changes:{from:0,to:this.editor.state.doc.length}})}text(){return this.editor.state.doc.toString()}setAddCompletionsFromHistory(e){this.addCompletionsFromHistory=e}editorKeymap(){return[{key:"ArrowUp",run:()=>this.#d.moveHistory(-1)},{key:"ArrowDown",run:()=>this.#d.moveHistory(1)},{mac:"Ctrl-p",run:()=>this.#d.moveHistory(-1,!0)},{mac:"Ctrl-n",run:()=>this.#d.moveHistory(1,!0)},{key:"Escape",run:()=>l.JavaScript.closeArgumentsHintsTooltip(this.editor.editor,this.#c)},{key:"Ctrl-Enter",run:()=>(this.handleEnter(!0),!0)},{key:"Enter",run:()=>(this.handleEnter(),!0),shift:a.insertNewlineAndIndent}]}async enterWillEvaluate(e){const{doc:t,selection:s}=this.editor.state;if(!t.length)return!1;if(e||s.main.head{this.promptIcon.classList.toggle("console-prompt-incomplete",!await this.enterWillEvaluate())}))}appendCommand(e,t){const s=o.Context.Context.instance().flavor(n.RuntimeModel.ExecutionContext);if(s){const o=s,i=o.target().model(n.ConsoleModel.ConsoleModel);if(i){const s=i.addCommandMessage(o,e),n=c.JavaScriptREPL.JavaScriptREPL.wrapObjectLiteral(e);this.evaluateCommandInConsole(o,s,n,t),$e.instance().isShowing()&&m.userMetrics.actionTaken(m.UserMetrics.Action.CommandEvaluatedInConsolePanel)}}}async evaluateCommandInConsole(e,t,s,o){const i=e.debuggerModel.selectedCallFrame();if(i?.script.isJavaScript()){const e=await y.NamesResolver.allVariablesInCallFrame(i);s=await this.substituteNames(s,e)}await(e.target().model(n.ConsoleModel.ConsoleModel)?.evaluateCommandInConsole(e,t,s,o))}async substituteNames(e,t){try{return await I.FormatterWorkerPool.formatterWorkerPool().javaScriptSubstitute(e,t)}catch{return e}}editorUpdate(e){e.docChanged||a.selectedCompletion(e.state)!==a.selectedCompletion(e.startState)?this.onTextChanged():e.selectionSet&&this.updatePromptIcon()}focus(){this.editor.focus()}editorSetForTest(){}}var st=Object.freeze({__proto__:null,ConsolePrompt:tt});export{A as ConsoleContextSelector,U as ConsoleFilter,V as ConsoleFormat,Je as ConsolePanel,K as ConsolePinPane,st as ConsolePrompt,oe as ConsoleSidebar,_e as ConsoleView,Pe as ConsoleViewMessage,Be as ConsoleViewport,de as ErrorStackParser}; + `;this.pinElement=i.element(),this.pinPreview=i.$("preview");const r=i.$("name");o.Tooltip.Tooltip.install(r,t),z.set(this.pinElement,this),this.lastResult=null,this.lastExecutionContext=null,this.committedExpression=t,this.hovered=!1,this.lastNode=null,this.editor=this.createEditor(t,r),this.pinPreview.addEventListener("mouseenter",this.setHovered.bind(this,!0),!1),this.pinPreview.addEventListener("mouseleave",this.setHovered.bind(this,!1),!1),this.pinPreview.addEventListener("click",(t=>{this.lastNode&&(e.Revealer.reveal(this.lastNode),t.consume())}),!1),r.addEventListener("keydown",(e=>{"Escape"===e.key&&e.consume()}))}createEditor(e,t){const s=[a.EditorView.contentAttributes.of({"aria-label":_(D.liveExpressionEditor)}),a.EditorView.lineWrapping,a.javascript.javascriptLanguage,l.Config.showCompletionHint,a.placeholder(_(D.expression)),a.keymap.of([{key:"Escape",run:e=>(e.dispatch({changes:{from:0,to:e.state.doc.length,insert:this.committedExpression}}),this.focusOut(),!0)},{key:"Enter",run:()=>(this.focusOut(),!0)},{key:"Mod-Enter",run:()=>(this.focusOut(),!0)},{key:"Tab",run:e=>null===a.completionStatus(this.editor.state)&&(e.dispatch({changes:{from:0,to:e.state.doc.length,insert:this.committedExpression}}),this.focusOut(),!0)},{key:"Shift-Tab",run:e=>null===a.completionStatus(this.editor.state)&&(e.dispatch({changes:{from:0,to:e.state.doc.length,insert:this.committedExpression}}),this.focusOut(),!0)}]),a.EditorView.domEventHandlers({blur:(e,t)=>this.onBlur(t)}),l.Config.baseConfiguration(e),l.Config.closeBrackets.instance(),l.Config.autocompletion.instance()];"true"!==r.Runtime.Runtime.queryParam("noJavaScriptCompletion")&&s.push(l.JavaScript.completion());const n=new l.TextEditor.TextEditor(a.EditorState.create({doc:e,extensions:s}));return t.appendChild(n),n}onBlur(e){const t=e.state.doc.toString(),s=t.trim();this.committedExpression=s,this.pinPane.savePins(),this.committedExpression.length?this.deletePinIcon.setAccessibleName(_(D.removeExpressionS,{PH1:this.committedExpression})):this.deletePinIcon.setAccessibleName(_(D.removeBlankExpression)),e.dispatch({selection:{anchor:s.length},changes:s!==t?{from:0,to:t.length,insert:s}:void 0})}setHovered(e){this.hovered!==e&&(this.hovered=e,!e&&this.lastNode&&n.OverlayModel.OverlayModel.hideDOMNodeHighlight())}expression(){return this.committedExpression}element(){return this.pinElement}async focus(){const e=this.editor;e.editor.focus(),e.dispatch({selection:{anchor:e.state.doc.length}})}appendToContextMenu(e){this.lastResult&&!("error"in this.lastResult)&&this.lastResult.object&&(e.appendApplicableItems(this.lastResult.object),this.lastResult=null)}async updatePreview(){if(!this.editor)return;const e=l.Config.contentIncludingHint(this.editor.editor),t=this.pinElement.hasFocus(),s=t&&e!==this.committedExpression,i=s?250:void 0,r=o.Context.Context.instance().flavor(n.RuntimeModel.ExecutionContext),{preview:a,result:d}=await c.JavaScriptREPL.JavaScriptREPL.evaluateAndBuildPreview(e,s,!0,i,!t,"live-expression",!0,!0);this.lastResult&&this.lastExecutionContext&&this.lastExecutionContext.runtimeModel.releaseEvaluationResult(this.lastResult),this.lastResult=d||null,this.lastExecutionContext=r||null;const h=a.deepTextContent();if(!h||h!==this.pinPreview.deepTextContent()){if(this.pinPreview.removeChildren(),d&&n.RuntimeModel.RuntimeModel.isSideEffectFailure(d)){const e=this.pinPreview.createChild("span","object-value-calculate-value-button");e.textContent="(…)",o.Tooltip.Tooltip.install(e,_(D.evaluateAllowingSideEffects))}else h?this.pinPreview.appendChild(a):t||o.UIUtils.createTextChild(this.pinPreview,_(D.notAvailable));o.Tooltip.Tooltip.install(this.pinPreview,h)}let u=null;d&&!("error"in d)&&"object"===d.object.type&&"node"===d.object.subtype&&(u=d.object),this.hovered&&(u?n.OverlayModel.OverlayModel.highlightObjectAsDOMNode(u):this.lastNode&&n.OverlayModel.OverlayModel.hideDOMNodeHighlight()),this.lastNode=u||null;const m=d&&!("error"in d)&&d.exceptionDetails&&!n.RuntimeModel.RuntimeModel.isSideEffectFailure(d);this.pinElement.classList.toggle("error-level",Boolean(m))}}var K=Object.freeze({__proto__:null,ConsolePin:q,ConsolePinPane:$}),J={cssText:`:host{overflow:auto}.count{flex:none;margin:0 var(--sys-size-3)}devtools-icon{&[name="cross-circle"]{color:var(--sys-color-error-bright)}&[name="warning"]{color:var(--icon-warning)}&[name="info"]{color:var(--icon-info)}}.tree-element-title{flex-grow:1}\n/*# sourceURL=${import.meta.resolve("./consoleSidebar.css")} */\n`};const X={other:"",dUserMessages:"{n, plural, =0 {No user messages} =1 {# user message} other {# user messages}}",dMessages:"{n, plural, =0 {No messages} =1 {# message} other {# messages}}",dErrors:"{n, plural, =0 {No errors} =1 {# error} other {# errors}}",dWarnings:"{n, plural, =0 {No warnings} =1 {# warning} other {# warnings}}",dInfo:"{n, plural, =0 {No info} =1 {# info} other {# info}}",dVerbose:"{n, plural, =0 {No verbose} =1 {# verbose} other {# verbose}}"},Z=t.i18n.registerUIStrings("panels/console/ConsoleSidebar.ts",X),Q=t.i18n.getLocalizedString.bind(void 0,Z);class Y extends(e.ObjectWrapper.eventMixin(o.Widget.VBox)){tree;selectedTreeElement;treeElements;constructor(){super(!0),this.setMinimumSize(125,0),this.tree=new o.TreeOutline.TreeOutlineInShadow("NavigationTree"),this.tree.addEventListener(o.TreeOutline.Events.ElementSelected,this.selectionChanged.bind(this)),this.tree.registerRequiredCSS(J),this.tree.hideOverflow(),this.contentElement.setAttribute("jslog",`${d.pane("sidebar").track({resize:!0})}`),this.contentElement.appendChild(this.tree.element),this.selectedTreeElement=null,this.treeElements=[];const t=e.Settings.Settings.instance().createSetting("console.sidebar-selected-filter",null),s=[{key:R.Source,text:e.Console.FrontendMessageSource.ConsoleAPI,negative:!1,regex:void 0}];this.appendGroup("message",[],P.allLevelsFilterValue(),h.Icon.create("list"),t),this.appendGroup("user message",s,P.allLevelsFilterValue(),h.Icon.create("profile"),t),this.appendGroup("error",[],P.singleLevelMask("error"),h.Icon.create("cross-circle"),t),this.appendGroup("warning",[],P.singleLevelMask("warning"),h.Icon.create("warning"),t),this.appendGroup("info",[],P.singleLevelMask("info"),h.Icon.create("info"),t),this.appendGroup("verbose",[],P.singleLevelMask("verbose"),h.Icon.create("bug"),t);const n=t.get();(this.treeElements.find((e=>e.name()===n))||this.treeElements[0]).select()}appendGroup(e,t,s,n,o){const i=new P(e,t,null,s),r=new ne(i,n,o);this.tree.appendChild(r),this.treeElements.push(r)}clear(){for(const e of this.treeElements)e.clear()}onMessageAdded(e){for(const t of this.treeElements)t.onMessageAdded(e)}shouldBeVisible(e){return!(this.selectedTreeElement instanceof ee)||this.selectedTreeElement.filter().shouldBeVisible(e)}selectionChanged(e){this.selectedTreeElement=e.data,this.dispatchEventToListeners("FilterSelected")}}class ee extends o.TreeOutline.TreeElement{filterInternal;constructor(e,t){super(e),this.filterInternal=t}filter(){return this.filterInternal}}class te extends ee{countElement;messageCount;constructor(e){super(e.name,e),this.countElement=this.listItemElement.createChild("span","count");const t=h.Icon.create("document");this.setLeadingIcons([t]),this.messageCount=0}incrementAndUpdateCounter(){this.messageCount++,this.countElement.textContent=`${this.messageCount}`}}const se=new Map([["user message",X.dUserMessages],["message",X.dMessages],["error",X.dErrors],["warning",X.dWarnings],["info",X.dInfo],["verbose",X.dVerbose]]);class ne extends ee{selectedFilterSetting;urlTreeElements;messageCount;uiStringForFilterCount;constructor(e,t,s){super(e.name,e),this.uiStringForFilterCount=se.get(e.name)||"",this.selectedFilterSetting=s,this.urlTreeElements=new Map,this.setLeadingIcons([t]),this.messageCount=0,this.updateCounter()}clear(){this.urlTreeElements.clear(),this.removeChildren(),this.messageCount=0,this.updateCounter()}name(){return this.filterInternal.name}onselect(e){return this.selectedFilterSetting.set(this.filterInternal.name),super.onselect(e)}updateCounter(){this.title=this.updateGroupTitle(this.messageCount),this.setExpandable(Boolean(this.childCount()))}updateGroupTitle(e){return this.uiStringForFilterCount?Q(this.uiStringForFilterCount,{n:e}):""}onMessageAdded(e){const t=e.consoleMessage(),s=t.type!==n.ConsoleModel.FrontendMessageType.Command&&t.type!==n.ConsoleModel.FrontendMessageType.Result&&!t.isGroupMessage();if(!this.filterInternal.shouldBeVisible(e)||!s)return;this.childElement(t.url).incrementAndUpdateCounter(),this.messageCount++,this.updateCounter()}childElement(t){const s=t||null;let n=this.urlTreeElements.get(s);if(n)return n;const o=this.filterInternal.clone(),i=s?e.ParsedURL.ParsedURL.fromString(s):null;return o.name=s?i?i.displayName:s:Q(X.other),o.parsedFilters.push({key:R.Url,text:s,negative:!1,regex:void 0}),n=new te(o),s&&(n.tooltip=s),this.urlTreeElements.set(s,n),this.appendChild(n),n}}var oe=Object.freeze({__proto__:null,ConsoleSidebar:Y,FilterTreeElement:ne,URLGroupTreeElement:te}),ie={cssText:`.console-view{background-color:var(--sys-color-cdt-base-container);overflow:hidden;--override-error-text-color:var(--sys-color-on-error-container);--message-corner-rounder-background:var(--sys-color-cdt-base-container)}.console-toolbar-container{display:flex;flex:none}.console-main-toolbar{flex:1 1 auto}#console-issues-counter{margin-top:0}.console-toolbar-container > devtools-toolbar{background-color:var(--sys-color-cdt-base-container);border-bottom:1px solid var(--sys-color-divider)}.console-view-fix-select-all{height:0;overflow:hidden}.console-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)}#console-messages{flex:1 1;overflow-y:auto;word-wrap:break-word;user-select:text;transform:translateZ(0);overflow-anchor:none;background-color:var(--sys-color-cdt-base-container)}#console-prompt{clear:right;position:relative;margin:0 22px 0 20px}.console-prompt-editor-container{min-height:21px}.console-message,\n.console-user-command{clear:right;position:relative;padding:3px 22px 1px 0;margin-left:24px;min-height:17px;flex:auto;display:flex}.console-message > *{flex:auto}.console-timestamp{color:var(--sys-color-token-subtle);user-select:none;flex:none;margin-right:5px}.message-level-icon,\n.command-result-icon{position:absolute;left:-17px;top:2px;user-select:none}.console-message-repeat-count{margin:1.4px 0 0 10px;flex:none}.repeated-message{margin-left:4px}.repeated-message .message-level-icon{display:none}.console-message-stack-trace-toggle{display:flex;flex-direction:row;align-items:flex-start;margin-top:-1px}.console-error-level .repeated-message,\n.console-warning-level .repeated-message,\n.console-verbose-level .repeated-message,\n.console-info-level .repeated-message{display:flex}.console-info{color:var(--sys-color-token-subtle);font-style:italic;padding-bottom:2px}.console-group .console-group > .console-group-messages{margin-left:16px}.console-group-title.console-from-api{font-weight:bold}.console-group-title .console-message{margin-left:12px}.expand-group-icon{user-select:none;flex:none;position:relative;left:8px;top:3px;margin-right:2px}.console-group-title .message-level-icon{display:none}.console-message-repeat-count .expand-group-icon{position:static;color:var(--sys-color-cdt-base-container);margin-left:-1px}.console-group{position:relative}.console-message-wrapper{display:flex;flex-direction:column;margin:4px;border-radius:5px;--console-color-black:#000;--console-color-red:#a00;--console-color-green:#0a0;--console-color-yellow:#a50;--console-color-blue:#00a;--console-color-magenta:#a0a;--console-color-cyan:#0aa;--console-color-gray:#aaa;--console-color-darkgray:#555;--console-color-lightred:#f55;--console-color-lightgreen:#5f5;--console-color-lightyellow:#ff5;--console-color-lightblue:#55f;--console-color-ightmagenta:#f5f;--console-color-lightcyan:#5ff;--console-color-white:#fff;&:focus{background-color:var(--sys-color-tonal-container);& ::selection{background-color:var(--sys-color-state-focus-select);color:currentcolor}}}.console-row-wrapper{display:flex;flex-direction:row}.theme-with-dark-background .console-message-wrapper{--console-color-red:rgb(237 78 76);--console-color-green:rgb(1 200 1);--console-color-yellow:rgb(210 192 87);--console-color-blue:rgb(39 116 240);--console-color-magenta:rgb(161 66 244);--console-color-cyan:rgb(18 181 203);--console-color-gray:rgb(207 208 208);--console-color-darkgray:rgb(137 137 137);--console-color-lightred:rgb(242 139 130);--console-color-lightgreen:rgb(161 247 181);--console-color-lightyellow:rgb(221 251 85);--console-color-lightblue:rgb(102 157 246);--console-color-lightmagenta:rgb(214 112 214);--console-color-lightcyan:rgb(132 240 255)}.console-message-wrapper.console-warning-level + .console-message-wrapper,\n.console-message-wrapper.console-error-level + .console-message-wrapper{& .console-message::before,\n & .console-user-command::before{display:none!important}}.console-message-wrapper:not(.console-error-level, .console-warning-level){& .console-message::before,\n & .console-user-command::before{width:calc(100% - 25px);content:"";display:block;position:absolute;top:-2px;border-top:1px solid var(--sys-color-divider)}&:first-of-type .console-message::before,\n &:first-of-type .console-user-command::before{display:none}}.console-message-wrapper.console-adjacent-user-command-result:not(.console-error-level, .console-warning-level){border-top-width:0}.console-message-wrapper:focus + .console-message-wrapper{border-top-color:transparent}.console-message-wrapper.console-adjacent-user-command-result:not(.console-error-level, .console-warning-level):focus{border-top-width:1px}.console-message-wrapper.console-adjacent-user-command-result:not(.console-error-level, .console-warning-level):focus .console-message{padding-top:2px;min-height:16px}.console-message-wrapper.console-adjacent-user-command-result:not(.console-error-level, .console-warning-level):focus .command-result-icon{top:3px}.console-message-wrapper .nesting-level-marker{width:14px;flex:0 0 auto;position:relative;margin-bottom:-1px;margin-top:-1px;background-color:var(--sys-color-cdt-base-container)}.console-message-wrapper .nesting-level-marker + .console-message::after{position:absolute;left:-30px;top:0;width:6px;height:100%;box-sizing:border-box;background-color:var(--sys-color-surface-yellow);border-top-left-radius:5px;border-bottom-left-radius:5px;content:""}.console-error-level{background-color:var(--sys-color-surface-error);--message-corner-rounder-background:var(--sys-color-surface-error)}.console-warning-level{background-color:var(--sys-color-surface-yellow);--message-corner-rounder-background:var(--sys-color-surface-yellow)}.console-view-object-properties-section{padding:0;position:relative;vertical-align:baseline;color:inherit;display:inline-block;overflow-wrap:break-word;max-width:100%}.info-note{background-color:var(--sys-color-tonal-container)}.info-note::before{content:"i"}.console-view-object-properties-section:not(.expanded) .info-note{display:none}.console-system-type.console-info-level{color:var(--sys-color-primary)}#console-messages .link{cursor:pointer;text-decoration:underline}#console-messages .link,\n#console-messages .devtools-link:not(.invalid-link){color:var(--sys-color-primary);word-break:break-all}#console-messages .devtools-link.ignore-list-link{opacity:60%}#console-messages .devtools-link:focus-visible{background-color:transparent}#console-messages .resource-links{margin-top:-1px;margin-bottom:-2px}.console-object-preview{white-space:normal;word-wrap:break-word;font-style:italic}.console-object-preview .name{flex-shrink:0}.console-message-text{.object-value-node{display:inline-block}.object-value-string,\n .object-value-regexp,\n .object-value-symbol{white-space:pre-wrap;word-break:break-all}.formatted-stack-frame:has(.ignore-list-link){display:var(--display-ignored-formatted-stack-frame);opacity:60%;& + .formatted-builtin-stack-frame{display:var(--display-ignored-formatted-stack-frame);opacity:60%}}}.console-message-stack-trace-wrapper{--override-display-stack-preview-toggle-link:none;flex:1 1 auto;display:flex;flex-direction:column;align-items:stretch;&:has(div > .stack-preview-container.show-hidden-rows){--display-ignored-formatted-stack-frame:inherit}&:has(.formatted-stack-frame .ignore-list-link):has(.formatted-stack-frame .devtools-link:not(.ignore-list-link)){--override-display-stack-preview-toggle-link:table-row;--override-display-stack-preview-hidden-div:block;&:not(:has(div > .stack-preview-container.show-hidden-rows)){--display-ignored-formatted-stack-frame:none}}& > .hidden-stack-trace{display:var(--override-display-stack-preview-hidden-div,none);--override-display-stack-preview-tbody:none}}.repeated-message .console-message-stack-trace-toggle,\n.repeated-message > .console-message-text{flex:1}.console-warning-level .console-message-text{color:var(--sys-color-on-surface-yellow)}.console-error-level .console-message-text,\n.console-error-level .console-view-object-properties-section{color:var(--override-error-text-color)!important}.console-message-formatted-table{clear:both}.console-message .source-code{line-height:1.2}.console-message-anchor{float:right;text-align:right;max-width:100%;margin-left:4px}.cookie-report-anchor{margin-top:-3px;margin-bottom:-5px}.console-message-nowrap-below,\n.console-message-nowrap-below div,\n.console-message-nowrap-below span{white-space:nowrap!important}.object-state-note{display:inline-block;width:11px;height:11px;color:var(--sys-color-on-tonal-container);text-align:center;border-radius:3px;line-height:13px;margin:0 6px;font-size:9px}.console-object{white-space:pre-wrap;word-break:break-all}.console-message-stack-trace-wrapper > *{flex:none}.console-message-expand-icon{margin-bottom:-4px}.console-searchable-view{max-height:100%}.console-view-pinpane{flex:none;max-height:50%}.message-count{width:0;height:0}devtools-console-insight{margin:9px 22px 11px 24px}.hover-button{--width:24px;align-items:center;border-radius:50%;border:none;box-shadow:0 1px 3px 1px rgb(0 0 0/15%),0 1px 2px 0 rgb(0 0 0/30%);box-sizing:border-box;background-color:var(--sys-color-tonal-container);color:var(--sys-color-on-tonal-container);font:var(--sys-typescale-body4-medium);height:var(--width);justify-content:center;margin:0;max-height:var(--width);max-width:var(--width);min-height:var(--width);min-width:var(--width);overflow:hidden;padding:var(--sys-size-3) var(--sys-size-4);position:absolute;right:6px;display:none;width:var(--width);z-index:1;.theme-with-dark-background &{border:1px solid var(--sys-color-neutral-outline);background-color:var(--sys-color-primary);color:var(--sys-color-on-primary)}& devtools-icon{box-sizing:border-box;flex-shrink:0;height:var(--sys-size-8);min-height:var(--sys-size-8);min-width:var(--sys-size-8);width:var(--sys-size-8);--devtools-icon-color:var(--sys-color-on-tonal-container)}.theme-with-dark-background & devtools-icon{--devtools-icon-color:var(--sys-color-on-primary)}}.hover-button:focus,\n.hover-button:hover{border-radius:4px;max-width:200px;transition:max-width var(--sys-motion-duration-short4) var(--sys-motion-easing-emphasized),border-radius 50ms linear;width:fit-content;gap:var(--sys-size-3)}.hover-button:focus-visible{outline:2px solid var(--sys-color-primary);outline-offset:2px}.button-label{display:block;overflow:hidden;white-space:nowrap;& div{display:inline-block;vertical-align:-1px}}.console-message-wrapper:not(.has-insight){&:hover,\n &:focus,\n &.console-selected{.hover-button{display:flex;&:focus,\n &:hover{display:inline-flex}}}}@media (forced-colors: active){.console-message-expand-icon,\n .console-warning-level .expand-group-icon{forced-color-adjust:none;color:ButtonText}.console-message-wrapper:focus,\n .console-message-wrapper:focus:last-of-type{forced-color-adjust:none;background-color:Highlight;border-top-color:Highlight;border-bottom-color:Highlight}.console-message-wrapper:focus *,\n .console-message-wrapper:focus:last-of-type *,\n .console-message-wrapper:focus .devtools-link,\n .console-message-wrapper:focus:last-of-type .devtools-link{color:HighlightText!important}#console-messages .devtools-link,\n #console-messages .devtools-link:hover{color:linktext}#console-messages .link:focus-visible,\n #console-messages .devtools-link:focus-visible{background:Highlight;color:HighlightText}.console-message-wrapper:focus devtools-icon{color:HighlightText}.console-message-wrapper.console-error-level:focus,\n .console-message-wrapper.console-error-level:focus:last-of-type{--override-error-text-color:HighlightText}}\n/*# sourceURL=${import.meta.resolve("./consoleView.css")} */\n`};function re(t,s){if(!/^[\w.]*Error\b/.test(s))return null;const n=t.debuggerModel(),o=t.target().inspectedURL(),i=s.split("\n"),r=[];for(const t of i){const i=/^\s*at\s(async\s)?/.exec(t);if(!i){if(r.length&&r[r.length-1].isCallFrame)return m.rnPerfMetrics.stackTraceSymbolicationFailed(s,t,'"at (url)" not found'),null;r.push({line:t});continue}const a=!0;let l=i[0].length,c=t.length,d=!1;for(;")"===t[c-1];)for(c--,d=!0;;){if(l=t.indexOf(" (",l),l<0)return m.rnPerfMetrics.stackTraceSymbolicationFailed(s,t,'left "(" not found'),null;if(l+=2,!t.substring(l).startsWith("eval at "))break;if(l+=8,c=t.lastIndexOf(", ",c)-1,c<0)return m.rnPerfMetrics.stackTraceSymbolicationFailed(s,t,'right "(" not found'),null}const h=t.substring(l,c),u=e.ParsedURL.ParsedURL.splitLineAndColumn(h);if(""===u.url||"native"===u.url){r.length&&r[r.length-1].isCallFrame&&!r[r.length-1].link?r[r.length-1].line+=`\n${t}`:r.push({line:t,isCallFrame:a});continue}let p=ae(n,u.url);if(!p&&e.ParsedURL.ParsedURL.isRelativeURL(u.url)&&(p=ae(n,e.ParsedURL.ParsedURL.completeURL(o,u.url))),!p)return m.rnPerfMetrics.stackTraceSymbolicationFailed(s,t,"url parsing failed"),null;r.push({line:t,isCallFrame:a,link:{url:p,prefix:t.substring(0,l),suffix:t.substring(c),enclosedInBraces:d,lineNumber:u.lineNumber,columnNumber:u.columnNumber}})}return r}function ae(t,s){if(!s)return null;if(e.ParsedURL.ParsedURL.isValidUrlString(s))return s;if(t.scriptsForSourceURL(s).length)return s;const n=new URL(s,"file://");return t.scriptsForSourceURL(n.href).length?n.href:null}function le(e,t){for(const s of e){const e=t.callFrames.find((e=>ce(s,e)));e&&s.link&&(s.link.scriptId=e.scriptId)}}function ce(e,t){if(!e.link)return!1;const{url:s,lineNumber:n,columnNumber:o}=e.link;return s===t.url&&n===t.lineNumber&&o===t.columnNumber}var de=Object.freeze({__proto__:null,augmentErrorStackWithScriptIds:le,parseSourcePositionsFromErrorStack:re});const he={consoleclearWasPreventedDueTo:"`console.clear()` was prevented due to 'Preserve log'",consoleWasCleared:"Console was cleared",clearAllMessagesWithS:"Clear all messages with {PH1}",assertionFailed:"Assertion failed: ",violationS:"`[Violation]` {PH1}",interventionS:"`[Intervention]` {PH1}",deprecationS:"`[Deprecation]` {PH1}",thisValueWillNotBeCollectedUntil:"This value will not be collected until console is cleared.",thisValueWasEvaluatedUponFirst:"This value was evaluated upon first expanding. It may have changed since then.",functionWasResolvedFromBound:"Function was resolved from bound function.",exception:"",warning:"Warning",error:"Error",logpoint:"Logpoint",cndBreakpoint:"Conditional Breakpoint",repeatS:"{n, plural, =1 {Repeated # time} other {Repeated # times}}",warningS:"{n, plural, =1 {Warning, Repeated # time} other {Warning, Repeated # times}}",errorS:"{n, plural, =1 {Error, Repeated # time} other {Error, Repeated # times}}",url:"",tookNms:"took ms",someEvent:" event",Mxx:" M",attribute:"",index:"(index)",value:"Value",console:"Console",stackMessageExpanded:"Stack table expanded",stackMessageCollapsed:"Stack table collapsed",explainThisError:"Understand this error",explainThisWarning:"Understand this warning",explainThisMessage:"Understand this message",explainThisErrorWithAI:"Understand this error. Powered by AI.",explainThisWarningWithAI:"Understand this warning. Powered by AI.",explainThisMessageWithAI:"Understand this message. Powered by AI",SeeIssueInCookieReport:"Click to open privacy and security panel and show third-party cookie report"},ue=t.i18n.registerUIStrings("panels/console/ConsoleViewMessage.ts",he),me=t.i18n.getLocalizedString.bind(void 0,ue),pe=new WeakMap,ge=e=>pe.get(e),ve=(e,t)=>{const s=e.indexOf("\n"),n=-1===s?e:e.substring(0,s),o=-1===s?"":e.substring(s);return e=`${n}. ${t}${o}`},fe=e=>t=>t instanceof n.RemoteObject.RemoteObject?t:e?"object"==typeof t?e.createRemoteObject(t):e.createRemoteObjectFromPrimitiveValue(t):n.RemoteObject.RemoteObject.fromLocalObject(t),be="explain.console-message.hover",Ce=new IntersectionObserver((e=>{for(const t of e)t.intersectionRatio>0&&m.userMetrics.actionTaken(m.UserMetrics.Action.InsightHoverButtonShown)}));class xe{message;linkifier;repeatCountInternal;closeGroupDecorationCount;consoleGroupInternal;selectableChildren;messageResized;elementInternal;consoleRowWrapper=null;previewFormatter;searchRegexInternal;messageIcon;traceExpanded;expandTrace;anchorElement;contentElementInternal;nestingLevelMarkers;searchHighlightNodes;searchHighlightNodeChanges;isVisibleInternal;cachedHeight;messagePrefix;timestampElement;inSimilarGroup;similarGroupMarker;lastInSimilarGroup;groupKeyInternal;repeatCountElement;requestResolver;issueResolver;#e=!1;#t=Promise.resolve();constructor(e,t,s,n,o){this.message=e,this.linkifier=t,this.requestResolver=s,this.issueResolver=n,this.repeatCountInternal=1,this.closeGroupDecorationCount=0,this.selectableChildren=[],this.messageResized=o,this.elementInternal=null,this.previewFormatter=new c.RemoteObjectPreviewFormatter.RemoteObjectPreviewFormatter,this.searchRegexInternal=null,this.messageIcon=null,this.traceExpanded=!1,this.expandTrace=null,this.anchorElement=null,this.contentElementInternal=null,this.nestingLevelMarkers=null,this.searchHighlightNodes=[],this.searchHighlightNodeChanges=[],this.isVisibleInternal=!1,this.cachedHeight=0,this.messagePrefix="",this.timestampElement=null,this.inSimilarGroup=!1,this.similarGroupMarker=null,this.lastInSimilarGroup=!1,this.groupKeyInternal="",this.repeatCountElement=null,this.consoleGroupInternal=null}setInsight(e){this.elementInternal?.querySelector("devtools-console-insight")?.remove(),this.elementInternal?.append(e),this.elementInternal?.classList.toggle("has-insight",!0),e.addEventListener("close",(()=>{m.userMetrics.actionTaken(m.UserMetrics.Action.InsightClosed),this.elementInternal?.classList.toggle("has-insight",!1),this.elementInternal?.removeChild(e)}),{once:!0})}element(){return this.toMessageElement()}wasShown(){this.isVisibleInternal=!0}onResize(){}willHide(){this.isVisibleInternal=!1,this.cachedHeight=this.element().offsetHeight}isVisible(){return this.isVisibleInternal}fastHeight(){return this.cachedHeight?this.cachedHeight:this.approximateFastHeight()}approximateFastHeight(){return 19}consoleMessage(){return this.message}formatErrorStackPromiseForTest(){return this.#t}buildMessage(){let t,s=this.message.messageText;if(this.message.source===e.Console.FrontendMessageSource.ConsoleAPI)switch(this.message.type){case"trace":t=this.format(this.message.parameters||["console.trace"]);break;case"clear":t=document.createElement("span"),t.classList.add("console-info"),e.Settings.Settings.instance().moduleSetting("preserve-console-log").get()?t.textContent=me(he.consoleclearWasPreventedDueTo):t.textContent=me(he.consoleWasCleared),o.Tooltip.Tooltip.install(t,me(he.clearAllMessagesWithS,{PH1:String(o.ShortcutRegistry.ShortcutRegistry.instance().shortcutTitleForAction("console.clear"))}));break;case"dir":{const e=["%O",this.message.parameters?this.message.parameters[0]:void 0];t=this.format(e);break}case"profile":case"profileEnd":t=this.format([s]);break;default:{if("assert"===this.message.type&&(this.messagePrefix=me(he.assertionFailed)),this.message.parameters&&1===this.message.parameters.length){const e=this.message.parameters[0];"string"!=typeof e&&"string"===e.type&&(t=this.tryFormatAsError(e.value))}const e=this.message.parameters||[s];t=t||this.format(e)}}else if("network"===this.message.source)t=this.formatAsNetworkRequest()||this.format([s]);else{const e=this.message.parameters&&s===this.message.parameters[0];"violation"===this.message.source?s=me(he.violationS,{PH1:s}):"intervention"===this.message.source?s=me(he.interventionS,{PH1:s}):"deprecation"===this.message.source&&(s=me(he.deprecationS,{PH1:s}));const n=this.message.parameters||[s];e&&(n[0]=s),t=this.format(n)}t.classList.add("console-message-text");const n=document.createElement("span");if(n.classList.add("source-code"),this.anchorElement=this.buildMessageAnchor(),this.anchorElement&&n.appendChild(this.anchorElement),n.appendChild(t),"fusebox_preserve_log_rec"===this.message.context){const t=document.createElement("button");t.classList.add("devtools-link","text-button","link-style"),t.appendChild(t.ownerDocument.createTextNode("show settings")),t.addEventListener("click",(async()=>{await e.Revealer.reveal(e.Settings.Settings.instance().moduleSetting("preserve-console-log"))})),n.appendChild(t)}return n}formatAsNetworkRequest(){const e=g.NetworkLog.NetworkLog.requestForConsoleMessage(this.message);if(!e)return null;const t=document.createElement("span");if("error"===this.message.level){o.UIUtils.createTextChild(t,e.requestMethod+" ");const s=u.Linkifier.Linkifier.linkifyRevealable(e,e.url(),e.url(),void 0,void 0,"network-request");s.tabIndex=-1,this.selectableChildren.push({element:s,forceSelect:()=>s.focus()}),t.appendChild(s),e.failed&&o.UIUtils.createTextChildren(t," ",e.localizedFailDescription||""),0!==e.statusCode&&o.UIUtils.createTextChildren(t," ",String(e.statusCode));const n=e.getInferredStatusText();n&&o.UIUtils.createTextChildren(t," (",n,")")}else{const s=this.message.messageText,n=this.linkifyWithCustomLinkifier(s,((t,s,n,o)=>{const i=s===e.url()?u.Linkifier.Linkifier.linkifyRevealable(e,s,e.url(),void 0,void 0,"network-request"):u.Linkifier.Linkifier.linkifyURL(s,{text:t,lineNumber:n,columnNumber:o});return i.tabIndex=-1,this.selectableChildren.push({element:i,forceSelect:()=>i.focus()}),i}));t.appendChild(n)}return t}createAffectedResourceLinks(){const e=[],t=this.message.getAffectedResources()?.requestId;if(t){const s=new x.RequestLinkIcon.RequestLinkIcon;s.classList.add("resource-links"),s.data={affectedRequest:{requestId:t},requestResolver:this.requestResolver,displayURL:!1},e.push(s)}const s=this.message.getAffectedResources()?.issueId;if(s){const t=new C.IssueLinkIcon.IssueLinkIcon;t.classList.add("resource-links"),t.data={issueId:s,issueResolver:this.issueResolver},e.push(t)}return e}#s(t){const s=new f.Button.Button;s.data={size:"SMALL",variant:"icon",iconName:"cookie",jslogContext:"privacy",title:me(he.SeeIssueInCookieReport)},s.addEventListener("click",(()=>{e.Revealer.reveal(new S.CookieReportView.CookieReportView)})),t.appendChild(s)}#n(){const e=g.NetworkLog.NetworkLog.requestForConsoleMessage(this.message);if(e?.resourceType().isStyleSheet())return m.UserMetrics.Action.StyleSheetInitiatorLinkClicked}buildMessageAnchor(){const e=this.message.runtimeModel();if(!e)return null;if(this.message.isCookieReportIssue&&r.Runtime.hostConfig.devToolsPrivacyUI?.enabled){const e=document.createElement("span");return e.classList.add("console-message-anchor","cookie-report-anchor"),this.#s(e),o.UIUtils.createTextChild(e," "),e}const t=(({stackFrameWithBreakpoint:t,scriptId:n,stackTrace:o,url:i,line:r,column:a})=>{const l=this.#n();return t?this.linkifier.maybeLinkifyConsoleCallFrame(e.target(),t,{inlineFrameIndex:0,revealBreakpoint:!0,userMetric:l}):n?this.linkifier.linkifyScriptLocation(e.target(),n,i||s.DevToolsPath.EmptyUrlString,r,{columnNumber:a,inlineFrameIndex:0,userMetric:l}):o?.callFrames.length?this.linkifier.linkifyStackTraceTopFrame(e.target(),o):i&&"undefined"!==i?this.linkifier.linkifyScriptLocation(e.target(),null,i,r,{columnNumber:a,inlineFrameIndex:0,userMetric:l}):null})(this.message);if(t){t.tabIndex=-1,this.selectableChildren.push({element:t,forceSelect:()=>t.focus()});const e=document.createElement("span");e.classList.add("console-message-anchor"),e.appendChild(t);for(const t of this.createAffectedResourceLinks())o.UIUtils.createTextChild(e," "),e.append(t);return o.UIUtils.createTextChild(e," "),e}return null}buildMessageWithStackTrace(t){const s=h.Icon.create("triangle-right","console-message-expand-icon"),{stackTraceElement:n,contentElement:i,messageElement:r,clickableElement:a,toggleElement:l}=this.buildMessageHelper(t.target(),this.message.stackTrace,s);let c;this.expandTrace=e=>{e?c=window.setTimeout((()=>{m.userMetrics.actionTaken(m.UserMetrics.Action.TraceExpanded)}),300):clearTimeout(c),s.name=e?"triangle-down":"triangle-right",n.classList.toggle("hidden-stack-trace",!e);const t=me(e?he.stackMessageExpanded:he.stackMessageCollapsed);o.ARIAUtils.setLabel(i,`${r.textContent} ${t}`),o.ARIAUtils.alert(t),o.ARIAUtils.setExpanded(a,e),this.traceExpanded=e};return a.addEventListener("click",(e=>{o.UIUtils.isEditing()||i.hasSelection()||(this.expandTrace&&this.expandTrace(n.classList.contains("hidden-stack-trace")),e.consume())}),!1),"trace"===this.message.type&&e.Settings.Settings.instance().moduleSetting("console-trace-expand").get()&&this.expandTrace(!0),l._expandStackTraceForTest=this.expandTrace.bind(this,!0),l}buildMessageWithIgnoreLinks(){const{toggleElement:e}=this.buildMessageHelper(null,void 0,null);return e}buildMessageHelper(e,t,s){const n=document.createElement("div");n.classList.add("console-message-stack-trace-toggle");const i=n.createChild("div","console-message-stack-trace-wrapper"),r=this.buildMessage(),a=i.createChild("div");o.ARIAUtils.setExpanded(a,!1),s&&a.appendChild(s),a.tabIndex=-1,a.appendChild(r);const l=i.createChild("div"),c=u.JSPresentationUtils.buildStackTracePreviewContents(e,this.linkifier,{stackTrace:t,tabStops:void 0,widthConstrained:!0});l.appendChild(c.element);for(const e of c.links)this.selectableChildren.push({element:e,forceSelect:()=>e.focus()});return l.classList.add("hidden-stack-trace"),o.ARIAUtils.setLabel(i,`${r.textContent} ${me(he.stackMessageCollapsed)}`),o.ARIAUtils.markAsGroup(l),{stackTraceElement:l,contentElement:i,messageElement:r,clickableElement:a,toggleElement:n}}format(e){const t=document.createElement("span");if(this.messagePrefix&&(t.createChild("span").textContent=this.messagePrefix),!e.length)return t;let s=e.map(fe(this.message.runtimeModel()));const i="string"===n.RemoteObject.RemoteObject.type(s[0])&&(this.message.type!==n.ConsoleModel.FrontendMessageType.Result||"error"===this.message.level);i&&(s=this.formatWithSubstitutionString(s[0].description,s.slice(1),t),s.length&&o.UIUtils.createTextChild(t," "));for(let e=0;eRe()){const e=new c.ObjectPropertiesSection.ExpandableTextPropertyValue(document.createElement("span"),s,Ae());t.appendChild(e.element)}else o.UIUtils.createTextChild(t,s);return t.addEventListener("contextmenu",this.contextMenuEventFired.bind(this,e),!1),t}formatParameterAsTrustedType(e){const t=document.createElement("span"),s=document.createElement("span");return s.appendChild(this.formatParameterAsString(e)),s.classList.add("object-value-string"),o.UIUtils.createTextChild(t,`${e.className} `),t.appendChild(s),t}formatParameterAsObject(e,t){const s=document.createElement("span");if(s.classList.add("console-object"),t&&e.preview)s.classList.add("console-object-preview"),this.previewFormatter.appendObjectPreview(s,e.preview,!1),c.ObjectPropertiesSection.ObjectPropertiesSection.appendMemoryIcon(s,e);else if("function"===e.type){const t=s.createChild("span");c.ObjectPropertiesSection.ObjectPropertiesSection.formatObjectAsFunction(e,t,!1),s.classList.add("object-value-function")}else"trustedtype"===e.subtype?s.appendChild(this.formatParameterAsTrustedType(e)):o.UIUtils.createTextChild(s,e.description||"");if(!e.hasChildren||e.customPreview())return s;const i=s.createChild("span","object-state-note info-note");this.message.type===n.ConsoleModel.FrontendMessageType.QueryObjectResult?o.Tooltip.Tooltip.install(i,me(he.thisValueWillNotBeCollectedUntil)):o.Tooltip.Tooltip.install(i,me(he.thisValueWasEvaluatedUponFirst));const r=new c.ObjectPropertiesSection.ObjectPropertiesSection(e,s,this.linkifier);return r.element.classList.add("console-view-object-properties-section"),r.enableContextMenu(),r.setShowSelectionOnKeyboardFocus(!0,!0),this.selectableChildren.push(r),r.addEventListener(o.TreeOutline.Events.ElementAttached,this.messageResized),r.addEventListener(o.TreeOutline.Events.ElementExpanded,this.messageResized),r.addEventListener(o.TreeOutline.Events.ElementCollapsed,this.messageResized),r.element}formatParameterAsFunction(e,t){const s=document.createElement("span");return n.RemoteObject.RemoteFunction.objectAsFunction(e).targetFunction().then(function(n){const i=document.createElement("span"),r=c.ObjectPropertiesSection.ObjectPropertiesSection.formatObjectAsFunction(n,i,!0,t);if(s.appendChild(i),n!==e){const e=s.createChild("span","object-state-note info-note");o.Tooltip.Tooltip.install(e,me(he.functionWasResolvedFromBound))}s.addEventListener("contextmenu",this.contextMenuEventFired.bind(this,e),!1),r.then((()=>this.formattedParameterAsFunctionForTest()))}.bind(this)),s}formattedParameterAsFunctionForTest(){}contextMenuEventFired(e,t){const s=new o.ContextMenu.ContextMenu(t);s.appendApplicableItems(e),s.show()}renderPropertyPreviewOrAccessor(e,t,s){return"accessor"===t.type?this.formatAsAccessorProperty(e,s.map((e=>e.name.toString())),!1):this.previewFormatter.renderPropertyPreview(t.type,"subtype"in t?t.subtype:void 0,null,t.value)}formatParameterAsNode(e){const t=document.createElement("span"),s=e.runtimeModel().target().model(n.DOMModel.DOMModel);return s?(s.pushObjectAsNodeToFrontend(e).then((async s=>{if(!s)return void t.appendChild(this.formatParameterAsObject(e,!1));const n=await o.UIUtils.Renderer.render(s);n?(n.tree&&(this.selectableChildren.push(n.tree),n.tree.addEventListener(o.TreeOutline.Events.ElementAttached,this.messageResized),n.tree.addEventListener(o.TreeOutline.Events.ElementExpanded,this.messageResized),n.tree.addEventListener(o.TreeOutline.Events.ElementCollapsed,this.messageResized)),t.appendChild(n.node)):t.appendChild(this.formatParameterAsObject(e,!1)),this.formattedParameterAsNodeForTest()})),t):t}formattedParameterAsNodeForTest(){}formatParameterAsString(e){const t=e.description??"",n=s.StringUtilities.formatAsJSLiteral(t),o=document.createElement("span");return o.addEventListener("contextmenu",this.contextMenuEventFired.bind(this,e),!1),o.appendChild(this.linkifyStringAsFragment(n)),o}formatParameterAsError(e){const t=document.createElement("span"),s=async(e,o=!1)=>{const i=n.RemoteObject.RemoteError.objectAsError(e),[r,a]=await Promise.all([i.exceptionDetails(),i.cause()]);let l=this.tryFormatAsError(i.errorStack,r);if(l||(l=document.createElement("span"),l.append(this.linkifyStringAsFragment(i.errorStack))),o){const e=document.createElement("div");e.append("Caused by: ",l),t.appendChild(e)}else t.appendChild(l);if(a&&"error"===a.subtype)await s(a,!0);else if(a&&"string"===a.type){const e=document.createElement("div");e.append(`Caused by: ${a.value}`),t.append(e)}};return this.#t=s(e),t}formatAsArrayEntry(e){return this.previewFormatter.renderPropertyPreview(e.type,e.subtype,e.className,e.description)}formatAsAccessorProperty(e,t,n){const i=c.ObjectPropertiesSection.ObjectPropertyTreeElement.createRemoteObjectAccessorPropertySpan(e,t,function(e){const t=e.wasThrown,r=e.object;if(!r)return;if(i.removeChildren(),t){const e=i.createChild("span");e.textContent=me(he.exception),o.Tooltip.Tooltip.install(e,r.description)}else if(n)i.appendChild(this.formatAsArrayEntry(r));else{const e=100,t=r.type,n=r.subtype;let o="";"function"!==t&&r.description&&(o="string"===t||"regexp"===n||"trustedtype"===n?s.StringUtilities.trimMiddle(r.description,e):s.StringUtilities.trimEndWithMaxLength(r.description,e)),i.appendChild(this.previewFormatter.renderPropertyPreview(t,n,r.className,o))}}.bind(this));return i}formatWithSubstitutionString(e,t,s){const n=new Map,{tokens:o,args:i}=j(e,t);for(const e of o)switch(e.type){case"generic":s.append(this.formatParameter(e.value,!0,!1));break;case"optimal":s.append(this.formatParameter(e.value,!1,!0));break;case"string":if(0===n.size)s.append(this.linkifyStringAsFragment(e.value));else{const t=e.value.split("\n");for(let e=0;e0&&s.append(document.createElement("br"));const o=document.createElement("span");o.style.setProperty("contain","paint"),o.style.setProperty("display","inline-block"),o.style.setProperty("max-width","100%"),o.appendChild(this.linkifyStringAsFragment(t[e]));for(const[e,{value:t,priority:s}]of n)o.style.setProperty(e,t,s);s.append(o)}}break;case"style":O(n,e.value)}return i}matchesFilterRegex(e){e.lastIndex=0;const t=this.contentElement(),s=this.anchorElement?this.anchorElement.deepTextContent():"";return Boolean(s)&&e.test(s.trim())||e.test(t.deepTextContent().slice(s.length))}matchesFilterText(e){return this.contentElement().deepTextContent().toLowerCase().includes(e.toLowerCase())}updateTimestamp(){this.contentElementInternal&&(e.Settings.Settings.instance().moduleSetting("console-timestamps-enabled").get()?(this.timestampElement||(this.timestampElement=document.createElement("span"),this.timestampElement.classList.add("console-timestamp")),this.timestampElement.textContent=o.UIUtils.formatTimestamp(this.message.timestamp,!1)+" ",o.Tooltip.Tooltip.install(this.timestampElement,o.UIUtils.formatTimestamp(this.message.timestamp,!0)),this.contentElementInternal.insertBefore(this.timestampElement,this.contentElementInternal.firstChild)):this.timestampElement&&(this.timestampElement.remove(),this.timestampElement=null))}nestingLevel(){let e=0;for(let t=this.consoleGroup();null!==t;t=t.consoleGroup())e++;return e}setConsoleGroup(e){this.consoleGroupInternal=e}clearConsoleGroup(){this.consoleGroupInternal=null}consoleGroup(){return this.consoleGroupInternal}setInSimilarGroup(e,t){this.inSimilarGroup=e,this.lastInSimilarGroup=e&&Boolean(t),this.similarGroupMarker&&!e?(this.similarGroupMarker.remove(),this.similarGroupMarker=null):this.elementInternal&&!this.similarGroupMarker&&e&&(this.similarGroupMarker=document.createElement("div"),this.similarGroupMarker.classList.add("nesting-level-marker"),this.consoleRowWrapper?.insertBefore(this.similarGroupMarker,this.consoleRowWrapper.firstChild),this.similarGroupMarker.classList.toggle("group-closed",this.lastInSimilarGroup))}isLastInSimilarGroup(){return Boolean(this.inSimilarGroup)&&Boolean(this.lastInSimilarGroup)}resetCloseGroupDecorationCount(){this.closeGroupDecorationCount&&(this.closeGroupDecorationCount=0,this.updateCloseGroupDecorations())}incrementCloseGroupDecorationCount(){++this.closeGroupDecorationCount,this.updateCloseGroupDecorations()}updateCloseGroupDecorations(){if(this.nestingLevelMarkers)for(let e=0,t=this.nestingLevelMarkers.length;ee.element.hasFocus())):-1}onKeyDown(e){!o.UIUtils.isEditing()&&this.elementInternal&&this.elementInternal.hasFocus()&&!this.elementInternal.hasSelection()&&this.maybeHandleOnKeyDown(e)&&e.consume(!0)}maybeHandleOnKeyDown(e){const t=this.focusedChildIndex(),s=-1===t;if(this.expandTrace&&s&&("ArrowLeft"===e.key&&this.traceExpanded||"ArrowRight"===e.key&&!this.traceExpanded))return this.expandTrace(!this.traceExpanded),!0;if(!this.selectableChildren.length)return!1;if("ArrowLeft"===e.key)return this.elementInternal&&this.elementInternal.focus(),!0;if("ArrowRight"===e.key&&s&&this.selectNearestVisibleChild(0))return!0;if("ArrowUp"===e.key){const e=this.nearestVisibleChild(0);if(this.selectableChildren[t]===e&&e)return this.elementInternal&&this.elementInternal.focus(),!0;if(this.selectNearestVisibleChild(t-1,!0))return!0}if("ArrowDown"===e.key){if(s&&this.selectNearestVisibleChild(0))return!0;if(!s&&this.selectNearestVisibleChild(t+1))return!0}return!1}selectNearestVisibleChild(e,t){const s=this.nearestVisibleChild(e,t);return!!s&&(s.forceSelect(),!0)}nearestVisibleChild(e,t){const s=this.selectableChildren.length;if(e<0||e>=s)return null;const n=t?-1:1;let o=e;for(;!this.selectableChildren[o].element.offsetParent;)if(o+=n,o<0||o>=s)return null;return this.selectableChildren[o]}focusLastChildOrSelf(){this.elementInternal&&!this.selectNearestVisibleChild(this.selectableChildren.length-1,!0)&&this.elementInternal.focus()}setContentElement(e){console.assert(!this.contentElementInternal,"Cannot set content element twice"),this.contentElementInternal=e}getContentElement(){return this.contentElementInternal}contentElement(){if(this.contentElementInternal)return this.contentElementInternal;const e=document.createElement("div");e.classList.add("console-message"),this.messageIcon&&e.appendChild(this.messageIcon),this.contentElementInternal=e;const t=this.message.runtimeModel();let s;const n=Boolean(this.message.stackTrace)&&("network"===this.message.source||"violation"===this.message.source||"error"===this.message.level||"warning"===this.message.level||"trace"===this.message.type);return s=t&&n?this.buildMessageWithStackTrace(t):this.buildMessageWithIgnoreLinks(),e.appendChild(s),this.updateTimestamp(),this.contentElementInternal}toMessageElement(){return this.elementInternal||(this.elementInternal=document.createElement("div"),this.elementInternal.tabIndex=-1,this.elementInternal.addEventListener("keydown",this.onKeyDown.bind(this)),this.updateMessageElement(),this.elementInternal.classList.toggle("console-adjacent-user-command-result",this.#e)),this.elementInternal}updateMessageElement(){if(this.elementInternal){this.elementInternal.className="console-message-wrapper",this.elementInternal.setAttribute("jslog",`${d.item("console-message").track({click:!0,keydown:"ArrowUp|ArrowDown|ArrowLeft|ArrowRight|Enter|Space|Home|End"})}`),this.elementInternal.removeChildren(),this.consoleRowWrapper=this.elementInternal.createChild("div"),this.consoleRowWrapper.classList.add("console-row-wrapper"),this.message.isGroupStartMessage()&&this.elementInternal.classList.add("console-group-title"),this.message.source===e.Console.FrontendMessageSource.ConsoleAPI&&this.elementInternal.classList.add("console-from-api"),this.inSimilarGroup&&(this.similarGroupMarker=this.consoleRowWrapper.createChild("div","nesting-level-marker"),this.similarGroupMarker.classList.toggle("group-closed",this.lastInSimilarGroup)),this.nestingLevelMarkers=[];for(let e=0;e1&&this.showRepeatCountElement()}}shouldShowInsights(){return(this.message.source!==e.Console.FrontendMessageSource.ConsoleAPI||""!==this.message.stackTrace?.callFrames[0]?.url)&&(""!==this.message.messageText&&this.message.source!==e.Console.FrontendMessageSource.SELF_XSS&&("error"===this.message.level||"warning"===this.message.level))}getExplainLabel(){return"error"===this.message.level?me(he.explainThisError):"warning"===this.message.level?me(he.explainThisWarning):me(he.explainThisMessage)}#i(){return"error"===this.message.level?me(he.explainThisErrorWithAI):"warning"===this.message.level?me(he.explainThisWarningWithAI):me(he.explainThisMessageWithAI)}getExplainActionId(){return"error"===this.message.level?"explain.console-message.context.error":"warning"===this.message.level?"explain.console-message.context.warning":"explain.console-message.context.other"}#o(){const e=new h.Icon.Icon;e.data={iconName:"lightbulb-spark",color:"var(--devtools-icon-color)",width:"16px",height:"16px"};const t=document.createElement("button");t.append(e),t.onclick=e=>{e.stopPropagation(),o.Context.Context.instance().setFlavor(xe,this);o.ActionRegistry.ActionRegistry.instance().getAction(be).execute()};const s=document.createElement("div");s.classList.add("button-label");const n=document.createElement("div");return n.innerText=this.getExplainLabel(),s.append(n),t.append(s),t.classList.add("hover-button"),t.ariaLabel=this.#i(),t.tabIndex=0,t.setAttribute("jslog",`${d.action(be).track({click:!0})}`),Ce.observe(t),t}shouldRenderAsWarning(){return!("verbose"!==this.message.level&&"info"!==this.message.level||"violation"!==this.message.source&&"deprecation"!==this.message.source&&"intervention"!==this.message.source&&"recommendation"!==this.message.source)}updateMessageIcon(){this.messageIcon&&(this.messageIcon.remove(),this.messageIcon=null);let e="",t="",s="";"warning"===this.message.level?(e="var(--icon-warning)",t="warning-filled",s=me(he.warning)):"error"===this.message.level?(e="var(--icon-error)",t="cross-circle-filled",s=me(he.error)):this.message.originatesFromLogpoint?(t="console-logpoint",s=me(he.logpoint)):this.message.originatesFromConditionalBreakpoint&&(t="console-conditional-breakpoint",s=me(he.cndBreakpoint)),t&&(this.messageIcon=new h.Icon.Icon,this.messageIcon.data={iconName:t,color:e,width:"14px",height:"14px"},this.messageIcon.classList.add("message-level-icon"),this.contentElementInternal&&this.contentElementInternal.insertBefore(this.messageIcon,this.contentElementInternal.firstChild),o.ARIAUtils.setLabel(this.messageIcon,s))}setAdjacentUserCommandResult(e){this.#e=e,this.elementInternal?.classList.toggle("console-adjacent-user-command-result",this.#e)}repeatCount(){return this.repeatCountInternal||1}resetIncrementRepeatCount(){this.repeatCountInternal=1,this.repeatCountElement&&(this.repeatCountElement.remove(),this.contentElementInternal&&this.contentElementInternal.classList.remove("repeated-message"),this.repeatCountElement=null)}incrementRepeatCount(){this.repeatCountInternal++,this.showRepeatCountElement()}setRepeatCount(e){this.repeatCountInternal=e,this.showRepeatCountElement()}showRepeatCountElement(){if(!this.elementInternal)return;if(!this.repeatCountElement){switch(this.repeatCountElement=document.createElement("dt-small-bubble"),this.repeatCountElement.classList.add("console-message-repeat-count"),this.message.level){case"warning":this.repeatCountElement.type="warning";break;case"error":this.repeatCountElement.type="error";break;case"verbose":this.repeatCountElement.type="verbose";break;default:this.repeatCountElement.type="info"}this.shouldRenderAsWarning()&&(this.repeatCountElement.type="warning"),this.consoleRowWrapper?.insertBefore(this.repeatCountElement,this.contentElementInternal),this.contentElement().classList.add("repeated-message")}let e;this.repeatCountElement.textContent=`${this.repeatCountInternal}`,e="warning"===this.message.level?me(he.warningS,{n:this.repeatCountInternal}):"error"===this.message.level?me(he.errorS,{n:this.repeatCountInternal}):me(he.repeatS,{n:this.repeatCountInternal}),o.ARIAUtils.setLabel(this.repeatCountElement,e)}get text(){return this.message.messageText}toExportString(){const e=[],t=this.contentElement().childTextNodes().map(u.Linkifier.Linkifier.untruncatedNodeText).join("");for(let s=0;se.uiSourceCodeForURL(t))).flat().filter((e=>!!e)).map((e=>i.scriptsForUISourceCode(e))).flat();if(r.length){const t=new n.DebuggerModel.Location(e,r[0].scriptId,s||0,o),a=await i.pluginManager.getFunctionInfo(r[0],t);return a&&"frames"in a?a:{frames:[]}}return{frames:[]}}async expandInlineStackFrames(e,t,s,n,o,i,r,a){const{frames:l}=await this.getInlineFrames(e,n,o,i);if(!l.length)return!1;for(let c=0;cu.focus()}),h.appendChild(u),h.appendChild(this.linkifyStringAsFragment(s)),h.classList.add("formatted-stack-frame"),r.insertBefore(h,a)}return!0}createScriptLocationLinkForSyntaxError(e,t){const{scriptId:s,lineNumber:n,columnNumber:o}=t;if(!s)return;const i=t.url||e.scriptForId(s)?.sourceURL;if(!i)return;const r=this.linkifier.linkifyScriptLocation(e.target(),t.scriptId||null,i,n,{columnNumber:o,inlineFrameIndex:0,showColumnNumber:!0});return r.tabIndex=-1,r}tryFormatAsError(e,t){const s=this.message.runtimeModel();if(!s)return null;const n=t?.exceptionMetaData?.issueSummary;"string"==typeof n&&(e=ve(e,n));const o=re(s,e);if(!o?.length)return null;t?.stackTrace&&le(o,t.stackTrace);const i=s.debuggerModel(),r=document.createElement("span");for(let e=0;eh.focus()}),c.appendChild(h),c.appendChild(this.linkifyStringAsFragment(d)),c.classList.add("formatted-stack-frame"),r.appendChild(c),!a.enclosedInBraces)continue;const u=a.prefix.substring(0,a.prefix.lastIndexOf(" ",a.prefix.length-3)),m=this.selectableChildren.length-1;this.expandInlineStackFrames(i,u,d,a.url,a.lineNumber,a.columnNumber,r,c).then((e=>{e&&(r.removeChild(c),this.selectableChildren.splice(m,1))}))}return r}linkifyWithCustomLinkifier(t,n){if(t.length>Re()){const e=new c.ObjectPropertiesSection.ExpandableTextPropertyValue(document.createElement("span"),t,Ae()),s=document.createDocumentFragment();return s.appendChild(e.element),s}const o=document.createDocumentFragment(),i=xe.tokenizeMessageText(t);let r=!1;for(const t of i)if(t.text)switch(r&&(t.text=`blob:${t.text}`,r=!r),"'blob:"===t.text&&t===i[0]&&(r=!0,t.text="'"),t.type){case"url":{const i=t.text.startsWith("www.")?"http://"+t.text:t.text,r=e.ParsedURL.ParsedURL.splitLineAndColumn(i),a=e.ParsedURL.ParsedURL.removeWasmFunctionInfoFromURL(r.url);let l;l=r?n(t.text,a,r.lineNumber,r.columnNumber):n(t.text,s.DevToolsPath.EmptyUrlString),o.appendChild(l);break}default:o.appendChild(document.createTextNode(t.text))}return o}linkifyStringAsFragment(e){return this.linkifyWithCustomLinkifier(e,((e,t,s,n)=>{const o={text:e,lineNumber:s,columnNumber:n},i=u.Linkifier.Linkifier.linkifyURL(t,o);return i.tabIndex=-1,this.selectableChildren.push({element:i,forceSelect:()=>i.focus()}),i}))}static tokenizeMessageText(e){const{tokenizerRegexes:t,tokenizerTypes:s}=Ie();if(e.length>Re())return[{text:e,type:void 0}];return i.TextUtils.Utils.splitStringByRegexes(e,t).map((e=>({text:e.value,type:s[e.regexIndex]})))}groupKey(){return this.groupKeyInternal||(this.groupKeyInternal=this.message.groupCategoryKey()+":"+this.groupTitle()),this.groupKeyInternal}groupTitle(){return xe.tokenizeMessageText(this.message.messageText).reduce(((e,t)=>{let s=t.text;return"url"===t.type?s=me(he.url):"time"===t.type?s=me(he.tookNms):"event"===t.type?s=me(he.someEvent):"milestone"===t.type?s=me(he.Mxx):"autofill"===t.type&&(s=me(he.attribute)),e+s}),"").replace(/[%]o/g,"")}}let we=null,Se=null;function Ie(){if(!we||!Se){const e="\\u0000-\\u0020\\u007f-\\u009f",t=new RegExp("(?:[a-zA-Z][a-zA-Z0-9+.-]{2,}:\\/\\/|data:|www\\.)[^\\s"+e+'"]{2,}[^\\s'+e+"\"')}\\],:;.!?]","u"),s=/(?:\/[\w\.-]*)+\:[\d]+/,n=/took [\d]+ms/,o=/'\w+' event/,i=/\sM[6-7]\d/,r=/\(suggested: \"[\w-]+\"\)/,a=new Map;return a.set(t,"url"),a.set(s,"url"),a.set(n,"time"),a.set(o,"event"),a.set(i,"milestone"),a.set(r,"autofill"),we=Array.from(a.keys()),Se=Array.from(a.values()),{tokenizerRegexes:we,tokenizerTypes:Se}}return{tokenizerRegexes:we,tokenizerTypes:Se}}class ye extends xe{collapsedInternal;expandGroupIcon;onToggle;groupEndMessageInternal;constructor(e,t,s,n,o,i){console.assert(e.isGroupStartMessage()),super(e,t,s,n,i),this.collapsedInternal="startGroupCollapsed"===e.type,this.expandGroupIcon=null,this.onToggle=o,this.groupEndMessageInternal=null}setCollapsed(e){this.collapsedInternal=e,this.expandGroupIcon&&(this.expandGroupIcon.name=this.collapsedInternal?"triangle-right":"triangle-down"),this.onToggle.call(null)}collapsed(){return this.collapsedInternal}maybeHandleOnKeyDown(e){return-1===this.focusedChildIndex()&&("ArrowLeft"===e.key&&!this.collapsedInternal||"ArrowRight"===e.key&&this.collapsedInternal)?(this.setCollapsed(!this.collapsedInternal),!0):super.maybeHandleOnKeyDown(e)}toMessageElement(){let e=this.elementInternal||null;if(!e){e=super.toMessageElement();const t=this.collapsedInternal?"triangle-right":"triangle-down";this.expandGroupIcon=h.Icon.create(t,"expand-group-icon"),this.contentElement().tabIndex=-1,this.repeatCountElement?this.repeatCountElement.insertBefore(this.expandGroupIcon,this.repeatCountElement.firstChild):this.consoleRowWrapper?.insertBefore(this.expandGroupIcon,this.contentElementInternal),e.addEventListener("click",(()=>this.setCollapsed(!this.collapsedInternal)))}return e}showRepeatCountElement(){super.showRepeatCountElement(),this.repeatCountElement&&this.expandGroupIcon&&this.repeatCountElement.insertBefore(this.expandGroupIcon,this.repeatCountElement.firstChild)}messagesHidden(){if(this.collapsed())return!0;const e=this.consoleGroup();return Boolean(e?.messagesHidden())}setGroupEnd(e){if("endGroup"!==e.consoleMessage().type)throw new Error("Invalid console message as group end");if(null!==this.groupEndMessageInternal)throw new Error("Console group already has an end");this.groupEndMessageInternal=e}groupEnd(){return this.groupEndMessageInternal}}class Me extends xe{formattedCommand;constructor(e,t,s,n,o){super(e,t,s,n,o),this.formattedCommand=null}contentElement(){const e=this.getContentElement();if(e)return e;const t=document.createElement("div");this.setContentElement(t),t.classList.add("console-user-command");const n=new h.Icon.Icon;return n.data={iconName:"chevron-right",color:"var(--icon-default)",width:"16px",height:"16px"},n.classList.add("command-result-icon"),t.appendChild(n),pe.set(t,this),this.formattedCommand=document.createElement("span"),this.formattedCommand.classList.add("source-code"),this.formattedCommand.textContent=s.StringUtilities.replaceControlCharacters(this.text),t.appendChild(this.formattedCommand),this.formattedCommand.textContent.lengthe===n?me(he.value):e.toString()));if(a.length&&(this.dataGrid=w.SortableDataGrid.SortableDataGrid.create(l,a,me(he.console)),this.dataGrid)){this.dataGrid.setStriped(!0),this.dataGrid.setFocusable(!1);const t=document.createElement("span");t.classList.add("console-message-text");const n=t.createChild("div","console-message-formatted-table"),o=n.createChild("span");n.appendChild(this.formatParameter(s,!0,!1));const i=o.attachShadow({mode:"open"}),r=this.dataGrid.asWidget();r.markAsRoot(),r.show(i),r.registerRequiredCSS(ie,N),e.appendChild(t),this.dataGrid.renderInline()}return e}approximateFastHeight(){const e=this.message.parameters?.[0];return e&&"string"!=typeof e&&e.preview?19*e.preview.properties.length:19}}const Te=1e4;let Le=1e4,Fe=5e3;const Re=()=>Le,Ae=()=>Fe;var Pe=Object.freeze({__proto__:null,ConsoleCommand:Me,ConsoleCommandResult:Ee,ConsoleGroupViewMessage:ye,ConsoleTableMessageView:ke,ConsoleViewMessage:xe,MaxLengthForLinks:40,concatErrorDescriptionAndIssueSummary:ve,getLongStringVisibleLength:Ae,getMaxTokenizableStringLength:Re,getMessageForElement:ge,setLongStringVisibleLength:e=>{Fe=e},setMaxTokenizableStringLength:e=>{Le=e}});class Ue{element;topGapElement;topGapElementActive;contentElementInternal;bottomGapElement;bottomGapElementActive;provider;virtualSelectedIndex;firstActiveIndex;lastActiveIndex;renderedItems;anchorSelection;headSelection;itemCount;cumulativeHeights;muteCopyHandler;observer;observerConfig;stickToBottomInternal;selectionIsBackward;lastSelectedElement;cachedProviderElements;constructor(e){this.element=document.createElement("div"),this.element.style.overflow="auto",this.topGapElement=this.element.createChild("div"),this.topGapElement.style.height="0px",this.topGapElement.style.color="transparent",this.topGapElementActive=!1,this.contentElementInternal=this.element.createChild("div"),this.bottomGapElement=this.element.createChild("div"),this.bottomGapElement.style.height="0px",this.bottomGapElement.style.color="transparent",this.bottomGapElementActive=!1,this.topGapElement.textContent="\ufeff",this.bottomGapElement.textContent="\ufeff",o.ARIAUtils.setHidden(this.topGapElement,!0),o.ARIAUtils.setHidden(this.bottomGapElement,!0),this.provider=e,this.element.addEventListener("scroll",this.onScroll.bind(this),!1),this.element.addEventListener("copy",this.onCopy.bind(this),!1),this.element.addEventListener("dragstart",this.onDragStart.bind(this),!1),this.contentElementInternal.addEventListener("focusin",this.onFocusIn.bind(this),!1),this.contentElementInternal.addEventListener("focusout",this.onFocusOut.bind(this),!1),this.contentElementInternal.addEventListener("keydown",this.onKeyDown.bind(this),!1),this.virtualSelectedIndex=-1,this.contentElementInternal.tabIndex=-1,this.firstActiveIndex=-1,this.lastActiveIndex=-1,this.renderedItems=[],this.anchorSelection=null,this.headSelection=null,this.itemCount=0,this.cumulativeHeights=new Int32Array(0),this.muteCopyHandler=!1,this.observer=new MutationObserver(this.refresh.bind(this)),this.observerConfig={childList:!0,subtree:!0},this.stickToBottomInternal=!1,this.selectionIsBackward=!1}stickToBottom(){return this.stickToBottomInternal}setStickToBottom(e){this.stickToBottomInternal=e,this.stickToBottomInternal?this.observer.observe(this.contentElementInternal,this.observerConfig):this.observer.disconnect()}hasVirtualSelection(){return-1!==this.virtualSelectedIndex}copyWithStyles(){this.muteCopyHandler=!0,this.element.ownerDocument.execCommand("copy"),this.muteCopyHandler=!1}onCopy(e){if(this.muteCopyHandler)return;const t=this.selectedText();t&&(e.preventDefault(),this.selectionContainsTable()?this.copyWithStyles():e.clipboardData&&e.clipboardData.setData("text/plain",t))}onFocusIn(e){const t=this.renderedItems.findIndex((t=>t.element().isSelfOrAncestor(e.target)));-1!==t&&(this.virtualSelectedIndex=this.firstActiveIndex+t);let s=!1;-1===this.virtualSelectedIndex&&this.isOutsideViewport(e.relatedTarget)&&e.target===this.contentElementInternal&&this.itemCount&&(s=!0,this.virtualSelectedIndex=this.itemCount-1,this.refresh(),this.scrollItemIntoView(this.virtualSelectedIndex)),this.updateFocusedItem(s)}onFocusOut(e){this.isOutsideViewport(e.relatedTarget)&&(this.virtualSelectedIndex=-1),this.updateFocusedItem()}isOutsideViewport(e){return null!==e&&!e.isSelfOrDescendant(this.contentElementInternal)}onDragStart(e){const t=this.selectedText();return!!t&&(e.dataTransfer&&(e.dataTransfer.clearData(),e.dataTransfer.setData("text/plain",t),e.dataTransfer.effectAllowed="copy"),!0)}onKeyDown(e){if(o.UIUtils.isEditing()||!this.itemCount||e.shiftKey)return;let t=!1;switch(e.key){case"ArrowUp":if(!(this.virtualSelectedIndex>0))return;t=!0,this.virtualSelectedIndex--;break;case"ArrowDown":if(!(this.virtualSelectedIndexthis.itemCount-1&&(this.virtualSelectedIndex=this.itemCount-1),this.rebuildCumulativeHeights(),this.refresh()}providerElement(e){this.cachedProviderElements||(this.cachedProviderElements=new Array(this.itemCount));let t=this.cachedProviderElements[e];return t||(t=this.provider.itemElement(e),this.cachedProviderElements[e]=t),t}rebuildCumulativeHeights(){const e=this.firstActiveIndex,t=this.lastActiveIndex;let s=0;this.cumulativeHeights=new Int32Array(this.itemCount);for(let n=0;n1)return void this.rebuildCumulativeHeights();if(t+=o,e+=n,Math.abs(e-t)>1)return void this.rebuildCumulativeHeights()}}cachedItemHeight(e){return 0===e?this.cumulativeHeights[0]:this.cumulativeHeights[e]-this.cumulativeHeights[e-1]}isSelectionBackwards(e){if(!e?.rangeCount||!e.anchorNode||!e.focusNode)return!1;const t=document.createRange();return t.setStart(e.anchorNode,e.anchorOffset),t.setEnd(e.focusNode,e.focusOffset),t.collapsed}createSelectionModel(e,t,s){return{item:e,node:t,offset:s}}updateSelectionModel(e){const t=e?.rangeCount?e.getRangeAt(0):null;if(!t||!e||e.isCollapsed||!this.element.hasSelection())return this.headSelection=null,this.anchorSelection=null,!1;let s=Number.MAX_VALUE,n=-1,o=!1;for(let e=0;ec.item?h:c):o?i?d=a?this.headSelection:this.anchorSelection:r&&(h=a?this.anchorSelection:this.headSelection):(d=l,h=c),a?(this.anchorSelection=h,this.headSelection=d):(this.anchorSelection=d,this.headSelection=h),this.selectionIsBackward=a,!0}restoreSelection(e){if(!e||!this.anchorSelection||!this.headSelection)return;const t=(e,t)=>{if(this.firstActiveIndex<=e.item&&e.item<=this.lastActiveIndex)return{element:e.node,offset:e.offset};return{element:e.item!t.has(e)));for(let e=0;e0&&(s[s.length-1]=s[s.length-1].substring(0,e))}const i=this.providerElement(e.item),r=i?.element();if(r&&e.node?.isSelfOrDescendant(r)){const t=this.textOffsetInNode(r,e.node,e.offset);s[0]=s[0].substring(t)}return s.join("\n")}textOffsetInNode(e,t,s){const n=t.textContent?t.textContent.length:0;t.nodeType!==Node.TEXT_NODE&&(s0&&r!==n&&(s=r),o+s}onScroll(e){this.refresh()}firstVisibleIndex(){return this.cumulativeHeights.length?(this.rebuildCumulativeHeightsIfNeeded(),s.ArrayUtilities.lowerBound(this.cumulativeHeights,this.element.scrollTop+1,s.ArrayUtilities.DEFAULT_COMPARATOR)):-1}lastVisibleIndex(){if(!this.cumulativeHeights.length)return-1;this.rebuildCumulativeHeightsIfNeeded();const e=this.element.scrollTop+this.element.clientHeight,t=this.itemCount-1;return s.ArrayUtilities.lowerBound(this.cumulativeHeights,e,s.ArrayUtilities.DEFAULT_COMPARATOR,void 0,t)}renderedElementAt(e){return-1===e||ethis.lastActiveIndex?null:this.renderedItems[e-this.firstActiveIndex].element()}scrollItemIntoView(e,t){const s=this.firstVisibleIndex(),n=this.lastVisibleIndex();e>s&&e=n&&this.forceScrollItemToBeLast(e))}forceScrollItemToBeFirst(e){console.assert(e>=0&&e0?this.cumulativeHeights[e-1]:0,o.UIUtils.isScrolledToBottom(this.element)&&this.setStickToBottom(!0),this.refresh();const t=this.renderedElementAt(e);t&&t.scrollIntoView(!0)}forceScrollItemToBeLast(e){console.assert(e>=0&&e{this.isSidebarOpen="Both"===e.data,this.isSidebarOpen&&(this.userHasOpenedSidebarAtLeastOnce||(m.userMetrics.actionTaken(m.UserMetrics.Action.ConsoleSidebarOpened),this.userHasOpenedSidebarAtLeastOnce=!0),this.pendingSidebarMessages.forEach((e=>{this.sidebar.onMessageAdded(e)})),this.pendingSidebarMessages=[]),this.filter.setLevelMenuOverridden(this.isSidebarOpen),this.onFilterChanged()})),this.contentsElement=this.searchableViewInternal.element,this.element.classList.add("console-view"),this.visibleViewMessages=[],this.hiddenByFilterCount=0,this.shouldBeHiddenCache=new Set,this.groupableMessages=new Map,this.groupableMessageTitle=new Map,this.shortcuts=new Map,this.regexMatchRanges=[],this.consoleContextSelector=new F,this.filterStatusText=new o.Toolbar.ToolbarText,this.filterStatusText.element.classList.add("dimmed"),this.showSettingsPaneSetting=e.Settings.Settings.instance().createSetting("console-show-settings-toolbar",!1),this.showSettingsPaneButton=new o.Toolbar.ToolbarSettingToggle(this.showSettingsPaneSetting,"gear",Oe(He.consoleSettings),"gear-filled"),this.showSettingsPaneButton.element.setAttribute("jslog",`${d.toggleSubpane("console-settings").track({click:!0})}`),this.progressToolbarItem=new o.Toolbar.ToolbarItem(document.createElement("div")),this.groupSimilarSetting=e.Settings.Settings.instance().moduleSetting("console-group-similar"),this.groupSimilarSetting.addChangeListener((()=>this.updateMessageList())),this.showCorsErrorsSetting=e.Settings.Settings.instance().moduleSetting("console-shows-cors-errors"),this.showCorsErrorsSetting.addChangeListener((()=>this.updateMessageList()));const s=this.consoleToolbarContainer.createChild("devtools-toolbar","console-main-toolbar");s.setAttribute("jslog",`${d.toolbar()}`),s.role="presentation",s.wrappable=!0,s.appendToolbarItem(this.splitWidget.createShowHideSidebarButton(Oe(He.showConsoleSidebar),Oe(He.hideConsoleSidebar),Oe(He.consoleSidebarShown),Oe(He.consoleSidebarHidden),"console-sidebar")),s.appendToolbarItem(o.Toolbar.Toolbar.createActionButton("console.clear")),s.appendSeparator(),s.appendToolbarItem(this.consoleContextSelector.toolbarItem()),s.appendSeparator(),s.appendSeparator(),s.appendToolbarItem(this.filter.textFilterUI),s.appendToolbarItem(this.filter.levelMenuButton),s.appendToolbarItem(this.progressToolbarItem),s.appendSeparator(),this.issueCounter=new C.IssueCounter.IssueCounter,this.issueCounter.id="console-issues-counter",this.issueCounter.setAttribute("jslog",`${d.counter("issues").track({click:!0})}`);const i=new o.Toolbar.ToolbarItem(this.issueCounter);this.issueCounter.data={clickHandler:()=>{m.userMetrics.issuesPanelOpenedFrom(2),o.ViewManager.ViewManager.instance().showView("issues-pane")},issuesManager:M.IssuesManager.IssuesManager.instance(),accessibleName:Oe(He.issueToolbarTooltipGeneral),displayMode:"OmitEmpty"},s.appendToolbarItem(i),s.appendSeparator(),s.appendToolbarItem(this.filterStatusText),s.appendToolbarItem(this.showSettingsPaneButton);const r=e.Settings.Settings.instance().moduleSetting("monitoring-xhr-enabled");this.timestampsSetting=e.Settings.Settings.instance().moduleSetting("console-timestamps-enabled"),this.consoleHistoryAutocompleteSetting=e.Settings.Settings.instance().moduleSetting("console-history-autocomplete"),this.selfXssWarningDisabledSetting=e.Settings.Settings.instance().createSetting("disable-self-xss-warning",!1,"Synced");const a=this.contentsElement.createChild("div","console-settings-pane");o.ARIAUtils.setLabel(a,Oe(He.consoleSettings)),o.ARIAUtils.markAsGroup(a);const l=e.Settings.Settings.instance().moduleSetting("preserve-console-log"),c=e.Settings.Settings.instance().moduleSetting("console-user-activation-eval");a.append(o.SettingsUI.createSettingCheckbox(Oe(He.hideNetwork),this.filter.hideNetworkMessagesSetting,this.filter.hideNetworkMessagesSetting.title()),o.SettingsUI.createSettingCheckbox(Oe(He.logXMLHttpRequests),r),o.SettingsUI.createSettingCheckbox(Oe(He.preserveLog),l,Oe(He.doNotClearLogOnPageReload)),o.SettingsUI.createSettingCheckbox(Oe(He.selectedContextOnly),this.filter.filterByExecutionContextSetting,Oe(He.onlyShowMessagesFromTheCurrentContext)),o.SettingsUI.createSettingCheckbox(this.consoleHistoryAutocompleteSetting.title(),this.consoleHistoryAutocompleteSetting,Oe(He.autocompleteFromHistory)),o.SettingsUI.createSettingCheckbox(this.groupSimilarSetting.title(),this.groupSimilarSetting,Oe(He.groupSimilarMessagesInConsole)),o.SettingsUI.createSettingCheckbox(c.title(),c,Oe(He.treatEvaluationAsUserActivation)),o.SettingsUI.createSettingCheckbox(this.showCorsErrorsSetting.title(),this.showCorsErrorsSetting,Oe(He.showCorsErrorsInConsole))),this.showSettingsPaneSetting.get()||a.classList.add("hidden"),this.showSettingsPaneSetting.addChangeListener((()=>a.classList.toggle("hidden",!this.showSettingsPaneSetting.get()))),this.viewport=new Ue(this),this.viewport.setStickToBottom(!0),this.viewport.contentElement().classList.add("console-group","console-group-messages"),this.contentsElement.appendChild(this.viewport.element),this.messagesElement=this.viewport.element,this.messagesElement.id="console-messages",this.messagesElement.classList.add("monospace"),this.messagesElement.addEventListener("click",this.messagesClicked.bind(this),!1),["paste","clipboard-paste","drop"].forEach((e=>{this.messagesElement.addEventListener(e,this.messagesPasted.bind(this),!0)})),this.messagesCountElement=this.consoleToolbarContainer.createChild("div","message-count"),o.ARIAUtils.markAsPoliteLiveRegion(this.messagesCountElement,!1),this.viewportThrottler=new e.Throttler.Throttler(t),this.pendingBatchResize=!1,this.onMessageResizedBound=e=>{this.onMessageResized(e)},this.promptElement=this.messagesElement.createChild("div","source-code"),this.promptElement.id="console-prompt";const h=this.messagesElement.createChild("div","console-view-fix-select-all");h.textContent=".",o.ARIAUtils.setHidden(h,!0),this.registerShortcuts(),this.messagesElement.addEventListener("contextmenu",this.handleContextMenuEvent.bind(this),!1);const p=new e.Throttler.Throttler(100);this.linkifier=new u.Linkifier.Linkifier(40),this.linkifier.addEventListener("liveLocationUpdated",(()=>p.schedule((async()=>this.onFilterChanged())))),this.consoleMessages=[],this.consoleGroupStarts=[],this.prompt=new tt,this.prompt.show(this.promptElement),this.prompt.element.addEventListener("keydown",this.promptKeyDown.bind(this),!0),this.prompt.addEventListener("TextChanged",this.promptTextChanged,this),this.messagesElement.addEventListener("keydown",this.messagesKeyDown.bind(this),!1),this.prompt.element.addEventListener("focusin",(()=>{this.isScrolledToBottom()&&this.viewport.setStickToBottom(!0)})),this.consoleHistoryAutocompleteSetting.addChangeListener(this.consoleHistoryAutocompleteChanged,this),this.consoleHistoryAutocompleteChanged(),this.updateFilterStatus(),this.timestampsSetting.addChangeListener(this.consoleTimestampsSettingChanged,this),this.registerWithMessageSink(),o.Context.Context.instance().addFlavorChangeListener(n.RuntimeModel.ExecutionContext,this.executionContextChanged,this),this.messagesElement.addEventListener("mousedown",(e=>this.updateStickToBottomOnPointerDown(2===e.button)),!1),this.messagesElement.addEventListener("mouseup",this.updateStickToBottomOnPointerUp.bind(this),!1),this.messagesElement.addEventListener("mouseleave",this.updateStickToBottomOnPointerUp.bind(this),!1),this.messagesElement.addEventListener("wheel",this.updateStickToBottomOnWheel.bind(this),!1),this.messagesElement.addEventListener("touchstart",this.updateStickToBottomOnPointerDown.bind(this,!1),!1),this.messagesElement.addEventListener("touchend",this.updateStickToBottomOnPointerUp.bind(this),!1),this.messagesElement.addEventListener("touchcancel",this.updateStickToBottomOnPointerUp.bind(this),!1),n.TargetManager.TargetManager.instance().addModelListener(n.ConsoleModel.ConsoleModel,n.ConsoleModel.Events.ConsoleCleared,this.consoleCleared,this,{scoped:!0}),n.TargetManager.TargetManager.instance().addModelListener(n.ConsoleModel.ConsoleModel,n.ConsoleModel.Events.MessageAdded,this.onConsoleMessageAdded,this,{scoped:!0}),n.TargetManager.TargetManager.instance().addModelListener(n.ConsoleModel.ConsoleModel,n.ConsoleModel.Events.MessageUpdated,this.onConsoleMessageUpdated,this,{scoped:!0}),n.TargetManager.TargetManager.instance().addModelListener(n.ConsoleModel.ConsoleModel,n.ConsoleModel.Events.CommandEvaluated,this.commandEvaluated,this,{scoped:!0}),n.TargetManager.TargetManager.instance().observeModels(n.ConsoleModel.ConsoleModel,this,{scoped:!0});const g=M.IssuesManager.IssuesManager.instance();this.issueToolbarThrottle=new e.Throttler.Throttler(100),g.addEventListener("IssuesCountUpdated",this.#a)}static instance(e){return Ve&&!e?.forceNew||(Ve=new Ne(e?.viewportThrottlerTimeout??50)),Ve}static clearConsole(){n.ConsoleModel.ConsoleModel.requestClearMessages()}#l(){this.issueToolbarThrottle.schedule((async()=>this.updateIssuesToolbarItem())),this.issuesCountUpdatedForTest()}issuesCountUpdatedForTest(){}modelAdded(e){e.messages().forEach(this.addConsoleMessage,this)}modelRemoved(t){e.Settings.Settings.instance().moduleSetting("preserve-console-log").get()||t.target().outermostTarget()!==t.target()||this.consoleCleared()}onFilterChanged(){if(this.filter.currentFilter.levelsMask=this.isSidebarOpen?P.allLevelsFilterValue():this.filter.messageLevelFiltersSetting.get(),this.cancelBuildHiddenCache(),this.immediatelyFilterMessagesForTest){for(const e of this.consoleMessages)this.computeShouldMessageBeVisible(e);this.updateMessageList()}else this.buildHiddenCache(0,this.consoleMessages.slice())}setImmediatelyFilterMessagesForTest(){this.immediatelyFilterMessagesForTest=!0}searchableView(){return this.searchableViewInternal}clearHistory(){this.prompt.history().clear()}consoleHistoryAutocompleteChanged(){this.prompt.setAddCompletionsFromHistory(this.consoleHistoryAutocompleteSetting.get())}itemCount(){return this.visibleViewMessages.length}itemElement(e){return this.visibleViewMessages[e]}fastHeight(e){return this.visibleViewMessages[e].fastHeight()}minimumRowHeight(){return 16}registerWithMessageSink(){e.Console.Console.instance().messages().forEach(this.addSinkMessage,this),e.Console.Console.instance().addEventListener("messageAdded",(({data:e})=>{this.addSinkMessage(e)}),this)}addSinkMessage(e){let t="verbose";switch(e.level){case"info":t="info";break;case"error":t="error";break;case"warning":t="warning"}const s=e.source||"other",o=new n.ConsoleModel.ConsoleMessage(null,s,t,e.text,{type:n.ConsoleModel.FrontendMessageType.System,timestamp:e.timestamp});this.addConsoleMessage(o)}consoleTimestampsSettingChanged(){this.updateMessageList(),this.consoleMessages.forEach((e=>e.updateTimestamp())),this.groupableMessageTitle.forEach((e=>e.updateTimestamp()))}executionContextChanged(){this.prompt.clearAutocomplete()}willHide(){this.hidePromptSuggestBox()}wasShown(){if(super.wasShown(),this.#r){M.IssuesManager.IssuesManager.instance().addEventListener("IssuesCountUpdated",this.#a)}this.#r=!1,this.updateIssuesToolbarItem(),this.viewport.refresh()}focus(){this.viewport.hasVirtualSelection()?this.viewport.contentElement().focus():this.focusPrompt()}focusPrompt(){if(!this.prompt.hasFocus()){const e=this.viewport.stickToBottom(),t=this.viewport.element.scrollTop;this.prompt.focus(),this.viewport.setStickToBottom(e),this.viewport.element.scrollTop=t}}restoreScrollPositions(){this.viewport.stickToBottom()?this.immediatelyScrollToBottom():super.restoreScrollPositions()}onResize(){this.scheduleViewportRefresh(),this.hidePromptSuggestBox(),this.viewport.stickToBottom()&&this.immediatelyScrollToBottom();for(let e=0;e0?this.consoleMessages.length:s.ArrayUtilities.upperBound(this.consoleMessages,t,l);const i=o=5&&!this.selfXssWarningDisabledSetting.get()&&this.selfXssWarningDisabledSetting.set(!0);else if(e.type!==n.ConsoleModel.FrontendMessageType.Result){const n=s.ArrayUtilities.upperBound(this.consoleGroupStarts,t,l)-1;if(n>=0){!function e(t,s){const n=s.groupEnd();if(null!==n&&l(t,n)>0){const n=s.consoleGroup();if(null===n)return;return void e(t,n)}"endGroup"===t.consoleMessage().type?s.setGroupEnd(t):t.setConsoleGroup(s)}(t,this.consoleGroupStarts[n])}e.isGroupStartMessage()&&(o=s.ArrayUtilities.upperBound(this.consoleGroupStarts,t,l),this.consoleGroupStarts.splice(o,0,t))}this.filter.onMessageAdded(e),this.isSidebarOpen?this.sidebar.onMessageAdded(t):this.pendingSidebarMessages.push(t);let r=!1;const a=this.groupSimilarSetting.get();if(e.isGroupable()){const e=t.groupKey();r=a&&this.groupableMessages.has(e);let s=this.groupableMessages.get(e);s||(s=[],this.groupableMessages.set(e,s)),s.push(t)}function l(e,t){return(De.get(e)||0)-(De.get(t)||0)}this.computeShouldMessageBeVisible(t),r||i?this.needsFullUpdate=!0:(this.appendMessageToEnd(t,!a),this.updateFilterStatus(),this.searchableViewInternal.updateSearchMatchesCount(this.regexMatchRanges.length)),this.scheduleViewportRefresh(),this.consoleMessageAddedForTest(t)}onConsoleMessageUpdated(e){const t=e.data,s=We.get(t);s&&(s.updateMessageElement(),this.computeShouldMessageBeVisible(s),this.updateMessageList())}consoleMessageAddedForTest(e){}shouldMessageBeVisible(e){return!this.shouldBeHiddenCache.has(e)}computeShouldMessageBeVisible(e){!this.filter.shouldBeVisible(e)||this.isSidebarOpen&&!this.sidebar.shouldBeVisible(e)?this.shouldBeHiddenCache.add(e):this.shouldBeHiddenCache.delete(e)}appendMessageToEnd(e,t){if("cors"===e.consoleMessage().category&&!this.showCorsErrorsSetting.get())return;const s=this.visibleViewMessages[this.visibleViewMessages.length-1];if("endGroup"===e.consoleMessage().type){if(s){const e=s.consoleGroup();e&&!e.messagesHidden()&&s.incrementCloseGroupDecorationCount()}return}if(!this.shouldMessageBeVisible(e))return void this.hiddenByFilterCount++;if(!t&&this.tryToCollapseMessages(e,this.visibleViewMessages[this.visibleViewMessages.length-1]))return;const n=e.consoleGroup();if(!n?.messagesHidden()){const t=e.consoleMessage().originatingMessage(),o=Boolean(t&&s?.consoleMessage()===t);e.setAdjacentUserCommandResult(o),function e(t,s){if(null===t)return;if(s.includes(t))return;const n=t.consoleGroup();n&&e(n,s);s.push(t)}(n,this.visibleViewMessages),this.visibleViewMessages.push(e),this.searchMessage(this.visibleViewMessages.length-1)}this.messageAppendedForTests()}messageAppendedForTests(){}createViewMessage(e){switch(e.type){case n.ConsoleModel.FrontendMessageType.Command:return new Me(e,this.linkifier,this.requestResolver,this.issueResolver,this.onMessageResizedBound);case n.ConsoleModel.FrontendMessageType.Result:return new Ee(e,this.linkifier,this.requestResolver,this.issueResolver,this.onMessageResizedBound);case"startGroupCollapsed":case"startGroup":return new ye(e,this.linkifier,this.requestResolver,this.issueResolver,this.updateMessageList.bind(this),this.onMessageResizedBound);case"table":return new ke(e,this.linkifier,this.requestResolver,this.issueResolver,this.onMessageResizedBound);default:return new xe(e,this.linkifier,this.requestResolver,this.issueResolver,this.onMessageResizedBound)}}async onMessageResized(e){const t=e.data;if(this.pendingBatchResize||!t.treeOutline)return;this.pendingBatchResize=!0,await Promise.resolve();const s=t.treeOutline.element;this.viewport.setStickToBottom(this.isScrolledToBottom()),s.offsetHeight<=this.messagesElement.offsetHeight&&s.scrollIntoViewIfNeeded(),this.pendingBatchResize=!1}consoleCleared(){const e=this.viewport.element.hasFocus();this.cancelBuildHiddenCache(),this.currentMatchRangeIndex=-1,this.consoleMessages=[],this.groupableMessages.clear(),this.groupableMessageTitle.clear(),this.sidebar.clear(),this.pendingSidebarMessages=[],this.updateMessageList(),this.hidePromptSuggestBox(),this.viewport.setStickToBottom(!0),this.linkifier.reset(),this.filter.clear(),this.requestResolver.clear(),this.consoleGroupStarts=[],e&&this.prompt.focus(),o.ARIAUtils.alert(Oe(He.consoleCleared))}handleContextMenuEvent(t){const s=new o.ContextMenu.ContextMenu(t),i=t.target;if(i.isSelfOrDescendant(this.promptElement))return void s.show();const r=i.enclosingNodeOrSelfWithClass("console-message-wrapper"),a=r&&ge(r),l=a?a.consoleMessage():null;if(a&&o.Context.Context.instance().setFlavor(xe,a),l&&!a?.element()?.matches(".has-insight")&&a?.shouldShowInsights()&&s.headerSection().appendAction(a?.getExplainActionId(),void 0,!0),l&&l.url){const t=Oe(He.hideMessagesFromS,{PH1:new e.ParsedURL.ParsedURL(l.url).displayName});s.headerSection().appendItem(t,this.filter.addMessageURLFilter.bind(this.filter,l.url),{jslogContext:"hide-messages-from"})}if(s.defaultSection().appendAction("console.clear"),s.defaultSection().appendAction("console.clear.history"),s.saveSection().appendItem(Oe(He.copyConsole),this.copyConsole.bind(this),{jslogContext:"copy-console"}),s.saveSection().appendItem(Oe(He.saveAs),this.saveConsole.bind(this),{jslogContext:"save-as"}),this.element.hasSelection()&&s.clipboardSection().appendItem(Oe(He.copyVisibleStyledSelection),this.viewport.copyWithStyles.bind(this.viewport),{jslogContext:"copy-visible-styled-selection"}),l){const e=g.NetworkLog.NetworkLog.requestForConsoleMessage(l);e&&n.NetworkManager.NetworkManager.canReplayRequest(e)&&s.debugSection().appendItem(Oe(He.replayXhr),n.NetworkManager.NetworkManager.replayRequest.bind(null,e),{jslogContext:"replay-xhr"})}s.show()}async saveConsole(){const t=n.TargetManager.TargetManager.instance().scopeTarget().inspectedURL(),i=e.ParsedURL.ParsedURL.fromString(t),r=s.StringUtilities.sprintf("%s-%d.log",i?i.host:"console",Date.now()),a=new p.FileUtils.FileOutputStream,l=new o.ProgressIndicator.ProgressIndicator;l.setTitle(Oe(He.writingFile)),l.setTotalWork(this.itemCount());if(!await a.open(r))return;this.progressToolbarItem.element.appendChild(l.element);let c=0;for(;c12));++n);n!==t.length?this.buildHiddenCacheTimeout=this.element.window().requestAnimationFrame(this.buildHiddenCache.bind(this,n+1,t)):this.updateMessageList()}cancelBuildHiddenCache(){this.shouldBeHiddenCache.clear(),this.buildHiddenCacheTimeout&&(this.element.window().cancelAnimationFrame(this.buildHiddenCacheTimeout),delete this.buildHiddenCacheTimeout)}updateMessageList(){this.regexMatchRanges=[],this.hiddenByFilterCount=0;for(const e of this.visibleViewMessages)e.resetCloseGroupDecorationCount(),e.resetIncrementRepeatCount();if(this.visibleViewMessages=[],this.groupSimilarSetting.get())this.addGroupableMessagesToEnd();else for(const e of this.consoleMessages)e.setInSimilarGroup(!1),e.consoleMessage().isGroupable()&&e.clearConsoleGroup(),this.appendMessageToEnd(e,!0);this.updateFilterStatus(),this.searchableViewInternal.updateSearchMatchesCount(this.regexMatchRanges.length),this.viewport.invalidate(),this.messagesCountElement.setAttribute("aria-label",Oe(He.filteredMessagesInConsole,{PH1:this.visibleViewMessages.length}))}addGroupableMessagesToEnd(){const e=new Set,t=new Set;for(const s of this.consoleMessages){const o=s.consoleMessage();if(e.has(o))continue;if(!o.isGroupable()){this.appendMessageToEnd(s),e.add(o);continue}const i=s.groupKey(),r=this.groupableMessages.get(i);if(!r||r.length<5){s.setInSimilarGroup(!1),this.appendMessageToEnd(s),e.add(o);continue}if(t.has(i))continue;if(!r.find((e=>this.shouldMessageBeVisible(e)))){for(const t of r)e.add(t.consoleMessage());t.add(i);continue}let a=this.groupableMessageTitle.get(i);if(!a){const e=new n.ConsoleModel.ConsoleMessage(null,o.source,o.level,s.groupTitle(),{type:"startGroupCollapsed"});a=this.createViewMessage(e),this.groupableMessageTitle.set(i,a)}a.setRepeatCount(r.length),this.appendMessageToEnd(a);for(const t of r)t.setInSimilarGroup(!0,r[r.length-1]===t),t.setConsoleGroup(a),this.appendMessageToEnd(t,!0),e.add(t.consoleMessage());const l=new n.ConsoleModel.ConsoleMessage(null,o.source,o.level,o.messageText,{type:"endGroup"});this.appendMessageToEnd(this.createViewMessage(l))}}messagesClicked(e){const t=e.target;if(!this.messagesElement.hasSelection()){(t===this.messagesElement||this.prompt.belowEditorElement().isSelfOrAncestor(t))&&(this.prompt.moveCaretToEndOfPrompt(),this.focusPrompt())}}messagesKeyDown(e){const t=e;t.ctrlKey||t.altKey||t.metaKey||1!==t.key.length||o.UIUtils.isEditing()||this.messagesElement.hasSelection()||(this.prompt.moveCaretToEndOfPrompt(),this.focusPrompt())}messagesPasted(e){r.Runtime.Runtime.queryParam("isChromeForTesting")||r.Runtime.Runtime.queryParam("disableSelfXssWarnings")||this.selfXssWarningDisabledSetting.get()||(e.preventDefault(),this.prompt.showSelfXssWarning()),o.UIUtils.isEditing()||this.prompt.focus()}registerShortcuts(){this.shortcuts.set(o.KeyboardShortcut.KeyboardShortcut.makeKey("u",o.KeyboardShortcut.Modifiers.Ctrl.value),this.clearPromptBackwards.bind(this))}clearPromptBackwards(e){this.prompt.clear(),d.logKeyDown(e.currentTarget,e,"clear-prompt")}promptKeyDown(e){const t=e;if("PageUp"===t.key)return void this.updateStickToBottomOnWheel();const s=o.KeyboardShortcut.KeyboardShortcut.makeKeyFromEvent(t),n=this.shortcuts.get(s);n&&(n(t),t.preventDefault())}printResult(e,t,s){if(!e)return;const o=Boolean(s)?"error":"info";let i;i=s?n.ConsoleModel.ConsoleMessage.fromException(e.runtimeModel(),s,n.ConsoleModel.FrontendMessageType.Result,void 0,void 0):new n.ConsoleModel.ConsoleMessage(e.runtimeModel(),"javascript",o,"",{type:n.ConsoleModel.FrontendMessageType.Result,parameters:[e]}),i.setOriginatingMessage(t),e.runtimeModel().target().model(n.ConsoleModel.ConsoleModel)?.addMessage(i)}commandEvaluated(e){const{data:t}=e;this.printResult(t.result,t.commandMessage,t.exceptionDetails)}elementsToRestoreScrollPositionsFor(){return[this.messagesElement]}onSearchCanceled(){this.cleanupAfterSearch();for(const e of this.visibleViewMessages)e.setSearchRegex(null);this.currentMatchRangeIndex=-1,this.regexMatchRanges=[],this.searchRegex=null,this.viewport.refresh()}performSearch(e,t,s){this.onSearchCanceled(),this.searchableViewInternal.updateSearchMatchesCount(0),this.searchRegex=e.toSearchRegex(!0).regex,this.regexMatchRanges=[],this.currentMatchRangeIndex=-1,t&&(this.searchShouldJumpBackwards=Boolean(s)),this.searchProgressIndicator=new o.ProgressIndicator.ProgressIndicator,this.searchProgressIndicator.setTitle(Oe(He.searching)),this.searchProgressIndicator.setTotalWork(this.visibleViewMessages.length),this.progressToolbarItem.element.appendChild(this.searchProgressIndicator.element),this.innerSearch(0)}cleanupAfterSearch(){delete this.searchShouldJumpBackwards,this.innerSearchTimeoutId&&(clearTimeout(this.innerSearchTimeoutId),delete this.innerSearchTimeoutId),this.searchProgressIndicator&&(this.searchProgressIndicator.done(),delete this.searchProgressIndicator)}searchFinishedForTests(){}innerSearch(e){if(delete this.innerSearchTimeoutId,this.searchProgressIndicator?.isCanceled())return void this.cleanupAfterSearch();const t=Date.now();for(;e=0){t=this.regexMatchRanges[this.currentMatchRangeIndex];this.visibleViewMessages[t.messageIndex].searchHighlightNode(t.matchIndex).classList.remove(o.UIUtils.highlightedCurrentSearchResultClassName)}e=s.NumberUtilities.mod(e,this.regexMatchRanges.length),this.currentMatchRangeIndex=e,this.searchableViewInternal.updateCurrentMatchIndex(e),t=this.regexMatchRanges[e];const n=this.visibleViewMessages[t.messageIndex].searchHighlightNode(t.matchIndex);n.classList.add(o.UIUtils.highlightedCurrentSearchResultClassName),this.viewport.scrollItemIntoView(t.messageIndex),n.scrollIntoViewIfNeeded()}updateStickToBottomOnPointerDown(e){this.muteViewportUpdates=!e,this.viewport.setStickToBottom(!1),this.waitForScrollTimeout&&(clearTimeout(this.waitForScrollTimeout),delete this.waitForScrollTimeout)}updateStickToBottomOnPointerUp(){this.muteViewportUpdates&&(this.waitForScrollTimeout=window.setTimeout(function(){this.muteViewportUpdates=!1,this.isShowing()&&this.viewport.setStickToBottom(this.isScrolledToBottom());this.maybeDirtyWhileMuted&&(this.scheduleViewportRefresh(),delete this.maybeDirtyWhileMuted);delete this.waitForScrollTimeout,this.updateViewportStickinessForTest()}.bind(this),200))}updateViewportStickinessForTest(){}updateStickToBottomOnWheel(){this.updateStickToBottomOnPointerDown(),this.updateStickToBottomOnPointerUp()}promptTextChanged(){const e=this.viewport.stickToBottom(),t=this.isScrolledToBottom();this.viewport.setStickToBottom(t),t&&!e&&this.scheduleViewportRefresh(),this.promptTextChangedForTest()}promptTextChangedForTest(){}isScrolledToBottom(){return this.messagesElement.scrollHeight-this.messagesElement.scrollTop-this.messagesElement.clientHeight-this.prompt.belowEditorElement().offsetHeight<=2}}globalThis.Console=globalThis.Console||{},globalThis.Console.ConsoleView=Ne;class Ge{filterChanged;messageLevelFiltersSetting;hideNetworkMessagesSetting;filterByExecutionContextSetting;suggestionBuilder;textFilterUI;textFilterSetting;filterParser;currentFilter;levelLabels;levelMenuButton;constructor(t){this.filterChanged=t,this.messageLevelFiltersSetting=Ge.levelFilterSetting(),this.hideNetworkMessagesSetting=e.Settings.Settings.instance().moduleSetting("hide-network-messages"),this.filterByExecutionContextSetting=e.Settings.Settings.instance().moduleSetting("selected-context-filter-enabled"),this.messageLevelFiltersSetting.addChangeListener(this.onFilterChanged.bind(this)),this.hideNetworkMessagesSetting.addChangeListener(this.onFilterChanged.bind(this)),this.filterByExecutionContextSetting.addChangeListener(this.onFilterChanged.bind(this)),o.Context.Context.instance().addFlavorChangeListener(n.RuntimeModel.ExecutionContext,this.onFilterChanged,this);const s=Object.values(R);this.suggestionBuilder=new o.FilterSuggestionBuilder.FilterSuggestionBuilder(s),this.textFilterUI=new o.Toolbar.ToolbarFilter(void 0,1,1,Oe(He.egEventdCdnUrlacom),this.suggestionBuilder.completions.bind(this.suggestionBuilder),!0),this.textFilterSetting=e.Settings.Settings.instance().createSetting("console.text-filter",""),this.textFilterSetting.get()&&this.textFilterUI.setValue(this.textFilterSetting.get()),this.textFilterUI.addEventListener("TextChanged",(()=>{this.textFilterSetting.set(this.textFilterUI.value()),this.onFilterChanged()})),this.filterParser=new i.TextUtils.FilterParser(s),this.currentFilter=new P("",[],null,this.messageLevelFiltersSetting.get()),this.updateCurrentFilter(),this.levelLabels=new Map([["verbose",Oe(He.verbose)],["info",Oe(He.info)],["warning",Oe(He.warnings)],["error",Oe(He.errors)]]),this.levelMenuButton=new o.Toolbar.ToolbarMenuButton(this.appendLevelMenuItems.bind(this),void 0,void 0,"log-level"),this.updateLevelMenuButtonText(),this.messageLevelFiltersSetting.addChangeListener(this.updateLevelMenuButtonText.bind(this))}onMessageAdded(e){e.type===n.ConsoleModel.FrontendMessageType.Command||e.type===n.ConsoleModel.FrontendMessageType.Result||e.isGroupMessage()||(e.context&&this.suggestionBuilder.addItem(R.Context,e.context),e.source&&this.suggestionBuilder.addItem(R.Source,e.source),e.url&&this.suggestionBuilder.addItem(R.Url,e.url))}setLevelMenuOverridden(e){this.levelMenuButton.setEnabled(!e),e?this.levelMenuButton.setTitle(Oe(He.overriddenByFilterSidebar)):this.updateLevelMenuButtonText()}static levelFilterSetting(){return e.Settings.Settings.instance().createSetting("message-level-filters",P.defaultLevelsFilterValue())}updateCurrentFilter(){const e=this.filterParser.parse(this.textFilterUI.value());for(const{key:t}of e)switch(t){case R.Context:m.userMetrics.actionTaken(m.UserMetrics.Action.ConsoleFilterByContext);break;case R.Source:m.userMetrics.actionTaken(m.UserMetrics.Action.ConsoleFilterBySource);break;case R.Url:m.userMetrics.actionTaken(m.UserMetrics.Action.ConsoleFilterByUrl)}this.hideNetworkMessagesSetting.get()&&e.push({key:R.Source,text:"network",negative:!0,regex:void 0}),this.currentFilter.executionContext=this.filterByExecutionContextSetting.get()?o.Context.Context.instance().flavor(n.RuntimeModel.ExecutionContext):null,this.currentFilter.parsedFilters=e,this.currentFilter.levelsMask=this.messageLevelFiltersSetting.get()}onFilterChanged(){this.updateCurrentFilter(),this.filterChanged()}updateLevelMenuButtonText(){let e=!0,t=!0;const s=P.allLevelsFilterValue(),n=P.defaultLevelsFilterValue();let o=null;const i=this.messageLevelFiltersSetting.get(),r={Verbose:"verbose",Info:"info",Warning:"warning",Error:"error"};for(const a of Object.values(r))e=e&&i[a]===s[a],t=t&&i[a]===n[a],i[a]&&(o=o?Oe(He.customLevels):Oe(He.sOnly,{PH1:String(this.levelLabels.get(a))}));o=e?Oe(He.allLevels):t?Oe(He.defaultLevels):o||Oe(He.hideAll),this.levelMenuButton.element.classList.toggle("warning",!e&&!t),this.levelMenuButton.setText(o),this.levelMenuButton.setTitle(Oe(He.logLevelS,{PH1:o}))}appendLevelMenuItems(e){const t=this.messageLevelFiltersSetting,s=t.get();e.headerSection().appendItem(Oe(He.default),(()=>t.set(P.defaultLevelsFilterValue())),{jslogContext:"default"});for(const[t,o]of this.levelLabels.entries())e.defaultSection().appendCheckboxItem(o,n.bind(null,t),{checked:s[t],jslogContext:t});function n(e){s[e]=!s[e],t.set(s)}}addMessageURLFilter(e){if(!e)return;const t=this.textFilterUI.value()?` ${this.textFilterUI.value()}`:"";this.textFilterUI.setValue(`-url:${e}${t}`),this.textFilterSetting.set(this.textFilterUI.value()),this.onFilterChanged()}shouldBeVisible(e){return this.currentFilter.shouldBeVisible(e)}clear(){this.suggestionBuilder.clear()}reset(){this.messageLevelFiltersSetting.set(P.defaultLevelsFilterValue()),this.filterByExecutionContextSetting.set(!1),this.hideNetworkMessagesSetting.set(!1),this.textFilterUI.setValue(""),this.onFilterChanged()}}const De=new WeakMap,We=new WeakMap;var _e=Object.freeze({__proto__:null,ActionDelegate:class{handleAction(t,s){switch(s){case"console.toggle":return Ne.instance().hasFocus()&&o.InspectorView.InspectorView.instance().drawerVisible()?(o.InspectorView.InspectorView.instance().closeDrawer(),!0):(m.InspectorFrontendHost.InspectorFrontendHostInstance.bringToFront(),e.Console.Console.instance().show(),Ne.instance().focusPrompt(),!0);case"console.clear":return Ne.clearConsole(),!0;case"console.clear.history":return Ne.instance().clearHistory(),!0}return!1}},ConsoleView:Ne,ConsoleViewFilter:Ge});let ze;class $e extends o.Panel.Panel{view;constructor(){super("console"),this.view=Ne.instance()}static instance(e={forceNew:null}){const{forceNew:t}=e;return ze&&!t||(ze=new $e),ze}static updateContextFlavor(){const e=$e.instance().view;o.Context.Context.instance().setFlavor(Ne,e.isShowing()?e:null)}wasShown(){super.wasShown();const e=qe;e?.isShowing()&&o.InspectorView.InspectorView.instance().setDrawerMinimized(!0),this.view.show(this.element),$e.updateContextFlavor()}willHide(){super.willHide(),o.InspectorView.InspectorView.instance().setDrawerMinimized(!1),qe&&qe.showViewInWrapper(),$e.updateContextFlavor()}searchableView(){return Ne.instance().searchableView()}}let qe=null;class Ke extends o.Widget.VBox{view;constructor(){super(),this.view=Ne.instance(),this.element.setAttribute("jslog",`${d.panel("console").track({resize:!0})}`)}static instance(){return qe||(qe=new Ke),qe}wasShown(){$e.instance().isShowing()?o.InspectorView.InspectorView.instance().setDrawerMinimized(!0):this.showViewInWrapper(),$e.updateContextFlavor()}willHide(){o.InspectorView.InspectorView.instance().setDrawerMinimized(!1),$e.updateContextFlavor()}showViewInWrapper(){this.view.show(this.element)}}var Je=Object.freeze({__proto__:null,ConsolePanel:$e,ConsoleRevealer:class{async reveal(e){const t=Ne.instance();t.isShowing()?t.focus():await o.ViewManager.ViewManager.instance().showView("console-view")}},WrapperView:Ke}),Xe={cssText:`#console-prompt .CodeMirror{padding:3px 0 1px}#console-prompt .CodeMirror-line{padding-top:0}#console-prompt .CodeMirror-lines{padding-top:0}#console-prompt .console-prompt-icon{position:absolute;left:-13px;top:2px;user-select:none}.console-eager-preview{padding-bottom:2px;opacity:60%;position:relative}.console-eager-inner-preview{text-overflow:ellipsis;overflow:hidden;margin-left:4px;height:100%;white-space:nowrap}.preview-result-icon{position:absolute;left:-13px;top:-1px}.console-eager-inner-preview:empty,\n.console-eager-inner-preview:empty + .preview-result-icon{opacity:0%}.console-prompt-icon.console-prompt-incomplete{opacity:65%}\n/*# sourceURL=${import.meta.resolve("./consolePrompt.css")} */\n`};const{Direction:Ze}=l.TextEditorHistory,Qe={consolePrompt:"Console prompt",selfXssWarning:"Warning: Don’t paste code into the DevTools Console that you don’t understand or haven’t reviewed yourself. This could allow attackers to steal your identity or take control of your computer. Please type ‘{PH1}’ below and hit Enter to allow pasting.",allowPasting:"allow pasting"},Ye=t.i18n.registerUIStrings("panels/console/ConsolePrompt.ts",Qe),et=t.i18n.getLocalizedString.bind(void 0,Ye);class tt extends(e.ObjectWrapper.eventMixin(o.Widget.Widget)){addCompletionsFromHistory;historyInternal;initialText;editor;eagerPreviewElement;textChangeThrottler;formatter;requestPreviewBound;requestPreviewCurrent=0;innerPreviewElement;promptIcon;iconThrottler;previewRequestForTest;highlightingNode;#c;#d;#h=!1;#u=new a.Compartment;#m(){return this.#h?[]:"true"!==r.Runtime.Runtime.queryParam("noJavaScriptCompletion")?[a.javascript.javascript(),l.JavaScript.completion()]:[a.javascript.javascriptLanguage]}#p(){const e=this.#m(),t=this.#u.reconfigure(e);this.editor.dispatch({effects:t})}constructor(){super(),this.registerRequiredCSS(Xe),this.addCompletionsFromHistory=!0,this.historyInternal=new l.AutocompleteHistory.AutocompleteHistory(e.Settings.Settings.instance().createLocalSetting("console-history",[])),this.initialText="",this.eagerPreviewElement=document.createElement("div"),this.eagerPreviewElement.classList.add("console-eager-preview"),this.textChangeThrottler=new e.Throttler.Throttler(150),this.formatter=new c.RemoteObjectPreviewFormatter.RemoteObjectPreviewFormatter,this.requestPreviewBound=this.requestPreview.bind(this),this.innerPreviewElement=this.eagerPreviewElement.createChild("div","console-eager-inner-preview");const t=new h.Icon.Icon;t.data={iconName:"chevron-left-dot",color:"var(--icon-default)",width:"16px",height:"16px"},t.classList.add("preview-result-icon"),this.eagerPreviewElement.appendChild(t);const s=this.element.createChild("div","console-prompt-editor-container");this.element.appendChild(this.eagerPreviewElement),this.promptIcon=new h.Icon.Icon,this.promptIcon.data={iconName:"chevron-right",color:"var(--icon-action)",width:"16px",height:"16px"},this.promptIcon.classList.add("console-prompt-icon"),this.element.appendChild(this.promptIcon),this.iconThrottler=new e.Throttler.Throttler(0),this.element.tabIndex=0,this.previewRequestForTest=null,this.highlightingNode=!1;const n=l.JavaScript.argumentHints();this.#c=n[0];const o=l.Config.DynamicSetting.bool("console-autocomplete-on-enter",[],l.Config.conservativeCompletion),i=[a.keymap.of(this.editorKeymap()),a.EditorView.updateListener.of((e=>this.editorUpdate(e))),n,o.instance(),l.Config.showCompletionHint,l.Config.baseConfiguration(this.initialText),l.Config.autocompletion.instance(),a.javascript.javascriptLanguage.data.of({autocomplete:e=>this.addCompletionsFromHistory?this.#d.historyCompletions(e):null}),a.EditorView.contentAttributes.of({"aria-label":et(Qe.consolePrompt)}),a.EditorView.lineWrapping,a.autocompletion({aboveCursor:!0}),this.#u.of(this.#m())],r=this.initialText,u=a.EditorState.create({doc:r,extensions:i});this.editor=new l.TextEditor.TextEditor(u),this.editor.addEventListener("keydown",(e=>{e.defaultPrevented&&e.stopPropagation()})),s.appendChild(this.editor),this.#d=new l.TextEditorHistory.TextEditorHistory(this.editor,this.historyInternal),this.hasFocus()&&this.focus(),this.element.removeAttribute("tabindex"),this.editorSetForTest(),m.userMetrics.panelLoaded("console","DevTools.Launch.Console"),this.element.setAttribute("jslog",`${d.textField("console-prompt").track({change:!0,keydown:"Enter|ArrowUp|ArrowDown|PageUp"})}`)}belowEditorElement(){return this.eagerPreviewElement}onTextChanged(){this.updatePromptIcon(),this.dispatchEventToListeners("TextChanged")}async requestPreview(){const e=++this.requestPreviewCurrent,t=l.Config.contentIncludingHint(this.editor.editor).trim(),s=o.Context.Context.instance().flavor(n.RuntimeModel.ExecutionContext),{preview:i,result:r}=await c.JavaScriptREPL.JavaScriptREPL.evaluateAndBuildPreview(t,!0,!0,500);this.requestPreviewCurrent===e&&(this.innerPreviewElement.removeChildren(),i.deepTextContent()!==l.Config.contentIncludingHint(this.editor.editor).trim()&&this.innerPreviewElement.appendChild(i),r&&"object"in r&&r.object&&"node"===r.object.subtype?(this.highlightingNode=!0,n.OverlayModel.OverlayModel.highlightObjectAsDOMNode(r.object)):this.highlightingNode&&(this.highlightingNode=!1,n.OverlayModel.OverlayModel.hideDOMNodeHighlight()),r&&s&&s.runtimeModel.releaseEvaluationResult(r))}willHide(){super.willHide(),this.highlightingNode&&(this.highlightingNode=!1,n.OverlayModel.OverlayModel.hideDOMNodeHighlight())}history(){return this.historyInternal}clearAutocomplete(){a.closeCompletion(this.editor.editor)}isCaretAtEndOfPrompt(){return this.editor.state.selection.main.head===this.editor.state.doc.length}moveCaretToEndOfPrompt(){this.editor.dispatch({selection:a.EditorSelection.cursor(this.editor.state.doc.length)})}clear(){this.editor.dispatch({changes:{from:0,to:this.editor.state.doc.length}})}text(){return this.editor.state.doc.toString()}setAddCompletionsFromHistory(e){this.addCompletionsFromHistory=e}editorKeymap(){return[{key:"ArrowUp",run:()=>this.#d.moveHistory(-1)},{key:"ArrowDown",run:()=>this.#d.moveHistory(1)},{mac:"Ctrl-p",run:()=>this.#d.moveHistory(-1,!0)},{mac:"Ctrl-n",run:()=>this.#d.moveHistory(1,!0)},{key:"Escape",run:()=>l.JavaScript.closeArgumentsHintsTooltip(this.editor.editor,this.#c)},{key:"Ctrl-Enter",run:()=>(this.handleEnter(!0),!0)},{key:"Enter",run:()=>(this.handleEnter(),!0),shift:a.insertNewlineAndIndent}]}async enterWillEvaluate(e){const{doc:t,selection:s}=this.editor.state;if(!t.length)return!1;if(e||s.main.head{this.promptIcon.classList.toggle("console-prompt-incomplete",!await this.enterWillEvaluate())}))}appendCommand(e,t){const s=o.Context.Context.instance().flavor(n.RuntimeModel.ExecutionContext);if(s){const o=s,i=o.target().model(n.ConsoleModel.ConsoleModel);if(i){const s=i.addCommandMessage(o,e),n=c.JavaScriptREPL.JavaScriptREPL.wrapObjectLiteral(e);this.evaluateCommandInConsole(o,s,n,t),$e.instance().isShowing()&&m.userMetrics.actionTaken(m.UserMetrics.Action.CommandEvaluatedInConsolePanel)}}}async evaluateCommandInConsole(e,t,s,o){const i=e.debuggerModel.selectedCallFrame();if(i?.script.isJavaScript()){const e=await y.NamesResolver.allVariablesInCallFrame(i);s=await this.substituteNames(s,e)}await(e.target().model(n.ConsoleModel.ConsoleModel)?.evaluateCommandInConsole(e,t,s,o))}async substituteNames(e,t){try{return await I.FormatterWorkerPool.formatterWorkerPool().javaScriptSubstitute(e,t)}catch{return e}}editorUpdate(e){e.docChanged||a.selectedCompletion(e.state)!==a.selectedCompletion(e.startState)?this.onTextChanged():e.selectionSet&&this.updatePromptIcon()}focus(){this.editor.focus()}editorSetForTest(){}}var st=Object.freeze({__proto__:null,ConsolePrompt:tt});export{A as ConsoleContextSelector,U as ConsoleFilter,V as ConsoleFormat,Je as ConsolePanel,K as ConsolePinPane,st as ConsolePrompt,oe as ConsoleSidebar,_e as ConsoleView,Pe as ConsoleViewMessage,Be as ConsoleViewport,de as ErrorStackParser}; diff --git a/packages/debugger-frontend/dist/third-party/front_end/panels/network/network.js b/packages/debugger-frontend/dist/third-party/front_end/panels/network/network.js index 34c54d5c0370e0..0b1f235f45c596 100644 --- a/packages/debugger-frontend/dist/third-party/front_end/panels/network/network.js +++ b/packages/debugger-frontend/dist/third-party/front_end/panels/network/network.js @@ -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"../../ui/components/legacy_wrapper/legacy_wrapper.js";import*as S from"./components/components.js";import*as y from"../../ui/legacy/components/cookie_table/cookie_table.js";import*as T from"../../ui/legacy/components/object_ui/object_ui.js";import*as x from"../../models/text_utils/text_utils.js";import*as R from"../../core/root/root.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;ethis.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 ro?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{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;rs?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 y.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 y.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 T.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)&&x.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(x.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{e.map((e=>i.appendToolbarItem(e)))})),t}async htmlPreview(){const t=await this.request.requestContentData();if(x.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 C.LegacyWrapper.legacyWrapper(e.Widget.VBox,new S.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){t0)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",lt&&r("push",Math.max(a.pushStart,t),e)}le.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"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 T.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 T.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(x.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(x.StreamingContentData.StreamingContentData.from(new x.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 S.RequestHeadersView.RequestHeadersView(i),this.appendTab("headers-component",At(Pt.headers),C.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)}}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),C.LegacyWrapper.legacyWrapper(e.Widget.VBox,new S.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&&!S.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||"