OLD | NEW |
---|---|
1 // Copyright (c) 2014 The Chromium Authors. All rights reserved. | 1 // Copyright (c) 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 'use strict'; | 5 'use strict'; |
6 | 6 |
7 /** | 7 /** |
8 * @fileoverview This extension manages communications between Chrome, | 8 * @fileoverview This extension manages communications between Chrome, |
9 * Google.com pages and the Chrome Hotword extension. | 9 * Google.com pages and the Chrome Hotword extension. |
10 * | 10 * |
(...skipping 31 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... | |
42 | 42 |
43 | 43 |
44 /** | 44 /** |
45 * Commands sent from the page to this content script. | 45 * Commands sent from the page to this content script. |
46 * @enum {string} | 46 * @enum {string} |
47 */ | 47 */ |
48 OptInManager.CommandFromPage = { | 48 OptInManager.CommandFromPage = { |
49 // User has explicitly clicked 'no'. | 49 // User has explicitly clicked 'no'. |
50 CLICKED_NO_OPTIN: 'hcno', | 50 CLICKED_NO_OPTIN: 'hcno', |
51 // User has opted in. | 51 // User has opted in. |
52 CLICKED_OPTIN: 'hco' | 52 CLICKED_OPTIN: 'hco', |
53 // Audio logging is opted in. | |
54 AUDIO_LOGGING_ON: 'alon', | |
55 // Audio logging is opted out. | |
56 AUDIO_LOGGING_OFF: 'aloff', | |
53 }; | 57 }; |
54 | 58 |
55 | 59 |
56 /** | 60 /** |
57 * Handles a tab being activated / focused on. | 61 * Handles a tab being activated / focused on. |
58 * @param {{tabId: number}} info Information about the activated tab. | 62 * @param {{tabId: number}} info Information about the activated tab. |
59 * @private | 63 * @private |
60 */ | 64 */ |
61 OptInManager.prototype.handleActivatedTab_ = function(info) { | 65 OptInManager.prototype.handleActivatedTab_ = function(info) { |
62 chrome.tabs.get(info.tabId, this.preInjectTab_.bind(this)); | 66 chrome.tabs.get(info.tabId, this.preInjectTab_.bind(this)); |
(...skipping 87 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... | |
150 chrome.hotwordPrivate.setEnabled(true); | 154 chrome.hotwordPrivate.setEnabled(true); |
151 this.preInjectTab_(sender.tab); | 155 this.preInjectTab_(sender.tab); |
152 } | 156 } |
153 } | 157 } |
154 // User has explicitly clicked 'no thanks'. | 158 // User has explicitly clicked 'no thanks'. |
155 if (request.type === OptInManager.CommandFromPage.CLICKED_NO_OPTIN) { | 159 if (request.type === OptInManager.CommandFromPage.CLICKED_NO_OPTIN) { |
156 if (chrome.hotwordPrivate && chrome.hotwordPrivate.setEnabled) { | 160 if (chrome.hotwordPrivate && chrome.hotwordPrivate.setEnabled) { |
157 chrome.hotwordPrivate.setEnabled(false); | 161 chrome.hotwordPrivate.setEnabled(false); |
158 } | 162 } |
159 } | 163 } |
164 // Information regarding the audio logging preference was sent. | |
165 if (request.type === OptInManager.CommandFromPage.AUDIO_LOGGING_ON) { | |
166 if (chrome.hotwordPrivate && | |
167 chrome.hotwordPrivate.setAudioLoggingEnabled) { | |
168 chrome.hotwordPrivate.setAudioLoggingEnabled(true); | |
169 chrome.runtime.sendMessage( | |
170 OptInManager.HOTWORD_EXTENSION_ID_, | |
171 {'cmd': OptInManager.CommandFromHelper.AUDIO_LOGGING_OFF}); | |
saurya1
2014/03/27 16:29:22
AUDIO_LOGGING_ON
rpetterson
2014/03/27 16:37:19
Derp. Copy/paste. Fixed.
| |
172 } | |
173 } | |
174 if (request.type === OptInManager.CommandFromPage.AUDIO_LOGGING_OFF) { | |
175 if (chrome.hotwordPrivate && | |
176 chrome.hotwordPrivate.setAudioLoggingEnabled) { | |
177 chrome.hotwordPrivate.setAudioLoggingEnabled(false); | |
178 chrome.runtime.sendMessage( | |
179 OptInManager.HOTWORD_EXTENSION_ID_, | |
180 {'cmd': OptInManager.CommandFromHelper.AUDIO_LOGGING_OFF}); | |
181 } | |
182 } | |
160 } | 183 } |
161 }; | 184 }; |
162 | 185 |
163 | 186 |
164 /** | 187 /** |
165 * Determines if a URL is eligible for hotwording. For now, the | 188 * Determines if a URL is eligible for hotwording. For now, the |
166 * valid pages are the Google HP and SERP (this will include the NTP). | 189 * valid pages are the Google HP and SERP (this will include the NTP). |
167 * @param {string} url Url to check. | 190 * @param {string} url Url to check. |
168 * @return {boolean} True if url is eligible hotword url. | 191 * @return {boolean} True if url is eligible hotword url. |
169 */ | 192 */ |
(...skipping 32 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... | |
202 chrome.runtime.onMessage.addListener(this.handleMessage_.bind(this)); | 225 chrome.runtime.onMessage.addListener(this.handleMessage_.bind(this)); |
203 | 226 |
204 if (chrome.hotwordPrivate && chrome.hotwordPrivate.onEnabledChanged) { | 227 if (chrome.hotwordPrivate && chrome.hotwordPrivate.onEnabledChanged) { |
205 chrome.hotwordPrivate.onEnabledChanged.addListener( | 228 chrome.hotwordPrivate.onEnabledChanged.addListener( |
206 this.handleEnabledChange_.bind(this)); | 229 this.handleEnabledChange_.bind(this)); |
207 } | 230 } |
208 }; | 231 }; |
209 | 232 |
210 | 233 |
211 new OptInManager().initialize(); | 234 new OptInManager().initialize(); |
OLD | NEW |