Remove the old signature of NotificationManager::closePersistent().
[chromium-blink-merge.git] / chrome / browser / resources / hotword / constants.js
blobbadd09ce308db02ad8c2b26df3300aea718d7968
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
3 // found in the LICENSE file.
5 cr.define('hotword.constants', function() {
6 'use strict';
8 /**
9  * Number of seconds of audio to record when logging is enabled.
10  * @const {number}
11  */
12 var AUDIO_LOG_SECONDS = 2;
14 /**
15  * Hotword data shared module extension's ID.
16  * @const {string}
17  */
18 var SHARED_MODULE_ID = 'lccekmodgklaepjeofjdjpbminllajkg';
20 /**
21  * Path to shared module data.
22  * @const {string}
23  */
24 var SHARED_MODULE_ROOT = '_modules/' + SHARED_MODULE_ID;
26 /**
27  * Name used by the content scripts to create communications Ports.
28  * @const {string}
29  */
30 var CLIENT_PORT_NAME = 'chwcpn';
32 /**
33  * The field name to specify the command among pages.
34  * @const {string}
35  */
36 var COMMAND_FIELD_NAME = 'cmd';
38 /**
39  * The speaker model file name.
40  * @const {string}
41  */
42 var SPEAKER_MODEL_FILE_NAME = 'speaker_model.data';
44 /**
45  * The training utterance file name prefix.
46  * @const {string}
47  */
48 var UTTERANCE_FILE_PREFIX = 'utterance-';
50 /**
51  * The training utterance file extension.
52  * @const {string}
53  */
54 var UTTERANCE_FILE_EXTENSION = '.raw';
56 /**
57  * The number of training utterances required to train the speaker model.
58  * @const {number}
59  */
60 var NUM_TRAINING_UTTERANCES = 3;
62 /**
63  * The size of the file system requested for reading the speaker model and
64  * utterances. This number should always be larger than the combined file size,
65  * currently 576338 bytes as of February 2015.
66  * @const {number}
67  */
68 var FILE_SYSTEM_SIZE_BYTES = 1048576;
70 /**
71  * Time to wait for expected messages, in milliseconds.
72  * @enum {number}
73  */
74 var TimeoutMs = {
75   SHORT: 200,
76   NORMAL: 500,
77   LONG: 2000
80 /**
81  * The URL of the files used by the plugin.
82  * @enum {string}
83  */
84 var File = {
85   RECOGNIZER_CONFIG: 'hotword.data',
88 /**
89  * Errors emitted by the NaClManager.
90  * @enum {string}
91  */
92 var Error = {
93   NACL_CRASH: 'nacl_crash',
94   TIMEOUT: 'timeout',
97 /**
98  * Event types supported by NaClManager.
99  * @enum {string}
100  */
101 var Event = {
102   READY: 'ready',
103   TRIGGER: 'trigger',
104   SPEAKER_MODEL_SAVED: 'speaker model saved',
105   ERROR: 'error',
106   TIMEOUT: 'timeout',
110  * Messages for communicating with the NaCl recognizer plugin. These must match
111  * constants in <google3>/hotword_plugin.c
112  * @enum {string}
113  */
114 var NaClPlugin = {
115   RESTART: 'r',
116   SAMPLE_RATE_PREFIX: 'h',
117   MODEL_PREFIX: 'm',
118   STOP: 's',
119   LOG: 'l',
120   BEGIN_SPEAKER_MODEL: 'b',
121   ADAPT_SPEAKER_MODEL: 'a',
122   FINISH_SPEAKER_MODEL: 'f',
123   SPEAKER_MODEL_SAVED: 'sm_saved',
124   REQUEST_MODEL: 'model',
125   MODEL_LOADED: 'model_loaded',
126   READY_FOR_AUDIO: 'audio',
127   STOPPED: 'stopped',
128   HOTWORD_DETECTED: 'hotword',
129   MS_CONFIGURED: 'ms_configured',
130   TIMEOUT: 'timeout'
134  * Messages sent from the injected scripts to the Google page.
135  * @enum {string}
136  */
137 var CommandToPage = {
138   HOTWORD_VOICE_TRIGGER: 'vt',
139   HOTWORD_STARTED: 'hs',
140   HOTWORD_ENDED: 'hd',
141   HOTWORD_TIMEOUT: 'ht',
142   HOTWORD_ERROR: 'he'
146  * Messages sent from the Google page to the extension or to the
147  * injected script and then passed to the extension.
148  * @enum {string}
149  */
150 var CommandFromPage = {
151   SPEECH_START: 'ss',
152   SPEECH_END: 'se',
153   SPEECH_RESET: 'sr',
154   SHOWING_HOTWORD_START: 'shs',
155   SHOWING_ERROR_MESSAGE: 'sem',
156   SHOWING_TIMEOUT_MESSAGE: 'stm',
157   CLICKED_RESUME: 'hcc',
158   CLICKED_RESTART: 'hcr',
159   CLICKED_DEBUG: 'hcd',
160   WAKE_UP_HELPER: 'wuh',
161   // Command specifically for the opt-in promo below this line.
162   // User has explicitly clicked 'no'.
163   CLICKED_NO_OPTIN: 'hcno',
164   // User has opted in.
165   CLICKED_OPTIN: 'hco',
166   // User clicked on the microphone.
167   PAGE_WAKEUP: 'wu'
171  * Source of a hotwording session request.
172  * @enum {string}
173  */
174 var SessionSource = {
175   LAUNCHER: 'launcher',
176   NTP: 'ntp',
177   ALWAYS: 'always',
178   TRAINING: 'training'
182  * The mode to start the hotword recognizer in.
183  * @enum {string}
184  */
185 var RecognizerStartMode = {
186   NORMAL: 'normal',
187   NEW_MODEL: 'new model',
188   ADAPT_MODEL: 'adapt model'
192  * MediaStream open success/errors to be reported via UMA.
193  * DO NOT remove or renumber values in this enum. Only add new ones.
194  * @enum {number}
195  */
196 var UmaMediaStreamOpenResult = {
197   SUCCESS: 0,
198   UNKNOWN: 1,
199   NOT_SUPPORTED: 2,
200   PERMISSION_DENIED: 3,
201   CONSTRAINT_NOT_SATISFIED: 4,
202   OVERCONSTRAINED: 5,
203   NOT_FOUND: 6,
204   ABORT: 7,
205   SOURCE_UNAVAILABLE: 8,
206   PERMISSION_DISMISSED: 9,
207   INVALID_STATE: 10,
208   DEVICES_NOT_FOUND: 11,
209   INVALID_SECURITY_ORIGIN: 12,
210   MAX: 12
214  * UMA metrics.
215  * DO NOT change these enum values.
216  * @enum {string}
217  */
218 var UmaMetrics = {
219   TRIGGER: 'Hotword.HotwordTrigger',
220   MEDIA_STREAM_RESULT: 'Hotword.HotwordMediaStreamResult',
221   NACL_PLUGIN_LOAD_RESULT: 'Hotword.HotwordNaClPluginLoadResult',
222   NACL_MESSAGE_TIMEOUT: 'Hotword.HotwordNaClMessageTimeout',
223   TRIGGER_SOURCE: 'Hotword.HotwordTriggerSource'
227  * Message waited for by NaCl plugin, to be reported via UMA.
228  * DO NOT remove or renumber values in this enum. Only add new ones.
229  * @enum {number}
230  */
231 var UmaNaClMessageTimeout = {
232   REQUEST_MODEL: 0,
233   MODEL_LOADED: 1,
234   READY_FOR_AUDIO: 2,
235   STOPPED: 3,
236   HOTWORD_DETECTED: 4,
237   MS_CONFIGURED: 5,
238   MAX: 5
242  * NaCl plugin load success/errors to be reported via UMA.
243  * DO NOT remove or renumber values in this enum. Only add new ones.
244  * @enum {number}
245  */
246 var UmaNaClPluginLoadResult = {
247   SUCCESS: 0,
248   UNKNOWN: 1,
249   CRASH: 2,
250   NO_MODULE_FOUND: 3,
251   MAX: 3
255  * Source of hotword triggering, to be reported via UMA.
256  * DO NOT remove or renumber values in this enum. Only add new ones.
257  * @enum {number}
258  */
259 var UmaTriggerSource = {
260   LAUNCHER: 0,
261   NTP_GOOGLE_COM: 1,
262   ALWAYS_ON: 2,
263   TRAINING: 3,
264   MAX: 3
268  * The browser UI language.
269  * @const {string}
270  */
271 var UI_LANGUAGE = (chrome.i18n && chrome.i18n.getUILanguage) ?
272       chrome.i18n.getUILanguage() : '';
274 return {
275   AUDIO_LOG_SECONDS: AUDIO_LOG_SECONDS,
276   CLIENT_PORT_NAME: CLIENT_PORT_NAME,
277   COMMAND_FIELD_NAME: COMMAND_FIELD_NAME,
278   FILE_SYSTEM_SIZE_BYTES: FILE_SYSTEM_SIZE_BYTES,
279   NUM_TRAINING_UTTERANCES: NUM_TRAINING_UTTERANCES,
280   SHARED_MODULE_ID: SHARED_MODULE_ID,
281   SHARED_MODULE_ROOT: SHARED_MODULE_ROOT,
282   SPEAKER_MODEL_FILE_NAME: SPEAKER_MODEL_FILE_NAME,
283   UI_LANGUAGE: UI_LANGUAGE,
284   UTTERANCE_FILE_EXTENSION: UTTERANCE_FILE_EXTENSION,
285   UTTERANCE_FILE_PREFIX: UTTERANCE_FILE_PREFIX,
286   CommandToPage: CommandToPage,
287   CommandFromPage: CommandFromPage,
288   Error: Error,
289   Event: Event,
290   File: File,
291   NaClPlugin: NaClPlugin,
292   RecognizerStartMode: RecognizerStartMode,
293   SessionSource: SessionSource,
294   TimeoutMs: TimeoutMs,
295   UmaMediaStreamOpenResult: UmaMediaStreamOpenResult,
296   UmaMetrics: UmaMetrics,
297   UmaNaClMessageTimeout: UmaNaClMessageTimeout,
298   UmaNaClPluginLoadResult: UmaNaClPluginLoadResult,
299   UmaTriggerSource: UmaTriggerSource