Chromium Code Reviews| Index: third_party/WebKit/Source/devtools/front_end/sdk/SecurityOriginManager.js |
| diff --git a/third_party/WebKit/Source/devtools/front_end/sdk/SecurityOriginManager.js b/third_party/WebKit/Source/devtools/front_end/sdk/SecurityOriginManager.js |
| new file mode 100644 |
| index 0000000000000000000000000000000000000000..06e660b119f9479f55be3dc610aef0e1e09596b1 |
| --- /dev/null |
| +++ b/third_party/WebKit/Source/devtools/front_end/sdk/SecurityOriginManager.js |
| @@ -0,0 +1,91 @@ |
| +// Copyright 2016 The Chromium Authors. All rights reserved. |
| +// Use of this source code is governed by a BSD-style license that can be |
| +// found in the LICENSE file. |
| + |
| +/** |
| + * @constructor |
| + * @extends {WebInspector.SDKModel} |
| + * @param {!WebInspector.Target} target |
| + */ |
| +WebInspector.SecurityOriginManager = function(target) |
| +{ |
| + WebInspector.SDKModel.call(this, WebInspector.SecurityOriginManager, target); |
| + |
| + this._securityOriginCounter = new Map(); |
| + this._mainSecurityOrigin = ""; |
| +} |
| + |
| +WebInspector.SecurityOriginManager.EventTypes = { |
| + SecurityOriginAdded: "SecurityOriginAdded", |
| + SecurityOriginRemoved: "SecurityOriginRemoved", |
| + SecurityOriginChanged: "SecurityOriginChanged", |
|
dgozman
2016/07/22 23:44:23
MainSecurityOriginChanged
eostroukhov-old
2016/07/25 18:16:59
Done.
|
| +} |
| + |
| +/** |
| + * @param {!WebInspector.Target} target |
| + * @return {!WebInspector.SecurityOriginManager} |
| + */ |
| +WebInspector.SecurityOriginManager.fromTarget = function(target) |
| +{ |
| + var securityOriginManager = /** @type {?WebInspector.SecurityOriginManager} */ (target.model(WebInspector.SecurityOriginManager)); |
| + if (!securityOriginManager) |
| + securityOriginManager = new WebInspector.SecurityOriginManager(target); |
| + return securityOriginManager; |
| +} |
| + |
| +WebInspector.SecurityOriginManager.prototype = { |
| + /** |
| + * @param {string} securityOrigin |
| + */ |
| + addSecurityOrigin: function(securityOrigin) |
| + { |
| + var currentCount = this._securityOriginCounter.get(securityOrigin); |
| + if (!currentCount) { |
| + this._securityOriginCounter.set(securityOrigin, 1); |
| + this.dispatchEventToListeners(WebInspector.SecurityOriginManager.EventTypes.SecurityOriginAdded, securityOrigin); |
| + return; |
| + } |
| + this._securityOriginCounter.set(securityOrigin, currentCount + 1); |
| + }, |
| + |
| + /** |
| + * @param {string} securityOrigin |
| + */ |
| + removeSecurityOrigin: function(securityOrigin) |
| + { |
| + var currentCount = this._securityOriginCounter.get(securityOrigin); |
| + if (currentCount === 1) { |
| + this._securityOriginCounter.delete(securityOrigin); |
| + this.dispatchEventToListeners(WebInspector.SecurityOriginManager.EventTypes.SecurityOriginRemoved, securityOrigin); |
| + return; |
| + } |
| + this._securityOriginCounter.set(securityOrigin, currentCount - 1); |
| + }, |
| + |
| + /** |
| + * @return {!Array<string>} |
| + */ |
| + securityOrigins: function() |
| + { |
| + return Array.from(this._securityOriginCounter.keys()); |
|
dgozman
2016/07/22 23:44:23
Is there a keysArray() method defined in utilities
eostroukhov-old
2016/07/25 18:16:59
Done.
|
| + }, |
| + |
| + /** |
| + * @return {string} |
| + */ |
| + mainSecurityOrigin: function() |
| + { |
| + return this._mainSecurityOrigin; |
| + }, |
| + |
| + /** |
| + * @param {string} securityOrigin |
| + */ |
| + setMainSecurityOrigin: function(securityOrigin) |
| + { |
| + this._mainSecurityOrigin = securityOrigin; |
| + this.dispatchEventToListeners(WebInspector.SecurityOriginManager.EventTypes.SecurityOriginChanged, securityOrigin); |
| + }, |
| + |
| + __proto__: WebInspector.SDKModel.prototype |
| +} |