home *** CD-ROM | disk | FTP | other *** search
/ ftp.ac-grenoble.fr / 2015.02.ftp.ac-grenoble.fr.tar / ftp.ac-grenoble.fr / assistance.logicielle / r-kiosk-0.5.2-firefox.xpi / chrome / content / rkiosk / rkioskbrowser.js < prev    next >
Text File  |  2007-03-08  |  16KB  |  383 lines

  1. function Rkiosk_donothing()
  2. {
  3.  
  4.  
  5. }
  6.  
  7. function Rkiosk_navbar_setting()
  8. {
  9.   var rkiosk_navbar_enable="true";
  10.   var prefs = Components.classes["@mozilla.org/preferences-service;1"].
  11.       getService(Components.interfaces.nsIPrefBranch);
  12.   if (prefs.getPrefType("rkiosk.navbar") == prefs.PREF_BOOL){
  13.     if (prefs.getBoolPref("rkiosk.navbar")) rkiosk_navbar_enable = "false";
  14.   }
  15.   var rkiosk_element = document.getElementById("navigator-toolbox");
  16.   rkiosk_element.setAttribute("hidden", rkiosk_navbar_enable);
  17. }
  18.  
  19. function RkioskBrowserStartup()
  20. {
  21.   gBrowser = document.getElementById("content");
  22.  
  23.   window.tryToClose = WindowIsClosing;
  24.  
  25.   Rkiosk_navbar_setting();
  26.   var uriToLoad = null;
  27.   // Check for window.arguments[0]. If present, use that for uriToLoad.
  28.   if ("arguments" in window && window.arguments[0])
  29.     uriToLoad = window.arguments[0];
  30.  
  31.   gIsLoadingBlank = uriToLoad == "about:blank";
  32.  
  33.   if (!gIsLoadingBlank)
  34.     prepareForStartup();
  35.  
  36. //@line 756 "/cygdrive/c/builds/tinderbox/Fx-Mozilla1.8-release/WINNT_5.2_Depend/mozilla/browser/base/content/browser.js"
  37.   if (uriToLoad && !gIsLoadingBlank) {
  38.     if (window.arguments.length >= 3)
  39.       loadURI(uriToLoad, window.arguments[2], window.arguments[3] || null,
  40.               window.arguments[4] || false);
  41.  
  42.     else
  43.       loadOneOrMoreURIs(uriToLoad);
  44.   }
  45. //@line 765 "/cygdrive/c/builds/tinderbox/Fx-Mozilla1.8-release/WINNT_5.2_Depend/mozilla/browser/base/content/browser.js"
  46.  
  47.   var sidebarSplitter;
  48.   if (window.opener && !window.opener.closed) {
  49.     if (window.opener.gFindBar && window.opener.gFindBar.mFindMode == FIND_NORMAL) {
  50.       var openerFindBar = window.opener.document.getElementById("FindToolbar");
  51.       if (openerFindBar && !openerFindBar.hidden)
  52.         gFindBar.openFindBar();
  53.     }
  54.  
  55.     var openerSidebarBox = window.opener.document.getElementById("sidebar-box");
  56.     // The opener can be the hidden window too, if we're coming from the state
  57.     // where no windows are open, and the hidden window has no sidebar box.
  58.     if (openerSidebarBox && !openerSidebarBox.hidden) {
  59.       var sidebarBox = document.getElementById("sidebar-box");
  60.       var sidebarTitle = document.getElementById("sidebar-title");
  61.       sidebarTitle.setAttribute("value", window.opener.document.getElementById("sidebar-title").getAttribute("value"));
  62.       sidebarBox.setAttribute("width", openerSidebarBox.boxObject.width);
  63.       var sidebarCmd = openerSidebarBox.getAttribute("sidebarcommand");
  64.       sidebarBox.setAttribute("sidebarcommand", sidebarCmd);
  65.       sidebarBox.setAttribute("src", window.opener.document.getElementById("sidebar").getAttribute("src"));
  66.       gMustLoadSidebar = true;
  67.       sidebarBox.hidden = false;
  68.       sidebarSplitter = document.getElementById("sidebar-splitter");
  69.       sidebarSplitter.hidden = false;
  70.       document.getElementById(sidebarCmd).setAttribute("checked", "true");
  71.     }
  72.   }
  73.   else {
  74.     var box = document.getElementById("sidebar-box");
  75.     if (box.hasAttribute("sidebarcommand")) {
  76.       var commandID = box.getAttribute("sidebarcommand");
  77.       if (commandID) {
  78.         var command = document.getElementById(commandID);
  79.         if (command) {
  80.           gMustLoadSidebar = true;
  81.           box.hidden = false;
  82.           sidebarSplitter = document.getElementById("sidebar-splitter");
  83.           sidebarSplitter.hidden = false;
  84.           command.setAttribute("checked", "true");
  85.         }
  86.         else {
  87.           // Remove the |sidebarcommand| attribute, because the element it 
  88.           // refers to no longer exists, so we should assume this sidebar
  89.           // panel has been uninstalled. (249883)
  90.           box.removeAttribute("sidebarcommand");
  91.         }
  92.       }
  93.     }
  94.   }
  95.  
  96.   // Certain kinds of automigration rely on this notification to complete their
  97.   // tasks BEFORE the browser window is shown.
  98.   var obs = Components.classes["@mozilla.org/observer-service;1"].getService(Components.interfaces.nsIObserverService);
  99.   obs.notifyObservers(null, "browser-window-before-show", "");
  100.  
  101.   // Set a sane starting width/height for all resolutions on new profiles.
  102.   if (!document.documentElement.hasAttribute("width")) {
  103.     var defaultWidth = 994, defaultHeight;
  104.     if (screen.availHeight <= 600) {
  105.       document.documentElement.setAttribute("sizemode", "maximized");
  106.       defaultWidth = 610;
  107.       defaultHeight = 450;
  108.     }
  109.     else {
  110.       // Create a narrower window for large or wide-aspect displays, to suggest
  111.       // side-by-side page view.
  112.       if ((screen.availWidth / 2) >= 800)
  113.         defaultWidth = (screen.availWidth / 2) - 20;
  114.       defaultHeight = screen.availHeight - 10;
  115. //@line 849 "/cygdrive/c/builds/tinderbox/Fx-Mozilla1.8-release/WINNT_5.2_Depend/mozilla/browser/base/content/browser.js"
  116.     }
  117.     document.documentElement.setAttribute("width", defaultWidth);
  118.     document.documentElement.setAttribute("height", defaultHeight);
  119.   }
  120.  
  121.   setTimeout(RkioskdelayedStartup, 0);
  122. }
  123.  
  124. function prepareForStartup()
  125. {
  126.   gURLBar = document.getElementById("urlbar");
  127.   gURLBarContainer = document.getElementById("urlbar-container");
  128.   gNavigatorBundle = document.getElementById("bundle_browser");
  129.   gProgressMeterPanel = document.getElementById("statusbar-progresspanel");
  130.   gBrowser.addEventListener("DOMUpdatePageReport", gPopupBlockerObserver.onUpdatePageReport, false);
  131.   gBrowser.addEventListener("PluginNotFound", gMissingPluginInstaller.newMissingPlugin, true);
  132.   gBrowser.addEventListener("NewTab", BrowserOpenTab, false);
  133.  
  134.   var webNavigation;
  135.   try {
  136.     // Create the browser instance component.
  137.     appCore = Components.classes["@mozilla.org/appshell/component/browser/instance;1"]
  138.                         .createInstance(Components.interfaces.nsIBrowserInstance);
  139.     if (!appCore)
  140.       throw "couldn't create a browser instance";
  141.  
  142.     webNavigation = getWebNavigation();
  143.     if (!webNavigation)
  144.       throw "no XBL binding for browser";
  145.   } catch (e) {
  146.     alert("Error launching browser window:" + e);
  147.     window.close(); // Give up.
  148.     return;
  149.   }
  150.  
  151.   // initialize observers and listeners
  152.   // and give C++ access to gBrowser
  153.   window.XULBrowserWindow = new nsBrowserStatusHandler();
  154.   window.QueryInterface(nsCI.nsIInterfaceRequestor)
  155.         .getInterface(nsIWebNavigation)
  156.         .QueryInterface(nsCI.nsIDocShellTreeItem).treeOwner
  157.         .QueryInterface(nsCI.nsIInterfaceRequestor)
  158.         .getInterface(nsCI.nsIXULWindow)
  159.         .XULBrowserWindow = window.XULBrowserWindow;
  160.   window.QueryInterface(nsCI.nsIDOMChromeWindow).browserDOMWindow =
  161.     new nsBrowserAccess();
  162.  
  163.   // set default character set if provided
  164.   if ("arguments" in window && window.arguments.length > 1 && window.arguments[1]) {
  165.     if (window.arguments[1].indexOf("charset=") != -1) {
  166.       var arrayArgComponents = window.arguments[1].split("=");
  167.       if (arrayArgComponents) {
  168.         //we should "inherit" the charset menu setting in a new window
  169.         getMarkupDocumentViewer().defaultCharacterSet = arrayArgComponents[1];
  170.       }
  171.     }
  172.   }
  173.  
  174.   // Initialize browser instance..
  175.   appCore.setWebShellWindow(window);
  176.  
  177.   // Manually hook up session and global history for the first browser
  178.   // so that we don't have to load global history before bringing up a
  179.   // window.
  180.   // Wire up session and global history before any possible
  181.   // progress notifications for back/forward button updating
  182.   webNavigation.sessionHistory = Components.classes["@mozilla.org/browser/shistory;1"]
  183.                                            .createInstance(Components.interfaces.nsISHistory);
  184.   var os = Components.classes["@mozilla.org/observer-service;1"].getService(Components.interfaces.nsIObserverService);
  185.   os.addObserver(gBrowser.browsers[0], "browser:purge-session-history", false);
  186.  
  187.   // remove the disablehistory attribute so the browser cleans up, as
  188.   // though it had done this work itself
  189.   gBrowser.browsers[0].removeAttribute("disablehistory");
  190.  
  191.   // enable global history
  192.   gBrowser.docShell.QueryInterface(Components.interfaces.nsIDocShellHistory).useGlobalHistory = true;
  193.  
  194.   // hook up UI through progress listener
  195.   gBrowser.addProgressListener(window.XULBrowserWindow, Components.interfaces.nsIWebProgress.NOTIFY_ALL);
  196.  
  197.   // Initialize the feedhandler
  198.   FeedHandler.init();
  199.  
  200.   // Initialize the searchbar
  201.   BrowserSearch.init();
  202. }
  203.  
  204. function RkioskdelayedStartup()
  205. {
  206.   var os = Components.classes["@mozilla.org/observer-service;1"].getService(Components.interfaces.nsIObserverService);
  207.   os.addObserver(gSessionHistoryObserver, "browser:purge-session-history", false);
  208.   os.addObserver(gXPInstallObserver, "xpinstall-install-blocked", false);
  209.  
  210.   if (!gPrefService)
  211.     gPrefService = Components.classes["@mozilla.org/preferences-service;1"]
  212.                              .getService(Components.interfaces.nsIPrefBranch);
  213.   BrowserOffline.init();
  214.   
  215.   if (gURLBar && document.documentElement.getAttribute("chromehidden").indexOf("toolbar") != -1) {
  216.     gURLBar.setAttribute("readonly", "true");
  217.     gURLBar.setAttribute("enablehistory", "false");
  218.   }
  219.  
  220.   if (gIsLoadingBlank)
  221.     prepareForStartup();
  222.  
  223.   if (gURLBar)
  224.     gURLBar.addEventListener("dragdrop", URLBarOnDrop, true);
  225.  
  226.   gBrowser.addEventListener("pageshow", function(evt) { setTimeout(pageShowEventHandlers, 0, evt); }, true);
  227.  
  228.   window.addEventListener("keypress", ctrlNumberTabSelection, false);
  229.  
  230.   if (gMustLoadSidebar) {
  231.     var sidebar = document.getElementById("sidebar");
  232.     var sidebarBox = document.getElementById("sidebar-box");
  233.     sidebar.setAttribute("src", sidebarBox.getAttribute("src"));
  234.   }
  235.  
  236.   gFindBar.initFindBar();
  237.  
  238. //@line 972 "/cygdrive/c/builds/tinderbox/Fx-Mozilla1.8-release/WINNT_5.2_Depend/mozilla/browser/base/content/browser.js"
  239.   // add bookmark options to context menu for tabs
  240.   addBookmarkMenuitems();
  241.   initServices();
  242.   initBMService();
  243.   // now load bookmarks
  244.   BMSVC.readBookmarks();
  245.   var bt = document.getElementById("bookmarks-ptf");
  246.   if (bt) {
  247.     var btf = BMSVC.getBookmarksToolbarFolder().Value;
  248.     bt.ref = btf;
  249.     document.getElementById("bookmarks-chevron").ref = btf;
  250.     bt.database.AddObserver(BookmarksToolbarRDFObserver);
  251.   }
  252.   window.addEventListener("resize", BookmarksToolbar.resizeFunc, false);
  253.   document.getElementById("PersonalToolbar")
  254.           .controllers.appendController(BookmarksMenuController);
  255. //@line 996 "/cygdrive/c/builds/tinderbox/Fx-Mozilla1.8-release/WINNT_5.2_Depend/mozilla/browser/base/content/browser.js"
  256.  
  257.   // called when we go into full screen, even if it is
  258.   // initiated by a web page script
  259.   window.addEventListener("fullscreen", onFullScreen, true);
  260.  
  261.   var element;
  262.   if (gIsLoadingBlank && gURLBar && !gURLBar.hidden &&
  263.       !gURLBarContainer.parentNode.collapsed)
  264.     element = gURLBar;
  265.   else
  266.     element = content;
  267.  
  268.   // This is a redo of the fix for jag bug 91884
  269.   var ww = Components.classes["@mozilla.org/embedcomp/window-watcher;1"]
  270.                      .getService(Components.interfaces.nsIWindowWatcher);
  271.   if (window == ww.activeWindow) {
  272.     element.focus();
  273.   } else {
  274.     // set the element in command dispatcher so focus will restore properly
  275.     // when the window does become active
  276.     if (element instanceof Components.interfaces.nsIDOMWindow) {
  277.       document.commandDispatcher.focusedWindow = element;
  278.       document.commandDispatcher.focusedElement = null;
  279.     } else if (element instanceof Components.interfaces.nsIDOMElement) {
  280.       document.commandDispatcher.focusedWindow = element.ownerDocument.defaultView;
  281.       document.commandDispatcher.focusedElement = element;
  282.     }
  283.   }
  284.  
  285.   SetPageProxyState("invalid");
  286.  
  287.   var toolbox = document.getElementById("navigator-toolbox");
  288.   toolbox.customizeDone = BrowserToolboxCustomizeDone;
  289.  
  290.   // Set up Sanitize Item
  291.   gSanitizeListener = new SanitizeListener();
  292.  
  293.   var pbi = gPrefService.QueryInterface(Components.interfaces.nsIPrefBranchInternal);
  294.  
  295.   // Enable/Disable URL Bar Auto Fill
  296.   gURLBarAutoFillPrefListener = new URLBarAutoFillPrefListener();
  297.   pbi.addObserver(gURLBarAutoFillPrefListener.domain, gURLBarAutoFillPrefListener, false);
  298.  
  299.   // Enable/Disable auto-hide tabbar
  300.   gAutoHideTabbarPrefListener = new AutoHideTabbarPrefListener();
  301.   pbi.addObserver(gAutoHideTabbarPrefListener.domain, gAutoHideTabbarPrefListener, false);
  302.  
  303.   // Enable/Disable Go button
  304.   gGoButtonPrefListener = new GoButtonPrefListener();
  305.   pbi.addObserver(gGoButtonPrefListener.domain, gGoButtonPrefListener, false);
  306.  
  307.   pbi.addObserver(gHomeButton.prefDomain, gHomeButton, false);
  308.   gHomeButton.updateTooltip();
  309.  
  310.   gClickSelectsAll = gPrefService.getBoolPref("browser.urlbar.clickSelectsAll");
  311.   if (gURLBar)
  312.     gURLBar.clickSelectsAll = gClickSelectsAll;
  313.  
  314. //@line 1055 "/cygdrive/c/builds/tinderbox/Fx-Mozilla1.8-release/WINNT_5.2_Depend/mozilla/browser/base/content/browser.js"
  315.   // Perform default browser checking (after window opens).
  316.   var shell = getShellService();
  317.   if (shell) {
  318.     var shouldCheck = shell.shouldCheckDefaultBrowser;
  319.     var willRestoreSession = false;
  320.     try {
  321.       var ss = Cc["@mozilla.org/browser/sessionstartup;1"].
  322.                getService(Ci.nsISessionStartup);
  323.       willRestoreSession = ss.doRestore();
  324.     }
  325.     catch (ex) { /* never mind; suppose SessionStore is broken */ }
  326.     if (shouldCheck && !shell.isDefaultBrowser(true) && !willRestoreSession) {
  327.       var brandBundle = document.getElementById("bundle_brand");
  328.       var shellBundle = document.getElementById("bundle_shell");
  329.  
  330.       var brandShortName = brandBundle.getString("brandShortName");
  331.       var promptTitle = shellBundle.getString("setDefaultBrowserTitle");
  332.       var promptMessage = shellBundle.getFormattedString("setDefaultBrowserMessage",
  333.                                                          [brandShortName]);
  334.       var checkboxLabel = shellBundle.getFormattedString("setDefaultBrowserDontAsk",
  335.                                                          [brandShortName]);
  336.       const IPS = Components.interfaces.nsIPromptService;
  337.       var ps = Components.classes["@mozilla.org/embedcomp/prompt-service;1"]
  338.                                                 .getService(IPS);
  339.       var checkEveryTime = { value: shouldCheck };
  340.       var rv = ps.confirmEx(window, promptTitle, promptMessage,
  341.                             (IPS.BUTTON_TITLE_YES * IPS.BUTTON_POS_0) +
  342.                             (IPS.BUTTON_TITLE_NO * IPS.BUTTON_POS_1),
  343.                             null, null, null, checkboxLabel, checkEveryTime);
  344.       if (rv == 0)
  345.         shell.setDefaultBrowser(true, false);
  346.       shell.shouldCheckDefaultBrowser = checkEveryTime.value;
  347.     }
  348.   }
  349. //@line 1090 "/cygdrive/c/builds/tinderbox/Fx-Mozilla1.8-release/WINNT_5.2_Depend/mozilla/browser/base/content/browser.js"
  350.  
  351.   // BiDi UI
  352.   gBidiUI = isBidiEnabled();
  353.   if (gBidiUI) {
  354.     document.getElementById("documentDirection-separator").hidden = false;
  355.     document.getElementById("documentDirection-swap").hidden = false;
  356.     document.getElementById("textfieldDirection-separator").hidden = false;
  357.     document.getElementById("textfieldDirection-swap").hidden = false;
  358.   }
  359.  
  360. //@line 1106 "/cygdrive/c/builds/tinderbox/Fx-Mozilla1.8-release/WINNT_5.2_Depend/mozilla/browser/base/content/browser.js"
  361.  
  362.   // Initialize the microsummary service by retrieving it, prompting its factory
  363.   // to create its singleton, whose constructor initializes the service.
  364.   Cc["@mozilla.org/microsummary/service;1"].getService(Ci.nsIMicrosummaryService);
  365.  
  366.   // initialize the session-restore service (in case it's not already running)
  367.   if (document.documentElement.getAttribute("windowtype") == "navigator:browser") {
  368.     try {
  369.       var ss = Cc["@mozilla.org/browser/sessionstore;1"].
  370.                getService(Ci.nsISessionStore);
  371.       ss.init(window);
  372.     } catch(ex) {
  373.       dump("nsSessionStore could not be initialized: " + ex + "\n");
  374.     }
  375.   }
  376.  
  377.   BrowserFullScreen();    
  378.  
  379.   // browser-specific tab augmentation
  380.   AugmentTabs.init();
  381. }
  382.  
  383.