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

Unified Diff: third_party/google_input_tools/src/chrome/os/inputview/util.js

Issue 899673003: Uprev Google Input Tools. (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@master
Patch Set: Created 5 years, 11 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: third_party/google_input_tools/src/chrome/os/inputview/util.js
diff --git a/third_party/google_input_tools/src/chrome/os/inputview/util.js b/third_party/google_input_tools/src/chrome/os/inputview/util.js
index e29accd99d1675a1275a76d64ba44733727176fc..009f54e2e5e47cfee408b36a7c8b04ba1e80c6cc 100644
--- a/third_party/google_input_tools/src/chrome/os/inputview/util.js
+++ b/third_party/google_input_tools/src/chrome/os/inputview/util.js
@@ -329,4 +329,62 @@ util.getConfigName = function(keyboardCode) {
return keyboardCode.replace(/\..*$/, '');
};
+
+/**
+ * Checks that the word is a valid delete from the old to new context.
+ *
+ * @param {string} oldContext The old context.
+ * @param {string} newContext The new context.
+ * @param {string} deletionCandidate A possible word deletion.
+ *
+ * @return {boolean} Whether the deletion was valid.
+ */
+util.isPossibleDelete = function(
+ oldContext, newContext, deletionCandidate) {
+ // Check that deletionCandidate exists in oldContext. We don't check if it's a
+ // tail since our heuristic may have trimmed whitespace.
+ var rootEnd = oldContext.lastIndexOf(deletionCandidate);
+ if (rootEnd != -1) {
+ // Check that remaining text in root persisted in newContext.
+ var root = oldContext.slice(0, rootEnd);
+ return root == newContext.slice(-rootEnd);
+ }
+ return false;
+};
+
+
+/**
+ * Checks whether a letter deletion would cause the observed context transform.
+ *
+ * @param {string} oldContext The old context.
+ * @param {string} newContext The new context.
+ *
+ * @return {boolean} Whether the transform is valid.
+ */
+util.isLetterDelete = function(oldContext, newContext) {
+ if (oldContext == '') {
+ return false;
+ }
+ // Handle buffer overflow.
+ if (oldContext.length == newContext.length) {
+ return util.isLetterDelete(oldContext, newContext.slice(1));
+ }
+ return oldContext.length == newContext.length + 1 &&
+ oldContext.indexOf(newContext) == 0;
+};
+
+
+/**
+ * Checks whether a letter restoration would cause the observed context
+ * transform.
+ *
+ * @param {string} oldContext The old context.
+ * @param {string} newContext The new context.
+ *
+ * @return {boolean} Whether the transform is valid.
+ */
+util.isLetterRestore = function(oldContext, newContext) {
+ return util.isLetterDelete(newContext, oldContext);
+};
+
}); // goog.scope

Powered by Google App Engine
This is Rietveld 408576698