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

Side by Side Diff: third_party/google_input_tools/src/chrome/os/inputview/adapter.js

Issue 1576613002: Update Google Input Tools. (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@master
Patch Set: Add missing APIs, remove bade dependencies. Created 4 years, 10 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 ChromeOS IME Authors. All Rights Reserved. 1 // Copyright 2014 The ChromeOS IME Authors. All Rights Reserved.
2 // limitations under the License. 2 // limitations under the License.
3 // See the License for the specific language governing permissions and 3 // See the License for the specific language governing permissions and
4 // WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 4 // WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
5 // distributed under the License is distributed on an "AS-IS" BASIS, 5 // distributed under the License is distributed on an "AS-IS" BASIS,
6 // Unless required by applicable law or agreed to in writing, software 6 // Unless required by applicable law or agreed to in writing, software
7 // 7 //
8 // http://www.apache.org/licenses/LICENSE-2.0 8 // http://www.apache.org/licenses/LICENSE-2.0
9 // 9 //
10 // You may obtain a copy of the License at 10 // You may obtain a copy of the License at
11 // you may not use this file except in compliance with the License. 11 // you may not use this file except in compliance with the License.
12 // Licensed under the Apache License, Version 2.0 (the "License"); 12 // Licensed under the Apache License, Version 2.0 (the "License");
13 // 13 //
14 goog.provide('i18n.input.chrome.inputview.Adapter'); 14 goog.provide('i18n.input.chrome.inputview.Adapter');
15 15
16 goog.require('goog.events.Event'); 16 goog.require('goog.events.Event');
17 goog.require('goog.events.EventHandler'); 17 goog.require('goog.events.EventHandler');
18 goog.require('goog.events.EventTarget'); 18 goog.require('goog.events.EventTarget');
19 goog.require('goog.events.EventType'); 19 goog.require('goog.events.EventType');
20 goog.require('goog.object'); 20 goog.require('goog.object');
21 goog.require('i18n.input.chrome.DataSource'); 21 goog.require('i18n.input.chrome.DataSource');
22 goog.require('i18n.input.chrome.inputview.FeatureName'); 22 goog.require('i18n.input.chrome.FeatureName');
23 goog.require('i18n.input.chrome.inputview.FeatureTracker'); 23 goog.require('i18n.input.chrome.FeatureTracker');
24 goog.require('i18n.input.chrome.inputview.ReadyState'); 24 goog.require('i18n.input.chrome.inputview.ReadyState');
25 goog.require('i18n.input.chrome.inputview.StateType'); 25 goog.require('i18n.input.chrome.inputview.StateType');
26 goog.require('i18n.input.chrome.inputview.events.EventType'); 26 goog.require('i18n.input.chrome.inputview.events.EventType');
27 goog.require('i18n.input.chrome.inputview.events.MessageEvent'); 27 goog.require('i18n.input.chrome.inputview.events.MessageEvent');
28 goog.require('i18n.input.chrome.inputview.events.SurroundingTextChangedEvent'); 28 goog.require('i18n.input.chrome.inputview.events.SurroundingTextChangedEvent');
29 goog.require('i18n.input.chrome.message'); 29 goog.require('i18n.input.chrome.message');
30 goog.require('i18n.input.chrome.message.ContextType'); 30 goog.require('i18n.input.chrome.message.ContextType');
31 goog.require('i18n.input.chrome.message.Name'); 31 goog.require('i18n.input.chrome.message.Name');
32 goog.require('i18n.input.chrome.message.Type'); 32 goog.require('i18n.input.chrome.message.Type');
33 33
34 goog.scope(function() { 34 goog.scope(function() {
35 var CandidatesBackEvent = i18n.input.chrome.DataSource.CandidatesBackEvent; 35 var CandidatesBackEvent = i18n.input.chrome.DataSource.CandidatesBackEvent;
36 var ContextType = i18n.input.chrome.message.ContextType; 36 var ContextType = i18n.input.chrome.message.ContextType;
37 var FeatureTracker = i18n.input.chrome.inputview.FeatureTracker; 37 var FeatureTracker = i18n.input.chrome.FeatureTracker;
38 var FeatureName = i18n.input.chrome.inputview.FeatureName; 38 var FeatureName = i18n.input.chrome.FeatureName;
39 var GesturesBackEvent = i18n.input.chrome.DataSource.GesturesBackEvent; 39 var GesturesBackEvent = i18n.input.chrome.DataSource.GesturesBackEvent;
40 var Name = i18n.input.chrome.message.Name; 40 var Name = i18n.input.chrome.message.Name;
41 var State = i18n.input.chrome.inputview.ReadyState.State; 41 var State = i18n.input.chrome.inputview.ReadyState.State;
42 var Type = i18n.input.chrome.message.Type; 42 var Type = i18n.input.chrome.message.Type;
43 var events = i18n.input.chrome.inputview.events; 43 var events = i18n.input.chrome.inputview.events;
44 44
45 45
46 46
47 /** 47 /**
48 * The adapter for interview. 48 * The adapter for interview.
(...skipping 53 matching lines...) Expand 10 before | Expand all | Expand 10 after
102 var Adapter = i18n.input.chrome.inputview.Adapter; 102 var Adapter = i18n.input.chrome.inputview.Adapter;
103 103
104 104
105 /** 105 /**
106 * URL prefixes of common Google sites. 106 * URL prefixes of common Google sites.
107 * 107 *
108 * @enum {string} 108 * @enum {string}
109 */ 109 */
110 Adapter.GoogleSites = { 110 Adapter.GoogleSites = {
111 // TODO: Add support for spreadsheets. 111 // TODO: Add support for spreadsheets.
112 DOCS: 'https://docs.google.com/document/d' 112 DOCS: 'https://docs.google.com/document/d',
113 MAIL: 'https://mail.google.com'
113 }; 114 };
114 115
115 116
117 /**
118 * The minimal inches of display which enables floating virtual keyboard.
119 *
120 * @private {number}
121 */
122 Adapter.ENABLE_FLOATING_THRESHOLD_INCHES_ = 15;
123
124
116 /** @type {boolean} */ 125 /** @type {boolean} */
117 Adapter.prototype.isA11yMode = false; 126 Adapter.prototype.isA11yMode = false;
118 127
119 128
120 /** @type {boolean} */ 129 /** @type {boolean} */
130 Adapter.prototype.isHotrod = false;
131
132
133 /** @type {boolean} */
121 Adapter.prototype.isVoiceInputEnabled = true; 134 Adapter.prototype.isVoiceInputEnabled = true;
122 135
123 136
124 /** @type {boolean} */ 137 /** @type {boolean} */
125 Adapter.prototype.showGlobeKey = false; 138 Adapter.prototype.showGlobeKey = false;
126 139
127 140
141 /** @type {number} */
142 Adapter.prototype.displayInInches = 0;
143
144
128 /** @type {string} */ 145 /** @type {string} */
129 Adapter.prototype.contextType = ContextType.DEFAULT; 146 Adapter.prototype.contextType = ContextType.DEFAULT;
130 147
131 148
132 /** @type {string} */ 149 /** @type {string} */
133 Adapter.prototype.screen = ''; 150 Adapter.prototype.screen = '';
134 151
135 152
136 /** @type {boolean} */ 153 /** @type {boolean} */
137 Adapter.prototype.isChromeVoxOn = false; 154 Adapter.prototype.isChromeVoxOn = false;
138 155
139 156
140 /** @type {string} */ 157 /** @type {string} */
141 Adapter.prototype.textBeforeCursor = ''; 158 Adapter.prototype.textBeforeCursor = '';
142 159
143 160
144 /** @type {boolean} */
145 Adapter.prototype.isFloating = false;
146
147
148 /** 161 /**
149 * Whether the background controller is on switching. 162 * Whether the background controller is on switching.
150 * 163 *
151 * @private {boolean} 164 * @private {boolean}
152 */ 165 */
153 Adapter.prototype.isBgControllerSwitching_ = false; 166 Adapter.prototype.isBgControllerSwitching_ = false;
154 167
155 168
156 /** 169 /**
157 * Callback for updating settings. 170 * Callback for updating settings.
(...skipping 90 matching lines...) Expand 10 before | Expand all | Expand 10 after
248 goog.object.create( 261 goog.object.create(
249 Name.TYPE, Type.SET_GESTURE_EDITING, 262 Name.TYPE, Type.SET_GESTURE_EDITING,
250 Name.IN_PROGRESS, inProgress, 263 Name.IN_PROGRESS, inProgress,
251 Name.IS_SWIPE, opt_isSwipe)); 264 Name.IS_SWIPE, opt_isSwipe));
252 }; 265 };
253 266
254 267
255 /** 268 /**
256 * Sends a gesture typing event to the backend for decoding. 269 * Sends a gesture typing event to the backend for decoding.
257 * 270 *
258 * @param {!Array.<!i18n.input.chrome.inputview.elements.content. 271 * @param {!Array.<!i18n.input.chrome.inputview.elements.content.Point>}
259 * GestureCanvasView.Point>} gestureData The gesture data 272 * gestureData The gesture data (trail) to send.
260 * (trail) to send.
261 */ 273 */
262 Adapter.prototype.sendGestureEvent = function(gestureData) { 274 Adapter.prototype.sendGestureEvent = function(gestureData) {
263 chrome.runtime.sendMessage( 275 chrome.runtime.sendMessage(
264 goog.object.create(Name.TYPE, Type.SEND_GESTURE_EVENT, Name.GESTURE_DATA, 276 goog.object.create(Name.TYPE, Type.SEND_GESTURE_EVENT, Name.GESTURE_DATA,
265 gestureData)); 277 gestureData));
266 }; 278 };
267 279
268 280
269 /** 281 /**
270 * Simulates to send 'keyup' event. 282 * Simulates to send 'keyup' event.
(...skipping 48 matching lines...) Expand 10 before | Expand all | Expand 10 after
319 * @private 331 * @private
320 */ 332 */
321 Adapter.prototype.generateKeyboardEvent_ = function( 333 Adapter.prototype.generateKeyboardEvent_ = function(
322 type, key, code, opt_keyCode, opt_spatialData, opt_modifiers) { 334 type, key, code, opt_keyCode, opt_spatialData, opt_modifiers) {
323 var StateType = i18n.input.chrome.inputview.StateType; 335 var StateType = i18n.input.chrome.inputview.StateType;
324 var ctrl = !!this.modifierState_[StateType.CTRL]; 336 var ctrl = !!this.modifierState_[StateType.CTRL];
325 var alt = !!this.modifierState_[StateType.ALT]; 337 var alt = !!this.modifierState_[StateType.ALT];
326 var shift = !!this.modifierState_[StateType.SHIFT]; 338 var shift = !!this.modifierState_[StateType.SHIFT];
327 339
328 if (opt_modifiers) { 340 if (opt_modifiers) {
329 if (opt_modifiers.ctrl) 341 if (opt_modifiers.ctrl != undefined)
330 ctrl = opt_modifiers.ctrl; 342 ctrl = opt_modifiers.ctrl;
331 if (opt_modifiers.shift) 343 if (opt_modifiers.shift != undefined)
332 shift = opt_modifiers.shift; 344 shift = opt_modifiers.shift;
333 } 345 }
334 346
335 if (ctrl || alt) { 347 if (ctrl || alt) {
336 key = ''; 348 key = '';
337 } 349 }
338 var result = { 350 var result = {
339 'type': type, 351 'type': type,
340 'key': key, 352 'key': key,
341 'code': code, 353 'code': code,
342 'keyCode': opt_keyCode || 0, 354 'keyCode': opt_keyCode || 0,
343 'spatialData': opt_spatialData 355 'spatialData': opt_spatialData
344 }; 356 };
345 357
346 result['altKey'] = alt; 358 result['altKey'] = alt;
347 result['ctrlKey'] = ctrl; 359 result['ctrlKey'] = ctrl;
348 result['shiftKey'] = shift; 360 result['shiftKey'] = shift;
349 result['capsLock'] = !!this.modifierState_[StateType.CAPSLOCK]; 361 result['capsLock'] = !!this.modifierState_[StateType.CAPSLOCK];
350 362
351 return result; 363 return result;
352 }; 364 };
353 365
354 366
355 /** 367 /**
356 * Callback when surrounding text is changed. 368 * Callback when surrounding text is changed.
357 * 369 *
358 * @param {string} text . 370 * @param {string} textBeforeCursor .
359 * @param {number} anchor . 371 * @param {number} anchor .
360 * @param {number} focus . 372 * @param {number} focus .
373 * @param {number} offset .
361 * @private 374 * @private
362 */ 375 */
363 Adapter.prototype.onSurroundingTextChanged_ = function(text, anchor, focus) { 376 Adapter.prototype.onSurroundingTextChanged_ = function(textBeforeCursor,
364 this.textBeforeCursor = text; 377 anchor, focus, offset) {
378 this.textBeforeCursor = textBeforeCursor;
365 this.dispatchEvent(new i18n.input.chrome.inputview.events. 379 this.dispatchEvent(new i18n.input.chrome.inputview.events.
366 SurroundingTextChangedEvent(this.textBeforeCursor, anchor, focus)); 380 SurroundingTextChangedEvent(textBeforeCursor, anchor, focus,
381 offset));
367 }; 382 };
368 383
369 384
370 /** 385 /**
371 * Gets the context. 386 * Gets the context.
372 * 387 *
373 * @return {string} . 388 * @return {string} .
374 */ 389 */
375 Adapter.prototype.getContext = function() { 390 Adapter.prototype.getContext = function() {
376 var matches = this.textBeforeCursor.match(/([a-zA-Z'-Ḁ-ỹÀ-ȳ]+)\s+$/); 391 var matches = this.textBeforeCursor.match(/([a-zA-Z'-Ḁ-ỹÀ-ȳ]+)\s+$/);
(...skipping 28 matching lines...) Expand all
405 * Whether the floating virtual keyboard feature is enabled. 420 * Whether the floating virtual keyboard feature is enabled.
406 * 421 *
407 * @return {boolean} 422 * @return {boolean}
408 */ 423 */
409 Adapter.prototype.isFloatingVirtualKeyboardEnabled = function() { 424 Adapter.prototype.isFloatingVirtualKeyboardEnabled = function() {
410 // This feature depends on setMode API. The api is a private API and may not 425 // This feature depends on setMode API. The api is a private API and may not
411 // be available all the time. 426 // be available all the time.
412 if (!inputview || !inputview.setMode) { 427 if (!inputview || !inputview.setMode) {
413 return false; 428 return false;
414 } 429 }
430
431 if (!this.readyState_.isReady(State.DISPLAY_SIZE_READY))
432 console.error('Display size is not ready yet.');
433
434 // Disable floating virtual keyboard if the screen is smaller than
435 // ENABLE_FLOATING_THRESHOLD_PX.
436 if (this.displayInInches < Adapter.ENABLE_FLOATING_THRESHOLD_INCHES_) {
437 return false;
438 }
415 return this.features.isEnabled(FeatureName.FLOATING_VIRTUAL_KEYBOARD); 439 return this.features.isEnabled(FeatureName.FLOATING_VIRTUAL_KEYBOARD);
416 }; 440 };
417 441
418 442
419 /** 443 /**
420 * Callback when blurs in the context. 444 * Callback when blurs in the context.
421 * 445 *
422 * @private 446 * @private
423 */ 447 */
424 Adapter.prototype.onContextBlur_ = function() { 448 Adapter.prototype.onContextBlur_ = function() {
(...skipping 37 matching lines...) Expand 10 before | Expand all | Expand 10 after
462 * 486 *
463 * @return {boolean} . 487 * @return {boolean} .
464 */ 488 */
465 Adapter.prototype.isGoogleDocument = function() { 489 Adapter.prototype.isGoogleDocument = function() {
466 return this.currentSite_ && 490 return this.currentSite_ &&
467 this.currentSite_.lastIndexOf(Adapter.GoogleSites.DOCS) === 0; 491 this.currentSite_.lastIndexOf(Adapter.GoogleSites.DOCS) === 0;
468 }; 492 };
469 493
470 494
471 /** 495 /**
496 * Returns whether the current context is Google Mail.
497 *
498 * @return {boolean}
499 */
500 Adapter.prototype.isGoogleMail = function() {
501 return this.currentSite_ &&
502 this.currentSite_.lastIndexOf(Adapter.GoogleSites.MAIL) === 0;
503 };
504
505
506 /**
472 * Callback when focus on a context. 507 * Callback when focus on a context.
473 * 508 *
474 * @param {!Object<string, *>} message . 509 * @param {!Object<string, *>} message .
475 * @private 510 * @private
476 */ 511 */
477 Adapter.prototype.onContextFocus_ = function(message) { 512 Adapter.prototype.onContextFocus_ = function(message) {
478 // URL might have changed. 513 // URL might have changed.
479 this.queryCurrentSite(); 514 this.queryCurrentSite();
480 515
481 this.contextType = /** @type {string} */ (message[Name.CONTEXT_TYPE]); 516 this.contextType = /** @type {string} */ (message[Name.CONTEXT_TYPE]);
(...skipping 34 matching lines...) Expand 10 before | Expand all | Expand 10 after
516 } 551 }
517 this.isChromeVoxOn = details['value']; 552 this.isChromeVoxOn = details['value'];
518 }).bind(this)); 553 }).bind(this));
519 } 554 }
520 555
521 this.initBackground_(); 556 this.initBackground_();
522 557
523 if (window.inputview) { 558 if (window.inputview) {
524 inputview.getKeyboardConfig((function(config) { 559 inputview.getKeyboardConfig((function(config) {
525 this.isA11yMode = !!config['a11ymode']; 560 this.isA11yMode = !!config['a11ymode'];
561 this.isHotrod = !!config['hotrodmode'];
526 this.features.initialize(config); 562 this.features.initialize(config);
527 this.isVoiceInputEnabled = 563 this.isVoiceInputEnabled =
528 this.features.isEnabled(FeatureName.VOICE_INPUT); 564 this.features.isEnabled(FeatureName.VOICE_INPUT);
529 this.readyState_.markStateReady(State.KEYBOARD_CONFIG_READY); 565 this.readyState_.markStateReady(State.KEYBOARD_CONFIG_READY);
530 this.maybeDispatchSettingsReadyEvent_(); 566 this.maybeDispatchSettingsReadyEvent_();
531 }).bind(this)); 567 }).bind(this));
532 inputview.getInputMethods((function(inputMethods) { 568 inputview.getInputMethods((function(inputMethods) {
533 // Only show globe key to switching between IMEs when there are more 569 // Globe key is disabled if either condition is met:
534 // than one IME. 570 // - Only one IME presents.
535 this.showGlobeKey = inputMethods.length > 1; 571 // - In hotrod mode.
572 this.showGlobeKey = inputMethods.length > 1 && !this.isHotrod;
536 this.readyState_.markStateReady(State.IME_LIST_READY); 573 this.readyState_.markStateReady(State.IME_LIST_READY);
537 this.maybeDispatchSettingsReadyEvent_(); 574 this.maybeDispatchSettingsReadyEvent_();
538 }).bind(this)); 575 }).bind(this));
576 inputview.getDisplayInInches((function(inches) {
577 this.displayInInches = inches;
578 this.readyState_.markStateReady(State.DISPLAY_SIZE_READY);
579 this.maybeDispatchSettingsReadyEvent_();
580 }).bind(this));
539 } else { 581 } else {
540 this.readyState_.markStateReady(State.IME_LIST_READY); 582 this.readyState_.markStateReady(State.IME_LIST_READY);
541 this.readyState_.markStateReady(State.KEYBOARD_CONFIG_READY); 583 this.readyState_.markStateReady(State.KEYBOARD_CONFIG_READY);
584 this.readyState_.markStateReady(State.DISPLAY_SIZE_READY);
542 } 585 }
543 586
544 this.maybeDispatchSettingsReadyEvent_(); 587 this.maybeDispatchSettingsReadyEvent_();
545 }; 588 };
546 589
547 590
548 /** 591 /**
549 * Dispatch event SETTINGS_READY if all required bits are flipped. 592 * Dispatch event SETTINGS_READY if all required bits are flipped.
550 * 593 *
551 * @private 594 * @private
552 */ 595 */
553 Adapter.prototype.maybeDispatchSettingsReadyEvent_ = function() { 596 Adapter.prototype.maybeDispatchSettingsReadyEvent_ = function() {
554 var states = [ 597 var states = [
555 State.KEYBOARD_CONFIG_READY, 598 State.KEYBOARD_CONFIG_READY,
556 State.IME_LIST_READY]; 599 State.IME_LIST_READY,
600 State.DISPLAY_SIZE_READY];
557 var ready = true; 601 var ready = true;
558 for (var i = 0; i < states.length; i++) { 602 for (var i = 0; i < states.length; i++) {
559 ready = ready && this.readyState_.isReady(states[i]); 603 ready = ready && this.readyState_.isReady(states[i]);
560 } 604 }
561 if (ready) { 605 if (ready) {
562 window.setTimeout((function() { 606 window.setTimeout((function() {
563 this.dispatchEvent(new goog.events.Event( 607 this.dispatchEvent(new goog.events.Event(
564 i18n.input.chrome.inputview.events.EventType.SETTINGS_READY)); 608 i18n.input.chrome.inputview.events.EventType.SETTINGS_READY));
565 }).bind(this), 0); 609 }).bind(this), 0);
566 } 610 }
(...skipping 90 matching lines...) Expand 10 before | Expand all | Expand 10 after
657 * 701 *
658 * @param {string} text . 702 * @param {string} text .
659 */ 703 */
660 Adapter.prototype.commitText = function(text) { 704 Adapter.prototype.commitText = function(text) {
661 chrome.runtime.sendMessage(goog.object.create( 705 chrome.runtime.sendMessage(goog.object.create(
662 Name.TYPE, Type.COMMIT_TEXT, Name.TEXT, text)); 706 Name.TYPE, Type.COMMIT_TEXT, Name.TEXT, text));
663 }; 707 };
664 708
665 709
666 /** 710 /**
667 * Commits the gesture result. 711 * Commits the gesture result, possibly with a force space before the result.
668 * 712 *
669 * @param {string} text . 713 * @param {string} text .
714 * @param {boolean} forceAutoSpace .
670 */ 715 */
671 Adapter.prototype.commitGestureResult = function(text) { 716 Adapter.prototype.commitGestureResult = function(text, forceAutoSpace) {
672 chrome.runtime.sendMessage(goog.object.create( 717 chrome.runtime.sendMessage(goog.object.create(
673 Name.TYPE, Type.CONFIRM_GESTURE_RESULT, Name.TEXT, text)); 718 Name.TYPE, Type.CONFIRM_GESTURE_RESULT, Name.TEXT, text,
719 Name.FORCE_AUTO_SPACE, forceAutoSpace));
674 }; 720 };
675 721
676 722
677 /** 723 /**
678 * Sets the language. 724 * Sets the language.
679 * 725 *
680 * @param {string} language . 726 * @param {string} language .
681 */ 727 */
682 Adapter.prototype.setLanguage = function(language) { 728 Adapter.prototype.setLanguage = function(language) {
683 chrome.runtime.sendMessage(goog.object.create( 729 chrome.runtime.sendMessage(goog.object.create(
684 Name.TYPE, Type.SET_LANGUAGE, Name.LANGUAGE, language)); 730 Name.TYPE, Type.SET_LANGUAGE, Name.LANGUAGE, language));
685 }; 731 };
686 732
687 733
688 /** 734 /**
689 * Callbck when completion is back. 735 * Callbck when completion is back.
690 * 736 *
691 * @param {!Object} message . 737 * @param {!Object} message .
692 * @private 738 * @private
693 */ 739 */
694 Adapter.prototype.onCandidatesBack_ = function(message) { 740 Adapter.prototype.onCandidatesBack_ = function(message) {
695 var source = message['source'] || ''; 741 var source = message['source'] || '';
696 var candidates = message['candidates'] || []; 742 var candidates = message['candidates'] || [];
697 this.dispatchEvent(new CandidatesBackEvent(source, candidates)); 743 this.dispatchEvent(new CandidatesBackEvent(source, candidates));
698 }; 744 };
699 745
700 746
701 /** 747 /**
702 * Callbck when completion is back. 748 * Callback when completion is back.
703 * 749 *
704 * @param {!Object} message . 750 * @param {!Object} message .
705 * @private 751 * @private
706 */ 752 */
707 Adapter.prototype.onGesturesBack_ = function(message) { 753 Adapter.prototype.onGesturesBack_ = function(message) {
708 var results = message[Name.GESTURE_RESULTS]; 754 var results = message[Name.GESTURE_RESULTS];
709 this.dispatchEvent(new GesturesBackEvent(results)); 755 this.dispatchEvent(new GesturesBackEvent(results));
710 }; 756 };
711 757
712 758
(...skipping 55 matching lines...) Expand 10 before | Expand all | Expand 10 after
768 case Type.CONTEXT_FOCUS: 814 case Type.CONTEXT_FOCUS:
769 this.onContextFocus_(msg); 815 this.onContextFocus_(msg);
770 break; 816 break;
771 case Type.CONTEXT_BLUR: 817 case Type.CONTEXT_BLUR:
772 this.onContextBlur_(); 818 this.onContextBlur_();
773 break; 819 break;
774 case Type.GESTURES_BACK: 820 case Type.GESTURES_BACK:
775 this.onGesturesBack_(msg); 821 this.onGesturesBack_(msg);
776 break; 822 break;
777 case Type.SURROUNDING_TEXT_CHANGED: 823 case Type.SURROUNDING_TEXT_CHANGED:
778 this.onSurroundingTextChanged_(request[Name.TEXT], 824 this.onSurroundingTextChanged_(request[Name.TEXT_BEFORE_CURSOR],
779 request[Name.ANCHOR], 825 request[Name.ANCHOR],
780 request[Name.FOCUS]); 826 request[Name.FOCUS],
827 request[Name.OFFSET]);
781 break; 828 break;
782 case Type.UPDATE_SETTINGS: 829 case Type.UPDATE_SETTINGS:
783 this.onUpdateSettings_(msg); 830 this.onUpdateSettings_(msg);
784 break; 831 break;
785 case Type.VOICE_STATE_CHANGE: 832 case Type.VOICE_STATE_CHANGE:
786 this.dispatchEvent( 833 this.dispatchEvent(
787 new events.MessageEvent(events.EventType.VOICE_STATE_CHANGE, 834 new events.MessageEvent(events.EventType.VOICE_STATE_CHANGE,
788 msg)); 835 msg));
789 break; 836 break;
790 case Type.HWT_NETWORK_ERROR: 837 case Type.HWT_NETWORK_ERROR:
(...skipping 58 matching lines...) Expand 10 before | Expand all | Expand 10 after
849 /** 896 /**
850 * Unset the inputtool 897 * Unset the inputtool
851 */ 898 */
852 Adapter.prototype.unsetController = function() { 899 Adapter.prototype.unsetController = function() {
853 chrome.runtime.sendMessage( 900 chrome.runtime.sendMessage(
854 goog.object.create( 901 goog.object.create(
855 Name.TYPE, 902 Name.TYPE,
856 Type.UNSET_CONTROLLER)); 903 Type.UNSET_CONTROLLER));
857 }; 904 };
858 }); // goog.scope 905 }); // goog.scope
859
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698