Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(320)

Side by Side Diff: chrome/browser/resources/chromeos/chromevox/cvox2/background/background.js

Issue 1953613002: Make touch accessibility gestures work with ChromeVox Next (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@master
Patch Set: Created 4 years, 7 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View unified diff | Download patch
OLDNEW
1 // Copyright 2014 The Chromium Authors. All rights reserved. 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 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 /** 5 /**
6 * @fileoverview The entry point for all ChromeVox2 related code for the 6 * @fileoverview The entry point for all ChromeVox2 related code for the
7 * background page. 7 * background page.
8 */ 8 */
9 9
10 goog.provide('Background'); 10 goog.provide('Background');
(...skipping 122 matching lines...) Expand 10 before | Expand all | Expand 10 after
133 this.liveRegions_ = new LiveRegions(this); 133 this.liveRegions_ = new LiveRegions(this);
134 134
135 /** @type {number} @private */ 135 /** @type {number} @private */
136 this.passThroughKeyUpCount_ = 0; 136 this.passThroughKeyUpCount_ = 0;
137 137
138 /** @type {boolean} @private */ 138 /** @type {boolean} @private */
139 this.inExcursion_ = false; 139 this.inExcursion_ = false;
140 140
141 if (!chrome.accessibilityPrivate.setKeyboardListener) 141 if (!chrome.accessibilityPrivate.setKeyboardListener)
142 chrome.accessibilityPrivate.setKeyboardListener = function() {}; 142 chrome.accessibilityPrivate.setKeyboardListener = function() {};
143
144 if (cvox.ChromeVox.isChromeOS) {
145 chrome.accessibilityPrivate.onAccessibilityGesture.addListener(
146 this.onAccessibilityGesture_);
147 }
143 }; 148 };
144 149
145 /** 150 /**
146 * @const {string} 151 * @const {string}
147 */ 152 */
148 Background.ISSUE_URL = 'https://code.google.com/p/chromium/issues/entry?' + 153 Background.ISSUE_URL = 'https://code.google.com/p/chromium/issues/entry?' +
149 'labels=Type-Bug,Pri-2,cvox2,OS-Chrome&' + 154 'labels=Type-Bug,Pri-2,cvox2,OS-Chrome&' +
150 'components=UI>accessibility&' + 155 'components=UI>accessibility&' +
151 'description='; 156 'description=';
152 157
(...skipping 832 matching lines...) Expand 10 before | Expand all | Expand 10 after
985 this.restoreCurrentRange_(); 990 this.restoreCurrentRange_();
986 }, 991 },
987 992
988 /** 993 /**
989 * Move ChromeVox back to the last saved range. 994 * Move ChromeVox back to the last saved range.
990 */ 995 */
991 saveExcursion: function() { 996 saveExcursion: function() {
992 this.savedRange_ = 997 this.savedRange_ =
993 new cursors.Range(this.currentRange_.start, this.currentRange_.end); 998 new cursors.Range(this.currentRange_.start, this.currentRange_.end);
994 }, 999 },
1000
1001 /**
1002 * Handles accessibility gestures from the touch screen.
1003 * @param {string} gesture The gesture to handle, based on the AXGesture enum
1004 * defined in ui/accessibility/ax_enums.idl
1005 * @private
1006 */
1007 onAccessibilityGesture_: function(gesture) {
1008 console.error('Gesture: ' + gesture);
David Tseng 2016/05/05 22:30:39 nit: remove
dmazzoni 2016/05/06 19:06:09 Done.
1009
1010 if (this.mode_ == ChromeVoxMode.CLASSIC) {
1011 if (this.handleClassicGesture_(gesture))
1012 return;
David Tseng 2016/05/05 22:30:39 Are you going to allow for unhandled gestures?
dmazzoni 2016/05/06 19:06:09 Yes, it should return true if it shouldn't continu
1013 }
David Tseng 2016/05/05 22:30:39 Is this meant to fall through?
dmazzoni 2016/05/06 19:06:09 Yes, my thought was that some gestures might be un
1014
1015 var command;
1016 switch (gesture) {
1017 case 'swipeUp1': command = 'previousLine'; break;
1018 case 'swipeDown1': command = 'nextLine'; break;
1019 case 'swipeLeft1': command = 'previousObject'; break;
1020 case 'swipeRight1': command = 'nextObject'; break;
1021 case 'swipeUp2': command = 'jumpToTop'; break;
1022 case 'swipeDown2': command = 'jumpToBottom'; break;
David Tseng 2016/05/05 22:30:39 This should be readFromHere
David Tseng 2016/05/05 22:30:39 Maybe just put these into an object dictionary?
dmazzoni 2016/05/06 19:06:08 Done.
dmazzoni 2016/05/06 19:06:08 Done.
1023 }
David Tseng 2016/05/05 22:30:39 default?
dmazzoni 2016/05/06 19:06:09 What do you want the default handler to do? I thin
1024
1025 console.error('Gesture command: ' + command);
David Tseng 2016/05/05 22:30:39 nit: remove
dmazzoni 2016/05/06 19:06:09 Done.
1026
1027 if (command)
1028 this.onGotCommand(command);
1029 },
1030
1031 /**
1032 * Handles accessibility gestures from the touch screen when in CLASSIC
1033 * mode, by forwarding a command to the content script.
1034 * @param {string} gesture The gesture to handle, based on the AXGesture enum
1035 * defined in ui/accessibility/ax_enums.idl
1036 * @return {boolean} True if this gesture was handled.
1037 * @private
1038 */
1039 handleClassicGesture_: function(gesture) {
1040 var command;
1041 switch (gesture) {
1042 case 'swipeUp1': command = 'backward'; break;
1043 case 'swipeDown1': command = 'forward'; break;
1044 case 'swipeLeft1': command = 'left'; break;
1045 case 'swipeRight1': command = 'right'; break;
1046 case 'swipeUp2': command = 'jumpToTop'; break;
1047 case 'swipeDown2': command = 'jumpToBottom'; break;
David Tseng 2016/05/05 22:30:39 Ditto; readFromHere.
dmazzoni 2016/05/06 19:06:08 Done.
1048 }
1049
1050 if (!command)
1051 return false;
1052
1053
David Tseng 2016/05/05 22:30:39 nit: extra line
dmazzoni 2016/05/06 19:06:09 Done.
1054 var msg = {
1055 'message': 'USER_COMMAND',
1056 'command': command
1057 };
1058 cvox.ExtensionBridge.send(msg);
1059 return true;
1060 },
995 }; 1061 };
996 1062
997 /** 1063 /**
998 * Converts a list of globs, as used in the extension manifest, to a regular 1064 * Converts a list of globs, as used in the extension manifest, to a regular
999 * expression that matches if and only if any of the globs in the list matches. 1065 * expression that matches if and only if any of the globs in the list matches.
1000 * @param {!Array<string>} globs 1066 * @param {!Array<string>} globs
1001 * @return {!RegExp} 1067 * @return {!RegExp}
1002 * @private 1068 * @private
1003 */ 1069 */
1004 Background.globsToRegExp_ = function(globs) { 1070 Background.globsToRegExp_ = function(globs) {
1005 return new RegExp('^(' + globs.map(function(glob) { 1071 return new RegExp('^(' + globs.map(function(glob) {
1006 return glob.replace(/[.+^$(){}|[\]\\]/g, '\\$&') 1072 return glob.replace(/[.+^$(){}|[\]\\]/g, '\\$&')
1007 .replace(/\*/g, '.*') 1073 .replace(/\*/g, '.*')
1008 .replace(/\?/g, '.'); 1074 .replace(/\?/g, '.');
1009 }).join('|') + ')$'); 1075 }).join('|') + ')$');
1010 }; 1076 };
1011 1077
1012 /** @type {Background} */ 1078 /** @type {Background} */
1013 global.backgroundObj = new Background(); 1079 global.backgroundObj = new Background();
1014 1080
1015 }); // goog.scope 1081 }); // goog.scope
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698