From 7fe71e3d8ea62698cfc26043b437cb267434285f Mon Sep 17 00:00:00 2001
From: Ryan VanderMeulen
Date: Mon, 24 Aug 2015 13:27:01 -0400
Subject: [PATCH] Backed out 4 changesets (bug 1137557) for causing
intermittent Gij switching_test.js failures.
Backed out changeset ce86cf91f423 (bug 1137557)
Backed out changeset 83af10efcd3c (bug 1137557)
Backed out changeset e48ed45d1c80 (bug 1137557)
Backed out changeset 81e93b60a622 (bug 1137557)
CLOSED TREE
---
dom/base/TextInputProcessor.cpp | 59 +-
dom/base/TextInputProcessor.h | 8 +-
.../chrome/window_nsITextInputProcessor.xul | 36 +-
dom/inputmethod/MozKeyboard.js | 110 +-
dom/inputmethod/forms.js | 455 +----
dom/inputmethod/mochitest/mochitest.ini | 1 -
.../mochitest/test_bug1137557.html | 1674 -----------------
dom/interfaces/base/nsITextInputProcessor.idl | 25 +-
dom/webidl/InputMethod.webidl | 143 +-
widget/TextEventDispatcher.cpp | 40 +-
widget/TextEventDispatcher.h | 43 +-
11 files changed, 155 insertions(+), 2439 deletions(-)
delete mode 100644 dom/inputmethod/mochitest/test_bug1137557.html
diff --git a/dom/base/TextInputProcessor.cpp b/dom/base/TextInputProcessor.cpp
index b24a7bd127d..7df54a2327c 100644
--- a/dom/base/TextInputProcessor.cpp
+++ b/dom/base/TextInputProcessor.cpp
@@ -4,7 +4,6 @@
* License, v. 2.0. If a copy of the MPL was not distributed with this
* file, You can obtain one at http://mozilla.org/MPL/2.0/. */
-#include "gfxPrefs.h"
#include "mozilla/EventForwards.h"
#include "mozilla/TextEventDispatcher.h"
#include "mozilla/TextEvents.h"
@@ -285,11 +284,8 @@ TextInputProcessor::MaybeDispatchKeydownForComposition(
return result;
}
- uint32_t consumedFlags = 0;
-
result.mResult = KeydownInternal(*aKeyboardEvent, aKeyFlags, false,
- consumedFlags);
- result.mDoDefault = !consumedFlags;
+ result.mDoDefault);
if (NS_WARN_IF(NS_FAILED(result.mResult))) {
result.mCanContinue = false;
return result;
@@ -758,9 +754,9 @@ NS_IMETHODIMP
TextInputProcessor::Keydown(nsIDOMKeyEvent* aDOMKeyEvent,
uint32_t aKeyFlags,
uint8_t aOptionalArgc,
- uint32_t* aConsumedFlags)
+ bool* aDoDefault)
{
- MOZ_RELEASE_ASSERT(aConsumedFlags, "aConsumedFlags must not be nullptr");
+ MOZ_RELEASE_ASSERT(aDoDefault, "aDoDefault must not be nullptr");
MOZ_RELEASE_ASSERT(nsContentUtils::IsCallerChrome());
if (!aOptionalArgc) {
aKeyFlags = 0;
@@ -773,33 +769,16 @@ TextInputProcessor::Keydown(nsIDOMKeyEvent* aDOMKeyEvent,
if (NS_WARN_IF(!originalKeyEvent)) {
return NS_ERROR_INVALID_ARG;
}
- return KeydownInternal(*originalKeyEvent, aKeyFlags, true, *aConsumedFlags);
-}
-
-TextEventDispatcher::DispatchTo
-TextInputProcessor::GetDispatchTo() const
-{
- // Support asynchronous tests.
- if (mForTests) {
- return gfxPrefs::TestEventsAsyncEnabled() ?
- TextEventDispatcher::eDispatchToParentProcess :
- TextEventDispatcher::eDispatchToCurrentProcess;
- }
-
- // Otherwise, TextInputProcessor supports only keyboard apps on B2G.
- // Keyboard apps on B2G doesn't want to dispatch keyboard events to
- // chrome process. Therefore, this should dispatch key events only in
- // the current process.
- return TextEventDispatcher::eDispatchToCurrentProcess;
+ return KeydownInternal(*originalKeyEvent, aKeyFlags, true, *aDoDefault);
}
nsresult
TextInputProcessor::KeydownInternal(const WidgetKeyboardEvent& aKeyboardEvent,
uint32_t aKeyFlags,
bool aAllowToDispatchKeypress,
- uint32_t& aConsumedFlags)
+ bool& aDoDefault)
{
- aConsumedFlags = KEYEVENT_NOT_CONSUMED;
+ aDoDefault = false;
// We shouldn't modify the internal WidgetKeyboardEvent.
WidgetKeyboardEvent keyEvent(aKeyboardEvent);
@@ -808,8 +787,7 @@ TextInputProcessor::KeydownInternal(const WidgetKeyboardEvent& aKeyboardEvent,
return rv;
}
- aConsumedFlags = (aKeyFlags & KEY_DEFAULT_PREVENTED) ? KEYDOWN_IS_CONSUMED :
- KEYEVENT_NOT_CONSUMED;
+ aDoDefault = !(aKeyFlags & KEY_DEFAULT_PREVENTED);
if (WidgetKeyboardEvent::GetModifierForKeyName(keyEvent.mKeyNameIndex)) {
ModifierKeyData modifierKeyData(keyEvent);
@@ -836,27 +814,19 @@ TextInputProcessor::KeydownInternal(const WidgetKeyboardEvent& aKeyboardEvent,
return rv;
}
- nsEventStatus status = aConsumedFlags ? nsEventStatus_eConsumeNoDefault :
- nsEventStatus_eIgnore;
- if (!mDispatcher->DispatchKeyboardEvent(NS_KEY_DOWN, keyEvent, status,
- GetDispatchTo())) {
+ nsEventStatus status = aDoDefault ? nsEventStatus_eIgnore :
+ nsEventStatus_eConsumeNoDefault;
+ if (!mDispatcher->DispatchKeyboardEvent(NS_KEY_DOWN, keyEvent, status)) {
// If keydown event isn't dispatched, we don't need to dispatch keypress
// events.
return NS_OK;
}
- aConsumedFlags |=
- (status == nsEventStatus_eConsumeNoDefault) ? KEYDOWN_IS_CONSUMED :
- KEYEVENT_NOT_CONSUMED;
-
- if (aAllowToDispatchKeypress &&
- mDispatcher->MaybeDispatchKeypressEvents(keyEvent, status,
- GetDispatchTo())) {
- aConsumedFlags |=
- (status == nsEventStatus_eConsumeNoDefault) ? KEYPRESS_IS_CONSUMED :
- KEYEVENT_NOT_CONSUMED;
+ if (aAllowToDispatchKeypress) {
+ mDispatcher->MaybeDispatchKeypressEvents(keyEvent, status);
}
+ aDoDefault = (status != nsEventStatus_eConsumeNoDefault);
return NS_OK;
}
@@ -920,8 +890,7 @@ TextInputProcessor::KeyupInternal(const WidgetKeyboardEvent& aKeyboardEvent,
nsEventStatus status = aDoDefault ? nsEventStatus_eIgnore :
nsEventStatus_eConsumeNoDefault;
- mDispatcher->DispatchKeyboardEvent(NS_KEY_UP, keyEvent, status,
- GetDispatchTo());
+ mDispatcher->DispatchKeyboardEvent(NS_KEY_UP, keyEvent, status);
aDoDefault = (status != nsEventStatus_eConsumeNoDefault);
return NS_OK;
}
diff --git a/dom/base/TextInputProcessor.h b/dom/base/TextInputProcessor.h
index 811598c2348..14b7a2fb5db 100644
--- a/dom/base/TextInputProcessor.h
+++ b/dom/base/TextInputProcessor.h
@@ -9,7 +9,6 @@
#include "mozilla/Attributes.h"
#include "mozilla/EventForwards.h"
-#include "mozilla/TextEventDispatcher.h"
#include "mozilla/TextEventDispatcherListener.h"
#include "nsAutoPtr.h"
#include "nsITextInputProcessor.h"
@@ -18,6 +17,10 @@
namespace mozilla {
+namespace widget{
+class TextEventDispatcher;
+} // namespace widget
+
class TextInputProcessor final : public nsITextInputProcessor
, public widget::TextEventDispatcherListener
{
@@ -57,11 +60,10 @@ private:
nsresult KeydownInternal(const WidgetKeyboardEvent& aKeyboardEvent,
uint32_t aKeyFlags,
bool aAllowToDispatchKeypress,
- uint32_t& aConsumedFlags);
+ bool& aDoDefault);
nsresult KeyupInternal(const WidgetKeyboardEvent& aKeyboardEvent,
uint32_t aKeyFlags,
bool& aDoDefault);
- TextEventDispatcher::DispatchTo GetDispatchTo() const;
nsresult IsValidStateForComposition();
void UnlinkFromTextEventDispatcher();
nsresult PrepareKeyboardEventToDispatch(WidgetKeyboardEvent& aKeyboardEvent,
diff --git a/dom/base/test/chrome/window_nsITextInputProcessor.xul b/dom/base/test/chrome/window_nsITextInputProcessor.xul
index fcd7c147aa3..38efcfa1188 100644
--- a/dom/base/test/chrome/window_nsITextInputProcessor.xul
+++ b/dom/base/test/chrome/window_nsITextInputProcessor.xul
@@ -15,7 +15,7 @@
src="data:text/html,<textarea id='textarea' cols='20' rows='4'></textarea>">
-
+
@@ -2340,8 +2340,8 @@ function runKeyTests()
reset();
var doDefaultKeydown = TIP.keydown(keyA);
- is(doDefaultKeydown, TIP.KEYPRESS_IS_CONSUMED,
- description + "TIP.keydown(keyA) should return 0x02 because the keypress event should be consumed by the input element");
+ ok(!doDefaultKeydown,
+ description + "TIP.keydown(keyA) should return false because the keypress event should be consumed by the input element");
is(events.length, 2,
description + "TIP.keydown(keyA) should cause keydown and keypress event");
checkKeyAttrs("TIP.keydown(keyA)", events[0],
@@ -2371,8 +2371,8 @@ function runKeyTests()
reset();
doDefaultKeydown = TIP.keydown(keyEnter);
- is(doDefaultKeydown, 0,
- description + "TIP.keydown(keyEnter) should return 0");
+ ok(doDefaultKeydown,
+ description + "TIP.keydown(keyEnter) should return true");
is(events.length, 2,
description + "TIP.keydown(keyEnter) should cause keydown and keypress event");
checkKeyAttrs("TIP.keydown(keyEnter)", events[0],
@@ -2402,8 +2402,8 @@ function runKeyTests()
doDefaultKeydown = TIP.keydown(keyB, TIP.KEY_DEFAULT_PREVENTED);
doDefaultKeyup = TIP.keyup(keyB, TIP.KEY_DEFAULT_PREVENTED);
- is(doDefaultKeydown, TIP.KEYDOWN_IS_CONSUMED,
- description + "TIP.keydown(keyB, TIP.KEY_DEFAULT_PREVENTED) should return 0x01 because it's marked as consumed at dispatching the event");
+ ok(!doDefaultKeydown,
+ description + "TIP.keydown(keyB, TIP.KEY_DEFAULT_PREVENTED) should return false because it's marked as consumed at dispatching the event");
ok(!doDefaultKeyup,
description + "TIP.keyup(keyB, TIP.KEY_DEFAULT_PREVENTED) should return false because it's marked as consumed at dispatching the event");
is(events.length, 2,
@@ -2423,7 +2423,7 @@ function runKeyTests()
doDefaultKeydown = TIP.keydown(keyABC);
doDefaultKeyup = TIP.keyup(keyABC);
- is(doDefaultKeydown, TIP.KEYPRESS_IS_CONSUMED,
+ ok(!doDefaultKeydown,
description + "TIP.keydown(keyABC) should return false because the keypress events should be consumed by the input element");
ok(doDefaultKeyup,
description + "TIP.keyup(keyABC) should return true");
@@ -2450,8 +2450,8 @@ function runKeyTests()
doDefaultKeydown = TIP.keydown(keyEnterPrintable, TIP.KEY_FORCE_PRINTABLE_KEY);
doDefaultKeyup = TIP.keyup(keyEnterPrintable, TIP.KEY_FORCE_PRINTABLE_KEY);
- is(doDefaultKeydown, TIP.KEYPRESS_IS_CONSUMED,
- description + "TIP.keydown(keyEnterPrintable, TIP.KEY_FORCE_PRINTABLE_KEY) should return 0x02 because the keypress events should be consumed by the input element");
+ ok(!doDefaultKeydown,
+ description + "TIP.keydown(keyEnterPrintable, TIP.KEY_FORCE_PRINTABLE_KEY) should return false because the keypress events should be consumed by the input element");
ok(doDefaultKeyup,
description + "TIP.keyup(keyEnterPrintable, TIP.KEY_FORCE_PRINTABLE_KEY) should return true");
is(events.length, 7,
@@ -2480,8 +2480,8 @@ function runKeyTests()
doDefaultKeydown = TIP.keydown(keyWithModifiers);
doDefaultKeyup = TIP.keyup(keyWithModifiers);
- is(doDefaultKeydown, 0,
- description + "TIP.keydown(keyWithModifiers) should return 0");
+ ok(doDefaultKeydown,
+ description + "TIP.keydown(keyWithModifiers) should return true");
ok(doDefaultKeyup,
description + "TIP.keyup(keyWithModifiers) should return true");
is(events.length, 3,
@@ -2502,8 +2502,8 @@ function runKeyTests()
doDefaultKeydown = TIP.keydown(keyA);
doDefaultKeyup = TIP.keyup(keyA);
- is(doDefaultKeydown, TIP.KEYDOWN_IS_CONSUMED,
- description + "TIP.keydown(keyA) should return 0x01 because keydown event's preventDefault should be called");
+ ok(!doDefaultKeydown,
+ description + "TIP.keydown(keyA) should return false because keydown event's preventDefault should be called");
ok(doDefaultKeyup,
description + "TIP.keyup(keyA) should return true");
is(events.length, 2,
@@ -2521,8 +2521,8 @@ function runKeyTests()
doDefaultKeydown = TIP.keydown(keyA);
doDefaultKeyup = TIP.keyup(keyA);
- is(doDefaultKeydown, TIP.KEYPRESS_IS_CONSUMED,
- description + "TIP.keydown(keyA) should return 0x02 because keypress event's preventDefault should be called");
+ ok(!doDefaultKeydown,
+ description + "TIP.keydown(keyA) should return false because keypress event's preventDefault should be called");
ok(doDefaultKeyup,
description + "TIP.keyup(keyA) should return true");
is(events.length, 3,
@@ -2543,8 +2543,8 @@ function runKeyTests()
doDefaultKeydown = TIP.keydown(keyA);
doDefaultKeyup = TIP.keyup(keyA);
- is(doDefaultKeydown, TIP.KEYPRESS_IS_CONSUMED,
- description + "TIP.keydown(keyA) should return 0x02 because the key event should be consumed by the input element");
+ ok(!doDefaultKeydown,
+ description + "TIP.keydown(keyA) should return false because the key event should be consumed by the input element");
ok(!doDefaultKeyup,
description + "TIP.keyup(keyA) should return false because keyup event's preventDefault should be called");
is(events.length, 3,
diff --git a/dom/inputmethod/MozKeyboard.js b/dom/inputmethod/MozKeyboard.js
index 87c7f902c63..bdb1a45544e 100644
--- a/dom/inputmethod/MozKeyboard.js
+++ b/dom/inputmethod/MozKeyboard.js
@@ -573,7 +573,7 @@ MozInputContext.prototype = {
switch (msg.name) {
case "Keyboard:SendKey:Result:OK":
- resolver.resolve(true);
+ resolver.resolve();
break;
case "Keyboard:SendKey:Result:Error":
resolver.reject(json.error);
@@ -596,7 +596,7 @@ MozInputContext.prototype = {
break;
case "Keyboard:SetComposition:Result:OK": // Fall through.
case "Keyboard:EndComposition:Result:OK":
- resolver.resolve(true);
+ resolver.resolve();
break;
default:
dump("Could not find a handler for " + msg.name);
@@ -738,79 +738,40 @@ MozInputContext.prototype = {
return this.replaceSurroundingText(null, offset, length);
},
- sendKey: function ic_sendKey(dictOrKeyCode, charCode, modifiers, repeat) {
- if (typeof dictOrKeyCode === 'number') {
- // XXX: modifiers are ignored in this API method.
-
- return this._sendPromise((resolverId) => {
- cpmmSendAsyncMessageWithKbID(this, 'Keyboard:SendKey', {
- contextId: this._contextId,
- requestId: resolverId,
- method: 'sendKey',
- keyCode: dictOrKeyCode,
- charCode: charCode,
- repeat: repeat
- });
- });
- } else if (typeof dictOrKeyCode === 'object') {
- return this._sendPromise((resolverId) => {
- cpmmSendAsyncMessageWithKbID(this, 'Keyboard:SendKey', {
- contextId: this._contextId,
- requestId: resolverId,
- method: 'sendKey',
- keyboardEventDict: this._getkeyboardEventDict(dictOrKeyCode)
- });
- });
- } else {
- // XXX: Should not reach here; implies WebIDL binding error.
- throw new TypeError('Unknown argument passed.');
- }
- },
-
- keydown: function ic_keydown(dict) {
- return this._sendPromise((resolverId) => {
- cpmmSendAsyncMessageWithKbID(this, 'Keyboard:SendKey', {
- contextId: this._contextId,
- requestId: resolverId,
- method: 'keydown',
- keyboardEventDict: this._getkeyboardEventDict(dict)
- });
- });
- },
-
- keyup: function ic_keyup(dict) {
- return this._sendPromise((resolverId) => {
- cpmmSendAsyncMessageWithKbID(this, 'Keyboard:SendKey', {
- contextId: this._contextId,
+ sendKey: function ic_sendKey(keyCode, charCode, modifiers, repeat) {
+ let self = this;
+ return this._sendPromise(function(resolverId) {
+ cpmmSendAsyncMessageWithKbID(self, 'Keyboard:SendKey', {
+ contextId: self._contextId,
requestId: resolverId,
- method: 'keyup',
- keyboardEventDict: this._getkeyboardEventDict(dict)
+ keyCode: keyCode,
+ charCode: charCode,
+ modifiers: modifiers,
+ repeat: repeat
});
});
},
- setComposition: function ic_setComposition(text, cursor, clauses, dict) {
+ setComposition: function ic_setComposition(text, cursor, clauses) {
let self = this;
- return this._sendPromise((resolverId) => {
+ return this._sendPromise(function(resolverId) {
cpmmSendAsyncMessageWithKbID(self, 'Keyboard:SetComposition', {
contextId: self._contextId,
requestId: resolverId,
text: text,
cursor: (typeof cursor !== 'undefined') ? cursor : text.length,
- clauses: clauses || null,
- keyboardEventDict: this._getkeyboardEventDict(dict)
+ clauses: clauses || null
});
});
},
- endComposition: function ic_endComposition(text, dict) {
+ endComposition: function ic_endComposition(text) {
let self = this;
- return this._sendPromise((resolverId) => {
+ return this._sendPromise(function(resolverId) {
cpmmSendAsyncMessageWithKbID(self, 'Keyboard:EndComposition', {
contextId: self._contextId,
requestId: resolverId,
- text: text || '',
- keyboardEventDict: this._getkeyboardEventDict(dict)
+ text: text || ''
});
});
},
@@ -825,43 +786,6 @@ MozInputContext.prototype = {
}
callback(aResolverId);
});
- },
-
- // Take a MozInputMethodKeyboardEventDict dict, creates a keyboardEventDict
- // object that can be sent to forms.js
- _getkeyboardEventDict: function(dict) {
- if (typeof dict !== 'object' || !dict.key) {
- return;
- }
-
- var keyboardEventDict = {
- key: dict.key,
- code: dict.code,
- repeat: dict.repeat,
- flags: 0
- };
-
- if (dict.printable) {
- keyboardEventDict.flags |=
- Ci.nsITextInputProcessor.KEY_FORCE_PRINTABLE_KEY;
- }
-
- if (/^[a-zA-Z0-9]$/.test(dict.key)) {
- // keyCode must follow the key value in this range;
- // disregard the keyCode from content.
- keyboardEventDict.keyCode = dict.key.toUpperCase().charCodeAt(0);
- } else if (typeof dict.keyCode === 'number') {
- // Allow keyCode to be specified for other key values.
- keyboardEventDict.keyCode = dict.keyCode;
-
- // Allow keyCode to be explicitly set to zero.
- if (dict.keyCode === 0) {
- keyboardEventDict.flags |=
- Ci.nsITextInputProcessor.KEY_KEEP_KEYCODE_ZERO;
- }
- }
-
- return keyboardEventDict;
}
};
diff --git a/dom/inputmethod/forms.js b/dom/inputmethod/forms.js
index 2e17416c864..e65a7bf5e08 100644
--- a/dom/inputmethod/forms.js
+++ b/dom/inputmethod/forms.js
@@ -11,7 +11,6 @@ dump("###################################### forms.js loaded\n");
let Ci = Components.interfaces;
let Cc = Components.classes;
let Cu = Components.utils;
-let Cr = Components.results;
Cu.import("resource://gre/modules/Services.jsm");
Cu.import('resource://gre/modules/XPCOMUtils.jsm');
@@ -19,50 +18,10 @@ XPCOMUtils.defineLazyServiceGetter(Services, "fm",
"@mozilla.org/focus-manager;1",
"nsIFocusManager");
-/*
- * A WeakMap to map window to objects keeping it's TextInputProcessor instance.
- */
-let WindowMap = {
- // WeakMap of pairs.
- _map: null,
-
- /*
- * Set the object associated to the window and return it.
- */
- _getObjForWin: function(win) {
- if (!this._map) {
- this._map = new WeakMap();
- }
- if (this._map.has(win)) {
- return this._map.get(win);
- } else {
- let obj = {
- tip: null
- };
- this._map.set(win, obj);
-
- return obj;
- }
- },
-
- getTextInputProcessor: function(win) {
- if (!win) {
- return;
- }
- let obj = this._getObjForWin(win);
- let tip = obj.tip
-
- if (!tip) {
- tip = obj.tip = Cc["@mozilla.org/text-input-processor;1"]
- .createInstance(Ci.nsITextInputProcessor);
- }
-
- if (!tip.beginInputTransaction(win, textInputProcessorCallback)) {
- tip = obj.tip = null;
- }
- return tip;
- }
-};
+XPCOMUtils.defineLazyGetter(this, "domWindowUtils", function () {
+ return content.QueryInterface(Ci.nsIInterfaceRequestor)
+ .getInterface(Ci.nsIDOMWindowUtils);
+});
const RESIZE_SCROLL_DELAY = 20;
// In content editable node, when there are hidden elements such as
, it
@@ -82,151 +41,6 @@ let HTMLSelectElement = Ci.nsIDOMHTMLSelectElement;
let HTMLOptGroupElement = Ci.nsIDOMHTMLOptGroupElement;
let HTMLOptionElement = Ci.nsIDOMHTMLOptionElement;
-function guessKeyNameFromKeyCode(KeyboardEvent, aKeyCode) {
- switch (aKeyCode) {
- case KeyboardEvent.DOM_VK_CANCEL:
- return "Cancel";
- case KeyboardEvent.DOM_VK_HELP:
- return "Help";
- case KeyboardEvent.DOM_VK_BACK_SPACE:
- return "Backspace";
- case KeyboardEvent.DOM_VK_TAB:
- return "Tab";
- case KeyboardEvent.DOM_VK_CLEAR:
- return "Clear";
- case KeyboardEvent.DOM_VK_RETURN:
- return "Enter";
- case KeyboardEvent.DOM_VK_SHIFT:
- return "Shift";
- case KeyboardEvent.DOM_VK_CONTROL:
- return "Control";
- case KeyboardEvent.DOM_VK_ALT:
- return "Alt";
- case KeyboardEvent.DOM_VK_PAUSE:
- return "Pause";
- case KeyboardEvent.DOM_VK_EISU:
- return "Eisu";
- case KeyboardEvent.DOM_VK_ESCAPE:
- return "Escape";
- case KeyboardEvent.DOM_VK_CONVERT:
- return "Convert";
- case KeyboardEvent.DOM_VK_NONCONVERT:
- return "NonConvert";
- case KeyboardEvent.DOM_VK_ACCEPT:
- return "Accept";
- case KeyboardEvent.DOM_VK_MODECHANGE:
- return "ModeChange";
- case KeyboardEvent.DOM_VK_PAGE_UP:
- return "PageUp";
- case KeyboardEvent.DOM_VK_PAGE_DOWN:
- return "PageDown";
- case KeyboardEvent.DOM_VK_END:
- return "End";
- case KeyboardEvent.DOM_VK_HOME:
- return "Home";
- case KeyboardEvent.DOM_VK_LEFT:
- return "ArrowLeft";
- case KeyboardEvent.DOM_VK_UP:
- return "ArrowUp";
- case KeyboardEvent.DOM_VK_RIGHT:
- return "ArrowRight";
- case KeyboardEvent.DOM_VK_DOWN:
- return "ArrowDown";
- case KeyboardEvent.DOM_VK_SELECT:
- return "Select";
- case KeyboardEvent.DOM_VK_PRINT:
- return "Print";
- case KeyboardEvent.DOM_VK_EXECUTE:
- return "Execute";
- case KeyboardEvent.DOM_VK_PRINTSCREEN:
- return "PrintScreen";
- case KeyboardEvent.DOM_VK_INSERT:
- return "Insert";
- case KeyboardEvent.DOM_VK_DELETE:
- return "Delete";
- case KeyboardEvent.DOM_VK_WIN:
- return "OS";
- case KeyboardEvent.DOM_VK_CONTEXT_MENU:
- return "ContextMenu";
- case KeyboardEvent.DOM_VK_SLEEP:
- return "Standby";
- case KeyboardEvent.DOM_VK_F1:
- return "F1";
- case KeyboardEvent.DOM_VK_F2:
- return "F2";
- case KeyboardEvent.DOM_VK_F3:
- return "F3";
- case KeyboardEvent.DOM_VK_F4:
- return "F4";
- case KeyboardEvent.DOM_VK_F5:
- return "F5";
- case KeyboardEvent.DOM_VK_F6:
- return "F6";
- case KeyboardEvent.DOM_VK_F7:
- return "F7";
- case KeyboardEvent.DOM_VK_F8:
- return "F8";
- case KeyboardEvent.DOM_VK_F9:
- return "F9";
- case KeyboardEvent.DOM_VK_F10:
- return "F10";
- case KeyboardEvent.DOM_VK_F11:
- return "F11";
- case KeyboardEvent.DOM_VK_F12:
- return "F12";
- case KeyboardEvent.DOM_VK_F13:
- return "F13";
- case KeyboardEvent.DOM_VK_F14:
- return "F14";
- case KeyboardEvent.DOM_VK_F15:
- return "F15";
- case KeyboardEvent.DOM_VK_F16:
- return "F16";
- case KeyboardEvent.DOM_VK_F17:
- return "F17";
- case KeyboardEvent.DOM_VK_F18:
- return "F18";
- case KeyboardEvent.DOM_VK_F19:
- return "F19";
- case KeyboardEvent.DOM_VK_F20:
- return "F20";
- case KeyboardEvent.DOM_VK_F21:
- return "F21";
- case KeyboardEvent.DOM_VK_F22:
- return "F22";
- case KeyboardEvent.DOM_VK_F23:
- return "F23";
- case KeyboardEvent.DOM_VK_F24:
- return "F24";
- case KeyboardEvent.DOM_VK_NUM_LOCK:
- return "NumLock";
- case KeyboardEvent.DOM_VK_SCROLL_LOCK:
- return "ScrollLock";
- case KeyboardEvent.DOM_VK_VOLUME_MUTE:
- return "VolumeMute";
- case KeyboardEvent.DOM_VK_VOLUME_DOWN:
- return "VolumeDown";
- case KeyboardEvent.DOM_VK_VOLUME_UP:
- return "VolumeUp";
- case KeyboardEvent.DOM_VK_META:
- return "Meta";
- case KeyboardEvent.DOM_VK_ALTGR:
- return "AltGraph";
- case KeyboardEvent.DOM_VK_ATTN:
- return "Attn";
- case KeyboardEvent.DOM_VK_CRSEL:
- return "CrSel";
- case KeyboardEvent.DOM_VK_EXSEL:
- return "ExSel";
- case KeyboardEvent.DOM_VK_EREOF:
- return "EraseEof";
- case KeyboardEvent.DOM_VK_PLAY:
- return "Play";
- default:
- return "Unidentified";
- }
-}
-
let FormVisibility = {
/**
* Searches upwards in the DOM for an element that has been scrolled.
@@ -370,41 +184,6 @@ let FormVisibility = {
}
};
-// This object implements nsITextInputProcessorCallback
-let textInputProcessorCallback = {
- onNotify: function(aTextInputProcessor, aNotification) {
- try {
- switch (aNotification.type) {
- case "request-to-commit":
- // TODO: Send a notification through asyncMessage to the keyboard here.
- aTextInputProcessor.commitComposition();
-
- break;
- case "request-to-cancel":
- // TODO: Send a notification through asyncMessage to the keyboard here.
- aTextInputProcessor.cancelComposition();
-
- break;
-
- case "notify-detached":
- // TODO: Send a notification through asyncMessage to the keyboard here.
- break;
-
- // TODO: Manage _focusedElement for text input from here instead.
- // (except for