| OLD | NEW |
| 1 // Copyright (c) 2012 The Chromium Authors. All rights reserved. | 1 // Copyright (c) 2012 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 | 6 * @fileoverview |
| 7 * Class representing the host-list portion of the home screen UI. | 7 * Class representing the host-list portion of the home screen UI. |
| 8 */ | 8 */ |
| 9 | 9 |
| 10 'use strict'; | 10 'use strict'; |
| (...skipping 91 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 102 * @param {function():void} onDone Completion callback. | 102 * @param {function():void} onDone Completion callback. |
| 103 */ | 103 */ |
| 104 remoting.HostList.prototype.load = function(onDone) { | 104 remoting.HostList.prototype.load = function(onDone) { |
| 105 // Load the cache of the last host-list, if present. | 105 // Load the cache of the last host-list, if present. |
| 106 /** @type {remoting.HostList} */ | 106 /** @type {remoting.HostList} */ |
| 107 var that = this; | 107 var that = this; |
| 108 /** @param {Object<string>} items */ | 108 /** @param {Object<string>} items */ |
| 109 var storeHostList = function(items) { | 109 var storeHostList = function(items) { |
| 110 if (items[remoting.HostList.HOSTS_KEY]) { | 110 if (items[remoting.HostList.HOSTS_KEY]) { |
| 111 var cached = base.jsonParseSafe(items[remoting.HostList.HOSTS_KEY]); | 111 var cached = base.jsonParseSafe(items[remoting.HostList.HOSTS_KEY]); |
| 112 if (cached) { | 112 if (cached && cached instanceof Array) { |
| 113 that.hosts_ = /** @type {Array<remoting.Host>} */ (cached); | 113 that.hosts_ = cached |
| 114 .map((host) => remoting.Host.fromObject(host)) |
| 115 .filter((host) => Boolean(host)); |
| 114 } else { | 116 } else { |
| 115 console.error('Invalid value for ' + remoting.HostList.HOSTS_KEY); | 117 console.error('Invalid value for ' + remoting.HostList.HOSTS_KEY); |
| 116 } | 118 } |
| 117 } | 119 } |
| 118 onDone(); | 120 onDone(); |
| 119 }; | 121 }; |
| 120 chrome.storage.local.get(remoting.HostList.HOSTS_KEY, storeHostList); | 122 chrome.storage.local.get(remoting.HostList.HOSTS_KEY, storeHostList); |
| 121 }; | 123 }; |
| 122 | 124 |
| 123 /** | 125 /** |
| (...skipping 350 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 474 } | 476 } |
| 475 }; | 477 }; |
| 476 | 478 |
| 477 /** | 479 /** |
| 478 * Key name under which Me2Me hosts are cached. | 480 * Key name under which Me2Me hosts are cached. |
| 479 */ | 481 */ |
| 480 remoting.HostList.HOSTS_KEY = 'me2me-cached-hosts'; | 482 remoting.HostList.HOSTS_KEY = 'me2me-cached-hosts'; |
| 481 | 483 |
| 482 /** @type {remoting.HostList} */ | 484 /** @type {remoting.HostList} */ |
| 483 remoting.hostList = null; | 485 remoting.hostList = null; |
| OLD | NEW |