michael@0: function inputmethod_setup(callback) { michael@0: SimpleTest.waitForExplicitFinish(); michael@0: SimpleTest.requestCompleteLog(); michael@0: let appInfo = SpecialPowers.Cc['@mozilla.org/xre/app-info;1'] michael@0: .getService(SpecialPowers.Ci.nsIXULAppInfo); michael@0: if (appInfo.name != 'B2G') { michael@0: SpecialPowers.Cu.import("resource://gre/modules/Keyboard.jsm", this); michael@0: } michael@0: michael@0: let permissions = []; michael@0: ['input-manage', 'browser'].forEach(function(name) { michael@0: permissions.push({ michael@0: type: name, michael@0: allow: true, michael@0: context: document michael@0: }); michael@0: }); michael@0: michael@0: SpecialPowers.pushPermissions(permissions, function() { michael@0: let prefs = [ michael@0: ['dom.mozBrowserFramesEnabled', true], michael@0: // Enable navigator.mozInputMethod. michael@0: ['dom.mozInputMethod.enabled', true], michael@0: // Bypass the permission check for mozInputMethod API. michael@0: ['dom.mozInputMethod.testing', true] michael@0: ]; michael@0: SpecialPowers.pushPrefEnv({set: prefs}, function() { michael@0: SimpleTest.waitForFocus(callback); michael@0: }); michael@0: }); michael@0: } michael@0: michael@0: function inputmethod_cleanup() { michael@0: SimpleTest.finish(); michael@0: }