Update To 11.40.268.0
[platform/framework/web/crosswalk.git] / src / chrome / browser / resources / hotword / constants.js
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.
4
5 cr.define('hotword.constants', function() {
6 'use strict';
7
8 /**
9  * Hotword data shared module extension's ID.
10  * @const {string}
11  */
12 var SHARED_MODULE_ID = 'lccekmodgklaepjeofjdjpbminllajkg';
13
14 /**
15  * Path to shared module data.
16  * @const {string}
17  */
18 var SHARED_MODULE_ROOT = '_modules/' + SHARED_MODULE_ID;
19
20 /**
21  * Name used by the content scripts to create communications Ports.
22  * @const {string}
23  */
24 var CLIENT_PORT_NAME = 'chwcpn';
25
26 /**
27  * The field name to specify the command among pages.
28  * @const {string}
29  */
30 var COMMAND_FIELD_NAME = 'cmd';
31
32 /**
33  * Time to wait for expected messages, in milliseconds.
34  * @enum {number}
35  */
36 var TimeoutMs = {
37   SHORT: 200,
38   NORMAL: 500,
39   LONG: 2000
40 };
41
42 /**
43  * The URL of the files used by the plugin.
44  * @enum {string}
45  */
46 var File = {
47   RECOGNIZER_CONFIG: 'hotword.data',
48 };
49
50 /**
51  * Errors emitted by the NaClManager.
52  * @enum {string}
53  */
54 var Error = {
55   NACL_CRASH: 'nacl_crash',
56   TIMEOUT: 'timeout',
57 };
58
59 /**
60  * Event types supported by NaClManager.
61  * @enum {string}
62  */
63 var Event = {
64   READY: 'ready',
65   TRIGGER: 'trigger',
66   ERROR: 'error',
67 };
68
69 /**
70  * Messages for communicating with the NaCl recognizer plugin. These must match
71  * constants in <google3>/hotword_plugin.c
72  * @enum {string}
73  */
74 var NaClPlugin = {
75   RESTART: 'r',
76   SAMPLE_RATE_PREFIX: 'h',
77   MODEL_PREFIX: 'm',
78   STOP: 's',
79   REQUEST_MODEL: 'model',
80   MODEL_LOADED: 'model_loaded',
81   READY_FOR_AUDIO: 'audio',
82   STOPPED: 'stopped',
83   HOTWORD_DETECTED: 'hotword',
84   MS_CONFIGURED: 'ms_configured'
85 };
86
87 /**
88  * Messages sent from the injected scripts to the Google page.
89  * @enum {string}
90  */
91 var CommandToPage = {
92   HOTWORD_VOICE_TRIGGER: 'vt',
93   HOTWORD_STARTED: 'hs',
94   HOTWORD_ENDED: 'hd',
95   HOTWORD_TIMEOUT: 'ht',
96   HOTWORD_ERROR: 'he'
97 };
98
99 /**
100  * Messages sent from the Google page to the injected scripts
101  * and then passed to the extension.
102  * @enum {string}
103  */
104 var CommandFromPage = {
105   SPEECH_START: 'ss',
106   SPEECH_END: 'se',
107   SPEECH_RESET: 'sr',
108   SHOWING_HOTWORD_START: 'shs',
109   SHOWING_ERROR_MESSAGE: 'sem',
110   SHOWING_TIMEOUT_MESSAGE: 'stm',
111   CLICKED_RESUME: 'hcc',
112   CLICKED_RESTART: 'hcr',
113   CLICKED_DEBUG: 'hcd',
114   WAKE_UP_HELPER: 'wuh'
115 };
116
117 /**
118  * Source of a hotwording session request.
119  * @enum {string}
120  */
121 var SessionSource = {
122   LAUNCHER: 'launcher',
123   NTP: 'ntp',
124   ALWAYS: 'always',
125   TRAINING: 'training'
126 };
127
128 /**
129  * MediaStream open success/errors to be reported via UMA.
130  * DO NOT remove or renumber values in this enum. Only add new ones.
131  * @enum {number}
132  */
133 var UmaMediaStreamOpenResult = {
134   SUCCESS: 0,
135   UNKNOWN: 1,
136   NOT_SUPPORTED: 2,
137   PERMISSION_DENIED: 3,
138   CONSTRAINT_NOT_SATISFIED: 4,
139   OVERCONSTRAINED: 5,
140   NOT_FOUND: 6,
141   ABORT: 7,
142   SOURCE_UNAVAILABLE: 8,
143   PERMISSION_DISMISSED: 9,
144   INVALID_STATE: 10,
145   DEVICES_NOT_FOUND: 11,
146   INVALID_SECURITY_ORIGIN: 12,
147   MAX: 12
148 };
149
150 /**
151  * UMA metrics.
152  * DO NOT change these enum values.
153  * @enum {string}
154  */
155 var UmaMetrics = {
156   TRIGGER: 'Hotword.HotwordTrigger',
157   MEDIA_STREAM_RESULT: 'Hotword.HotwordMediaStreamResult',
158   NACL_PLUGIN_LOAD_RESULT: 'Hotword.HotwordNaClPluginLoadResult',
159   NACL_MESSAGE_TIMEOUT: 'Hotword.HotwordNaClMessageTimeout'
160 };
161
162 /**
163  * Message waited for by NaCl plugin, to be reported via UMA.
164  * DO NOT remove or renumber values in this enum. Only add new ones.
165  * @enum {number}
166  */
167 var UmaNaClMessageTimeout = {
168   REQUEST_MODEL: 0,
169   MODEL_LOADED: 1,
170   READY_FOR_AUDIO: 2,
171   STOPPED: 3,
172   HOTWORD_DETECTED: 4,
173   MS_CONFIGURED: 5,
174   MAX: 5
175 };
176
177 /**
178  * NaCl plugin load success/errors to be reported via UMA.
179  * DO NOT remove or renumber values in this enum. Only add new ones.
180  * @enum {number}
181  */
182 var UmaNaClPluginLoadResult = {
183   SUCCESS: 0,
184   UNKNOWN: 1,
185   CRASH: 2,
186   NO_MODULE_FOUND: 3,
187   MAX: 3
188 };
189
190 /**
191  * The browser UI language.
192  * @const {string}
193  */
194 var UI_LANGUAGE = (chrome.i18n && chrome.i18n.getUILanguage) ?
195       chrome.i18n.getUILanguage() : '';
196
197 return {
198   CLIENT_PORT_NAME: CLIENT_PORT_NAME,
199   COMMAND_FIELD_NAME: COMMAND_FIELD_NAME,
200   SHARED_MODULE_ID: SHARED_MODULE_ID,
201   SHARED_MODULE_ROOT: SHARED_MODULE_ROOT,
202   UI_LANGUAGE: UI_LANGUAGE,
203   CommandToPage: CommandToPage,
204   CommandFromPage: CommandFromPage,
205   Error: Error,
206   Event: Event,
207   File: File,
208   NaClPlugin: NaClPlugin,
209   SessionSource: SessionSource,
210   TimeoutMs: TimeoutMs,
211   UmaMediaStreamOpenResult: UmaMediaStreamOpenResult,
212   UmaMetrics: UmaMetrics,
213   UmaNaClMessageTimeout: UmaNaClMessageTimeout,
214   UmaNaClPluginLoadResult: UmaNaClPluginLoadResult
215 };
216
217 });