Chromium Code Reviews| OLD | NEW |
|---|---|
| 1 // Copyright 2014 The Chromium Authors. All rights reserved. | 1 // Copyright 2014 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 (function() { | 5 (function() { |
| 6 'use strict'; | 6 'use strict'; |
| 7 | 7 |
| 8 /** | 8 /** |
| 9 * @fileoverview This extension provides hotword triggering capabilites to | 9 * @fileoverview This extension provides hotword triggering capabilites to |
| 10 * Chrome. | 10 * Chrome. |
| 11 * | 11 * |
| 12 * This extension contains all the JavaScript for loading and managing the | 12 * This extension contains all the JavaScript for loading and managing the |
| 13 * hotword detector. The hotword detector and language model data will be | 13 * hotword detector. The hotword detector and language model data will be |
| 14 * provided by a shared module loaded from the web store. | 14 * provided by a shared module loaded from the web store. |
| 15 * | 15 * |
| 16 * IMPORTANT! Whenever adding new events, the extension version number MUST be | 16 * IMPORTANT! Whenever adding new events, the extension version number MUST be |
| 17 * incremented. | 17 * incremented. |
| 18 */ | 18 */ |
| 19 | 19 |
| 20 // Hotwording state. | 20 // Hotwording state. |
| 21 var stateManager = new hotword.StateManager(); | 21 var stateManager = new hotword.StateManager(); |
| 22 var pageAudioManager = new hotword.PageAudioManager(stateManager); | |
| 22 | 23 |
| 23 // Detect Chrome startup and make sure we get a chance to run. | 24 // Detect Chrome startup and make sure we get a chance to run. |
| 24 chrome.runtime.onStartup.addListener(function() { | 25 chrome.runtime.onStartup.addListener(function() { |
| 25 stateManager.updateStatus(); | 26 stateManager.updateStatus(); |
| 26 }); | 27 }); |
| 27 | 28 |
| 28 // Detect when hotword settings have changed. | 29 // Detect when hotword settings have changed. |
| 29 chrome.hotwordPrivate.onEnabledChanged.addListener(function() { | 30 chrome.hotwordPrivate.onEnabledChanged.addListener(function() { |
| 30 stateManager.updateStatus(); | 31 stateManager.updateStatus(); |
| 31 }); | 32 }); |
| 32 | 33 |
| 33 // Detect when the shared module containing the NaCL module and language model | 34 // Detect when the shared module containing the NaCL module and language model |
| 34 // is installed. | 35 // is installed. |
| 35 chrome.management.onInstalled.addListener(function(info) { | 36 chrome.management.onInstalled.addListener(function(info) { |
| 36 if (info.id == hotword.constants.SHARED_MODULE_ID) | 37 if (info.id == hotword.constants.SHARED_MODULE_ID) |
| 37 chrome.runtime.reload(); | 38 chrome.runtime.reload(); |
| 38 }); | 39 }); |
| 39 | 40 |
| 40 // Detect when a session has requested to be started and stopped. | 41 // Detect when a session has requested to be started and stopped. |
| 41 chrome.hotwordPrivate.onHotwordSessionRequested.addListener(function() { | 42 chrome.hotwordPrivate.onHotwordSessionRequested.addListener(function() { |
| 42 // TODO(amistry): This event should change state depending on whether the | 43 // TODO(amistry): This event should change state depending on whether the |
| 43 // user has enabled always-on hotwording. But for now, always signal the | 44 // user has enabled always-on hotwording. But for now, always signal the |
| 44 // start of a hotwording session. This allows this extension to work with | 45 // start of a hotwording session. This allows this extension to work with |
| 45 // the app launcher in the current state. | 46 // the app launcher in the current state. |
| 46 stateManager.startSession( | 47 stateManager.startSession( |
| 47 hotword.constants.SessionSource.LAUNCHER, | 48 hotword.constants.SessionSource.LAUNCHER, |
| 48 function() { | 49 function() { |
| 49 chrome.hotwordPrivate.setHotwordSessionState(true, function() {}); | 50 chrome.hotwordPrivate.setHotwordSessionState(true, function() {}); |
| 51 }, | |
| 52 function() { | |
| 53 chrome.hotwordPrivate.notifyHotwordRecognition('search', | |
|
rpetterson
2014/09/25 02:23:37
Based on hotword_private_api.cc, the type -- 'sear
Anand Mistry (off Chromium)
2014/09/25 05:23:42
Honestly, no idea. I have no plans for it. It alre
rpetterson
2014/09/30 01:57:30
I think Mukai originally wrote it . . . looking mo
| |
| 54 function() {}); | |
| 50 }); | 55 }); |
| 51 }); | 56 }); |
| 52 | 57 |
| 53 chrome.hotwordPrivate.onHotwordSessionStopped.addListener(function() { | 58 chrome.hotwordPrivate.onHotwordSessionStopped.addListener(function() { |
| 54 stateManager.stopSession(hotword.constants.SessionSource.LAUNCHER); | 59 stateManager.stopSession(hotword.constants.SessionSource.LAUNCHER); |
| 55 chrome.hotwordPrivate.setHotwordSessionState(false, function() {}); | 60 chrome.hotwordPrivate.setHotwordSessionState(false, function() {}); |
| 56 }); | 61 }); |
| 57 }()); | 62 }()); |
| OLD | NEW |