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

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: 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 9583ece160470b68c050a698335651e00d982f19..90d9431633aeb1886dd8ffedaaf3fb2c16cbad32 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_);
+ }
};
/**
@@ -992,6 +997,67 @@ 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) {
+ console.error('Gesture: ' + gesture);
David Tseng 2016/05/05 22:30:39 nit: remove
dmazzoni 2016/05/06 19:06:09 Done.
+
+ if (this.mode_ == ChromeVoxMode.CLASSIC) {
+ if (this.handleClassicGesture_(gesture))
+ 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
+ }
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
+
+ var command;
+ switch (gesture) {
+ case 'swipeUp1': command = 'previousLine'; break;
+ case 'swipeDown1': command = 'nextLine'; break;
+ case 'swipeLeft1': command = 'previousObject'; break;
+ case 'swipeRight1': command = 'nextObject'; break;
+ case 'swipeUp2': command = 'jumpToTop'; break;
+ 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.
+ }
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
+
+ console.error('Gesture command: ' + command);
David Tseng 2016/05/05 22:30:39 nit: remove
dmazzoni 2016/05/06 19:06:09 Done.
+
+ 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;
+ switch (gesture) {
+ case 'swipeUp1': command = 'backward'; break;
+ case 'swipeDown1': command = 'forward'; break;
+ case 'swipeLeft1': command = 'left'; break;
+ case 'swipeRight1': command = 'right'; break;
+ case 'swipeUp2': command = 'jumpToTop'; break;
+ case 'swipeDown2': command = 'jumpToBottom'; break;
David Tseng 2016/05/05 22:30:39 Ditto; readFromHere.
dmazzoni 2016/05/06 19:06:08 Done.
+ }
+
+ if (!command)
+ return false;
+
+
David Tseng 2016/05/05 22:30:39 nit: extra line
dmazzoni 2016/05/06 19:06:09 Done.
+ var msg = {
+ 'message': 'USER_COMMAND',
+ 'command': command
+ };
+ cvox.ExtensionBridge.send(msg);
+ return true;
+ },
};
/**

Powered by Google App Engine
This is Rietveld 408576698