OLD | NEW |
---|---|
(Empty) | |
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 /** | |
6 * @fileoverview The entry point for all ChromeVox2 related code for the | |
Peter Lundblad
2014/05/12 18:37:32
Please decide on chromevox_next vs. chromevox2. ;)
David Tseng
2014/05/12 20:33:38
ChromeVox2 it is then.
Note that I didn't change
| |
7 * background page. | |
8 */ | |
9 | |
10 /** ChromeVox2 (ChromeVox Next) namespace */ | |
11 var cvox2 = function() {}; | |
12 | |
13 /** Namespace for global objects in the background page. */ | |
14 cvox2.global = function() {}; | |
15 | |
16 /** Classic Chrome accessibility API. */ | |
17 cvox2.global.accessibility = | |
18 chrome.accessibilityPrivate || chrome.experimental.accessibility; | |
19 | |
20 /** | |
21 * ChromeVox2 background page. | |
22 */ | |
23 cvox2.Background = function() { | |
24 // Only needed with unmerged ChromeVox classic loaded before. | |
25 cvox2.global.accessibility.setAccessibilityEnabled(false); | |
26 chrome.automation.getDesktop(this.onDesktopAvailable); | |
dmazzoni
2014/05/12 18:18:12
Do you not need to bind this?
David Tseng
2014/05/12 20:33:38
Not using 'this' within the function, but done any
| |
27 }; | |
28 | |
29 cvox2.Background.prototype = { | |
30 onDesktopAvailable: function(tree) { | |
Peter Lundblad
2014/05/12 18:37:32
jsdoc?
David Tseng
2014/05/12 20:33:38
We need to decide pretty quickly if we want lots o
| |
31 if (!tree.root) { | |
32 window.setTimeout(this.onDesktopAvailable, 500); | |
33 return; | |
34 } | |
35 chrome.extension.onConnect.addListener(function(port) { | |
36 if (port.name != 'chromevox2') | |
Peter Lundblad
2014/05/12 18:37:32
Make a constant.
David Tseng
2014/05/12 20:33:38
Done.
| |
37 return; | |
38 var cur = tree.root; | |
39 port.onMessage.addListener(function(message) { | |
40 switch (message.keydown) { | |
41 case 37: | |
42 cur = cur.previousSibling() || cur; | |
43 break; | |
44 case 38: | |
45 cur = cur.parent() || cur; | |
46 break; | |
47 case 39: | |
48 cur = cur.nextSibling() || cur; | |
49 break; | |
50 case 40: | |
51 cur = cur.firstChild() || cur; | |
52 break; | |
53 } | |
54 var index = 1; | |
55 if (cur.parent()) | |
56 index = cur.parent().children().indexOf(cur) + 1; | |
57 var name = ''; | |
58 if (cur.attributes && cur.attributes['ax_attr_name']) | |
59 name = cur.attributes['ax_attr_name']; | |
60 var utterance = index + ' ' + name + cur.role; | |
61 chrome.tts.speak(String(utterance), {lang: 'en-US'}); | |
62 }); | |
63 }); | |
64 } | |
65 }; | |
66 | |
67 /** @type {cvox2.Background} */ | |
68 cvox2.global.backgroundObj = new cvox2.Background(); | |
OLD | NEW |