UNPKG

@yuebai008/cli

Version:

Command line interface for rapid qg-minigame development

1 lines 5.25 kB
import*as Common from"../../core/common/common.js";import*as Host from"../../core/host/host.js";import*as i18n from"../../core/i18n/i18n.js";import*as Platform from"../../core/platform/platform.js";import*as SDK from"../../core/sdk/sdk.js";import*as IssuesManager from"../../models/issues_manager/issues_manager.js";import*as IssuesComponents from"./components/components.js";import{AffectedResourcesView}from"./AffectedResourcesView.js";const UIStrings={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"},str_=i18n.i18n.registerUIStrings("panels/issues/AffectedDirectivesView.ts",UIStrings),i18nString=i18n.i18n.getLocalizedString.bind(void 0,str_);export class AffectedDirectivesView extends AffectedResourcesView{#e(e,t){const i=document.createElement("td");t?(i.classList.add("affected-resource-report-only-status"),i.textContent=i18nString(UIStrings.reportonly)):(i.classList.add("affected-resource-blocked-status"),i.textContent=i18nString(UIStrings.blocked)),e.appendChild(i)}getResourceNameWithCount(e){return i18nString(UIStrings.nDirectives,{n:e})}#t(e,t){const i=document.createElement("td");i.textContent=t,e.appendChild(i)}#i(e,t){const i=document.createElement("td");i.classList.add("affected-resource-directive-info"),i.textContent=t,e.appendChild(i)}#s(e,t,i){const s=new IssuesComponents.ElementsPanelLink.ElementsPanelLink;if(t){const e=t;s.title=i18nString(UIStrings.clickToRevealTheViolatingDomNode);const n=()=>{const t=i.getTargetIfNotDisposed();if(t){Host.userMetrics.issuesPanelResourceOpened(this.issue.getCategory(),"Element");const i=new SDK.DOMModel.DeferredDOMNode(t,e);Common.Revealer.reveal(i)}},o=()=>{const t=i.getTargetIfNotDisposed();if(t){const i=new SDK.DOMModel.DeferredDOMNode(t,e);i&&i.highlight()}},r=()=>{SDK.OverlayModel.OverlayModel.hideDOMNodeHighlight()};s.data={onElementRevealIconClick:n,onElementRevealIconMouseEnter:o,onElementRevealIconMouseLeave:r}}const n=document.createElement("td");n.classList.add("affected-resource-csp-info-node"),n.appendChild(s),e.appendChild(n)}#n(e){const t=document.createElement("tr");if(this.issue.code()===IssuesManager.ContentSecurityPolicyIssue.inlineViolationCode)this.appendColumnTitle(t,i18nString(UIStrings.directiveC)),this.appendColumnTitle(t,i18nString(UIStrings.element)),this.appendColumnTitle(t,i18nString(UIStrings.sourceLocation)),this.appendColumnTitle(t,i18nString(UIStrings.status));else if(this.issue.code()===IssuesManager.ContentSecurityPolicyIssue.urlViolationCode)this.appendColumnTitle(t,i18nString(UIStrings.resourceC),"affected-resource-directive-info-header"),this.appendColumnTitle(t,i18nString(UIStrings.status)),this.appendColumnTitle(t,i18nString(UIStrings.directiveC)),this.appendColumnTitle(t,i18nString(UIStrings.sourceLocation));else if(this.issue.code()===IssuesManager.ContentSecurityPolicyIssue.evalViolationCode)this.appendColumnTitle(t,i18nString(UIStrings.sourceLocation)),this.appendColumnTitle(t,i18nString(UIStrings.directiveC)),this.appendColumnTitle(t,i18nString(UIStrings.status));else if(this.issue.code()===IssuesManager.ContentSecurityPolicyIssue.trustedTypesSinkViolationCode)this.appendColumnTitle(t,i18nString(UIStrings.sourceLocation)),this.appendColumnTitle(t,i18nString(UIStrings.status));else{if(this.issue.code()!==IssuesManager.ContentSecurityPolicyIssue.trustedTypesPolicyViolationCode)return void this.updateAffectedResourceCount(0);this.appendColumnTitle(t,i18nString(UIStrings.sourceLocation)),this.appendColumnTitle(t,i18nString(UIStrings.directiveC)),this.appendColumnTitle(t,i18nString(UIStrings.status))}this.affectedResources.appendChild(t);let i=0;for(const t of e)i++,this.#o(t);this.updateAffectedResourceCount(i)}#o(e){const t=document.createElement("tr");t.classList.add("affected-resource-directive");const i=e.details(),s=IssuesManager.Issue.toZeroBasedLocation(i.sourceCodeLocation),n=e.model(),o=e.model()?.getTargetIfNotDisposed();if(this.issue.code()===IssuesManager.ContentSecurityPolicyIssue.inlineViolationCode&&n)this.#t(t,i.violatedDirective),this.#s(t,i.violatingNodeId,n),this.appendSourceLocation(t,s,o),this.#e(t,i.isReportOnly);else if(this.issue.code()===IssuesManager.ContentSecurityPolicyIssue.urlViolationCode){const e=i.blockedURL?i.blockedURL:Platform.DevToolsPath.EmptyUrlString;this.#i(t,e),this.#e(t,i.isReportOnly),this.#t(t,i.violatedDirective),this.appendSourceLocation(t,s,o)}else if(this.issue.code()===IssuesManager.ContentSecurityPolicyIssue.evalViolationCode)this.appendSourceLocation(t,s,o),this.#t(t,i.violatedDirective),this.#e(t,i.isReportOnly);else if(this.issue.code()===IssuesManager.ContentSecurityPolicyIssue.trustedTypesSinkViolationCode)this.appendSourceLocation(t,s,o),this.#e(t,i.isReportOnly);else{if(this.issue.code()!==IssuesManager.ContentSecurityPolicyIssue.trustedTypesPolicyViolationCode)return;this.appendSourceLocation(t,s,o),this.#t(t,i.violatedDirective),this.#e(t,i.isReportOnly)}this.affectedResources.appendChild(t)}update(){this.clear(),this.#n(this.issue.getCspIssues())}}