/* This Source Code Form is subject to the terms of the Mozilla Public * 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/. */ const Cc = Components.classes; const Ci = Components.interfaces; const Cu = Components.utils; Cu.import("resource://webapprt/modules/WebappRT.jsm"); Cu.import("resource://gre/modules/Services.jsm"); function onLoad() { window.removeEventListener("load", onLoad, false); // Set the title of the window to the name of the webapp let manifest = WebappRT.config.app.manifest; document.documentElement.setAttribute("title", manifest.name); // Only load the webapp on the initially launched main window if ("arguments" in window) { // Load the webapp's launch URL let installRecord = WebappRT.config.app; let url = Services.io.newURI(installRecord.origin, null, null); if (manifest.launch_path) url = Services.io.newURI(manifest.launch_path, null, url); document.getElementById("content").setAttribute("src", url.spec); } } window.addEventListener("load", onLoad, false); #ifdef XP_MACOSX // On Mac, we dynamically create the label for the Quit menuitem, using // a string property to inject the name of the webapp into it. window.addEventListener("load", function onLoadUpdateMenuItems() { window.removeEventListener("load", onLoadUpdateMenuItems, false); let installRecord = WebappRT.config.app; let manifest = WebappRT.config.app.manifest; let bundle = Services.strings.createBundle("chrome://webapprt/locale/webapp.properties"); let quitLabel = bundle.formatStringFromName("quitApplicationCmdMac.label", [manifest.name], 1); let hideLabel = bundle.formatStringFromName("hideApplicationCmdMac.label", [manifest.name], 1); document.getElementById("menu_FileQuitItem").setAttribute("label", quitLabel); document.getElementById("menu_mac_hide_app").setAttribute("label", hideLabel); }, false); #endif function updateEditUIVisibility() { #ifndef XP_MACOSX let editMenuPopupState = document.getElementById("menu_EditPopup").state; // The UI is visible if the Edit menu is opening or open, if the context menu // is open, or if the toolbar has been customized to include the Cut, Copy, // or Paste toolbar buttons. gEditUIVisible = editMenuPopupState == "showing" || editMenuPopupState == "open"; // If UI is visible, update the edit commands' enabled state to reflect // whether or not they are actually enabled for the current focus/selection. if (gEditUIVisible) { goUpdateGlobalEditMenuItems(); } // Otherwise, enable all commands, so that keyboard shortcuts still work, // then lazily determine their actual enabled state when the user presses // a keyboard shortcut. else { goSetCommandEnabled("cmd_undo", true); goSetCommandEnabled("cmd_redo", true); goSetCommandEnabled("cmd_cut", true); goSetCommandEnabled("cmd_copy", true); goSetCommandEnabled("cmd_paste", true); goSetCommandEnabled("cmd_selectAll", true); goSetCommandEnabled("cmd_delete", true); goSetCommandEnabled("cmd_switchTextDirection", true); } #endif }