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

Unified 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: Rebase 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 side-by-side diff with in-line comments
Download patch
Index: chrome/browser/resources/chromeos/chromevox/cvox2/background/background.js
diff --git a/chrome/browser/resources/chromeos/chromevox/cvox2/background/background.js b/chrome/browser/resources/chromeos/chromevox/cvox2/background/background.js
index ffcf394d5830f59385781d7f78cabd8aaa8d6124..8a38cab8557e04ce40e88c567d371da44b0f12a7 100644
--- a/chrome/browser/resources/chromeos/chromevox/cvox2/background/background.js
+++ b/chrome/browser/resources/chromeos/chromevox/cvox2/background/background.js
@@ -140,6 +140,11 @@ Background = function() {
if (!chrome.accessibilityPrivate.setKeyboardListener)
chrome.accessibilityPrivate.setKeyboardListener = function() {};
+
+ if (cvox.ChromeVox.isChromeOS) {
+ chrome.accessibilityPrivate.onAccessibilityGesture.addListener(
+ this.onAccessibilityGesture_);
+ }
};
/**
@@ -150,6 +155,36 @@ Background.ISSUE_URL = 'https://code.google.com/p/chromium/issues/entry?' +
'components=UI>accessibility&' +
'description=';
+/**
+ * Map from gesture names (AXGesture defined in ui/accessibility/ax_enums.idl)
+ * to commands when in Classic mode.
+ * @type {Object<string, string>}
+ * @const
+ */
+Background.GESTURE_CLASSIC_COMMAND_MAP = {
+ 'swipeUp1': 'backward',
+ 'swipeDown1': 'forward',
+ 'swipeLeft1': 'left',
+ 'swipeRight1': 'right',
+ 'swipeUp2': 'jumpToTop',
+ 'swipeDown2': 'readFromhere',
+};
+
+/**
+ * Map from gesture names (AXGesture defined in ui/accessibility/ax_enums.idl)
+ * to commands when in Classic mode.
+ * @type {Object<string, string>}
+ * @const
+ */
+Background.GESTURE_NEXT_COMMAND_MAP = {
+ 'swipeUp1': 'previousLine',
+ 'swipeDown1': 'nextLine',
+ 'swipeLeft1': 'previousObject',
+ 'swipeRight1': 'nextObject',
+ 'swipeUp2': 'jumpToTop',
+ 'swipeDown2': 'readFromHere',
+};
+
Background.prototype = {
__proto__: ChromeVoxState.prototype,
@@ -1015,6 +1050,47 @@ Background.prototype = {
this.savedRange_ =
new cursors.Range(this.currentRange_.start, this.currentRange_.end);
},
+
+ /**
+ * Handles accessibility gestures from the touch screen.
+ * @param {string} gesture The gesture to handle, based on the AXGesture enum
+ * defined in ui/accessibility/ax_enums.idl
+ * @private
+ */
+ onAccessibilityGesture_: function(gesture) {
+ // If we're in classic mode, some gestures need to be handled by the
+ // content script. Other gestures are universal and will be handled in
+ // this function.
+ if (this.mode_ == ChromeVoxMode.CLASSIC) {
+ if (this.handleClassicGesture_(gesture))
+ return;
+ }
+
+ var command = Background.GESTURE_NEXT_COMMAND_MAP[gesture];
+ if (command)
+ this.onGotCommand(command);
+ },
+
+ /**
+ * Handles accessibility gestures from the touch screen when in CLASSIC
+ * mode, by forwarding a command to the content script.
+ * @param {string} gesture The gesture to handle, based on the AXGesture enum
+ * defined in ui/accessibility/ax_enums.idl
+ * @return {boolean} True if this gesture was handled.
+ * @private
+ */
+ handleClassicGesture_: function(gesture) {
+ var command = Background.GESTURE_CLASSIC_COMMAND_MAP[gesture];
+ if (!command)
+ return false;
+
+ var msg = {
+ 'message': 'USER_COMMAND',
+ 'command': command
+ };
+ cvox.ExtensionBridge.send(msg);
+ return true;
+ },
};
/**

Powered by Google App Engine
This is Rietveld 408576698