| OLD | NEW |
| 1 // Copyright 2015 The Chromium Authors. All rights reserved. | 1 // Copyright 2015 The Chromium Authors. All rights reserved. |
| 2 // Use of this source code is governed by a BSD-style license that can be | 2 // Use of this source code is governed by a BSD-style license that can be |
| 3 // found in the LICENSE file. | 3 // found in the LICENSE file. |
| 4 | |
| 5 /** | 4 /** |
| 6 * @constructor | 5 * @unrestricted |
| 7 * @extends {WebInspector.SDKModel} | |
| 8 * @param {!WebInspector.Target} target | |
| 9 */ | 6 */ |
| 10 WebInspector.SecurityModel = function(target) | 7 WebInspector.SecurityModel = class extends WebInspector.SDKModel { |
| 11 { | 8 /** |
| 12 WebInspector.SDKModel.call(this, WebInspector.SecurityModel, target); | 9 * @param {!WebInspector.Target} target |
| 10 */ |
| 11 constructor(target) { |
| 12 super(WebInspector.SecurityModel, target); |
| 13 this._dispatcher = new WebInspector.SecurityDispatcher(this); | 13 this._dispatcher = new WebInspector.SecurityDispatcher(this); |
| 14 this._securityAgent = target.securityAgent(); | 14 this._securityAgent = target.securityAgent(); |
| 15 target.registerSecurityDispatcher(this._dispatcher); | 15 target.registerSecurityDispatcher(this._dispatcher); |
| 16 this._securityAgent.enable(); | 16 this._securityAgent.enable(); |
| 17 }; | 17 } |
| 18 | 18 |
| 19 /** @enum {symbol} */ | 19 /** |
| 20 WebInspector.SecurityModel.Events = { | 20 * @param {!WebInspector.Target} target |
| 21 SecurityStateChanged: Symbol("SecurityStateChanged") | 21 * @return {?WebInspector.SecurityModel} |
| 22 }; | 22 */ |
| 23 | 23 static fromTarget(target) { |
| 24 WebInspector.SecurityModel.prototype = { | |
| 25 __proto__: WebInspector.SDKModel.prototype, | |
| 26 | |
| 27 showCertificateViewer: function() | |
| 28 { | |
| 29 this._securityAgent.showCertificateViewer(); | |
| 30 } | |
| 31 }; | |
| 32 | |
| 33 /** | |
| 34 * @param {!WebInspector.Target} target | |
| 35 * @return {?WebInspector.SecurityModel} | |
| 36 */ | |
| 37 WebInspector.SecurityModel.fromTarget = function(target) | |
| 38 { | |
| 39 var model = /** @type {?WebInspector.SecurityModel} */ (target.model(WebInsp
ector.SecurityModel)); | 24 var model = /** @type {?WebInspector.SecurityModel} */ (target.model(WebInsp
ector.SecurityModel)); |
| 40 if (!model) | 25 if (!model) |
| 41 model = new WebInspector.SecurityModel(target); | 26 model = new WebInspector.SecurityModel(target); |
| 42 return model; | 27 return model; |
| 43 }; | 28 } |
| 44 | 29 |
| 45 /** | 30 /** |
| 46 * @param {!SecurityAgent.SecurityState} a | 31 * @param {!SecurityAgent.SecurityState} a |
| 47 * @param {!SecurityAgent.SecurityState} b | 32 * @param {!SecurityAgent.SecurityState} b |
| 48 * @return {number} | 33 * @return {number} |
| 49 */ | 34 */ |
| 50 WebInspector.SecurityModel.SecurityStateComparator = function(a, b) | 35 static SecurityStateComparator(a, b) { |
| 51 { | |
| 52 var securityStateMap; | 36 var securityStateMap; |
| 53 if (WebInspector.SecurityModel._symbolicToNumericSecurityState) { | 37 if (WebInspector.SecurityModel._symbolicToNumericSecurityState) { |
| 54 securityStateMap = WebInspector.SecurityModel._symbolicToNumericSecurity
State; | 38 securityStateMap = WebInspector.SecurityModel._symbolicToNumericSecuritySt
ate; |
| 55 } else { | 39 } else { |
| 56 securityStateMap = new Map(); | 40 securityStateMap = new Map(); |
| 57 var ordering = [ | 41 var ordering = [ |
| 58 SecurityAgent.SecurityState.Info, | 42 SecurityAgent.SecurityState.Info, SecurityAgent.SecurityState.Insecure,
SecurityAgent.SecurityState.Neutral, |
| 59 SecurityAgent.SecurityState.Insecure, | 43 SecurityAgent.SecurityState.Warning, SecurityAgent.SecurityState.Secure, |
| 60 SecurityAgent.SecurityState.Neutral, | 44 // Unknown is max so that failed/cancelled requests don't overwrite the
origin security state for successful requests, |
| 61 SecurityAgent.SecurityState.Warning, | 45 // and so that failed/cancelled requests appear at the bottom of the ori
gins list. |
| 62 SecurityAgent.SecurityState.Secure, | 46 SecurityAgent.SecurityState.Unknown |
| 63 // Unknown is max so that failed/cancelled requests don't overwrite
the origin security state for successful requests, | 47 ]; |
| 64 // and so that failed/cancelled requests appear at the bottom of the
origins list. | 48 for (var i = 0; i < ordering.length; i++) |
| 65 SecurityAgent.SecurityState.Unknown | 49 securityStateMap.set(ordering[i], i + 1); |
| 66 ]; | 50 WebInspector.SecurityModel._symbolicToNumericSecurityState = securityState
Map; |
| 67 for (var i = 0; i < ordering.length; i++) | |
| 68 securityStateMap.set(ordering[i], i + 1); | |
| 69 WebInspector.SecurityModel._symbolicToNumericSecurityState = securitySta
teMap; | |
| 70 } | 51 } |
| 71 var aScore = securityStateMap.get(a) || 0; | 52 var aScore = securityStateMap.get(a) || 0; |
| 72 var bScore = securityStateMap.get(b) || 0; | 53 var bScore = securityStateMap.get(b) || 0; |
| 73 | 54 |
| 74 return aScore - bScore; | 55 return aScore - bScore; |
| 56 } |
| 57 |
| 58 showCertificateViewer() { |
| 59 this._securityAgent.showCertificateViewer(); |
| 60 } |
| 75 }; | 61 }; |
| 76 | 62 |
| 63 /** @enum {symbol} */ |
| 64 WebInspector.SecurityModel.Events = { |
| 65 SecurityStateChanged: Symbol('SecurityStateChanged') |
| 66 }; |
| 67 |
| 68 |
| 77 /** | 69 /** |
| 78 * @constructor | 70 * @unrestricted |
| 79 * @param {!SecurityAgent.SecurityState} securityState | |
| 80 * @param {!Array<!SecurityAgent.SecurityStateExplanation>} explanations | |
| 81 * @param {?SecurityAgent.InsecureContentStatus} insecureContentStatus | |
| 82 * @param {boolean} schemeIsCryptographic | |
| 83 */ | 71 */ |
| 84 WebInspector.PageSecurityState = function(securityState, explanations, insecureC
ontentStatus, schemeIsCryptographic) { | 72 WebInspector.PageSecurityState = class { |
| 73 /** |
| 74 * @param {!SecurityAgent.SecurityState} securityState |
| 75 * @param {!Array<!SecurityAgent.SecurityStateExplanation>} explanations |
| 76 * @param {?SecurityAgent.InsecureContentStatus} insecureContentStatus |
| 77 * @param {boolean} schemeIsCryptographic |
| 78 */ |
| 79 constructor(securityState, explanations, insecureContentStatus, schemeIsCrypto
graphic) { |
| 85 this.securityState = securityState; | 80 this.securityState = securityState; |
| 86 this.explanations = explanations; | 81 this.explanations = explanations; |
| 87 this.insecureContentStatus = insecureContentStatus; | 82 this.insecureContentStatus = insecureContentStatus; |
| 88 this.schemeIsCryptographic = schemeIsCryptographic; | 83 this.schemeIsCryptographic = schemeIsCryptographic; |
| 84 } |
| 89 }; | 85 }; |
| 90 | 86 |
| 91 /** | 87 /** |
| 92 * @constructor | |
| 93 * @implements {SecurityAgent.Dispatcher} | 88 * @implements {SecurityAgent.Dispatcher} |
| 89 * @unrestricted |
| 94 */ | 90 */ |
| 95 WebInspector.SecurityDispatcher = function(model) | 91 WebInspector.SecurityDispatcher = class { |
| 96 { | 92 constructor(model) { |
| 97 this._model = model; | 93 this._model = model; |
| 94 } |
| 95 |
| 96 /** |
| 97 * @override |
| 98 * @param {!SecurityAgent.SecurityState} securityState |
| 99 * @param {!Array<!SecurityAgent.SecurityStateExplanation>=} explanations |
| 100 * @param {!SecurityAgent.InsecureContentStatus=} insecureContentStatus |
| 101 * @param {boolean=} schemeIsCryptographic |
| 102 */ |
| 103 securityStateChanged(securityState, explanations, insecureContentStatus, schem
eIsCryptographic) { |
| 104 var pageSecurityState = new WebInspector.PageSecurityState( |
| 105 securityState, explanations || [], insecureContentStatus || null, scheme
IsCryptographic || false); |
| 106 this._model.dispatchEventToListeners(WebInspector.SecurityModel.Events.Secur
ityStateChanged, pageSecurityState); |
| 107 } |
| 98 }; | 108 }; |
| 99 | |
| 100 WebInspector.SecurityDispatcher.prototype = { | |
| 101 /** | |
| 102 * @override | |
| 103 * @param {!SecurityAgent.SecurityState} securityState | |
| 104 * @param {!Array<!SecurityAgent.SecurityStateExplanation>=} explanations | |
| 105 * @param {!SecurityAgent.InsecureContentStatus=} insecureContentStatus | |
| 106 * @param {boolean=} schemeIsCryptographic | |
| 107 */ | |
| 108 securityStateChanged: function(securityState, explanations, insecureContentS
tatus, schemeIsCryptographic) | |
| 109 { | |
| 110 var pageSecurityState = new WebInspector.PageSecurityState(securityState
, explanations || [], insecureContentStatus || null, schemeIsCryptographic || fa
lse); | |
| 111 this._model.dispatchEventToListeners(WebInspector.SecurityModel.Events.S
ecurityStateChanged, pageSecurityState); | |
| 112 } | |
| 113 }; | |
| OLD | NEW |