UNPKG

@react-native/debugger-frontend

Version:
1 lines 74.8 kB
import*as e from"../../core/common/common.js";import*as t from"../../models/issues_manager/issues_manager.js";import*as s from"../../ui/legacy/legacy.js";import*as i from"../../core/i18n/i18n.js";import*as n from"../../ui/components/issue_counter/issue_counter.js";import*as r from"../../ui/visual_logging/visual_logging.js";import*as a from"../../ui/components/adorners/adorners.js";import*as o from"../../ui/components/icon_button/icon_button.js";import*as d from"./components/components.js";import*as l from"../../core/host/host.js";import*as c from"../network/forward/forward.js";import*as u from"../../ui/components/markdown_view/markdown_view.js";import*as p from"../../core/sdk/sdk.js";import*as h from"../../models/logs/logs.js";import*as g from"../../ui/components/request_link_icon/request_link_icon.js";import*as f from"../../ui/legacy/components/utils/utils.js";import*as m from"../../core/platform/platform.js";class C extends t.Issue.Issue{#e=new Map;#t=new Map;#s=[];#i=new Set;#n=new Map;#r=new Set;#a=new Map;#o=new Set;#d=new Set;#l=new Set;#c=new Set;#u="Improvement";#p=new Set;#h=new Set;#g=new Set;#f=new Set;#m=new Set;#C=new Set;#I=new Set;#b=new Set;#w=new Set;#R;#v=0;#k;constructor(e,t){super(e),this.#k=t}primaryKey(){throw new Error("This should never be called")}aggregationKey(){return this.#k}getBlockedByResponseDetails(){return this.#a.values()}cookies(){return Array.from(this.#e.values()).map((e=>e.cookie))}getRawCookieLines(){return this.#t.values()}sources(){return this.#n.values()}getBounceTrackingSites(){return this.#o.values()}cookiesWithRequestIndicator(){return this.#e.values()}getHeavyAdIssues(){return this.#r}getCookieDeprecationMetadataIssues(){return this.#h}getMixedContentIssues(){return this.#g}getCorsIssues(){return this.#d}getCspIssues(){return this.#l}getDeprecationIssues(){return this.#c}getLowContrastIssues(){return this.#p}requests(){return this.#s.values()}getSharedArrayBufferIssues(){return this.#m}getQuirksModeIssues(){return this.#C}getAttributionReportingIssues(){return this.#I}getGenericIssues(){return this.#b}getSelectElementAccessibilityIssues(){return this.#w}getDescription(){return this.#R?this.#R.getDescription():null}getCategory(){return this.#R?this.#R.getCategory():"Other"}getAggregatedIssuesCount(){return this.#v}getPartitioningBlobURLIssues(){return this.#f}#y(e){const{domain:t,path:s,name:i}=e;return`${t};${s};${i}`}addInstance(e){this.#v++,this.#R||(this.#R=e),this.#u=t.Issue.unionIssueKind(this.#u,e.getKind());let s=!1;for(const t of e.requests()){const{requestId:e}=t;s=!0,void 0===e?this.#s.push(t):this.#i.has(e)||(this.#s.push(t),this.#i.add(e))}for(const t of e.cookies()){const e=this.#y(t);this.#e.has(e)||this.#e.set(e,{cookie:t,hasRequest:s})}for(const t of e.rawCookieLines())this.#t.has(t)||this.#t.set(t,{rawCookieLine:t,hasRequest:s});for(const t of e.trackingSites())this.#o.has(t)||this.#o.add(t);for(const t of e.sources()){const e=JSON.stringify(t);this.#n.has(e)||this.#n.set(e,t)}e instanceof t.CookieDeprecationMetadataIssue.CookieDeprecationMetadataIssue&&this.#h.add(e),e instanceof t.MixedContentIssue.MixedContentIssue&&this.#g.add(e),e instanceof t.HeavyAdIssue.HeavyAdIssue&&this.#r.add(e);for(const t of e.getBlockedByResponseDetails()){const e=JSON.stringify(t,["parentFrame","blockedFrame","requestId","frameId","reason","request"]);this.#a.set(e,t)}e instanceof t.ContentSecurityPolicyIssue.ContentSecurityPolicyIssue&&this.#l.add(e),e instanceof t.DeprecationIssue.DeprecationIssue&&this.#c.add(e),e instanceof t.SharedArrayBufferIssue.SharedArrayBufferIssue&&this.#m.add(e),e instanceof t.LowTextContrastIssue.LowTextContrastIssue&&this.#p.add(e),e instanceof t.CorsIssue.CorsIssue&&this.#d.add(e),e instanceof t.QuirksModeIssue.QuirksModeIssue&&this.#C.add(e),e instanceof t.AttributionReportingIssue.AttributionReportingIssue&&this.#I.add(e),e instanceof t.GenericIssue.GenericIssue&&this.#b.add(e),e instanceof t.SelectElementAccessibilityIssue.SelectElementAccessibilityIssue&&this.#w.add(e),e instanceof t.PartitioningBlobURLIssue.PartitioningBlobURLIssue&&this.#f.add(e)}getKind(){return this.#u}isHidden(){return this.#R?.isHidden()||!1}setHidden(e){throw new Error("Should not call setHidden on aggregatedIssue")}}class I extends e.ObjectWrapper.ObjectWrapper{issuesManager;#A=new Map;#S=new Map;constructor(e){super(),this.issuesManager=e,this.issuesManager.addEventListener("IssueAdded",this.#x,this),this.issuesManager.addEventListener("FullUpdateRequired",this.#T,this);for(const e of this.issuesManager.issues())this.#E(e)}#x(e){this.#E(e.data.issue)}#T(){this.#A.clear(),this.#S.clear();for(const e of this.issuesManager.issues())this.#E(e);this.dispatchEventToListeners("FullUpdateRequired")}#E(e){if(["WarnThirdPartyCookieHeuristic","WarnDeprecationTrialMetadata"].some((t=>e.code().includes(t))))return;const t=e.isHidden()?this.#S:this.#A,s=this.#L(t,e);return this.dispatchEventToListeners("AggregatedIssueUpdated",s),s}#L(e,t){const s=t.code();let i=e.get(s);return i||(i=new C(t.code(),s),e.set(s,i)),i.addInstance(t),i}aggregatedIssues(){return[...this.#A.values(),...this.#S.values()]}hiddenAggregatedIssues(){return this.#S.values()}aggregatedIssueCodes(){return new Set([...this.#A.keys(),...this.#S.keys()])}aggregatedIssueCategories(){const e=new Set;for(const t of this.#A.values())e.add(t.getCategory());return e}aggregatedIssueKinds(){const e=new Set;for(const t of this.#A.values())e.add(t.getKind());return e}numberOfAggregatedIssues(){return this.#A.size}numberOfHiddenAggregatedIssues(){return this.#S.size}keyForIssue(e){return e.code()}}var b=Object.freeze({__proto__:null,AggregatedIssue:C,IssueAggregator:I});const w={hiddenIssues:"Hidden issues",unhideAll:"Unhide all"},R=i.i18n.registerUIStrings("panels/issues/HiddenIssuesRow.ts",w),v=i.i18n.getLocalizedString.bind(void 0,R);class k extends s.TreeOutline.TreeElement{#P;constructor(){super(void 0,!0),this.#P=document.createElement("span"),this.toggleOnClick=!0,this.listItemElement.classList.add("issue-category","hidden-issues"),this.childrenListElement.classList.add("hidden-issues-body"),this.#D()}#D(){const e=s.UIUtils.createTextButton(v(w.unhideAll),(()=>t.IssuesManager.IssuesManager.instance().unhideAllIssues()),{className:"unhide-all-issues-button",jslogContext:"issues.unhide-all-hiddes"}),i=new a.Adorner.Adorner;i.data={name:"countWrapper",content:this.#P},i.classList.add("aggregated-issues-count"),this.#P.textContent="0";const n=document.createElement("div"),r=document.createElement("div");n.classList.add("header"),r.classList.add("title"),r.textContent=v(w.hiddenIssues),n.appendChild(i),n.appendChild(r),n.appendChild(e),this.listItemElement.appendChild(n)}update(e){this.#P.textContent=`${e}`}}const y={hideAllCurrentPageErrors:"Hide all current Page Errors",hideAllCurrentBreakingChanges:"Hide all current Breaking Changes",hideAllCurrentImprovements:"Hide all current Improvements"},A=i.i18n.registerUIStrings("panels/issues/IssueKindView.ts",y),S=i.i18n.getLocalizedString.bind(void 0,A);function x(){return e.Settings.Settings.instance().createSetting("group-issues-by-kind",!1)}class T extends s.TreeOutline.TreeElement{#M;#q;constructor(e){super(void 0,!0),this.#M=e,this.#q=document.createElement("span"),this.toggleOnClick=!0,this.listItemElement.classList.add("issue-kind"),this.listItemElement.classList.add(function(e){switch(e){case"BreakingChange":return"breaking-changes";case"Improvement":return"improvements";case"PageError":return"page-errors"}}(e)),this.childrenListElement.classList.add("issue-kind-body")}getKind(){return this.#M}getHideAllCurrentKindString(){switch(this.#M){case"PageError":return S(y.hideAllCurrentPageErrors);case"Improvement":return S(y.hideAllCurrentImprovements);case"BreakingChange":return S(y.hideAllCurrentBreakingChanges)}}#D(){const e=document.createElement("div");e.classList.add("header");const s=new o.Icon.Icon;s.data=n.IssueCounter.getIssueKindIconData(this.#M),s.classList.add("leading-issue-icon");const i=new a.Adorner.Adorner;i.data={name:"countWrapper",content:this.#q},i.classList.add("aggregated-issues-count"),this.#q.textContent="0";const r=document.createElement("div");r.classList.add("title"),r.textContent=t.Issue.getIssueKindName(this.#M);const l=new d.HideIssuesMenu.HideIssuesMenu;l.classList.add("hide-available-issues"),l.data={menuItemLabel:this.getHideAllCurrentKindString(),menuItemAction:()=>{const e=t.IssuesManager.getHideIssueByCodeSetting(),s=e.get();for(const e of t.IssuesManager.IssuesManager.instance().issues())e.getKind()===this.#M&&(s[e.code()]="Hidden");e.set(s)}},e.appendChild(s),e.appendChild(i),e.appendChild(r),e.appendChild(l),this.listItemElement.appendChild(e)}onattach(){this.#D(),this.expand()}update(e){this.#q.textContent=`${e}`}}var E={cssText:`.issues-pane{overflow:hidden}.issues-toolbar-container{display:flex;flex:none}.issues-toolbar-container > devtools-toolbar{background-color:var(--sys-color-cdt-base-container);border-bottom:1px solid var(--sys-color-divider)}.issues-toolbar-left{flex:1 1 auto}.issues-toolbar-right{padding-right:6px}\n/*# sourceURL=${import.meta.resolve("./issuesPane.css")} */\n`},L={cssText:`:host,\n.issues{padding:0;overflow:auto}.issues{--issue-indent:8px}.tree-outline.issues > li{min-height:var(--sys-size-13)}.issues li{white-space:normal;align-items:flex-start}.issues .always-parent::before{display:none}.issues li.parent::before{margin-top:7px}.issues .affected-resources li.parent::before{margin-top:0}.issue-category,\n.issue-kind,\n.issue{padding:0 8px;padding-left:var(--issue-indent);overflow:hidden;flex:none;transition:background-color 200ms;border:1px solid var(--sys-color-divider);border-width:0 0 1px}.issue-category.hidden-issues.parent.expanded,\n.issue-kind.parent.expanded{border-width:0 0 1px;background-color:var(--sys-color-surface2)}.issue-category + .children .issue,\n.issue.expanded{background:var(--sys-color-cdt-base-container)}.issue.expanded{border-width:0}.issue.selected,\n.issue.expanded.selected{background-color:var(--sys-color-surface2);&:focus{background-color:var(--sys-color-tonal-container)}}.tree-outline li:not(.selected):hover .selection{background-color:unset}.tree-outline li.issue:not(.expanded, .selected):hover .selection{background-color:var(--sys-color-state-hover-on-subtle)}.tree-outline li.issue.expanded:not(.selected):hover{background-color:var(--sys-color-state-hover-on-subtle)}.unhide-all-issues-button{margin:0}p{margin-block:2px}.tree-outline-disclosure:not(.tree-outline-disclosure-hide-overflow) .tree-outline.hide-selection-when-blurred .issue-category.selected:focus-visible,\n.tree-outline-disclosure:not(.tree-outline-disclosure-hide-overflow) .tree-outline.hide-selection-when-blurred .issue-kind.selected:focus-visible,\n.tree-outline-disclosure:not(.tree-outline-disclosure-hide-overflow) .tree-outline.hide-selection-when-blurred .issue.selected:focus-visible{width:auto;padding-right:8px}.header{display:flex;flex-direction:row;align-items:flex-start;padding:4px 0;cursor:pointer;width:100%;& > :not(.unhide-all-issues-button){margin-top:var(--sys-size-2)}}.header devtools-hide-issues-menu{visibility:hidden}.header:hover devtools-hide-issues-menu,\n.issue.selected devtools-hide-issues-menu{visibility:visible}.title{flex:1;font-size:12px;color:var(--sys-color-on-surface);font-weight:normal;user-select:text;padding-top:2px}.issue.expanded .title{font-weight:450}.issue-body.children{border-bottom:1px solid var(--sys-color-divider);padding:6px 0;position:relative;padding-left:calc(var(--issue-indent) + 43px);padding-bottom:26px;padding-right:8px}.issue-category + .children,\n.issue-kind + .children{--issue-indent:24px;padding-left:0}.issue-body::before{content:"";display:block;position:absolute;left:calc(var(--issue-indent) + 23px);top:0;bottom:20px;width:2px}.issue-kind-breaking-change.issue-body::before{border-left:2px solid var(--issue-color-yellow)}.issue-kind-page-error.issue-body::before{border-left:2px solid var(--issue-color-red)}.issue-kind-improvement.issue-body::before{border-left:2px solid var(--issue-color-blue)}.tree-outline .issue-body li:hover:not(:has(dt-checkbox)) .selection{background-color:unset}devtools-icon.leading-issue-icon{margin:1px 0 -1px 7px}.message{line-height:18px;font-size:12px;color:var(--sys-color-token-subtle);margin-bottom:4px;user-select:text}.message p{margin-bottom:16px}.message li{margin-top:8px}.message code{color:var(--sys-color-on-surface);padding:0 2px;font-size:12px;user-select:text;cursor:text;background:var(--sys-color-surface2)}.separator::before{content:"·";padding-left:1ex;padding-right:1ex}.link{font-size:12px;color:var(--sys-color-primary)}.link-wrapper{margin-top:15px;user-select:text}.affected-resources-label,\n.resolutions-label{margin-top:5px;font-size:10px;font-weight:500;letter-spacing:0.06em;text-transform:uppercase;color:var(--sys-color-on-surface);display:inline-block}.link-list{list-style-type:none;list-style-position:inside;padding-inline-start:0}.resolutions-list{list-style-type:none;list-style-position:inside;padding-inline-start:0}.link-list li::before{content:none;mask-image:none}.resolutions-list li::before{content:"→";mask-image:none;padding-right:5px;position:relative;top:-1px}.resolutions-list li{display:list-item}ul > li.plain-enum{display:list-item}ul > li.plain-enum::before{content:"";padding:0;margin:0;max-width:0}.affected-resources-label + .affected-resources{padding:3px 0 0;position:relative;user-select:text}.affected-resource-label{font-size:12px;line-height:18px;color:var(--sys-color-on-surface);position:relative;cursor:pointer}.affected-resource-cookie{font-size:12px;line-height:18px;border:0;border-collapse:collapse}.affected-resource-element{font-size:12px;line-height:18px;color:var(--sys-color-primary);border:0;border-collapse:collapse}.affected-resource-row{font-size:12px;line-height:18px;border:0;border-collapse:collapse;vertical-align:top}.affected-resource-mixed-content{font-size:12px;line-height:18px;border:0;border-collapse:collapse}.affected-resource-heavy-ad{font-size:12px;line-height:18px;border:0;border-collapse:collapse}.affected-resource-request{font-size:12px;line-height:18px;border:0;border-collapse:collapse}.affected-resource-source{font-size:12px;line-height:18px;color:var(--sys-color-primary);border:0;border-collapse:collapse}.affected-resource-list{border-spacing:10px 0;margin-left:-12px}.affected-resource-header{font-size:12px;color:var(--sys-color-on-surface);padding-left:2px}.code-example{font-family:var(--monospace-font-family);font-size:var(--monospace-font-size)}.affected-resource-blocked-status{color:var(--issue-color-red)}.affected-resource-report-only-status{color:var(--issue-color-yellow)}.affected-resource-cookie-info{color:var(--sys-color-token-subtle);padding:2px;text-align:right}.affected-resource-cookie-info-header{text-align:right}.affected-resource-mixed-content-info{color:var(--sys-color-token-subtle);padding:2px}.affected-resource-heavy-ad-info{color:var(--sys-color-token-subtle);padding:2px}.affected-resource-heavy-ad-info-frame{display:flex;align-items:center;color:var(--sys-color-token-subtle);padding:2px}.affected-resource-cell{color:var(--sys-color-token-subtle);padding:2px}.affected-resource-cell.link{color:var(--sys-color-primary)}.affected-resource-cell span.icon{margin-right:0.5ex;vertical-align:sub}.affected-resources > .parent{margin-top:0;padding:2px 5px 0}.affected-resources > .parent.expanded{background:var(--sys-color-cdt-base-container)}.affected-resources > .children.expanded{background:var(--sys-color-cdt-base-container);padding:6px 0 9px 5px}.aggregated-issues-count{padding:3px 7px 0}.affected-resource-directive-info-header{text-align:left}.affected-resource-directive{font-size:12px;line-height:18px;border:0;border-collapse:collapse}.affected-resource-directive-info{color:var(--sys-color-token-subtle);padding:2px;text-align:left}.devtools-link{padding-top:4px}devtools-icon.link-icon{vertical-align:sub;margin-right:0.5ch}devtools-icon.elements-panel,\ndevtools-icon.network-panel{margin-right:0.5ex;vertical-align:baseline;height:14px}@media (forced-colors: active){.title{color:ButtonText}.tree-outline:not(.hide-selection-when-blurred) .selected .header .title,\n .tree-outline.hide-selection-when-blurred .selected:focus-visible .header .title{color:HighlightText}}\n/*# sourceURL=${import.meta.resolve("./issuesTree.css")} */\n`};const P={unknown:"unknown",clickToRevealTheFramesDomNodeIn:"Click to reveal the frame's DOM node in the Elements panel",unavailable:"unavailable"},D=i.i18n.registerUIStrings("panels/issues/AffectedResourcesView.ts",P),M=i.i18n.getLocalizedString.bind(void 0,D);class q extends s.TreeOutline.TreeElement{#O;issue;affectedResourcesCountElement;affectedResources;#U;#N;#V;requestResolver;constructor(e,t,s){super(void 0,void 0,s),this.#O=e,this.issue=t,this.toggleOnClick=!0,this.affectedResourcesCountElement=this.createAffectedResourcesCounter(),this.affectedResources=this.createAffectedResources(),this.#U=0,this.requestResolver=new h.RequestResolver.RequestResolver,this.#N=[],this.#V=new Set}setIssue(e){this.issue=e}createAffectedResourcesCounter(){const e=document.createElement("div");return e.classList.add("affected-resource-label"),this.listItemElement.appendChild(e),e}createAffectedResources(){const e=new s.TreeOutline.TreeElement,t=document.createElement("table");return t.classList.add("affected-resource-list"),e.listItemElement.appendChild(t),this.appendChild(e),t}updateAffectedResourceCount(e){this.#U=e,this.affectedResourcesCountElement.textContent=this.getResourceNameWithCount(e),this.hidden=0===this.#U,this.#O.updateAffectedResourceVisibility()}isEmpty(){return 0===this.#U}clear(){this.affectedResources.textContent="",this.requestResolver.clear()}expandIfOneResource(){1===this.#U&&this.expand()}#H(e){const t=p.FrameManager.FrameManager.instance().getFrame(e);if(!(t&&t.url||(this.#V.add(e),this.#N.length))){const e=p.FrameManager.FrameManager.instance().addEventListener("FrameAddedToTarget",this.#B,this),t=p.FrameManager.FrameManager.instance().addEventListener("FrameNavigated",this.#B,this);this.#N=[e,t]}return t}#B(t){const s=t.data.frame;if(!s.url)return;const i=this.#V.delete(s.id);0===this.#V.size&&this.#N.length&&(e.EventTarget.removeEventListeners(this.#N),this.#N=[]),i&&this.update()}createFrameCell(t,s){const i=this.#H(t),n=i&&(i.unreachableUrl()||i.url)||M(P.unknown),r=document.createElement("td");if(r.classList.add("affected-resource-cell"),i){const i=new o.Icon.Icon;i.data={iconName:"code-circle",color:"var(--icon-link)",width:"16px",height:"16px"},i.classList.add("link","elements-panel"),i.onclick=async()=>{l.userMetrics.issuesPanelResourceOpened(s,"Element");const i=p.FrameManager.FrameManager.instance().getFrame(t);if(i){const t=await i.getOwnerDOMNodeOrDocument();t&&e.Revealer.reveal(t)}},i.title=M(P.clickToRevealTheFramesDomNodeIn),r.appendChild(i)}return r.appendChild(document.createTextNode(n)),r.onmouseenter=()=>{const e=p.FrameManager.FrameManager.instance().getFrame(t);e&&e.highlight()},r.onmouseleave=()=>p.OverlayModel.OverlayModel.hideDOMNodeHighlight(),r}createRequestCell(e,t={}){const s=document.createElement("td");s.classList.add("affected-resource-cell");const i=new g.RequestLinkIcon.RequestLinkIcon;return i.data={...t,affectedRequest:e,requestResolver:this.requestResolver,displayURL:!0},s.appendChild(i),s}async createElementCell({backendNodeId:t,nodeName:s,target:i},n){if(!i){const e=document.createElement("td");return e.textContent=s||M(P.unavailable),e}function r(){l.userMetrics.issuesPanelResourceOpened(n,"Element")}const a=new p.DOMModel.DeferredDOMNode(i,t),o=await e.Linkifier.Linkifier.linkify(a);o.textContent=s,o.addEventListener("click",(()=>r())),o.addEventListener("keydown",(e=>{"Enter"===e.key&&r()}));const d=document.createElement("td");return d.classList.add("affected-resource-element","devtools-link"),d.appendChild(o),d}appendSourceLocation(e,t,s){const i=document.createElement("td");if(i.classList.add("affected-source-location"),t){const e=40,n=new f.Linkifier.Linkifier(e).linkifyScriptLocation(s||null,t.scriptId||null,t.url,t.lineNumber,{columnNumber:t.columnNumber,inlineFrameIndex:0});n.setAttribute("jslog",`${r.link("source-location").track({click:!0})}`),i.appendChild(n)}e.appendChild(i)}appendColumnTitle(e,t,s=null){const i=document.createElement("td");i.classList.add("affected-resource-header"),s&&i.classList.add(s),i.textContent=t,e.appendChild(i)}createIssueDetailCell(e,t=null){const s=document.createElement("td");return"string"==typeof e?s.textContent=e:s.appendChild(e),t&&s.classList.add(t),s}appendIssueDetailCell(e,t,s=null){const i=this.createIssueDetailCell(t,s);return e.appendChild(i),i}}const O={nRequests:"{n, plural, =1 {# request} other {# requests}}",requestC:"Request",parentFrame:"Parent Frame",blockedResource:"Blocked Resource"},U=i.i18n.registerUIStrings("panels/issues/AffectedBlockedByResponseView.ts",O),N=i.i18n.getLocalizedString.bind(void 0,U);class V extends q{#F(e){const t=document.createElement("tr");this.appendColumnTitle(t,N(O.requestC)),this.appendColumnTitle(t,N(O.parentFrame)),this.appendColumnTitle(t,N(O.blockedResource)),this.affectedResources.appendChild(t);let s=0;for(const t of e)this.#W(t),s++;this.updateAffectedResourceCount(s)}getResourceNameWithCount(e){return N(O.nRequests,{n:e})}#W(e){const t=document.createElement("tr");t.classList.add("affected-resource-row");const s=this.createRequestCell(e.request,{additionalOnClickAction(){l.userMetrics.issuesPanelResourceOpened("CrossOriginEmbedderPolicy","Request")}});if(t.appendChild(s),e.parentFrame){const s=this.createFrameCell(e.parentFrame.frameId,this.issue.getCategory());t.appendChild(s)}else t.appendChild(document.createElement("td"));if(e.blockedFrame){const s=this.createFrameCell(e.blockedFrame.frameId,this.issue.getCategory());t.appendChild(s)}else t.appendChild(document.createElement("td"));this.affectedResources.appendChild(t)}update(){this.clear(),this.#F(this.issue.getBlockedByResponseDetails())}}const H={nCookies:"{n, plural, =1 {# cookie} other {# cookies}}",name:"Name",domain:"Domain",path:"Path",nRawCookieLines:"{n, plural, =1 {1 Raw `Set-Cookie` header} other {# Raw `Set-Cookie` headers}}",filterSetCookieTitle:"Show network requests that include this `Set-Cookie` header in the network panel"},B=i.i18n.registerUIStrings("panels/issues/AffectedCookiesView.ts",H),F=i.i18n.getLocalizedString.bind(void 0,B);class W extends q{getResourceNameWithCount(e){return F(H.nCookies,{n:e})}#K(e){const t=document.createElement("tr");this.appendColumnTitle(t,F(H.name)),this.appendColumnTitle(t,F(H.domain)+" & "+F(H.path),"affected-resource-cookie-info-header"),this.affectedResources.appendChild(t);let s=0;for(const t of e)s++,this.#z(t.cookie,t.hasRequest);this.updateAffectedResourceCount(s)}#z(t,s){const i=document.createElement("tr");i.classList.add("affected-resource-cookie");const n=document.createElement("td");if(s){const s=document.createElement("button");s.classList.add("link","devtools-link"),s.textContent=t.name,s.tabIndex=0,s.setAttribute("jslog",`${r.link("issues.filter-network-requests-by-cookie").track({click:!0})}`),s.addEventListener("click",(()=>{l.userMetrics.issuesPanelResourceOpened(this.issue.getCategory(),"Cookie"),e.Revealer.reveal(c.UIFilter.UIRequestFilter.filters([{filterType:c.UIFilter.FilterType.CookieDomain,filterValue:t.domain},{filterType:c.UIFilter.FilterType.CookieName,filterValue:t.name},{filterType:c.UIFilter.FilterType.CookiePath,filterValue:t.path}]))})),n.appendChild(s)}else n.textContent=t.name;i.appendChild(n),this.appendIssueDetailCell(i,`${t.domain}${t.path}`,"affected-resource-cookie-info"),this.affectedResources.appendChild(i)}update(){this.clear(),this.#K(this.issue.cookiesWithRequestIndicator())}}class K extends q{getResourceNameWithCount(e){return F(H.nRawCookieLines,{n:e})}update(){this.clear();const t=this.issue.getRawCookieLines();let s=0;for(const i of t){const t=document.createElement("tr");if(t.classList.add("affected-resource-directive"),i.hasRequest){const s=document.createElement("td"),n=document.createElement("button");n.classList.add("link","devtools-link"),n.textContent=i.rawCookieLine,n.title=F(H.filterSetCookieTitle),n.tabIndex=0,n.setAttribute("jslog",`${r.link("issues.filter-network-requests-by-raw-cookie").track({click:!0})}`),n.addEventListener("click",(()=>{e.Revealer.reveal(c.UIFilter.UIRequestFilter.filters([{filterType:c.UIFilter.FilterType.ResponseHeaderValueSetCookie,filterValue:i.rawCookieLine}]))})),s.appendChild(n),t.appendChild(s)}else this.appendIssueDetailCell(t,i.rawCookieLine);this.affectedResources.appendChild(t),s++}this.updateAffectedResourceCount(s)}}const z={nElements:"{n, plural, =1 {# element} other {# elements}}"},j=i.i18n.registerUIStrings("panels/issues/AffectedElementsView.ts",z),_=i.i18n.getLocalizedString.bind(void 0,j);class $ extends q{async#j(e){let t=0;for(const s of e)await this.#_(s),t++;this.updateAffectedResourceCount(t)}getResourceNameWithCount(e){return _(z.nElements,{n:e})}async#_(e){const t=await this.createElementCell(e,this.issue.getCategory()),s=document.createElement("tr");s.appendChild(t),this.affectedResources.appendChild(s)}update(){this.clear(),this.#j(this.issue.elements())}}const Q={nDescendants:"{n, plural, =1 { descendant} other { descendants}}",disallowedNode:"Disallowed descendant"},G=i.i18n.registerUIStrings("panels/issues/AffectedDescendantsWithinSelectElementView.ts",Q),J=i.i18n.getLocalizedString.bind(void 0,G);class X extends ${#$=Promise.resolve();update(){this.#$=this.#$.then(this.#Q.bind(this))}getResourceName(e){return J(Q.nDescendants,{n:e})}async#Q(){this.clear(),await this.#G(this.issue.getSelectElementAccessibilityIssues())}async#J(e){const t=document.createElement("tr");t.classList.add("affected-resource-select-element-descendant");const s=e.details(),i=e.model()?.target()||null;t.appendChild(await this.createElementCell({nodeName:J(Q.disallowedNode),backendNodeId:s.nodeId,target:i},e.getCategory())),this.affectedResources.appendChild(t)}async#G(e){let t=0;for(const s of e)t++,await this.#J(s);this.updateAffectedResourceCount(t)}}const Z={nDirectives:"{n, plural, =1 {# directive} other {# directives}}",reportonly:"report-only",blocked:"blocked",clickToRevealTheViolatingDomNode:"Click to reveal the violating DOM node in the Elements panel",directiveC:"Directive",element:"Element",sourceLocation:"Source location",status:"Status",resourceC:"Resource"},Y=i.i18n.registerUIStrings("panels/issues/AffectedDirectivesView.ts",Z),ee=i.i18n.getLocalizedString.bind(void 0,Y);class te extends q{#X(e,t){const s=document.createElement("td");t?(s.classList.add("affected-resource-report-only-status"),s.textContent=ee(Z.reportonly)):(s.classList.add("affected-resource-blocked-status"),s.textContent=ee(Z.blocked)),e.appendChild(s)}getResourceNameWithCount(e){return ee(Z.nDirectives,{n:e})}#Z(e,t){const s=document.createElement("td");s.textContent=t,e.appendChild(s)}#Y(e,t){const s=document.createElement("td");s.classList.add("affected-resource-directive-info"),s.textContent=t,e.appendChild(s)}#ee(t,s,i){const n=new d.ElementsPanelLink.ElementsPanelLink;if(s){const t=s;n.title=ee(Z.clickToRevealTheViolatingDomNode);const r=()=>{const s=i.getTargetIfNotDisposed();if(s){l.userMetrics.issuesPanelResourceOpened(this.issue.getCategory(),"Element");const i=new p.DOMModel.DeferredDOMNode(s,t);e.Revealer.reveal(i)}},a=()=>{const e=i.getTargetIfNotDisposed();if(e){const s=new p.DOMModel.DeferredDOMNode(e,t);s&&s.highlight()}},o=()=>{p.OverlayModel.OverlayModel.hideDOMNodeHighlight()};n.data={onElementRevealIconClick:r,onElementRevealIconMouseEnter:a,onElementRevealIconMouseLeave:o}}const r=document.createElement("td");r.classList.add("affected-resource-csp-info-node"),r.appendChild(n),t.appendChild(r)}#te(e){const s=document.createElement("tr");if(this.issue.code()===t.ContentSecurityPolicyIssue.inlineViolationCode)this.appendColumnTitle(s,ee(Z.directiveC)),this.appendColumnTitle(s,ee(Z.element)),this.appendColumnTitle(s,ee(Z.sourceLocation)),this.appendColumnTitle(s,ee(Z.status));else if(this.issue.code()===t.ContentSecurityPolicyIssue.urlViolationCode)this.appendColumnTitle(s,ee(Z.resourceC),"affected-resource-directive-info-header"),this.appendColumnTitle(s,ee(Z.status)),this.appendColumnTitle(s,ee(Z.directiveC)),this.appendColumnTitle(s,ee(Z.sourceLocation));else if(this.issue.code()===t.ContentSecurityPolicyIssue.evalViolationCode)this.appendColumnTitle(s,ee(Z.sourceLocation)),this.appendColumnTitle(s,ee(Z.directiveC)),this.appendColumnTitle(s,ee(Z.status));else if(this.issue.code()===t.ContentSecurityPolicyIssue.trustedTypesSinkViolationCode)this.appendColumnTitle(s,ee(Z.sourceLocation)),this.appendColumnTitle(s,ee(Z.status));else{if(this.issue.code()!==t.ContentSecurityPolicyIssue.trustedTypesPolicyViolationCode)return void this.updateAffectedResourceCount(0);this.appendColumnTitle(s,ee(Z.sourceLocation)),this.appendColumnTitle(s,ee(Z.directiveC)),this.appendColumnTitle(s,ee(Z.status))}this.affectedResources.appendChild(s);let i=0;for(const t of e)i++,this.#se(t);this.updateAffectedResourceCount(i)}#se(e){const s=document.createElement("tr");s.classList.add("affected-resource-directive");const i=e.details(),n=t.Issue.toZeroBasedLocation(i.sourceCodeLocation),r=e.model(),a=e.model()?.getTargetIfNotDisposed();if(this.issue.code()===t.ContentSecurityPolicyIssue.inlineViolationCode&&r)this.#Z(s,i.violatedDirective),this.#ee(s,i.violatingNodeId,r),this.appendSourceLocation(s,n,a),this.#X(s,i.isReportOnly);else if(this.issue.code()===t.ContentSecurityPolicyIssue.urlViolationCode){const e=i.blockedURL?i.blockedURL:m.DevToolsPath.EmptyUrlString;this.#Y(s,e),this.#X(s,i.isReportOnly),this.#Z(s,i.violatedDirective),this.appendSourceLocation(s,n,a)}else if(this.issue.code()===t.ContentSecurityPolicyIssue.evalViolationCode)this.appendSourceLocation(s,n,a),this.#Z(s,i.violatedDirective),this.#X(s,i.isReportOnly);else if(this.issue.code()===t.ContentSecurityPolicyIssue.trustedTypesSinkViolationCode)this.appendSourceLocation(s,n,a),this.#X(s,i.isReportOnly);else{if(this.issue.code()!==t.ContentSecurityPolicyIssue.trustedTypesPolicyViolationCode)return;this.appendSourceLocation(s,n,a),this.#Z(s,i.violatedDirective),this.#X(s,i.isReportOnly)}this.affectedResources.appendChild(s)}update(){this.clear(),this.#te(this.issue.getCspIssues())}}const se={nDocuments:"{n, plural, =1 { document} other { documents}}",documentInTheDOMTree:"Document in the DOM tree",url:"URL",mode:"Mode"},ie=i.i18n.registerUIStrings("panels/issues/AffectedDocumentsInQuirksModeView.ts",se),ne=i.i18n.getLocalizedString.bind(void 0,ie);class re extends ${#$=Promise.resolve();update(){this.#$=this.#$.then(this.#Q.bind(this))}getResourceName(e){return ne(se.nDocuments,{n:e})}async#Q(){this.clear(),await this.#ie(this.issue.getQuirksModeIssues())}async#ne(e){const t=document.createElement("tr");t.classList.add("affected-resource-quirks-mode");const s=e.details(),i=p.FrameManager.FrameManager.instance().getFrame(s.frameId)?.resourceTreeModel().target()||null;t.appendChild(await this.createElementCell({nodeName:"document",backendNodeId:s.documentNodeId,target:i},e.getCategory())),this.appendIssueDetailCell(t,s.isLimitedQuirksMode?"Limited Quirks Mode":"Quirks Mode"),this.appendIssueDetailCell(t,s.url),this.affectedResources.appendChild(t)}async#ie(e){const t=document.createElement("tr");this.appendColumnTitle(t,ne(se.documentInTheDOMTree)),this.appendColumnTitle(t,ne(se.mode)),this.appendColumnTitle(t,ne(se.url)),this.affectedResources.appendChild(t);let s=0;for(const t of e)s++,await this.#ne(t);this.updateAffectedResourceCount(s)}}class ae extends ${#$=Promise.resolve();update(){this.#$=this.#$.then(this.#Q.bind(this))}async#Q(){this.clear(),await this.#re(this.issue.getLowContrastIssues())}async#ae(e){const t=document.createElement("tr");t.classList.add("affected-resource-low-contrast");const s=e.details(),i=e.model()?.target()||null;t.appendChild(await this.createElementCell({nodeName:s.violatingNodeSelector,backendNodeId:s.violatingNodeId,target:i},e.getCategory())),this.appendIssueDetailCell(t,String(m.NumberUtilities.floor(s.contrastRatio,2))),this.appendIssueDetailCell(t,String(s.thresholdAA)),this.appendIssueDetailCell(t,String(s.thresholdAAA)),this.appendIssueDetailCell(t,s.fontSize),this.appendIssueDetailCell(t,s.fontWeight),this.affectedResources.appendChild(t)}async#re(e){const t=document.createElement("tr");this.appendColumnTitle(t,le(oe.element)),this.appendColumnTitle(t,le(oe.contrastRatio)),this.appendColumnTitle(t,le(oe.minimumAA)),this.appendColumnTitle(t,le(oe.minimumAAA)),this.appendColumnTitle(t,le(oe.textSize)),this.appendColumnTitle(t,le(oe.textWeight)),this.affectedResources.appendChild(t);let s=0;for(const t of e)s++,await this.#ae(t);this.updateAffectedResourceCount(s)}}const oe={element:"Element",contrastRatio:"Contrast ratio",minimumAA:"Minimum AA ratio",minimumAAA:"Minimum AAA ratio",textSize:"Text size",textWeight:"Text weight"},de=i.i18n.registerUIStrings("panels/issues/AffectedElementsWithLowContrastView.ts",oe),le=i.i18n.getLocalizedString.bind(void 0,de),ce={nResources:"{n, plural, =1 {# resource} other {# resources}}",limitExceeded:"Limit exceeded",resolutionStatus:"Resolution Status",frameUrl:"Frame URL",removed:"Removed",warned:"Warned",cpuPeakLimit:"CPU peak limit",cpuTotalLimit:"CPU total limit",networkLimit:"Network limit"},ue=i.i18n.registerUIStrings("panels/issues/AffectedHeavyAdView.ts",ce),pe=i.i18n.getLocalizedString.bind(void 0,ue);class he extends q{#oe(e){const t=document.createElement("tr");this.appendColumnTitle(t,pe(ce.limitExceeded)),this.appendColumnTitle(t,pe(ce.resolutionStatus)),this.appendColumnTitle(t,pe(ce.frameUrl)),this.affectedResources.appendChild(t);let s=0;for(const t of e)this.#de(t.details()),s++;this.updateAffectedResourceCount(s)}getResourceNameWithCount(e){return pe(ce.nResources,{n:e})}#le(e){switch(e){case"HeavyAdBlocked":return pe(ce.removed);case"HeavyAdWarning":return pe(ce.warned)}return""}#ce(e){switch(e){case"CpuPeakLimit":return pe(ce.cpuPeakLimit);case"CpuTotalLimit":return pe(ce.cpuTotalLimit);case"NetworkTotalLimit":return pe(ce.networkLimit)}return""}#de(e){const t=document.createElement("tr");t.classList.add("affected-resource-heavy-ad");const s=document.createElement("td");s.classList.add("affected-resource-heavy-ad-info"),s.textContent=this.#ce(e.reason),t.appendChild(s);const i=document.createElement("td");i.classList.add("affected-resource-heavy-ad-info"),i.textContent=this.#le(e.resolution),t.appendChild(i);const n=e.frame.frameId,r=this.createFrameCell(n,this.issue.getCategory());t.appendChild(r),this.affectedResources.appendChild(t)}update(){this.clear(),this.#oe(this.issue.getHeavyAdIssues())}}const ge={nAllowedSites:"{n, plural, =1 {1 website allowed to access cookies} other {# websites allowed to access cookies}}"},fe=i.i18n.registerUIStrings("panels/issues/AffectedMetadataAllowedSitesView.ts",ge),me=i.i18n.getLocalizedString.bind(void 0,fe);class Ce extends q{getResourceNameWithCount(e){return me(ge.nAllowedSites,{n:e})}update(){this.clear();const e=this.issue.getCookieDeprecationMetadataIssues();let t=0;for(const i of e){const e=document.createElement("tr");e.classList.add("affected-resource-directive");const n=document.createElement("div"),r=document.createElement("span");if(r.textContent=i.details().allowedSites.join(", "),n.appendChild(r),!i.details().isOptOutTopLevel&&i.details().optOutPercentage>0){const e=document.createElement("span");e.textContent=" (opt-out: "+i.details().optOutPercentage+"% - ",n.appendChild(e);const t=s.XLink.XLink.create("https://developers.google.com/privacy-sandbox/blog/grace-period-opt-out","learn more");n.appendChild(t);const r=document.createElement("span");r.textContent=")",n.appendChild(r)}this.appendIssueDetailCell(e,n),this.affectedResources.appendChild(e),t++}this.updateAffectedResourceCount(t)}}const Ie={blockedCrossPartitionFetching:"Access to the Blob URL {url} was blocked because it was performed from a cross-partition context.",enforceNoopenerForNavigation:"Blob URL {url} top-level navigation had 'noopener' set because the Blob URL origin was cross-site with the top-level site of the context that initiated the navigation.",blobURLCount:"Blob URL issues count: {count}",noBlobURLAvailable:"No Blob URL available for this issue."},be=i.i18n.registerUIStrings("panels/issues/AffectedPartitioningBlobURLView.ts",Ie),we=i.i18n.getLocalizedString.bind(void 0,be);class Re extends q{getResourceNameWithCount(e){return we(Ie.blobURLCount,{count:e})}update(){this.clear();let e=0;const t=this.issue.getPartitioningBlobURLIssues();for(const s of t){const t=s.details().url,i=s.details().partitioningBlobURLInfo;if(t){let s;switch(i){case"BlockedCrossPartitionFetching":s=we(Ie.blockedCrossPartitionFetching,{url:t});break;case"EnforceNoopenerForNavigation":s=we(Ie.enforceNoopenerForNavigation,{url:t})}const n=document.createElement("div");n.textContent=s,this.affectedResources.appendChild(n),e++}else{const e=document.createElement("div");e.textContent=we(Ie.noBlobURLAvailable),this.affectedResources.appendChild(e)}}this.updateAffectedResourceCount(e)}}const ve={nViolations:"{n, plural, =1 {# violation} other {# violations}}",warning:"warning",blocked:"blocked",instantiation:"Instantiation",aSharedarraybufferWas:"A `SharedArrayBuffer` was instantiated in a context that is not cross-origin isolated",transfer:"Transfer",sharedarraybufferWasTransferedTo:"`SharedArrayBuffer` was transfered to a context that is not cross-origin isolated",sourceLocation:"Source Location",trigger:"Trigger",status:"Status"},ke=i.i18n.registerUIStrings("panels/issues/AffectedSharedArrayBufferIssueDetailsView.ts",ve),ye=i.i18n.getLocalizedString.bind(void 0,ke);class Ae extends q{getResourceNameWithCount(e){return ye(ve.nViolations,{n:e})}#X(e,t){const s=document.createElement("td");t?(s.classList.add("affected-resource-report-only-status"),s.textContent=ye(ve.warning)):(s.classList.add("affected-resource-blocked-status"),s.textContent=ye(ve.blocked)),e.appendChild(s)}#ue(e,t){const s=document.createElement("td");switch(t){case"CreationIssue":s.textContent=ye(ve.instantiation),s.title=ye(ve.aSharedarraybufferWas);break;case"TransferIssue":s.textContent=ye(ve.transfer),s.title=ye(ve.sharedarraybufferWasTransferedTo)}e.appendChild(s)}#F(e){const t=document.createElement("tr");this.appendColumnTitle(t,ye(ve.sourceLocation)),this.appendColumnTitle(t,ye(ve.trigger)),this.appendColumnTitle(t,ye(ve.status)),this.affectedResources.appendChild(t);let s=0;for(const t of e)s++,this.#W(t);this.updateAffectedResourceCount(s)}#W(e){const s=document.createElement("tr");s.classList.add("affected-resource-directive");const i=e.details(),n=t.Issue.toZeroBasedLocation(i.sourceCodeLocation);this.appendSourceLocation(s,n,e.model()?.getTargetIfNotDisposed()),this.#ue(s,i.type),this.#X(s,i.isWarning),this.affectedResources.appendChild(s)}update(){this.clear(),this.#F(this.issue.getSharedArrayBufferIssues())}}const Se={nSources:"{n, plural, =1 {# source} other {# sources}}"},xe=i.i18n.registerUIStrings("panels/issues/AffectedSourcesView.ts",Se),Te=i.i18n.getLocalizedString.bind(void 0,xe);class Ee extends q{#pe(e){let t=0;for(const s of e)this.#he(s),t++;this.updateAffectedResourceCount(t)}getResourceNameWithCount(e){return Te(Se.nSources,{n:e})}#he({url:e,lineNumber:t,columnNumber:s}){const i=document.createElement("td"),n={columnNumber:s,lineNumber:t,tabStop:!0,showColumnNumber:!1,inlineFrameIndex:0},a=f.Linkifier.Linkifier.linkifyURL(e,n);a.setAttribute("jslog",`${r.link("source-location").track({click:!0})}`),i.appendChild(a);const o=document.createElement("tr");o.classList.add("affected-resource-source"),o.appendChild(i),this.affectedResources.appendChild(o)}update(){this.clear(),this.#pe(this.issue.sources())}}const Le={nTrackingSites:"{n, plural, =1 {1 potentially tracking website} other {# potentially tracking websites}}"},Pe=i.i18n.registerUIStrings("panels/issues/AffectedTrackingSitesView.ts",Le),De=i.i18n.getLocalizedString.bind(void 0,Pe);class Me extends q{getResourceNameWithCount(e){return De(Le.nTrackingSites,{n:e})}update(){this.clear();const e=this.issue.getBounceTrackingSites();let t=0;for(const s of e){const e=document.createElement("tr");e.classList.add("affected-resource-directive"),this.appendIssueDetailCell(e,s),this.affectedResources.appendChild(e),t++}this.updateAffectedResourceCount(t)}}const qe={nViolations:"{n, plural, =1 {# violation} other {# violations}}",element:"Element",invalidHeaderValue:"Invalid Header Value",request:"Request",untrustworthyOrigin:"Untrustworthy origin"},Oe=i.i18n.registerUIStrings("panels/issues/AttributionReportingIssueDetailsView.ts",qe),Ue=i.i18n.getLocalizedString.bind(void 0,Oe);class Ne extends q{getResourceNameWithCount(e){return Ue(qe.nViolations,{n:e})}update(){this.clear();const e=this.issue.getAttributionReportingIssues(),t=e.values().next();t.done?this.updateAffectedResourceCount(0):this.#F(t.value.code(),e)}#F(e,t){const s=document.createElement("tr");switch(e){case"AttributionReportingIssue::InvalidRegisterSourceHeader":case"AttributionReportingIssue::InvalidRegisterTriggerHeader":case"AttributionReportingIssue::InvalidRegisterOsSourceHeader":case"AttributionReportingIssue::InvalidRegisterOsTriggerHeader":case"AttributionReportingIssue::OsSourceIgnored":case"AttributionReportingIssue::OsTriggerIgnored":case"AttributionReportingIssue::SourceIgnored":case"AttributionReportingIssue::TriggerIgnored":case"AttributionReportingIssue::InvalidInfoHeader":case"AttributionReportingIssue::NavigationRegistrationUniqueScopeAlreadySet":this.appendColumnTitle(s,Ue(qe.request)),this.appendColumnTitle(s,Ue(qe.invalidHeaderValue));break;case"AttributionReportingIssue::InsecureContext":case"AttributionReportingIssue::UntrustworthyReportingOrigin":this.appendColumnTitle(s,Ue(qe.element)),this.appendColumnTitle(s,Ue(qe.request)),this.appendColumnTitle(s,Ue(qe.untrustworthyOrigin));break;case"AttributionReportingIssue::PermissionPolicyDisabled":this.appendColumnTitle(s,Ue(qe.element)),this.appendColumnTitle(s,Ue(qe.request));break;case"AttributionReportingIssue::SourceAndTriggerHeaders":case"AttributionReportingIssue::WebAndOsHeaders":case"AttributionReportingIssue::NoWebOrOsSupport":case"AttributionReportingIssue::NoRegisterSourceHeader":case"AttributionReportingIssue::NoRegisterTriggerHeader":case"AttributionReportingIssue::NoRegisterOsSourceHeader":case"AttributionReportingIssue::NoRegisterOsTriggerHeader":this.appendColumnTitle(s,Ue(qe.request));break;case"AttributionReportingIssue::NavigationRegistrationWithoutTransientUserActivation":this.appendColumnTitle(s,Ue(qe.element))}this.affectedResources.appendChild(s);let i=0;for(const s of t)i++,this.#W(e,s);this.updateAffectedResourceCount(i)}async#W(e,t){const s=document.createElement("tr");s.classList.add("affected-resource-directive");const i=t.issueDetails;switch(e){case"AttributionReportingIssue::InvalidRegisterSourceHeader":case"AttributionReportingIssue::InvalidRegisterTriggerHeader":case"AttributionReportingIssue::InvalidRegisterOsSourceHeader":case"AttributionReportingIssue::InvalidRegisterOsTriggerHeader":case"AttributionReportingIssue::OsSourceIgnored":case"AttributionReportingIssue::OsTriggerIgnored":case"AttributionReportingIssue::SourceIgnored":case"AttributionReportingIssue::TriggerIgnored":case"AttributionReportingIssue::InvalidInfoHeader":case"AttributionReportingIssue::NavigationRegistrationUniqueScopeAlreadySet":this.#ge(s,i.request),this.appendIssueDetailCell(s,i.invalidParameter||"");break;case"AttributionReportingIssue::InsecureContext":case"AttributionReportingIssue::UntrustworthyReportingOrigin":await this.#fe(s,t),this.#ge(s,i.request),this.appendIssueDetailCell(s,i.invalidParameter||"");break;case"AttributionReportingIssue::PermissionPolicyDisabled":await this.#fe(s,t),this.#ge(s,i.request);break;case"AttributionReportingIssue::SourceAndTriggerHeaders":case"AttributionReportingIssue::WebAndOsHeaders":case"AttributionReportingIssue::NoWebOrOsSupport":case"AttributionReportingIssue::NoRegisterSourceHeader":case"AttributionReportingIssue::NoRegisterTriggerHeader":case"AttributionReportingIssue::NoRegisterOsSourceHeader":case"AttributionReportingIssue::NoRegisterOsTriggerHeader":this.#ge(s,i.request);break;case"AttributionReportingIssue::NavigationRegistrationWithoutTransientUserActivation":await this.#fe(s,t)}this.affectedResources.appendChild(s)}async#fe(e,t){const s=t.issueDetails;if(void 0!==s.violatingNodeId){const i=t.model()?.target()||null;e.appendChild(await this.createElementCell({backendNodeId:s.violatingNodeId,target:i,nodeName:"Attribution source element"},t.getCategory()))}else this.appendIssueDetailCell(e,"")}#ge(e,t){if(!t)return void this.appendIssueDetailCell(e,"");const s={additionalOnClickAction(){l.userMetrics.issuesPanelResourceOpened("AttributionReporting","Request")}};e.appendChild(this.createRequestCell(t,s))}}const Ve={nRequests:"{n, plural, =1 {# request} other {# requests}}",warning:"warning",blocked:"blocked",status:"Status",request:"Request",resourceAddressSpace:"Resource Address",initiatorAddressSpace:"Initiator Address",secure:"secure",insecure:"insecure",initiatorContext:"Initiator Context",preflightRequestIfProblematic:"Preflight Request (if problematic)",preflightRequest:"Preflight Request",header:"Header",problem:"Problem",invalidValue:"Invalid Value (if available)",problemMissingHeader:"Missing Header",problemMultipleValues:"Multiple Values",problemInvalidValue:"Invalid Value",preflightDisallowedRedirect:"Response to preflight was a redirect",preflightInvalidStatus:"HTTP status of preflight request didn't indicate success",allowedOrigin:"Allowed Origin (from header)",allowCredentialsValueFromHeader:"`Access-Control-Allow-Credentials` Header Value",disallowedRequestMethod:"Disallowed Request Method",disallowedRequestHeader:"Disallowed Request Header",sourceLocation:"Source Location",unsupportedScheme:"Unsupported Scheme",failedRequest:"Failed Request"},He=i.i18n.registerUIStrings("panels/issues/CorsIssueDetailsView.ts",Ve),Be=i.i18n.getLocalizedString.bind(void 0,He);class Fe extends q{constructor(e,t,s){super(e,t,s),this.affectedResourcesCountElement.classList.add("cors-issue-affected-resource-label")}#X(e,t){const s=document.createElement("td");t?(s.classList.add("affected-resource-report-only-status"),s.textContent=Be(Ve.warning)):(s.classList.add("affected-resource-blocked-status"),s.textContent=Be(Ve.blocked)),e.appendChild(s)}getResourceNameWithCount(e){return Be(Ve.nRequests,{n:e})}#F(e,t){const s=document.createElement("tr");switch(this.appendColumnTitle(s,Be(Ve.request)),this.appendColumnTitle(s,Be(Ve.status)),e){case"CorsIssue::InvalidHeaders":this.appendColumnTitle(s,Be(Ve.preflightRequestIfProblematic)),this.appendColumnTitle(s,Be(Ve.header)),this.appendColumnTitle(s,Be(Ve.problem)),this.appendColumnTitle(s,Be(Ve.invalidValue));break;case"CorsIssue::WildcardOriginWithCredentials":this.appendColumnTitle(s,Be(Ve.preflightRequestIfProblematic));break;case"CorsIssue::PreflightResponseInvalid":this.appendColumnTitle(s,Be(Ve.preflightRequest)),this.appendColumnTitle(s,Be(Ve.problem));break;case"CorsIssue::OriginMismatch":this.appendColumnTitle(s,Be(Ve.preflightRequestIfProblematic)),this.appendColumnTitle(s,Be(Ve.initiatorContext)),this.appendColumnTitle(s,Be(Ve.allowedOrigin));break;case"CorsIssue::AllowCredentialsRequired":this.appendColumnTitle(s,Be(Ve.preflightRequestIfProblematic)),this.appendColumnTitle(s,Be(Ve.allowCredentialsValueFromHeader));break;case"CorsIssue::InsecurePrivateNetwork":this.appendColumnTitle(s,Be(Ve.resourceAddressSpace)),this.appendColumnTitle(s,Be(Ve.initiatorAddressSpace)),this.appendColumnTitle(s,Be(Ve.initiatorContext));break;case"CorsIssue::PreflightAllowPrivateNetworkError":this.appendColumnTitle(s,Be(Ve.preflightRequest)),this.appendColumnTitle(s,Be(Ve.invalidValue)),this.appendColumnTitle(s,Be(Ve.initiatorAddressSpace)),this.appendColumnTitle(s,Be(Ve.initiatorContext));break;case"CorsIssue::PreflightMissingPrivateNetworkAccessId":case"CorsIssue::PreflightMissingPrivateNetworkAccessName":this.appendColumnTitle(s,Be(Ve.preflightRequest)),this.appendColumnTitle(s,Be(Ve.invalidValue)),this.appendColumnTitle(s,Be(Ve.resourceAddressSpace)),this.appendColumnTitle(s,Be(Ve.initiatorAddressSpace)),this.appendColumnTitle(s,Be(Ve.initiatorContext));break;case"CorsIssue::MethodDisallowedByPreflightResponse":this.appendColumnTitle(s,Be(Ve.preflightRequest)),this.appendColumnTitle(s,Be(Ve.disallowedRequestMethod));break;case"CorsIssue::HeaderDisallowedByPreflightResponse":this.appendColumnTitle(s,Be(Ve.preflightRequest)),this.appendColumnTitle(s,Be(Ve.disallowedRequestHeader));break;case"CorsIssue::RedirectContainsCredentials":break;case"CorsIssue::DisallowedByMode":this.appendColumnTitle(s,Be(Ve.initiatorContext)),this.appendColumnTitle(s,Be(Ve.sourceLocation));break;case"CorsIssue::CorsDisabledScheme":this.appendColumnTitle(s,Be(Ve.initiatorContext)),this.appendColumnTitle(s,Be(Ve.sourceLocation)),this.appendColumnTitle(s,Be(Ve.unsupportedScheme));break;case"CorsIssue::NoCorsRedirectModeNotFollow":this.appendColumnTitle(s,Be(Ve.sourceLocation));break;default:m.assertUnhandled(e)}this.affectedResources.appendChild(s);let i=0;for(const s of t)i++,this.#W(e,s);this.updateAffectedResourceCount(i)}#me(e,t){void 0!==t?this.appendIssueDetailCell(e,Be(t?Ve.secure:Ve.insecure)):this.appendIssueDetailCell(e,"")}static getHeaderFromError(e){switch(e){case"InvalidAllowHeadersPreflightResponse":return"Access-Control-Allow-Headers";case"InvalidAllowMethodsPreflightResponse":case"MethodDisallowedByPreflightResponse":return"Access-Control-Allow-Methods";case"PreflightMissingAllowOriginHeader":case"PreflightMultipleAllowOriginValues":case"PreflightInvalidAllowOriginValue":case"MissingAllowOriginHeader":case"MultipleAllowOri