2 * Copyright (c) 2011 The Chromium Authors. All rights reserved.
3 * Use of this source code is governed by a BSD-style license that can be
4 * found in the LICENSE file.
7 var lastUtterance = '';
9 var globalUtteranceIndex = 0;
11 if (localStorage['lastVersionUsed'] != '1') {
12 localStorage['lastVersionUsed'] = '1';
14 url: chrome.extension.getURL('options.html')
18 function speak(utterance) {
19 if (speaking && utterance == lastUtterance) {
25 lastUtterance = utterance;
26 globalUtteranceIndex++;
27 var utteranceIndex = globalUtteranceIndex;
29 chrome.browserAction.setIcon({path: 'SpeakSel19-active.png'});
31 var rate = localStorage['rate'] || 1.0;
32 var pitch = localStorage['pitch'] || 1.0;
33 var volume = localStorage['volume'] || 1.0;
34 var voice = localStorage['voice'];
38 rate: parseFloat(rate),
39 pitch: parseFloat(pitch),
40 volume: parseFloat(volume),
41 onEvent: function(evt) {
42 if (evt.type == 'end' ||
43 evt.type == 'interrupted' ||
44 evt.type == 'cancelled' ||
45 evt.type == 'error') {
46 if (utteranceIndex == globalUtteranceIndex) {
48 chrome.browserAction.setIcon({path: 'SpeakSel19.png'});
55 function initBackground() {
56 loadContentScriptInAllTabs();
58 var defaultKeyString = getDefaultKeyString();
59 var keyString = localStorage['speakKey'];
60 if (keyString == undefined) {
61 keyString = defaultKeyString;
62 localStorage['speakKey'] = keyString;
64 sendKeyToAllTabs(keyString);
66 chrome.extension.onRequest.addListener(
67 function(request, sender, sendResponse) {
68 if (request['init']) {
69 sendResponse({'key': localStorage['speakKey']});
70 } else if (request['speak']) {
71 speak(request['speak']);
75 chrome.browserAction.onClicked.addListener(
77 chrome.tabs.sendRequest(
79 {'speakSelection': true});