зеркало из https://github.com/mozilla/gecko-dev.git
Backed out changeset 51a41b139305 (bug 920831) for bustage.
CLOSED TREE
This commit is contained in:
Родитель
80c9c14437
Коммит
2940401436
|
@ -1786,17 +1786,6 @@ bool Navigator::HasPushNotificationsSupport(JSContext* /* unused */,
|
|||
return win && Preferences::GetBool("services.push.enabled", false) && CheckPermission(win, "push");
|
||||
}
|
||||
|
||||
#ifdef MOZ_B2G
|
||||
/* static */
|
||||
bool Navigator::HasInputMethodSupport(JSContext* /* unused */,
|
||||
JSObject* aGlobal)
|
||||
{
|
||||
nsCOMPtr<nsPIDOMWindow> win = GetWindowFromGlobal(aGlobal);
|
||||
return Preferences::GetBool("dom.mozInputMethod.testing", false) ||
|
||||
(win && CheckPermission(win, "keyboard"));
|
||||
}
|
||||
#endif
|
||||
|
||||
/* static */
|
||||
already_AddRefed<nsPIDOMWindow>
|
||||
Navigator::GetWindowFromGlobal(JSObject* aGlobal)
|
||||
|
|
|
@ -300,10 +300,6 @@ public:
|
|||
static bool HasPushNotificationsSupport(JSContext* /* unused */,
|
||||
JSObject* aGlobal);
|
||||
|
||||
#ifdef MOZ_B2G
|
||||
static bool HasInputMethodSupport(JSContext* /* unused */, JSObject* aGlobal);
|
||||
#endif
|
||||
|
||||
nsPIDOMWindow* GetParentObject() const
|
||||
{
|
||||
return GetWindow();
|
||||
|
|
|
@ -199,6 +199,8 @@ MozKeyboard.prototype = {
|
|||
}
|
||||
};
|
||||
|
||||
const TESTING_ENABLED_PREF = "dom.mozInputMethod.testing";
|
||||
|
||||
/*
|
||||
* A WeakMap to map input method iframe window to its active status.
|
||||
*/
|
||||
|
@ -315,6 +317,24 @@ MozInputMethod.prototype = {
|
|||
}),
|
||||
|
||||
init: function mozInputMethodInit(win) {
|
||||
// Check if we're in testing mode.
|
||||
let isTesting = false;
|
||||
try {
|
||||
isTesting = Services.prefs.getBoolPref(TESTING_ENABLED_PREF);
|
||||
} catch (e) {}
|
||||
|
||||
// Don't bypass the permission check if not in testing mode.
|
||||
if (!isTesting) {
|
||||
let principal = win.document.nodePrincipal;
|
||||
let perm = Services.perms
|
||||
.testExactPermissionFromPrincipal(principal, "keyboard");
|
||||
if (perm != Ci.nsIPermissionManager.ALLOW_ACTION) {
|
||||
dump("No permission to use the keyboard API for " +
|
||||
principal.origin + "\n");
|
||||
return;
|
||||
}
|
||||
}
|
||||
|
||||
this._window = win;
|
||||
this._mgmt = new MozInputMethodManager(win);
|
||||
this.innerWindowID = win.QueryInterface(Ci.nsIInterfaceRequestor)
|
||||
|
|
|
@ -324,6 +324,7 @@ var interfaceNamesInGlobalScope =
|
|||
{name: "MozEmergencyCbModeEvent", b2g: true},
|
||||
{name: "MozIccManager", b2g: true},
|
||||
{name: "MozInputContext", b2g: true},
|
||||
{name: "MozInputMethod", b2g: true},
|
||||
{name: "MozInputMethodManager", b2g: true},
|
||||
"MozMmsEvent",
|
||||
"MozMmsMessage",
|
||||
|
|
|
@ -6,7 +6,6 @@
|
|||
|
||||
[JSImplementation="@mozilla.org/b2g-inputmethod;1",
|
||||
NavigatorProperty="mozInputMethod",
|
||||
Func="Navigator::HasInputMethodSupport",
|
||||
Pref="dom.mozInputMethod.enabled"]
|
||||
interface MozInputMethod : EventTarget {
|
||||
// Input Method Manager contain a few global methods expose to apps
|
||||
|
|
Загрузка…
Ссылка в новой задаче