michael@0: /* Any copyright is dedicated to the Public Domain. michael@0: http://creativecommons.org/publicdomain/zero/1.0/ */ michael@0: michael@0: function test() { michael@0: waitForExplicitFinish(); michael@0: michael@0: let bmFolder = Application.bookmarks.menu.addFolder("keyword-test"); michael@0: let tab = gBrowser.selectedTab = gBrowser.addTab(); michael@0: michael@0: registerCleanupFunction (function () { michael@0: bmFolder.remove(); michael@0: gBrowser.removeTab(tab); michael@0: }); michael@0: michael@0: let bm = bmFolder.addBookmark("bookmarklet", makeURI("javascript:1;")); michael@0: bm.keyword = "bm"; michael@0: michael@0: addPageShowListener(function () { michael@0: let originalPrincipal = gBrowser.contentPrincipal; michael@0: michael@0: // Enter bookmarklet keyword in the URL bar michael@0: gURLBar.value = "bm"; michael@0: gURLBar.focus(); michael@0: EventUtils.synthesizeKey("VK_RETURN", {}); michael@0: michael@0: addPageShowListener(function () { michael@0: ok(gBrowser.contentPrincipal.equals(originalPrincipal), "javascript bookmarklet should inherit principal"); michael@0: finish(); michael@0: }); michael@0: }); michael@0: } michael@0: michael@0: function addPageShowListener(func) { michael@0: gBrowser.selectedBrowser.addEventListener("pageshow", function loadListener() { michael@0: gBrowser.selectedBrowser.removeEventListener("pageshow", loadListener, false); michael@0: func(); michael@0: }); michael@0: }