| OLD | NEW |
| 1 // Copyright 2017 The Chromium Authors. All rights reserved. | 1 // Copyright 2017 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 /** @suppress {duplicate} */ | 5 /** @suppress {duplicate} */ |
| 6 var remoting = remoting || {}; | 6 var remoting = remoting || {}; |
| 7 | 7 |
| 8 (function(){ | 8 (function(){ |
| 9 | 9 |
| 10 'use strict'; | 10 'use strict'; |
| 11 | 11 |
| 12 /** | 12 /** |
| 13 * @constructor | 13 * @constructor |
| 14 */ | 14 */ |
| 15 remoting.OptionsExporter = function() { | 15 remoting.OptionsExporter = function() { |
| 16 base.Ipc.getInstance().register('getSettings', | 16 base.Ipc.getInstance().register('getSettings', |
| 17 remoting.OptionsExporter.migrateSettings_, | 17 remoting.OptionsExporter.migrateSettings_, |
| 18 true); | 18 true); |
| 19 }; | 19 }; |
| 20 | 20 |
| 21 remoting.OptionsExporter.migrateSettings_ = function() { | 21 remoting.OptionsExporter.migrateSettings_ = function() { |
| 22 var result = new base.Deferred(); | 22 var result = new base.Deferred(); |
| 23 chrome.storage.local.get(KEY_NAME, function(options) { | 23 chrome.storage.local.get(OPTIONS_KEY_NAME, function(options) { |
| 24 // If there are no host options stored, reformat the message response so | 24 // If there are no host options stored, reformat the message response so |
| 25 // that the sender doesn't interpret it as an error. | 25 // that the sender doesn't interpret it as an error. |
| 26 if (Object.keys(options).length == 0) { | 26 if (Object.keys(options).length == 0) { |
| 27 options[KEY_NAME] = '{}'; | 27 options[OPTIONS_KEY_NAME] = '{}'; |
| 28 } | 28 } |
| 29 result.resolve(options); | 29 var nativeMessagingHost = new remoting.HostDaemonFacade(); |
| 30 nativeMessagingHost.getDaemonState().then( |
| 31 function(state) { |
| 32 var reverse = new Map([ |
| 33 [remoting.HostController.State.NOT_IMPLEMENTED, 'NOT_IMPLEMENTED'], |
| 34 [remoting.HostController.State.NOT_INSTALLED, 'NOT_INSTALLED'], |
| 35 [remoting.HostController.State.STOPPED, 'STOPPED'], |
| 36 [remoting.HostController.State.STARTING, 'STARTING'], |
| 37 [remoting.HostController.State.STARTED, 'STARTED'], |
| 38 [remoting.HostController.State.STOPPING, 'STOPPING'], |
| 39 ]); |
| 40 options[LOCAL_HOST_STATE_KEY_NAME] = reverse.get(state) || 'UNKNOWN'; |
| 41 result.resolve(options); |
| 42 }, |
| 43 function(error) { |
| 44 options[LOCAL_HOST_STATE_KEY_NAME] = 'UNKNOWN'; |
| 45 result.resolve(options); |
| 46 }); |
| 30 }) | 47 }) |
| 31 return result.promise(); | 48 return result.promise(); |
| 32 }; | 49 }; |
| 33 | 50 |
| 34 var KEY_NAME = 'remoting-host-options'; | 51 var OPTIONS_KEY_NAME = 'remoting-host-options'; |
| 52 var LOCAL_HOST_STATE_KEY_NAME = 'local-host-state'; |
| 35 | 53 |
| 36 }()); | 54 }()); |
| OLD | NEW |