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 | 4 |
5 /** | 5 /** |
6 * @fileoverview Implements a check whether an origin is allowed to assert an | 6 * @fileoverview Implements a check whether an origin is allowed to assert an |
7 * app id based on whether they share the same effective TLD + 1. | 7 * app id based on whether they share the same effective TLD + 1. |
8 * | 8 * |
9 */ | 9 */ |
10 'use strict'; | 10 'use strict'; |
11 | 11 |
12 /** | 12 /** |
13 * Implements half of the app id policy: whether an origin is allowed to claim | 13 * Implements half of the app id policy: whether an origin is allowed to claim |
14 * an app id. For checking whether the app id also lists the origin, | 14 * an app id. For checking whether the app id also lists the origin, |
15 * @see AppIdChecker. | 15 * @see AppIdChecker. |
16 * @implements OriginChecker | 16 * @implements OriginChecker |
17 * @constructor | 17 * @constructor |
18 */ | 18 */ |
19 function CryptoTokenOriginChecker() { | 19 function CryptoTokenOriginChecker() { |
20 } | 20 } |
21 | 21 |
22 /** | 22 /** |
23 * Checks whether the origin is allowed to claim the app ids. | 23 * Checks whether the origin is allowed to claim the app ids. |
24 * @param {string} origin The origin claiming the app id. | 24 * @param {string} origin The origin claiming the app id. |
25 * @param {!Array.<string>} appIds The app ids being claimed. | 25 * @param {!Array<string>} appIds The app ids being claimed. |
26 * @return {Promise.<boolean>} A promise for the result of the check. | 26 * @return {Promise<boolean>} A promise for the result of the check. |
27 */ | 27 */ |
28 CryptoTokenOriginChecker.prototype.canClaimAppIds = function(origin, appIds) { | 28 CryptoTokenOriginChecker.prototype.canClaimAppIds = function(origin, appIds) { |
29 var appIdChecks = appIds.map(this.checkAppId_.bind(this, origin)); | 29 var appIdChecks = appIds.map(this.checkAppId_.bind(this, origin)); |
30 return Promise.all(appIdChecks).then(function(results) { | 30 return Promise.all(appIdChecks).then(function(results) { |
31 return results.every(function(result) { | 31 return results.every(function(result) { |
32 return result; | 32 return result; |
33 }); | 33 }); |
34 }); | 34 }); |
35 }; | 35 }; |
36 | 36 |
37 /** | 37 /** |
38 * Checks if a single appId can be asserted by the given origin. | 38 * Checks if a single appId can be asserted by the given origin. |
39 * @param {string} origin The origin. | 39 * @param {string} origin The origin. |
40 * @param {string} appId The appId to check | 40 * @param {string} appId The appId to check |
41 * @return {Promise.<boolean>} A promise for the result of the check | 41 * @return {Promise<boolean>} A promise for the result of the check |
42 * @private | 42 * @private |
43 */ | 43 */ |
44 CryptoTokenOriginChecker.prototype.checkAppId_ = | 44 CryptoTokenOriginChecker.prototype.checkAppId_ = |
45 function(origin, appId) { | 45 function(origin, appId) { |
46 return new Promise(function(resolve, reject) { | 46 return new Promise(function(resolve, reject) { |
47 if (!chrome.cryptotokenPrivate) { | 47 if (!chrome.cryptotokenPrivate) { |
48 reject(); | 48 reject(); |
49 return; | 49 return; |
50 } | 50 } |
51 chrome.cryptotokenPrivate.canOriginAssertAppId(origin, appId, resolve); | 51 chrome.cryptotokenPrivate.canOriginAssertAppId(origin, appId, resolve); |
52 }); | 52 }); |
53 }; | 53 }; |
OLD | NEW |