Demo/bin/Debug/front_end/security_module.js

(开头部分) 35KB

这里只显示每个文件的开头 60 行。登录后可以解锁完整代码。

WebInspector.SecurityModel=function(target)
{WebInspector.SDKModel.call(this,WebInspector.SecurityModel,target);this._dispatcher=new WebInspector.SecurityDispatcher(this);this._securityAgent=target.securityAgent();target.registerSecurityDispatcher(this._dispatcher);this._securityAgent.enable();}
WebInspector.SecurityModel.EventTypes={SecurityStateChanged:"SecurityStateChanged"}
WebInspector.SecurityModel.prototype={__proto__:WebInspector.SDKModel.prototype}
WebInspector.SecurityModel.fromTarget=function(target)
{var model=(target.model(WebInspector.SecurityModel));if(!model)
model=new WebInspector.SecurityModel(target);return model;}
WebInspector.SecurityModel.SecurityStateComparator=function(a,b)
{var securityStateMap;if(WebInspector.SecurityModel._symbolicToNumericSecurityState){securityStateMap=WebInspector.SecurityModel._symbolicToNumericSecurityState;}else{securityStateMap=new Map();var ordering=[SecurityAgent.SecurityState.Info,SecurityAgent.SecurityState.Insecure,SecurityAgent.SecurityState.Neutral,SecurityAgent.SecurityState.Warning,SecurityAgent.SecurityState.Secure,SecurityAgent.SecurityState.Unknown];for(var i=0;i<ordering.length;i++)
securityStateMap.set(ordering[i],i+1);WebInspector.SecurityModel._symbolicToNumericSecurityState=securityStateMap;}
var aScore=securityStateMap.get(a)||0;var bScore=securityStateMap.get(b)||0;return aScore-bScore;}
WebInspector.PageSecurityState=function(securityState,explanations,mixedContentStatus,schemeIsCryptographic){this.securityState=securityState;this.explanations=explanations;this.mixedContentStatus=mixedContentStatus;this.schemeIsCryptographic=schemeIsCryptographic;}
WebInspector.SecurityDispatcher=function(model)
{this._model=model;}
WebInspector.SecurityDispatcher.prototype={securityStateChanged:function(securityState,explanations,mixedContentStatus,schemeIsCryptographic)
{var pageSecurityState=new WebInspector.PageSecurityState(securityState,explanations||[],mixedContentStatus||null,schemeIsCryptographic||false);this._model.dispatchEventToListeners(WebInspector.SecurityModel.EventTypes.SecurityStateChanged,pageSecurityState);}};WebInspector.SecurityPanel=function()
{WebInspector.PanelWithSidebar.call(this,"security");this._mainView=new WebInspector.SecurityMainView(this);this._sidebarMainViewElement=new WebInspector.SecurityPanelSidebarTreeElement(WebInspector.UIString("Overview"),this._setVisibleView.bind(this,this._mainView),"security-main-view-sidebar-tree-item","lock-icon");this._sidebarTree=new WebInspector.SecurityPanelSidebarTree(this._sidebarMainViewElement,this.showOrigin.bind(this));this.panelSidebarElement().appendChild(this._sidebarTree.element);this.setDefaultFocusedElement(this._sidebarTree.element);this._lastResponseReceivedForLoaderId=new Map();this._origins=new Map();WebInspector.targetManager.addModelListener(WebInspector.ResourceTreeModel,WebInspector.ResourceTreeModel.EventTypes.MainFrameNavigated,this._onMainFrameNavigated,this);this._filterRequestCounts=new Map();WebInspector.targetManager.observeTargets(this,WebInspector.Target.Type.Page);WebInspector.targetManager.addModelListener(WebInspector.NetworkManager,WebInspector.NetworkManager.EventTypes.ResponseReceived,this._onResponseReceived,this);WebInspector.targetManager.addModelListener(WebInspector.NetworkManager,WebInspector.NetworkManager.EventTypes.RequestFinished,this._onRequestFinished,this);WebInspector.targetManager.addModelListener(WebInspector.SecurityModel,WebInspector.SecurityModel.EventTypes.SecurityStateChanged,this._onSecurityStateChanged,this);}
WebInspector.SecurityPanel.Origin;WebInspector.SecurityPanel.OriginState;WebInspector.SecurityPanel.prototype={setRanInsecureContentStyle:function(securityState)
{this._ranInsecureContentStyle=securityState;},setDisplayedInsecureContentStyle:function(securityState)
{this._displayedInsecureContentStyle=securityState;},_updateSecurityState:function(newSecurityState,explanations,mixedContentStatus,schemeIsCryptographic)
{this._sidebarMainViewElement.setSecurityState(newSecurityState);this._mainView.updateSecurityState(newSecurityState,explanations,mixedContentStatus,schemeIsCryptographic);},_onSecurityStateChanged:function(event)
{var data=(event.data);var securityState=(data.securityState);var explanations=(data.explanations);var mixedContentStatus=(data.mixedContentStatus);var schemeIsCryptographic=(data.schemeIsCryptographic);this._updateSecurityState(securityState,explanations,mixedContentStatus,schemeIsCryptographic);},selectAndSwitchToMainView:function()
{this._sidebarMainViewElement.select();},showOrigin:function(origin)
{var originState=this._origins.get(origin);if(!originState.originView)
originState.originView=new WebInspector.SecurityOriginView(this,origin,originState);this._setVisibleView(originState.originView);},wasShown:function()
{WebInspector.Panel.prototype.wasShown.call(this);if(!this._visibleView)
this.selectAndSwitchToMainView();},_setVisibleView:function(view)
{if(this._visibleView===view)
return;if(this._visibleView)
this._visibleView.detach();this._visibleView=view;if(view)
this.splitWidget().setMainWidget(view);},_onResponseReceived:function(event)
{var request=(event.data);if(request.resourceType()==WebInspector.resourceTypes.Document)
this._lastResponseReceivedForLoaderId.set(request.loaderId,request);},_processRequest:function(request)
{var origin=WebInspector.ParsedURL.splitURLIntoPathComponents(request.url)[0];if(!origin){return;}
var securityState=(request.securityState());if(request.mixedContentType===NetworkAgent.RequestMixedContentType.Blockable&&this._ranInsecureContentStyle)
securityState=this._ranInsecureContentStyle;else if(request.mixedContentType===NetworkAgent.RequestMixedContentType.OptionallyBlockable&&this._displayedInsecureContentStyle)
securityState=this._displayedInsecureContentStyle;if(this._origins.has(origin)){var originState=this._origins.get(origin);var oldSecurityState=originState.securityState;originState.securityState=this._securityStateMin(oldSecurityState,securityState);if(oldSecurityState!=originState.securityState){this._sidebarTree.updateOrigin(origin,securityState);if(originState.originView)
originState.originView.setSecurityState(securityState);}}else{var originState={};originState.securityState=securityState;var securityDetails=request.securityDetails();if(securityDetails){originState.securityDetails=securityDetails;originState.certificateDetailsPromise=request.target().networkManager.certificateDetailsPromise(securityDetails.certificateId);}
this._origins.set(origin,originState);this._sidebarTree.addOrigin(origin,securityState);}},_onRequestFinished:function(event)
{var request=(event.data);this._updateFilterRequestCounts(request);this._processRequest(request);},_updateFilterRequestCounts:function(request)
{if(request.mixedContentType===NetworkAgent.RequestMixedContentType.None)
return;var filterKey=WebInspector.NetworkLogView.MixedContentFilterValues.All;if(request.wasBlocked())
filterKey=WebInspector.NetworkLogView.MixedContentFilterValues.Blocked;else if(request.mixedContentType===NetworkAgent.RequestMixedContentType.Blockable)
filterKey=WebInspector.NetworkLogView.MixedContentFilterValues.BlockOverridden;else if(request.mixedContentType===NetworkAgent.RequestMixedContentType.OptionallyBlockable)
filterKey=WebInspector.NetworkLogView.MixedContentFilterValues.Displayed;if(!this._filterRequestCounts.has(filterKey))
this._filterRequestCounts.set(filterKey,1);else
this._filterRequestCounts.set(filterKey,this._filterRequestCounts.get(filterKey)+1);this._mainView.refreshExplanations();},filterRequestCount:function(filterKey)
{return this._filterRequestCounts.get(filterKey)||0;},_securityStateMin:function(stateA,stateB)
{return WebInspector.SecurityModel.SecurityStateComparator(stateA,stateB)<0?stateA:stateB;},targetAdded:function(target)
{WebInspector.SecurityModel.fromTarget(target);},targetRemoved:function(target)
{},_clearOrigins:function()
{this.selectAndSwitchToMainView();this._sidebarTree.clearOrigins();this._origins.clear();this._lastResponseReceivedForLoaderId.clear();this._filterRequestCounts.clear();},_onMainFrameNavigated:function(event){var frame=(event.data);var request=this._lastResponseReceivedForLoaderId.get(frame.loaderId);this._clearOrigins();var origin=WebInspector.ParsedURL.splitURLIntoPathComponents(request.url)[0];this._sidebarTree.setMainOrigin(origin);if(request)
this._processRequest(request);},__proto__:WebInspector.PanelWithSidebar.prototype}
WebInspector.SecurityPanel._instance=function()
{if(!WebInspector.SecurityPanel._instanceObject)
WebInspector.SecurityPanel._instanceObject=new WebInspector.SecurityPanel();return WebInspector.SecurityPanel._instanceObject;}
WebInspector.SecurityPanel.createCertificateViewerButton=function(text,certificateId)
{function showCertificateViewer(e)
{e.consume();WebInspector.multitargetNetworkManager.showCertificateViewer((certificateId));}
return createTextButton(text,showCertificateViewer,"security-certificate-button");}
后面还有 75 行代码,解锁后查看完整代码

24 小时内免费解锁 3 个项目,之后 1 算力/个。 规则说明

AI 解读 AI

登录后可用,每次 10 算力,解读结果公开显示在下面。

还没有人解读过这个文件。