@yuebai008/cli
Version:
Command line interface for rapid qg-minigame development
1 lines • 8.13 kB
JavaScript
import*as Common from"../../core/common/common.js";import*as i18n from"../../core/i18n/i18n.js";import*as SDK from"../../core/sdk/sdk.js";import*as IconButton from"../../ui/components/icon_button/icon_button.js";import*as CookieTable from"../../ui/legacy/components/cookie_table/cookie_table.js";import*as UI from"../../ui/legacy/legacy.js";import requestCookiesViewStyles from"./requestCookiesView.css.js";const UIStrings={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"},str_=i18n.i18n.registerUIStrings("panels/network/RequestCookiesView.ts",UIStrings),i18nString=i18n.i18n.getLocalizedString.bind(void 0,str_);export class RequestCookiesView extends UI.Widget.Widget{request;showFilteredOutCookiesSetting;emptyWidget;requestCookiesTitle;requestCookiesEmpty;requestCookiesTable;responseCookiesTitle;responseCookiesTable;siteHasCookieInOtherPartition;malformedResponseCookiesTitle;malformedResponseCookiesList;constructor(e){super(),this.element.classList.add("request-cookies-view"),this.request=e,this.showFilteredOutCookiesSetting=Common.Settings.Settings.instance().createSetting("show-filtered-out-request-cookies",!1),this.emptyWidget=new UI.EmptyWidget.EmptyWidget(i18nString(UIStrings.thisRequestHasNoCookies)),this.emptyWidget.show(this.element),this.requestCookiesTitle=this.element.createChild("div");const s=this.requestCookiesTitle.createChild("span","request-cookies-title");s.textContent=i18nString(UIStrings.requestCookies),UI.Tooltip.Tooltip.install(s,i18nString(UIStrings.cookiesThatWereSentToTheServerIn));const o=UI.SettingsUI.createSettingCheckbox(i18nString(UIStrings.showFilteredOutRequestCookies),this.showFilteredOutCookiesSetting,!0);o.checkboxElement.addEventListener("change",(()=>{this.refreshRequestCookiesView()})),this.requestCookiesTitle.appendChild(o),this.requestCookiesEmpty=this.element.createChild("div","cookies-panel-item"),this.requestCookiesEmpty.textContent=i18nString(UIStrings.noRequestCookiesWereSent),this.requestCookiesTable=new CookieTable.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(i18n.i18n.getFormatLocalizedString(str_,UIStrings.siteHasCookieInOtherPartition,{PH1:UI.XLink.XLink.create("https://developer.chrome.com/en/docs/privacy-sandbox/chips/",i18nString(UIStrings.learnMore))})),this.responseCookiesTitle=this.element.createChild("div","request-cookies-title"),this.responseCookiesTitle.textContent=i18nString(UIStrings.responseCookies),this.responseCookiesTitle.title=i18nString(UIStrings.cookiesThatWereReceivedFromThe),this.responseCookiesTable=new CookieTable.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=i18nString(UIStrings.malformedResponseCookies),UI.Tooltip.Tooltip.install(this.malformedResponseCookiesTitle,i18nString(UIStrings.cookiesThatWereReceivedFromTheServer)),this.malformedResponseCookiesList=this.element.createChild("div")}getRequestCookies(){const e=new Map,s=this.request.includedRequestCookies().slice();if(this.showFilteredOutCookiesSetting.get())for(const o of this.request.blockedRequestCookies())e.set(o.cookie,o.blockedReasons.map((e=>({attribute:SDK.NetworkRequest.cookieBlockedReasonToAttribute(e),uiString:SDK.NetworkRequest.cookieBlockedReasonToUiString(e)})))),s.push(o.cookie);return{requestCookies:s,requestCookieToBlockedReasons:e}}getResponseCookies(){let e=[];const s=new Map,o=[];if(this.request.responseCookies.length){const t=this.request.blockedResponseCookies().map((e=>e.cookieLine));e=this.request.responseCookies.filter((e=>{const s=t.indexOf(e.getCookieLine());return-1===s||(t[s]=null,!1)}));for(const t of this.request.blockedResponseCookies()){const i=SDK.CookieParser.CookieParser.parseSetCookie(t.cookieLine);if(i&&!i.length||t.blockedReasons.includes("SyntaxError")||t.blockedReasons.includes("NameValuePairExceedsMaxSize")){o.push(t);continue}let r=t.cookie;!r&&i&&(r=i[0]),r&&(s.set(r,t.blockedReasons.map((e=>({attribute:SDK.NetworkRequest.setCookieBlockedReasonToAttribute(e),uiString:SDK.NetworkRequest.setCookieBlockedReasonToUiString(e)})))),e.push(r))}}return{responseCookies:e,responseCookieToBlockedReasons:s,malformedResponseCookies:o}}refreshRequestCookiesView(){if(!this.isShowing())return;this.request.hasRequestCookies()||this.request.responseCookies.length?this.emptyWidget.hideWidget():this.emptyWidget.showWidget();const{requestCookies:e,requestCookieToBlockedReasons:s}=this.getRequestCookies(),{responseCookies:o,responseCookieToBlockedReasons:t,malformedResponseCookies:i}=this.getResponseCookies();if(e.length?(this.requestCookiesTitle.classList.remove("hidden"),this.requestCookiesEmpty.classList.add("hidden"),this.requestCookiesTable.showWidget(),this.requestCookiesTable.setCookies(e,s)):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,t)):(this.responseCookiesTitle.classList.add("hidden"),this.responseCookiesTable.hideWidget()),i.length){this.malformedResponseCookiesTitle.classList.remove("hidden"),this.malformedResponseCookiesList.classList.remove("hidden"),this.malformedResponseCookiesList.removeChildren();for(const e of i){const s=this.malformedResponseCookiesList.createChild("span","cookie-line source-code"),o=new IconButton.Icon.Icon;o.data={iconName:"cross-circle-filled",color:"var(--icon-error)",width:"14px",height:"14px"},o.classList.add("cookie-warning-icon"),s.appendChild(o),UI.UIUtils.createTextChild(s,e.cookieLine),e.blockedReasons.includes("NameValuePairExceedsMaxSize")?s.title=SDK.NetworkRequest.setCookieBlockedReasonToUiString("NameValuePairExceedsMaxSize"):s.title=SDK.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.registerCSSFiles([requestCookiesViewStyles]),this.request.addEventListener(SDK.NetworkRequest.Events.RequestHeadersChanged,this.refreshRequestCookiesView,this),this.request.addEventListener(SDK.NetworkRequest.Events.ResponseHeadersChanged,this.refreshRequestCookiesView,this),this.refreshRequestCookiesView()}willHide(){this.request.removeEventListener(SDK.NetworkRequest.Events.RequestHeadersChanged,this.refreshRequestCookiesView,this),this.request.removeEventListener(SDK.NetworkRequest.Events.ResponseHeadersChanged,this.refreshRequestCookiesView,this)}}