firefox-ui-lockdown.patch
author Wolfgang Rosenauer <wr@rosenauer.org>
Wed, 15 May 2019 19:43:42 +0200
branchfirefox67
changeset 1093 3942c205588b
parent 64 7bb1edb78dd5
permissions -rw-r--r--
67.0 release
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
27
23cf7aafb85b Add short description to patch
Wolfgang Rosenauer <wr@rosenauer.org>
parents: 26
diff changeset
     1
From: various contributors
23cf7aafb85b Add short description to patch
Wolfgang Rosenauer <wr@rosenauer.org>
parents: 26
diff changeset
     2
Subject: Firefox chrome lockdown hooks
23cf7aafb85b Add short description to patch
Wolfgang Rosenauer <wr@rosenauer.org>
parents: 26
diff changeset
     3
26
bfb0e78e1a7d Prepare firefox-ui-lockdown patch for integration
Wolfgang Rosenauer <wr@rosenauer.org>
parents:
diff changeset
     4
diff --git a/browser/base/content/browser.js b/browser/base/content/browser.js
bfb0e78e1a7d Prepare firefox-ui-lockdown patch for integration
Wolfgang Rosenauer <wr@rosenauer.org>
parents:
diff changeset
     5
--- a/browser/base/content/browser.js
bfb0e78e1a7d Prepare firefox-ui-lockdown patch for integration
Wolfgang Rosenauer <wr@rosenauer.org>
parents:
diff changeset
     6
+++ b/browser/base/content/browser.js
64
7bb1edb78dd5 Update to 1.9.2.4/3.6.4pre to prepare the bigger Lorentz merge
Wolfgang Rosenauer <wr@rosenauer.org>
parents: 40
diff changeset
     7
@@ -1180,32 +1180,186 @@ function prepareForStartup() {
26
bfb0e78e1a7d Prepare firefox-ui-lockdown patch for integration
Wolfgang Rosenauer <wr@rosenauer.org>
parents:
diff changeset
     8
   // setup our MozApplicationManifest listener
bfb0e78e1a7d Prepare firefox-ui-lockdown patch for integration
Wolfgang Rosenauer <wr@rosenauer.org>
parents:
diff changeset
     9
   gBrowser.addEventListener("MozApplicationManifest",
bfb0e78e1a7d Prepare firefox-ui-lockdown patch for integration
Wolfgang Rosenauer <wr@rosenauer.org>
parents:
diff changeset
    10
                             OfflineApps, false);
bfb0e78e1a7d Prepare firefox-ui-lockdown patch for integration
Wolfgang Rosenauer <wr@rosenauer.org>
parents:
diff changeset
    11
 
bfb0e78e1a7d Prepare firefox-ui-lockdown patch for integration
Wolfgang Rosenauer <wr@rosenauer.org>
parents:
diff changeset
    12
   // setup simple gestures support
bfb0e78e1a7d Prepare firefox-ui-lockdown patch for integration
Wolfgang Rosenauer <wr@rosenauer.org>
parents:
diff changeset
    13
   gGestureSupport.init(true);
bfb0e78e1a7d Prepare firefox-ui-lockdown patch for integration
Wolfgang Rosenauer <wr@rosenauer.org>
parents:
diff changeset
    14
 }
bfb0e78e1a7d Prepare firefox-ui-lockdown patch for integration
Wolfgang Rosenauer <wr@rosenauer.org>
parents:
diff changeset
    15
 
bfb0e78e1a7d Prepare firefox-ui-lockdown patch for integration
Wolfgang Rosenauer <wr@rosenauer.org>
parents:
diff changeset
    16
+function lockdownElement(ident, disable, hideCompletely)
bfb0e78e1a7d Prepare firefox-ui-lockdown patch for integration
Wolfgang Rosenauer <wr@rosenauer.org>
parents:
diff changeset
    17
+{
bfb0e78e1a7d Prepare firefox-ui-lockdown patch for integration
Wolfgang Rosenauer <wr@rosenauer.org>
parents:
diff changeset
    18
+  var e = document.getElementById(ident);
bfb0e78e1a7d Prepare firefox-ui-lockdown patch for integration
Wolfgang Rosenauer <wr@rosenauer.org>
parents:
diff changeset
    19
+  if (!e) return;
bfb0e78e1a7d Prepare firefox-ui-lockdown patch for integration
Wolfgang Rosenauer <wr@rosenauer.org>
parents:
diff changeset
    20
+  if (hideCompletely) {
bfb0e78e1a7d Prepare firefox-ui-lockdown patch for integration
Wolfgang Rosenauer <wr@rosenauer.org>
parents:
diff changeset
    21
+    e.setAttribute("style", (disable) ? "display: none;" : "");
bfb0e78e1a7d Prepare firefox-ui-lockdown patch for integration
Wolfgang Rosenauer <wr@rosenauer.org>
parents:
diff changeset
    22
+  } else if (disable) {
bfb0e78e1a7d Prepare firefox-ui-lockdown patch for integration
Wolfgang Rosenauer <wr@rosenauer.org>
parents:
diff changeset
    23
+    e.setAttribute("disabled", "true");
bfb0e78e1a7d Prepare firefox-ui-lockdown patch for integration
Wolfgang Rosenauer <wr@rosenauer.org>
parents:
diff changeset
    24
+  } else {
bfb0e78e1a7d Prepare firefox-ui-lockdown patch for integration
Wolfgang Rosenauer <wr@rosenauer.org>
parents:
diff changeset
    25
+    e.removeAttribute("disabled");
bfb0e78e1a7d Prepare firefox-ui-lockdown patch for integration
Wolfgang Rosenauer <wr@rosenauer.org>
parents:
diff changeset
    26
+  }
bfb0e78e1a7d Prepare firefox-ui-lockdown patch for integration
Wolfgang Rosenauer <wr@rosenauer.org>
parents:
diff changeset
    27
+}
bfb0e78e1a7d Prepare firefox-ui-lockdown patch for integration
Wolfgang Rosenauer <wr@rosenauer.org>
parents:
diff changeset
    28
+
bfb0e78e1a7d Prepare firefox-ui-lockdown patch for integration
Wolfgang Rosenauer <wr@rosenauer.org>
parents:
diff changeset
    29
+function applyLockdown(isStartup)
bfb0e78e1a7d Prepare firefox-ui-lockdown patch for integration
Wolfgang Rosenauer <wr@rosenauer.org>
parents:
diff changeset
    30
+{
bfb0e78e1a7d Prepare firefox-ui-lockdown patch for integration
Wolfgang Rosenauer <wr@rosenauer.org>
parents:
diff changeset
    31
+  // It is important to check that Firefox code does not change the
bfb0e78e1a7d Prepare firefox-ui-lockdown patch for integration
Wolfgang Rosenauer <wr@rosenauer.org>
parents:
diff changeset
    32
+  // "disabled" state of these UI elements. Fortunately it mostly hides
bfb0e78e1a7d Prepare firefox-ui-lockdown patch for integration
Wolfgang Rosenauer <wr@rosenauer.org>
parents:
diff changeset
    33
+  // elements rather than disables them.
bfb0e78e1a7d Prepare firefox-ui-lockdown patch for integration
Wolfgang Rosenauer <wr@rosenauer.org>
parents:
diff changeset
    34
+  var disablePrinting = gPrefService.getBoolPref("config.lockdown.printing");
bfb0e78e1a7d Prepare firefox-ui-lockdown patch for integration
Wolfgang Rosenauer <wr@rosenauer.org>
parents:
diff changeset
    35
+  var disablePrintSetup = gPrefService.getBoolPref("config.lockdown.printsetup");
bfb0e78e1a7d Prepare firefox-ui-lockdown patch for integration
Wolfgang Rosenauer <wr@rosenauer.org>
parents:
diff changeset
    36
+  if (!isStartup || disablePrintSetup || disablePrintSetup) {
bfb0e78e1a7d Prepare firefox-ui-lockdown patch for integration
Wolfgang Rosenauer <wr@rosenauer.org>
parents:
diff changeset
    37
+    lockdownElement("cmd_pageSetup", disablePrinting || disablePrintSetup);
bfb0e78e1a7d Prepare firefox-ui-lockdown patch for integration
Wolfgang Rosenauer <wr@rosenauer.org>
parents:
diff changeset
    38
+    lockdownElement("menu_printPreview", disablePrinting || disablePrintSetup);
bfb0e78e1a7d Prepare firefox-ui-lockdown patch for integration
Wolfgang Rosenauer <wr@rosenauer.org>
parents:
diff changeset
    39
+    lockdownElement("cmd_print", disablePrinting);
bfb0e78e1a7d Prepare firefox-ui-lockdown patch for integration
Wolfgang Rosenauer <wr@rosenauer.org>
parents:
diff changeset
    40
+  }
bfb0e78e1a7d Prepare firefox-ui-lockdown patch for integration
Wolfgang Rosenauer <wr@rosenauer.org>
parents:
diff changeset
    41
+
bfb0e78e1a7d Prepare firefox-ui-lockdown patch for integration
Wolfgang Rosenauer <wr@rosenauer.org>
parents:
diff changeset
    42
+  var disableSave = gPrefService.getBoolPref("config.lockdown.savepage");
bfb0e78e1a7d Prepare firefox-ui-lockdown patch for integration
Wolfgang Rosenauer <wr@rosenauer.org>
parents:
diff changeset
    43
+  if (!isStartup || disableSave) {
bfb0e78e1a7d Prepare firefox-ui-lockdown patch for integration
Wolfgang Rosenauer <wr@rosenauer.org>
parents:
diff changeset
    44
+    lockdownElement("Browser:SavePage", disableSave);
bfb0e78e1a7d Prepare firefox-ui-lockdown patch for integration
Wolfgang Rosenauer <wr@rosenauer.org>
parents:
diff changeset
    45
+    lockdownElement("Browser:SaveFrame", disableSave);
bfb0e78e1a7d Prepare firefox-ui-lockdown patch for integration
Wolfgang Rosenauer <wr@rosenauer.org>
parents:
diff changeset
    46
+    lockdownElement("context-savepage", disableSave);
bfb0e78e1a7d Prepare firefox-ui-lockdown patch for integration
Wolfgang Rosenauer <wr@rosenauer.org>
parents:
diff changeset
    47
+    lockdownElement("context-saveframe", disableSave);
bfb0e78e1a7d Prepare firefox-ui-lockdown patch for integration
Wolfgang Rosenauer <wr@rosenauer.org>
parents:
diff changeset
    48
+    lockdownElement("context-savelink", disableSave);
bfb0e78e1a7d Prepare firefox-ui-lockdown patch for integration
Wolfgang Rosenauer <wr@rosenauer.org>
parents:
diff changeset
    49
+    lockdownElement("context-saveimage", disableSave);
bfb0e78e1a7d Prepare firefox-ui-lockdown patch for integration
Wolfgang Rosenauer <wr@rosenauer.org>
parents:
diff changeset
    50
+    lockdownElement("View:PageSource", disableSave);
bfb0e78e1a7d Prepare firefox-ui-lockdown patch for integration
Wolfgang Rosenauer <wr@rosenauer.org>
parents:
diff changeset
    51
+    lockdownElement("context-viewpartialsource-selection", disableSave);
bfb0e78e1a7d Prepare firefox-ui-lockdown patch for integration
Wolfgang Rosenauer <wr@rosenauer.org>
parents:
diff changeset
    52
+    lockdownElement("context-viewpartialsource-mathml", disableSave);
bfb0e78e1a7d Prepare firefox-ui-lockdown patch for integration
Wolfgang Rosenauer <wr@rosenauer.org>
parents:
diff changeset
    53
+    lockdownElement("context-viewsource", disableSave);
bfb0e78e1a7d Prepare firefox-ui-lockdown patch for integration
Wolfgang Rosenauer <wr@rosenauer.org>
parents:
diff changeset
    54
+    lockdownElement("context-viewframesource", disableSave);
bfb0e78e1a7d Prepare firefox-ui-lockdown patch for integration
Wolfgang Rosenauer <wr@rosenauer.org>
parents:
diff changeset
    55
+    lockdownElement("View:PageInfo", disableSave);
bfb0e78e1a7d Prepare firefox-ui-lockdown patch for integration
Wolfgang Rosenauer <wr@rosenauer.org>
parents:
diff changeset
    56
+    lockdownElement("context-viewinfo", disableSave);
bfb0e78e1a7d Prepare firefox-ui-lockdown patch for integration
Wolfgang Rosenauer <wr@rosenauer.org>
parents:
diff changeset
    57
+    lockdownElement("context-viewframeinfo", disableSave);
bfb0e78e1a7d Prepare firefox-ui-lockdown patch for integration
Wolfgang Rosenauer <wr@rosenauer.org>
parents:
diff changeset
    58
+    lockdownElement("Tasks:InspectPage", disableSave); // from DOMInspector extension
bfb0e78e1a7d Prepare firefox-ui-lockdown patch for integration
Wolfgang Rosenauer <wr@rosenauer.org>
parents:
diff changeset
    59
+  }
bfb0e78e1a7d Prepare firefox-ui-lockdown patch for integration
Wolfgang Rosenauer <wr@rosenauer.org>
parents:
diff changeset
    60
+
bfb0e78e1a7d Prepare firefox-ui-lockdown patch for integration
Wolfgang Rosenauer <wr@rosenauer.org>
parents:
diff changeset
    61
+  var disableBookmarks = gPrefService.getBoolPref("config.lockdown.hidebookmark");
bfb0e78e1a7d Prepare firefox-ui-lockdown patch for integration
Wolfgang Rosenauer <wr@rosenauer.org>
parents:
diff changeset
    62
+  var disableBookmarkEditing = gPrefService.getBoolPref("config.lockdown.bookmark");
bfb0e78e1a7d Prepare firefox-ui-lockdown patch for integration
Wolfgang Rosenauer <wr@rosenauer.org>
parents:
diff changeset
    63
+  if (!isStartup || disableBookmarks || disableBookmarkEditing) {
bfb0e78e1a7d Prepare firefox-ui-lockdown patch for integration
Wolfgang Rosenauer <wr@rosenauer.org>
parents:
diff changeset
    64
+    lockdownElement("bookmarksMenu", disableBookmarks, true);
bfb0e78e1a7d Prepare firefox-ui-lockdown patch for integration
Wolfgang Rosenauer <wr@rosenauer.org>
parents:
diff changeset
    65
+    lockdownElement("viewBookmarksSidebar", disableBookmarks);
bfb0e78e1a7d Prepare firefox-ui-lockdown patch for integration
Wolfgang Rosenauer <wr@rosenauer.org>
parents:
diff changeset
    66
+    lockdownElement("PersonalToolbar", disableBookmarks); // XXX check
bfb0e78e1a7d Prepare firefox-ui-lockdown patch for integration
Wolfgang Rosenauer <wr@rosenauer.org>
parents:
diff changeset
    67
+    lockdownElement("Browser:AddBookmarkAs", disableBookmarks || disableBookmarkEditing);
bfb0e78e1a7d Prepare firefox-ui-lockdown patch for integration
Wolfgang Rosenauer <wr@rosenauer.org>
parents:
diff changeset
    68
+    lockdownElement("Browser:ShowAllBookmarks", disableBookmarks || disableBookmarkEditing);
bfb0e78e1a7d Prepare firefox-ui-lockdown patch for integration
Wolfgang Rosenauer <wr@rosenauer.org>
parents:
diff changeset
    69
+    lockdownElement("manBookmark", disableBookmarks || disableBookmarkEditing);
bfb0e78e1a7d Prepare firefox-ui-lockdown patch for integration
Wolfgang Rosenauer <wr@rosenauer.org>
parents:
diff changeset
    70
+    lockdownElement("context-bookmarkpage", disableBookmarks || disableBookmarkEditing);
bfb0e78e1a7d Prepare firefox-ui-lockdown patch for integration
Wolfgang Rosenauer <wr@rosenauer.org>
parents:
diff changeset
    71
+    lockdownElement("context-bookmarklink", disableBookmarks || disableBookmarkEditing);
bfb0e78e1a7d Prepare firefox-ui-lockdown patch for integration
Wolfgang Rosenauer <wr@rosenauer.org>
parents:
diff changeset
    72
+
bfb0e78e1a7d Prepare firefox-ui-lockdown patch for integration
Wolfgang Rosenauer <wr@rosenauer.org>
parents:
diff changeset
    73
+    // hide the personal bookmarks toolbar if necessary
bfb0e78e1a7d Prepare firefox-ui-lockdown patch for integration
Wolfgang Rosenauer <wr@rosenauer.org>
parents:
diff changeset
    74
+    if (disableBookmarks) {
bfb0e78e1a7d Prepare firefox-ui-lockdown patch for integration
Wolfgang Rosenauer <wr@rosenauer.org>
parents:
diff changeset
    75
+      document.getElementById("PersonalToolbar").setAttribute("collapsed", "true");
bfb0e78e1a7d Prepare firefox-ui-lockdown patch for integration
Wolfgang Rosenauer <wr@rosenauer.org>
parents:
diff changeset
    76
+    }
bfb0e78e1a7d Prepare firefox-ui-lockdown patch for integration
Wolfgang Rosenauer <wr@rosenauer.org>
parents:
diff changeset
    77
+  }
bfb0e78e1a7d Prepare firefox-ui-lockdown patch for integration
Wolfgang Rosenauer <wr@rosenauer.org>
parents:
diff changeset
    78
+
bfb0e78e1a7d Prepare firefox-ui-lockdown patch for integration
Wolfgang Rosenauer <wr@rosenauer.org>
parents:
diff changeset
    79
+  var disableHistory = gPrefService.getBoolPref("config.lockdown.history");
bfb0e78e1a7d Prepare firefox-ui-lockdown patch for integration
Wolfgang Rosenauer <wr@rosenauer.org>
parents:
diff changeset
    80
+  if (!isStartup || disableHistory) {
bfb0e78e1a7d Prepare firefox-ui-lockdown patch for integration
Wolfgang Rosenauer <wr@rosenauer.org>
parents:
diff changeset
    81
+    lockdownElement("history-menu", disableHistory, true);
bfb0e78e1a7d Prepare firefox-ui-lockdown patch for integration
Wolfgang Rosenauer <wr@rosenauer.org>
parents:
diff changeset
    82
+    lockdownElement("viewHistorySidebar", disableHistory);
bfb0e78e1a7d Prepare firefox-ui-lockdown patch for integration
Wolfgang Rosenauer <wr@rosenauer.org>
parents:
diff changeset
    83
+    lockdownElement("Browser:ShowAllHistory", disableHistory);
bfb0e78e1a7d Prepare firefox-ui-lockdown patch for integration
Wolfgang Rosenauer <wr@rosenauer.org>
parents:
diff changeset
    84
+    gURLBar.setAttribute("enablehistory", disableHistory ? "false" : "true");
bfb0e78e1a7d Prepare firefox-ui-lockdown patch for integration
Wolfgang Rosenauer <wr@rosenauer.org>
parents:
diff changeset
    85
+    gURLBar.disableAutoComplete = disableHistory;
bfb0e78e1a7d Prepare firefox-ui-lockdown patch for integration
Wolfgang Rosenauer <wr@rosenauer.org>
parents:
diff changeset
    86
+  }
bfb0e78e1a7d Prepare firefox-ui-lockdown patch for integration
Wolfgang Rosenauer <wr@rosenauer.org>
parents:
diff changeset
    87
+
bfb0e78e1a7d Prepare firefox-ui-lockdown patch for integration
Wolfgang Rosenauer <wr@rosenauer.org>
parents:
diff changeset
    88
+  var defaultPrefs = Cc["@mozilla.org/preferences-service;1"]
bfb0e78e1a7d Prepare firefox-ui-lockdown patch for integration
Wolfgang Rosenauer <wr@rosenauer.org>
parents:
diff changeset
    89
+      .getService(Ci.nsIPrefService).getDefaultBranch(null);
bfb0e78e1a7d Prepare firefox-ui-lockdown patch for integration
Wolfgang Rosenauer <wr@rosenauer.org>
parents:
diff changeset
    90
+  if (isStartup && disableHistory) {
bfb0e78e1a7d Prepare firefox-ui-lockdown patch for integration
Wolfgang Rosenauer <wr@rosenauer.org>
parents:
diff changeset
    91
+    if (!defaultPrefs.prefIsLocked("browser.history_expire_days")) {
bfb0e78e1a7d Prepare firefox-ui-lockdown patch for integration
Wolfgang Rosenauer <wr@rosenauer.org>
parents:
diff changeset
    92
+      defaultPrefs.setIntPref("browser.history_expire_days", 0);
bfb0e78e1a7d Prepare firefox-ui-lockdown patch for integration
Wolfgang Rosenauer <wr@rosenauer.org>
parents:
diff changeset
    93
+      defaultPrefs.lockPref("browser.history_expire_days");
bfb0e78e1a7d Prepare firefox-ui-lockdown patch for integration
Wolfgang Rosenauer <wr@rosenauer.org>
parents:
diff changeset
    94
+    }
bfb0e78e1a7d Prepare firefox-ui-lockdown patch for integration
Wolfgang Rosenauer <wr@rosenauer.org>
parents:
diff changeset
    95
+    if (!defaultPrefs.prefIsLocked("browser.formfill.enable")) {
bfb0e78e1a7d Prepare firefox-ui-lockdown patch for integration
Wolfgang Rosenauer <wr@rosenauer.org>
parents:
diff changeset
    96
+      defaultPrefs.setBoolPref("browser.formfill.enable", false);
bfb0e78e1a7d Prepare firefox-ui-lockdown patch for integration
Wolfgang Rosenauer <wr@rosenauer.org>
parents:
diff changeset
    97
+      defaultPrefs.lockPref("browser.formfill.enable");
bfb0e78e1a7d Prepare firefox-ui-lockdown patch for integration
Wolfgang Rosenauer <wr@rosenauer.org>
parents:
diff changeset
    98
+    }
bfb0e78e1a7d Prepare firefox-ui-lockdown patch for integration
Wolfgang Rosenauer <wr@rosenauer.org>
parents:
diff changeset
    99
+    if (!defaultPrefs.prefIsLocked("browser.download.manager.retention")) {
bfb0e78e1a7d Prepare firefox-ui-lockdown patch for integration
Wolfgang Rosenauer <wr@rosenauer.org>
parents:
diff changeset
   100
+      defaultPrefs.setIntPref("browser.download.manager.retention", 0);
bfb0e78e1a7d Prepare firefox-ui-lockdown patch for integration
Wolfgang Rosenauer <wr@rosenauer.org>
parents:
diff changeset
   101
+      defaultPrefs.lockPref("browser.download.manager.retention");
bfb0e78e1a7d Prepare firefox-ui-lockdown patch for integration
Wolfgang Rosenauer <wr@rosenauer.org>
parents:
diff changeset
   102
+    }
bfb0e78e1a7d Prepare firefox-ui-lockdown patch for integration
Wolfgang Rosenauer <wr@rosenauer.org>
parents:
diff changeset
   103
+    gPrefService.setBoolPref("config.lockdown.history.set", true);
bfb0e78e1a7d Prepare firefox-ui-lockdown patch for integration
Wolfgang Rosenauer <wr@rosenauer.org>
parents:
diff changeset
   104
+  } else if (isStartup && gPrefService.prefHasUserValue("config.lockdown.history.set")) {
bfb0e78e1a7d Prepare firefox-ui-lockdown patch for integration
Wolfgang Rosenauer <wr@rosenauer.org>
parents:
diff changeset
   105
+    if (!defaultPrefs.prefIsLocked("browser.history_expire_days")) {
bfb0e78e1a7d Prepare firefox-ui-lockdown patch for integration
Wolfgang Rosenauer <wr@rosenauer.org>
parents:
diff changeset
   106
+      defaultPrefs.clearUserPref("browser.history_expire_days");
bfb0e78e1a7d Prepare firefox-ui-lockdown patch for integration
Wolfgang Rosenauer <wr@rosenauer.org>
parents:
diff changeset
   107
+    }
bfb0e78e1a7d Prepare firefox-ui-lockdown patch for integration
Wolfgang Rosenauer <wr@rosenauer.org>
parents:
diff changeset
   108
+    if (!defaultPrefs.prefIsLocked("browser.formfill.enable")) {
bfb0e78e1a7d Prepare firefox-ui-lockdown patch for integration
Wolfgang Rosenauer <wr@rosenauer.org>
parents:
diff changeset
   109
+      defaultPrefs.clearUserPref("browser.formfill.enable");
bfb0e78e1a7d Prepare firefox-ui-lockdown patch for integration
Wolfgang Rosenauer <wr@rosenauer.org>
parents:
diff changeset
   110
+    }
bfb0e78e1a7d Prepare firefox-ui-lockdown patch for integration
Wolfgang Rosenauer <wr@rosenauer.org>
parents:
diff changeset
   111
+    if (!defaultPrefs.prefIsLocked("browser.download.manager.retention")) {
bfb0e78e1a7d Prepare firefox-ui-lockdown patch for integration
Wolfgang Rosenauer <wr@rosenauer.org>
parents:
diff changeset
   112
+      defaultPrefs.clearUserPref("browser.download.manager.retention");
bfb0e78e1a7d Prepare firefox-ui-lockdown patch for integration
Wolfgang Rosenauer <wr@rosenauer.org>
parents:
diff changeset
   113
+    }
bfb0e78e1a7d Prepare firefox-ui-lockdown patch for integration
Wolfgang Rosenauer <wr@rosenauer.org>
parents:
diff changeset
   114
+    gPrefService.clearUserPref("config.lockdown.history.set");
bfb0e78e1a7d Prepare firefox-ui-lockdown patch for integration
Wolfgang Rosenauer <wr@rosenauer.org>
parents:
diff changeset
   115
+  }
bfb0e78e1a7d Prepare firefox-ui-lockdown patch for integration
Wolfgang Rosenauer <wr@rosenauer.org>
parents:
diff changeset
   116
+
bfb0e78e1a7d Prepare firefox-ui-lockdown patch for integration
Wolfgang Rosenauer <wr@rosenauer.org>
parents:
diff changeset
   117
+  var disableURLBar = gPrefService.getBoolPref("config.lockdown.urlbar");
bfb0e78e1a7d Prepare firefox-ui-lockdown patch for integration
Wolfgang Rosenauer <wr@rosenauer.org>
parents:
diff changeset
   118
+  if (!isStartup || disableURLBar) {
bfb0e78e1a7d Prepare firefox-ui-lockdown patch for integration
Wolfgang Rosenauer <wr@rosenauer.org>
parents:
diff changeset
   119
+    lockdownElement("urlbar", disableURLBar);
bfb0e78e1a7d Prepare firefox-ui-lockdown patch for integration
Wolfgang Rosenauer <wr@rosenauer.org>
parents:
diff changeset
   120
+    lockdownElement("Browser:OpenLocation", disableURLBar);
bfb0e78e1a7d Prepare firefox-ui-lockdown patch for integration
Wolfgang Rosenauer <wr@rosenauer.org>
parents:
diff changeset
   121
+    lockdownElement("Browser:OpenFile", disableURLBar);
bfb0e78e1a7d Prepare firefox-ui-lockdown patch for integration
Wolfgang Rosenauer <wr@rosenauer.org>
parents:
diff changeset
   122
+  }
bfb0e78e1a7d Prepare firefox-ui-lockdown patch for integration
Wolfgang Rosenauer <wr@rosenauer.org>
parents:
diff changeset
   123
+
bfb0e78e1a7d Prepare firefox-ui-lockdown patch for integration
Wolfgang Rosenauer <wr@rosenauer.org>
parents:
diff changeset
   124
+  var disableSearchBar = gPrefService.getBoolPref("config.lockdown.searchbar");
bfb0e78e1a7d Prepare firefox-ui-lockdown patch for integration
Wolfgang Rosenauer <wr@rosenauer.org>
parents:
diff changeset
   125
+  if (!isStartup || disableSearchBar) {
bfb0e78e1a7d Prepare firefox-ui-lockdown patch for integration
Wolfgang Rosenauer <wr@rosenauer.org>
parents:
diff changeset
   126
+    document.getElementById("search-container")
bfb0e78e1a7d Prepare firefox-ui-lockdown patch for integration
Wolfgang Rosenauer <wr@rosenauer.org>
parents:
diff changeset
   127
+      .setAttribute("style", (disableSearchBar) ? "display: none;" : "");
bfb0e78e1a7d Prepare firefox-ui-lockdown patch for integration
Wolfgang Rosenauer <wr@rosenauer.org>
parents:
diff changeset
   128
+  }
bfb0e78e1a7d Prepare firefox-ui-lockdown patch for integration
Wolfgang Rosenauer <wr@rosenauer.org>
parents:
diff changeset
   129
+
bfb0e78e1a7d Prepare firefox-ui-lockdown patch for integration
Wolfgang Rosenauer <wr@rosenauer.org>
parents:
diff changeset
   130
+  var disableToolbarEditing = gPrefService.getBoolPref("config.lockdown.toolbarediting");
bfb0e78e1a7d Prepare firefox-ui-lockdown patch for integration
Wolfgang Rosenauer <wr@rosenauer.org>
parents:
diff changeset
   131
+  if (!isStartup || disableToolbarEditing) {
bfb0e78e1a7d Prepare firefox-ui-lockdown patch for integration
Wolfgang Rosenauer <wr@rosenauer.org>
parents:
diff changeset
   132
+    var e = document.getElementById("cmd_CustomizeToolbars");
bfb0e78e1a7d Prepare firefox-ui-lockdown patch for integration
Wolfgang Rosenauer <wr@rosenauer.org>
parents:
diff changeset
   133
+    if (!e.getAttribute("inCustomization")) {
bfb0e78e1a7d Prepare firefox-ui-lockdown patch for integration
Wolfgang Rosenauer <wr@rosenauer.org>
parents:
diff changeset
   134
+      lockdownElement("cmd_CustomizeToolbars", disableToolbarEditing);
bfb0e78e1a7d Prepare firefox-ui-lockdown patch for integration
Wolfgang Rosenauer <wr@rosenauer.org>
parents:
diff changeset
   135
+    }
bfb0e78e1a7d Prepare firefox-ui-lockdown patch for integration
Wolfgang Rosenauer <wr@rosenauer.org>
parents:
diff changeset
   136
+  }
bfb0e78e1a7d Prepare firefox-ui-lockdown patch for integration
Wolfgang Rosenauer <wr@rosenauer.org>
parents:
diff changeset
   137
+
bfb0e78e1a7d Prepare firefox-ui-lockdown patch for integration
Wolfgang Rosenauer <wr@rosenauer.org>
parents:
diff changeset
   138
+  // Close sidebar if we disabled the command that's currently in use
bfb0e78e1a7d Prepare firefox-ui-lockdown patch for integration
Wolfgang Rosenauer <wr@rosenauer.org>
parents:
diff changeset
   139
+  var sidebarBox = document.getElementById("sidebar-box");
bfb0e78e1a7d Prepare firefox-ui-lockdown patch for integration
Wolfgang Rosenauer <wr@rosenauer.org>
parents:
diff changeset
   140
+  var cmd = sidebarBox.getAttribute("sidebarcommand");
bfb0e78e1a7d Prepare firefox-ui-lockdown patch for integration
Wolfgang Rosenauer <wr@rosenauer.org>
parents:
diff changeset
   141
+  if (cmd) {
bfb0e78e1a7d Prepare firefox-ui-lockdown patch for integration
Wolfgang Rosenauer <wr@rosenauer.org>
parents:
diff changeset
   142
+    var elt = document.getElementById(cmd);
bfb0e78e1a7d Prepare firefox-ui-lockdown patch for integration
Wolfgang Rosenauer <wr@rosenauer.org>
parents:
diff changeset
   143
+    if (elt && elt.getAttribute("disabled") == "true") {
bfb0e78e1a7d Prepare firefox-ui-lockdown patch for integration
Wolfgang Rosenauer <wr@rosenauer.org>
parents:
diff changeset
   144
+      toggleSidebar(cmd, false);
bfb0e78e1a7d Prepare firefox-ui-lockdown patch for integration
Wolfgang Rosenauer <wr@rosenauer.org>
parents:
diff changeset
   145
+      gMustLoadSidebar = false;
bfb0e78e1a7d Prepare firefox-ui-lockdown patch for integration
Wolfgang Rosenauer <wr@rosenauer.org>
parents:
diff changeset
   146
+    }
bfb0e78e1a7d Prepare firefox-ui-lockdown patch for integration
Wolfgang Rosenauer <wr@rosenauer.org>
parents:
diff changeset
   147
+  }
bfb0e78e1a7d Prepare firefox-ui-lockdown patch for integration
Wolfgang Rosenauer <wr@rosenauer.org>
parents:
diff changeset
   148
+}
bfb0e78e1a7d Prepare firefox-ui-lockdown patch for integration
Wolfgang Rosenauer <wr@rosenauer.org>
parents:
diff changeset
   149
+
bfb0e78e1a7d Prepare firefox-ui-lockdown patch for integration
Wolfgang Rosenauer <wr@rosenauer.org>
parents:
diff changeset
   150
+var lockdownObserver = {
bfb0e78e1a7d Prepare firefox-ui-lockdown patch for integration
Wolfgang Rosenauer <wr@rosenauer.org>
parents:
diff changeset
   151
+  observe: function(aSubject, aTopic, aPrefName)
bfb0e78e1a7d Prepare firefox-ui-lockdown patch for integration
Wolfgang Rosenauer <wr@rosenauer.org>
parents:
diff changeset
   152
+  {
bfb0e78e1a7d Prepare firefox-ui-lockdown patch for integration
Wolfgang Rosenauer <wr@rosenauer.org>
parents:
diff changeset
   153
+    try {
bfb0e78e1a7d Prepare firefox-ui-lockdown patch for integration
Wolfgang Rosenauer <wr@rosenauer.org>
parents:
diff changeset
   154
+      applyLockdown(false);
bfb0e78e1a7d Prepare firefox-ui-lockdown patch for integration
Wolfgang Rosenauer <wr@rosenauer.org>
parents:
diff changeset
   155
+    } catch (ex) {
bfb0e78e1a7d Prepare firefox-ui-lockdown patch for integration
Wolfgang Rosenauer <wr@rosenauer.org>
parents:
diff changeset
   156
+      dump("Failed lockdown: " + ex + "\n");
bfb0e78e1a7d Prepare firefox-ui-lockdown patch for integration
Wolfgang Rosenauer <wr@rosenauer.org>
parents:
diff changeset
   157
+    }
bfb0e78e1a7d Prepare firefox-ui-lockdown patch for integration
Wolfgang Rosenauer <wr@rosenauer.org>
parents:
diff changeset
   158
+  }
bfb0e78e1a7d Prepare firefox-ui-lockdown patch for integration
Wolfgang Rosenauer <wr@rosenauer.org>
parents:
diff changeset
   159
+};
bfb0e78e1a7d Prepare firefox-ui-lockdown patch for integration
Wolfgang Rosenauer <wr@rosenauer.org>
parents:
diff changeset
   160
+
bfb0e78e1a7d Prepare firefox-ui-lockdown patch for integration
Wolfgang Rosenauer <wr@rosenauer.org>
parents:
diff changeset
   161
 function delayedStartup(isLoadingBlank, mustLoadSidebar) {
bfb0e78e1a7d Prepare firefox-ui-lockdown patch for integration
Wolfgang Rosenauer <wr@rosenauer.org>
parents:
diff changeset
   162
   var os = Cc["@mozilla.org/observer-service;1"].getService(Ci.nsIObserverService);
bfb0e78e1a7d Prepare firefox-ui-lockdown patch for integration
Wolfgang Rosenauer <wr@rosenauer.org>
parents:
diff changeset
   163
   os.addObserver(gSessionHistoryObserver, "browser:purge-session-history", false);
bfb0e78e1a7d Prepare firefox-ui-lockdown patch for integration
Wolfgang Rosenauer <wr@rosenauer.org>
parents:
diff changeset
   164
   os.addObserver(gXPInstallObserver, "xpinstall-install-blocked", false);
bfb0e78e1a7d Prepare firefox-ui-lockdown patch for integration
Wolfgang Rosenauer <wr@rosenauer.org>
parents:
diff changeset
   165
 
bfb0e78e1a7d Prepare firefox-ui-lockdown patch for integration
Wolfgang Rosenauer <wr@rosenauer.org>
parents:
diff changeset
   166
+  try {
bfb0e78e1a7d Prepare firefox-ui-lockdown patch for integration
Wolfgang Rosenauer <wr@rosenauer.org>
parents:
diff changeset
   167
+    // do lockdown stuff in an exception handler so that if it fails
bfb0e78e1a7d Prepare firefox-ui-lockdown patch for integration
Wolfgang Rosenauer <wr@rosenauer.org>
parents:
diff changeset
   168
+    // catastrophically, the browser should still come up and function
bfb0e78e1a7d Prepare firefox-ui-lockdown patch for integration
Wolfgang Rosenauer <wr@rosenauer.org>
parents:
diff changeset
   169
+    applyLockdown(true);
bfb0e78e1a7d Prepare firefox-ui-lockdown patch for integration
Wolfgang Rosenauer <wr@rosenauer.org>
parents:
diff changeset
   170
+    gPrefService.addObserver("config.lockdown.", lockdownObserver, false);
bfb0e78e1a7d Prepare firefox-ui-lockdown patch for integration
Wolfgang Rosenauer <wr@rosenauer.org>
parents:
diff changeset
   171
+  } catch (ex) {
bfb0e78e1a7d Prepare firefox-ui-lockdown patch for integration
Wolfgang Rosenauer <wr@rosenauer.org>
parents:
diff changeset
   172
+    dump("Failed lockdown: " + ex + "\n");
bfb0e78e1a7d Prepare firefox-ui-lockdown patch for integration
Wolfgang Rosenauer <wr@rosenauer.org>
parents:
diff changeset
   173
+  }
bfb0e78e1a7d Prepare firefox-ui-lockdown patch for integration
Wolfgang Rosenauer <wr@rosenauer.org>
parents:
diff changeset
   174
+
bfb0e78e1a7d Prepare firefox-ui-lockdown patch for integration
Wolfgang Rosenauer <wr@rosenauer.org>
parents:
diff changeset
   175
   BrowserOffline.init();
bfb0e78e1a7d Prepare firefox-ui-lockdown patch for integration
Wolfgang Rosenauer <wr@rosenauer.org>
parents:
diff changeset
   176
   OfflineApps.init();
bfb0e78e1a7d Prepare firefox-ui-lockdown patch for integration
Wolfgang Rosenauer <wr@rosenauer.org>
parents:
diff changeset
   177
 
bfb0e78e1a7d Prepare firefox-ui-lockdown patch for integration
Wolfgang Rosenauer <wr@rosenauer.org>
parents:
diff changeset
   178
   gBrowser.addEventListener("pageshow", function(evt) { setTimeout(pageShowEventHandlers, 0, evt); }, true);
bfb0e78e1a7d Prepare firefox-ui-lockdown patch for integration
Wolfgang Rosenauer <wr@rosenauer.org>
parents:
diff changeset
   179
 
bfb0e78e1a7d Prepare firefox-ui-lockdown patch for integration
Wolfgang Rosenauer <wr@rosenauer.org>
parents:
diff changeset
   180
   // Ensure login manager is up and running.
bfb0e78e1a7d Prepare firefox-ui-lockdown patch for integration
Wolfgang Rosenauer <wr@rosenauer.org>
parents:
diff changeset
   181
   Cc["@mozilla.org/login-manager;1"].getService(Ci.nsILoginManager);
bfb0e78e1a7d Prepare firefox-ui-lockdown patch for integration
Wolfgang Rosenauer <wr@rosenauer.org>
parents:
diff changeset
   182
 
bfb0e78e1a7d Prepare firefox-ui-lockdown patch for integration
Wolfgang Rosenauer <wr@rosenauer.org>
parents:
diff changeset
   183
   if (mustLoadSidebar) {
bfb0e78e1a7d Prepare firefox-ui-lockdown patch for integration
Wolfgang Rosenauer <wr@rosenauer.org>
parents:
diff changeset
   184
+    let sidebarBox = document.getElementById("sidebar-box");
bfb0e78e1a7d Prepare firefox-ui-lockdown patch for integration
Wolfgang Rosenauer <wr@rosenauer.org>
parents:
diff changeset
   185
     let sidebar = document.getElementById("sidebar");
bfb0e78e1a7d Prepare firefox-ui-lockdown patch for integration
Wolfgang Rosenauer <wr@rosenauer.org>
parents:
diff changeset
   186
-    let sidebarBox = document.getElementById("sidebar-box");
bfb0e78e1a7d Prepare firefox-ui-lockdown patch for integration
Wolfgang Rosenauer <wr@rosenauer.org>
parents:
diff changeset
   187
     sidebar.setAttribute("src", sidebarBox.getAttribute("src"));
bfb0e78e1a7d Prepare firefox-ui-lockdown patch for integration
Wolfgang Rosenauer <wr@rosenauer.org>
parents:
diff changeset
   188
   }
bfb0e78e1a7d Prepare firefox-ui-lockdown patch for integration
Wolfgang Rosenauer <wr@rosenauer.org>
parents:
diff changeset
   189
 
bfb0e78e1a7d Prepare firefox-ui-lockdown patch for integration
Wolfgang Rosenauer <wr@rosenauer.org>
parents:
diff changeset
   190
   UpdateUrlbarSearchSplitterState();
bfb0e78e1a7d Prepare firefox-ui-lockdown patch for integration
Wolfgang Rosenauer <wr@rosenauer.org>
parents:
diff changeset
   191
   
bfb0e78e1a7d Prepare firefox-ui-lockdown patch for integration
Wolfgang Rosenauer <wr@rosenauer.org>
parents:
diff changeset
   192
   PlacesStarButton.init();
bfb0e78e1a7d Prepare firefox-ui-lockdown patch for integration
Wolfgang Rosenauer <wr@rosenauer.org>
parents:
diff changeset
   193
 
bfb0e78e1a7d Prepare firefox-ui-lockdown patch for integration
Wolfgang Rosenauer <wr@rosenauer.org>
parents:
diff changeset
   194
   // called when we go into full screen, even if it is
64
7bb1edb78dd5 Update to 1.9.2.4/3.6.4pre to prepare the bigger Lorentz merge
Wolfgang Rosenauer <wr@rosenauer.org>
parents: 40
diff changeset
   195
@@ -1406,16 +1560,18 @@ function BrowserShutdown()
26
bfb0e78e1a7d Prepare firefox-ui-lockdown patch for integration
Wolfgang Rosenauer <wr@rosenauer.org>
parents:
diff changeset
   196
   }
bfb0e78e1a7d Prepare firefox-ui-lockdown patch for integration
Wolfgang Rosenauer <wr@rosenauer.org>
parents:
diff changeset
   197
 
bfb0e78e1a7d Prepare firefox-ui-lockdown patch for integration
Wolfgang Rosenauer <wr@rosenauer.org>
parents:
diff changeset
   198
   var os = Components.classes["@mozilla.org/observer-service;1"]
bfb0e78e1a7d Prepare firefox-ui-lockdown patch for integration
Wolfgang Rosenauer <wr@rosenauer.org>
parents:
diff changeset
   199
     .getService(Components.interfaces.nsIObserverService);
bfb0e78e1a7d Prepare firefox-ui-lockdown patch for integration
Wolfgang Rosenauer <wr@rosenauer.org>
parents:
diff changeset
   200
   os.removeObserver(gSessionHistoryObserver, "browser:purge-session-history");
bfb0e78e1a7d Prepare firefox-ui-lockdown patch for integration
Wolfgang Rosenauer <wr@rosenauer.org>
parents:
diff changeset
   201
   os.removeObserver(gXPInstallObserver, "xpinstall-install-blocked");
64
7bb1edb78dd5 Update to 1.9.2.4/3.6.4pre to prepare the bigger Lorentz merge
Wolfgang Rosenauer <wr@rosenauer.org>
parents: 40
diff changeset
   202
   os.removeObserver(gMissingPluginInstaller, "plugin-crashed");
26
bfb0e78e1a7d Prepare firefox-ui-lockdown patch for integration
Wolfgang Rosenauer <wr@rosenauer.org>
parents:
diff changeset
   203
 
bfb0e78e1a7d Prepare firefox-ui-lockdown patch for integration
Wolfgang Rosenauer <wr@rosenauer.org>
parents:
diff changeset
   204
+  gPrefService.removeObserver("config.lockdown.", lockdownObserver);
bfb0e78e1a7d Prepare firefox-ui-lockdown patch for integration
Wolfgang Rosenauer <wr@rosenauer.org>
parents:
diff changeset
   205
+
bfb0e78e1a7d Prepare firefox-ui-lockdown patch for integration
Wolfgang Rosenauer <wr@rosenauer.org>
parents:
diff changeset
   206
   try {
bfb0e78e1a7d Prepare firefox-ui-lockdown patch for integration
Wolfgang Rosenauer <wr@rosenauer.org>
parents:
diff changeset
   207
     gBrowser.removeProgressListener(window.XULBrowserWindow);
bfb0e78e1a7d Prepare firefox-ui-lockdown patch for integration
Wolfgang Rosenauer <wr@rosenauer.org>
parents:
diff changeset
   208
     gBrowser.removeTabsProgressListener(window.TabsProgressListener);
bfb0e78e1a7d Prepare firefox-ui-lockdown patch for integration
Wolfgang Rosenauer <wr@rosenauer.org>
parents:
diff changeset
   209
   } catch (ex) {
bfb0e78e1a7d Prepare firefox-ui-lockdown patch for integration
Wolfgang Rosenauer <wr@rosenauer.org>
parents:
diff changeset
   210
   }
bfb0e78e1a7d Prepare firefox-ui-lockdown patch for integration
Wolfgang Rosenauer <wr@rosenauer.org>
parents:
diff changeset
   211
 
bfb0e78e1a7d Prepare firefox-ui-lockdown patch for integration
Wolfgang Rosenauer <wr@rosenauer.org>
parents:
diff changeset
   212
   PlacesStarButton.uninit();
bfb0e78e1a7d Prepare firefox-ui-lockdown patch for integration
Wolfgang Rosenauer <wr@rosenauer.org>
parents:
diff changeset
   213
 
64
7bb1edb78dd5 Update to 1.9.2.4/3.6.4pre to prepare the bigger Lorentz merge
Wolfgang Rosenauer <wr@rosenauer.org>
parents: 40
diff changeset
   214
@@ -3216,16 +3372,23 @@ function FillHistoryMenu(aParent) {
26
bfb0e78e1a7d Prepare firefox-ui-lockdown patch for integration
Wolfgang Rosenauer <wr@rosenauer.org>
parents:
diff changeset
   215
 
bfb0e78e1a7d Prepare firefox-ui-lockdown patch for integration
Wolfgang Rosenauer <wr@rosenauer.org>
parents:
diff changeset
   216
   // Remove old entries if any
bfb0e78e1a7d Prepare firefox-ui-lockdown patch for integration
Wolfgang Rosenauer <wr@rosenauer.org>
parents:
diff changeset
   217
   var children = aParent.childNodes;
bfb0e78e1a7d Prepare firefox-ui-lockdown patch for integration
Wolfgang Rosenauer <wr@rosenauer.org>
parents:
diff changeset
   218
   for (var i = children.length - 1; i >= 0; --i) {
bfb0e78e1a7d Prepare firefox-ui-lockdown patch for integration
Wolfgang Rosenauer <wr@rosenauer.org>
parents:
diff changeset
   219
     if (children[i].hasAttribute("index"))
bfb0e78e1a7d Prepare firefox-ui-lockdown patch for integration
Wolfgang Rosenauer <wr@rosenauer.org>
parents:
diff changeset
   220
       aParent.removeChild(children[i]);
bfb0e78e1a7d Prepare firefox-ui-lockdown patch for integration
Wolfgang Rosenauer <wr@rosenauer.org>
parents:
diff changeset
   221
   }
bfb0e78e1a7d Prepare firefox-ui-lockdown patch for integration
Wolfgang Rosenauer <wr@rosenauer.org>
parents:
diff changeset
   222
 
bfb0e78e1a7d Prepare firefox-ui-lockdown patch for integration
Wolfgang Rosenauer <wr@rosenauer.org>
parents:
diff changeset
   223
+  // lockdown. Don't display anything if locked down.
40
200b8b027989 Add some guards for possible exceptions (from bnc#567131)
Wolfgang Rosenauer <wr@rosenauer.org>
parents: 27
diff changeset
   224
+  try {
200b8b027989 Add some guards for possible exceptions (from bnc#567131)
Wolfgang Rosenauer <wr@rosenauer.org>
parents: 27
diff changeset
   225
+    var disableHistory = gPrefService.getBoolPref("config.lockdown.history");
200b8b027989 Add some guards for possible exceptions (from bnc#567131)
Wolfgang Rosenauer <wr@rosenauer.org>
parents: 27
diff changeset
   226
+    if (disableHistory)
200b8b027989 Add some guards for possible exceptions (from bnc#567131)
Wolfgang Rosenauer <wr@rosenauer.org>
parents: 27
diff changeset
   227
+      return false;
200b8b027989 Add some guards for possible exceptions (from bnc#567131)
Wolfgang Rosenauer <wr@rosenauer.org>
parents: 27
diff changeset
   228
+  } catch (ex) {}
26
bfb0e78e1a7d Prepare firefox-ui-lockdown patch for integration
Wolfgang Rosenauer <wr@rosenauer.org>
parents:
diff changeset
   229
+
bfb0e78e1a7d Prepare firefox-ui-lockdown patch for integration
Wolfgang Rosenauer <wr@rosenauer.org>
parents:
diff changeset
   230
   var webNav = getWebNavigation();
bfb0e78e1a7d Prepare firefox-ui-lockdown patch for integration
Wolfgang Rosenauer <wr@rosenauer.org>
parents:
diff changeset
   231
   var sessionHistory = webNav.sessionHistory;
bfb0e78e1a7d Prepare firefox-ui-lockdown patch for integration
Wolfgang Rosenauer <wr@rosenauer.org>
parents:
diff changeset
   232
 
bfb0e78e1a7d Prepare firefox-ui-lockdown patch for integration
Wolfgang Rosenauer <wr@rosenauer.org>
parents:
diff changeset
   233
   var count = sessionHistory.count;
bfb0e78e1a7d Prepare firefox-ui-lockdown patch for integration
Wolfgang Rosenauer <wr@rosenauer.org>
parents:
diff changeset
   234
   if (count <= 1) // don't display the popup for a single item
bfb0e78e1a7d Prepare firefox-ui-lockdown patch for integration
Wolfgang Rosenauer <wr@rosenauer.org>
parents:
diff changeset
   235
     return false;
bfb0e78e1a7d Prepare firefox-ui-lockdown patch for integration
Wolfgang Rosenauer <wr@rosenauer.org>
parents:
diff changeset
   236
 
bfb0e78e1a7d Prepare firefox-ui-lockdown patch for integration
Wolfgang Rosenauer <wr@rosenauer.org>
parents:
diff changeset
   237
   const MAX_HISTORY_MENU_ITEMS = 15;
64
7bb1edb78dd5 Update to 1.9.2.4/3.6.4pre to prepare the bigger Lorentz merge
Wolfgang Rosenauer <wr@rosenauer.org>
parents: 40
diff changeset
   238
@@ -3365,16 +3528,17 @@ function BrowserCustomizeToolbar()
26
bfb0e78e1a7d Prepare firefox-ui-lockdown patch for integration
Wolfgang Rosenauer <wr@rosenauer.org>
parents:
diff changeset
   239
 {
bfb0e78e1a7d Prepare firefox-ui-lockdown patch for integration
Wolfgang Rosenauer <wr@rosenauer.org>
parents:
diff changeset
   240
   // Disable the toolbar context menu items
bfb0e78e1a7d Prepare firefox-ui-lockdown patch for integration
Wolfgang Rosenauer <wr@rosenauer.org>
parents:
diff changeset
   241
   var menubar = document.getElementById("main-menubar");
bfb0e78e1a7d Prepare firefox-ui-lockdown patch for integration
Wolfgang Rosenauer <wr@rosenauer.org>
parents:
diff changeset
   242
   for (var i = 0; i < menubar.childNodes.length; ++i)
bfb0e78e1a7d Prepare firefox-ui-lockdown patch for integration
Wolfgang Rosenauer <wr@rosenauer.org>
parents:
diff changeset
   243
     menubar.childNodes[i].setAttribute("disabled", true);
bfb0e78e1a7d Prepare firefox-ui-lockdown patch for integration
Wolfgang Rosenauer <wr@rosenauer.org>
parents:
diff changeset
   244
 
bfb0e78e1a7d Prepare firefox-ui-lockdown patch for integration
Wolfgang Rosenauer <wr@rosenauer.org>
parents:
diff changeset
   245
   var cmd = document.getElementById("cmd_CustomizeToolbars");
bfb0e78e1a7d Prepare firefox-ui-lockdown patch for integration
Wolfgang Rosenauer <wr@rosenauer.org>
parents:
diff changeset
   246
   cmd.setAttribute("disabled", "true");
bfb0e78e1a7d Prepare firefox-ui-lockdown patch for integration
Wolfgang Rosenauer <wr@rosenauer.org>
parents:
diff changeset
   247
+  cmd.setAttribute("inCustomization", "true");
bfb0e78e1a7d Prepare firefox-ui-lockdown patch for integration
Wolfgang Rosenauer <wr@rosenauer.org>
parents:
diff changeset
   248
 
bfb0e78e1a7d Prepare firefox-ui-lockdown patch for integration
Wolfgang Rosenauer <wr@rosenauer.org>
parents:
diff changeset
   249
   var splitter = document.getElementById("urlbar-search-splitter");
bfb0e78e1a7d Prepare firefox-ui-lockdown patch for integration
Wolfgang Rosenauer <wr@rosenauer.org>
parents:
diff changeset
   250
   if (splitter)
bfb0e78e1a7d Prepare firefox-ui-lockdown patch for integration
Wolfgang Rosenauer <wr@rosenauer.org>
parents:
diff changeset
   251
     splitter.parentNode.removeChild(splitter);
bfb0e78e1a7d Prepare firefox-ui-lockdown patch for integration
Wolfgang Rosenauer <wr@rosenauer.org>
parents:
diff changeset
   252
 
bfb0e78e1a7d Prepare firefox-ui-lockdown patch for integration
Wolfgang Rosenauer <wr@rosenauer.org>
parents:
diff changeset
   253
   var customizeURL = "chrome://global/content/customizeToolbar.xul";
bfb0e78e1a7d Prepare firefox-ui-lockdown patch for integration
Wolfgang Rosenauer <wr@rosenauer.org>
parents:
diff changeset
   254
   gCustomizeSheet = getBoolPref("toolbar.customization.usesheet", false);
bfb0e78e1a7d Prepare firefox-ui-lockdown patch for integration
Wolfgang Rosenauer <wr@rosenauer.org>
parents:
diff changeset
   255
 
64
7bb1edb78dd5 Update to 1.9.2.4/3.6.4pre to prepare the bigger Lorentz merge
Wolfgang Rosenauer <wr@rosenauer.org>
parents: 40
diff changeset
   256
@@ -3402,16 +3566,31 @@ function BrowserCustomizeToolbar()
26
bfb0e78e1a7d Prepare firefox-ui-lockdown patch for integration
Wolfgang Rosenauer <wr@rosenauer.org>
parents:
diff changeset
   257
   } else {
bfb0e78e1a7d Prepare firefox-ui-lockdown patch for integration
Wolfgang Rosenauer <wr@rosenauer.org>
parents:
diff changeset
   258
     return window.openDialog(customizeURL,
bfb0e78e1a7d Prepare firefox-ui-lockdown patch for integration
Wolfgang Rosenauer <wr@rosenauer.org>
parents:
diff changeset
   259
                              "CustomizeToolbar",
bfb0e78e1a7d Prepare firefox-ui-lockdown patch for integration
Wolfgang Rosenauer <wr@rosenauer.org>
parents:
diff changeset
   260
                              "chrome,titlebar,toolbar,location,resizable,dependent",
bfb0e78e1a7d Prepare firefox-ui-lockdown patch for integration
Wolfgang Rosenauer <wr@rosenauer.org>
parents:
diff changeset
   261
                              gNavToolbox);
bfb0e78e1a7d Prepare firefox-ui-lockdown patch for integration
Wolfgang Rosenauer <wr@rosenauer.org>
parents:
diff changeset
   262
   }
bfb0e78e1a7d Prepare firefox-ui-lockdown patch for integration
Wolfgang Rosenauer <wr@rosenauer.org>
parents:
diff changeset
   263
 }
bfb0e78e1a7d Prepare firefox-ui-lockdown patch for integration
Wolfgang Rosenauer <wr@rosenauer.org>
parents:
diff changeset
   264
 
bfb0e78e1a7d Prepare firefox-ui-lockdown patch for integration
Wolfgang Rosenauer <wr@rosenauer.org>
parents:
diff changeset
   265
+function BrowserRestoreCustomizationDisabledState()
bfb0e78e1a7d Prepare firefox-ui-lockdown patch for integration
Wolfgang Rosenauer <wr@rosenauer.org>
parents:
diff changeset
   266
+{
bfb0e78e1a7d Prepare firefox-ui-lockdown patch for integration
Wolfgang Rosenauer <wr@rosenauer.org>
parents:
diff changeset
   267
+  var cmd = document.getElementById("cmd_CustomizeToolbars");
40
200b8b027989 Add some guards for possible exceptions (from bnc#567131)
Wolfgang Rosenauer <wr@rosenauer.org>
parents: 27
diff changeset
   268
+  try {
200b8b027989 Add some guards for possible exceptions (from bnc#567131)
Wolfgang Rosenauer <wr@rosenauer.org>
parents: 27
diff changeset
   269
+    var disableToolBarEditing =
200b8b027989 Add some guards for possible exceptions (from bnc#567131)
Wolfgang Rosenauer <wr@rosenauer.org>
parents: 27
diff changeset
   270
+      gPrefService.getBoolPref("config.lockdown.toolbarediting");
200b8b027989 Add some guards for possible exceptions (from bnc#567131)
Wolfgang Rosenauer <wr@rosenauer.org>
parents: 27
diff changeset
   271
+  } catch (ex) {
200b8b027989 Add some guards for possible exceptions (from bnc#567131)
Wolfgang Rosenauer <wr@rosenauer.org>
parents: 27
diff changeset
   272
+    var disableToolBarEditing = false;
200b8b027989 Add some guards for possible exceptions (from bnc#567131)
Wolfgang Rosenauer <wr@rosenauer.org>
parents: 27
diff changeset
   273
+  }
200b8b027989 Add some guards for possible exceptions (from bnc#567131)
Wolfgang Rosenauer <wr@rosenauer.org>
parents: 27
diff changeset
   274
+  if (!disableToolBarEditing) {
26
bfb0e78e1a7d Prepare firefox-ui-lockdown patch for integration
Wolfgang Rosenauer <wr@rosenauer.org>
parents:
diff changeset
   275
+    cmd.removeAttribute("disabled", "true");
bfb0e78e1a7d Prepare firefox-ui-lockdown patch for integration
Wolfgang Rosenauer <wr@rosenauer.org>
parents:
diff changeset
   276
+  }
bfb0e78e1a7d Prepare firefox-ui-lockdown patch for integration
Wolfgang Rosenauer <wr@rosenauer.org>
parents:
diff changeset
   277
+  cmd.removeAttribute("inCustomization");
bfb0e78e1a7d Prepare firefox-ui-lockdown patch for integration
Wolfgang Rosenauer <wr@rosenauer.org>
parents:
diff changeset
   278
+}
bfb0e78e1a7d Prepare firefox-ui-lockdown patch for integration
Wolfgang Rosenauer <wr@rosenauer.org>
parents:
diff changeset
   279
+
bfb0e78e1a7d Prepare firefox-ui-lockdown patch for integration
Wolfgang Rosenauer <wr@rosenauer.org>
parents:
diff changeset
   280
 function BrowserToolboxCustomizeDone(aToolboxChanged) {
bfb0e78e1a7d Prepare firefox-ui-lockdown patch for integration
Wolfgang Rosenauer <wr@rosenauer.org>
parents:
diff changeset
   281
   if (gCustomizeSheet) {
bfb0e78e1a7d Prepare firefox-ui-lockdown patch for integration
Wolfgang Rosenauer <wr@rosenauer.org>
parents:
diff changeset
   282
     document.getElementById("customizeToolbarSheetIFrame").hidden = true;
bfb0e78e1a7d Prepare firefox-ui-lockdown patch for integration
Wolfgang Rosenauer <wr@rosenauer.org>
parents:
diff changeset
   283
     document.getElementById("customizeToolbarSheetPopup").hidePopup();
bfb0e78e1a7d Prepare firefox-ui-lockdown patch for integration
Wolfgang Rosenauer <wr@rosenauer.org>
parents:
diff changeset
   284
   }
bfb0e78e1a7d Prepare firefox-ui-lockdown patch for integration
Wolfgang Rosenauer <wr@rosenauer.org>
parents:
diff changeset
   285
 
bfb0e78e1a7d Prepare firefox-ui-lockdown patch for integration
Wolfgang Rosenauer <wr@rosenauer.org>
parents:
diff changeset
   286
   // Update global UI elements that may have been added or removed
bfb0e78e1a7d Prepare firefox-ui-lockdown patch for integration
Wolfgang Rosenauer <wr@rosenauer.org>
parents:
diff changeset
   287
   if (aToolboxChanged) {
64
7bb1edb78dd5 Update to 1.9.2.4/3.6.4pre to prepare the bigger Lorentz merge
Wolfgang Rosenauer <wr@rosenauer.org>
parents: 40
diff changeset
   288
@@ -3419,16 +3598,27 @@ function BrowserToolboxCustomizeDone(aTo
26
bfb0e78e1a7d Prepare firefox-ui-lockdown patch for integration
Wolfgang Rosenauer <wr@rosenauer.org>
parents:
diff changeset
   289
     if (gURLBar)
bfb0e78e1a7d Prepare firefox-ui-lockdown patch for integration
Wolfgang Rosenauer <wr@rosenauer.org>
parents:
diff changeset
   290
       gURLBar.emptyText = gURLBarEmptyText.value;
bfb0e78e1a7d Prepare firefox-ui-lockdown patch for integration
Wolfgang Rosenauer <wr@rosenauer.org>
parents:
diff changeset
   291
 
bfb0e78e1a7d Prepare firefox-ui-lockdown patch for integration
Wolfgang Rosenauer <wr@rosenauer.org>
parents:
diff changeset
   292
     gProxyFavIcon = document.getElementById("page-proxy-favicon");
bfb0e78e1a7d Prepare firefox-ui-lockdown patch for integration
Wolfgang Rosenauer <wr@rosenauer.org>
parents:
diff changeset
   293
     gHomeButton.updateTooltip();
bfb0e78e1a7d Prepare firefox-ui-lockdown patch for integration
Wolfgang Rosenauer <wr@rosenauer.org>
parents:
diff changeset
   294
     gIdentityHandler._cacheElements();
bfb0e78e1a7d Prepare firefox-ui-lockdown patch for integration
Wolfgang Rosenauer <wr@rosenauer.org>
parents:
diff changeset
   295
     window.XULBrowserWindow.init();
bfb0e78e1a7d Prepare firefox-ui-lockdown patch for integration
Wolfgang Rosenauer <wr@rosenauer.org>
parents:
diff changeset
   296
 
bfb0e78e1a7d Prepare firefox-ui-lockdown patch for integration
Wolfgang Rosenauer <wr@rosenauer.org>
parents:
diff changeset
   297
+    // make sure the search bar is not put back if locked down
40
200b8b027989 Add some guards for possible exceptions (from bnc#567131)
Wolfgang Rosenauer <wr@rosenauer.org>
parents: 27
diff changeset
   298
+    try {
200b8b027989 Add some guards for possible exceptions (from bnc#567131)
Wolfgang Rosenauer <wr@rosenauer.org>
parents: 27
diff changeset
   299
+      var disableSearchBar = gPrefService.getBoolPref("config.lockdown.searchbar");
200b8b027989 Add some guards for possible exceptions (from bnc#567131)
Wolfgang Rosenauer <wr@rosenauer.org>
parents: 27
diff changeset
   300
+    } catch (ex) {
200b8b027989 Add some guards for possible exceptions (from bnc#567131)
Wolfgang Rosenauer <wr@rosenauer.org>
parents: 27
diff changeset
   301
+      var disableSearchBar = false;
200b8b027989 Add some guards for possible exceptions (from bnc#567131)
Wolfgang Rosenauer <wr@rosenauer.org>
parents: 27
diff changeset
   302
+    }
26
bfb0e78e1a7d Prepare firefox-ui-lockdown patch for integration
Wolfgang Rosenauer <wr@rosenauer.org>
parents:
diff changeset
   303
+    if (disableSearchBar) {
bfb0e78e1a7d Prepare firefox-ui-lockdown patch for integration
Wolfgang Rosenauer <wr@rosenauer.org>
parents:
diff changeset
   304
+      document.getElementById("search-container")
bfb0e78e1a7d Prepare firefox-ui-lockdown patch for integration
Wolfgang Rosenauer <wr@rosenauer.org>
parents:
diff changeset
   305
+        .setAttribute("style", (disableSearchBar) ? "display: none;" : "");
bfb0e78e1a7d Prepare firefox-ui-lockdown patch for integration
Wolfgang Rosenauer <wr@rosenauer.org>
parents:
diff changeset
   306
+    }
bfb0e78e1a7d Prepare firefox-ui-lockdown patch for integration
Wolfgang Rosenauer <wr@rosenauer.org>
parents:
diff changeset
   307
+
bfb0e78e1a7d Prepare firefox-ui-lockdown patch for integration
Wolfgang Rosenauer <wr@rosenauer.org>
parents:
diff changeset
   308
     var backForwardDropmarker = document.getElementById("back-forward-dropmarker");
bfb0e78e1a7d Prepare firefox-ui-lockdown patch for integration
Wolfgang Rosenauer <wr@rosenauer.org>
parents:
diff changeset
   309
     if (backForwardDropmarker)
bfb0e78e1a7d Prepare firefox-ui-lockdown patch for integration
Wolfgang Rosenauer <wr@rosenauer.org>
parents:
diff changeset
   310
       backForwardDropmarker.disabled =
bfb0e78e1a7d Prepare firefox-ui-lockdown patch for integration
Wolfgang Rosenauer <wr@rosenauer.org>
parents:
diff changeset
   311
         document.getElementById('Browser:Back').hasAttribute('disabled') &&
bfb0e78e1a7d Prepare firefox-ui-lockdown patch for integration
Wolfgang Rosenauer <wr@rosenauer.org>
parents:
diff changeset
   312
         document.getElementById('Browser:Forward').hasAttribute('disabled');
bfb0e78e1a7d Prepare firefox-ui-lockdown patch for integration
Wolfgang Rosenauer <wr@rosenauer.org>
parents:
diff changeset
   313
 
bfb0e78e1a7d Prepare firefox-ui-lockdown patch for integration
Wolfgang Rosenauer <wr@rosenauer.org>
parents:
diff changeset
   314
     // support downgrading to Firefox 2.0
bfb0e78e1a7d Prepare firefox-ui-lockdown patch for integration
Wolfgang Rosenauer <wr@rosenauer.org>
parents:
diff changeset
   315
     var navBar = document.getElementById("nav-bar");
64
7bb1edb78dd5 Update to 1.9.2.4/3.6.4pre to prepare the bigger Lorentz merge
Wolfgang Rosenauer <wr@rosenauer.org>
parents: 40
diff changeset
   316
@@ -3453,18 +3643,17 @@ function BrowserToolboxCustomizeDone(aTo
26
bfb0e78e1a7d Prepare firefox-ui-lockdown patch for integration
Wolfgang Rosenauer <wr@rosenauer.org>
parents:
diff changeset
   317
     XULBrowserWindow.asyncUpdateUI();
bfb0e78e1a7d Prepare firefox-ui-lockdown patch for integration
Wolfgang Rosenauer <wr@rosenauer.org>
parents:
diff changeset
   318
     PlacesStarButton.updateState();
bfb0e78e1a7d Prepare firefox-ui-lockdown patch for integration
Wolfgang Rosenauer <wr@rosenauer.org>
parents:
diff changeset
   319
   }
bfb0e78e1a7d Prepare firefox-ui-lockdown patch for integration
Wolfgang Rosenauer <wr@rosenauer.org>
parents:
diff changeset
   320
 
bfb0e78e1a7d Prepare firefox-ui-lockdown patch for integration
Wolfgang Rosenauer <wr@rosenauer.org>
parents:
diff changeset
   321
   // Re-enable parts of the UI we disabled during the dialog
bfb0e78e1a7d Prepare firefox-ui-lockdown patch for integration
Wolfgang Rosenauer <wr@rosenauer.org>
parents:
diff changeset
   322
   var menubar = document.getElementById("main-menubar");
bfb0e78e1a7d Prepare firefox-ui-lockdown patch for integration
Wolfgang Rosenauer <wr@rosenauer.org>
parents:
diff changeset
   323
   for (var i = 0; i < menubar.childNodes.length; ++i)
bfb0e78e1a7d Prepare firefox-ui-lockdown patch for integration
Wolfgang Rosenauer <wr@rosenauer.org>
parents:
diff changeset
   324
     menubar.childNodes[i].setAttribute("disabled", false);
bfb0e78e1a7d Prepare firefox-ui-lockdown patch for integration
Wolfgang Rosenauer <wr@rosenauer.org>
parents:
diff changeset
   325
-  var cmd = document.getElementById("cmd_CustomizeToolbars");
bfb0e78e1a7d Prepare firefox-ui-lockdown patch for integration
Wolfgang Rosenauer <wr@rosenauer.org>
parents:
diff changeset
   326
-  cmd.removeAttribute("disabled");
bfb0e78e1a7d Prepare firefox-ui-lockdown patch for integration
Wolfgang Rosenauer <wr@rosenauer.org>
parents:
diff changeset
   327
+  BrowserRestoreCustomizationDisabledState();
bfb0e78e1a7d Prepare firefox-ui-lockdown patch for integration
Wolfgang Rosenauer <wr@rosenauer.org>
parents:
diff changeset
   328
 
bfb0e78e1a7d Prepare firefox-ui-lockdown patch for integration
Wolfgang Rosenauer <wr@rosenauer.org>
parents:
diff changeset
   329
 #ifdef XP_MACOSX
bfb0e78e1a7d Prepare firefox-ui-lockdown patch for integration
Wolfgang Rosenauer <wr@rosenauer.org>
parents:
diff changeset
   330
   // make sure to re-enable click-and-hold
bfb0e78e1a7d Prepare firefox-ui-lockdown patch for integration
Wolfgang Rosenauer <wr@rosenauer.org>
parents:
diff changeset
   331
   if (!getBoolPref("ui.click_hold_context_menus", false))
bfb0e78e1a7d Prepare firefox-ui-lockdown patch for integration
Wolfgang Rosenauer <wr@rosenauer.org>
parents:
diff changeset
   332
     SetClickAndHoldHandlers();
bfb0e78e1a7d Prepare firefox-ui-lockdown patch for integration
Wolfgang Rosenauer <wr@rosenauer.org>
parents:
diff changeset
   333
 #endif
bfb0e78e1a7d Prepare firefox-ui-lockdown patch for integration
Wolfgang Rosenauer <wr@rosenauer.org>
parents:
diff changeset
   334
 
bfb0e78e1a7d Prepare firefox-ui-lockdown patch for integration
Wolfgang Rosenauer <wr@rosenauer.org>
parents:
diff changeset
   335
   // XXX Shouldn't have to do this, but I do
64
7bb1edb78dd5 Update to 1.9.2.4/3.6.4pre to prepare the bigger Lorentz merge
Wolfgang Rosenauer <wr@rosenauer.org>
parents: 40
diff changeset
   336
@@ -4552,16 +4741,19 @@ function onViewToolbarsPopupShowing(aEve
26
bfb0e78e1a7d Prepare firefox-ui-lockdown patch for integration
Wolfgang Rosenauer <wr@rosenauer.org>
parents:
diff changeset
   337
     var toolbarName = toolbar.getAttribute("toolbarname");
bfb0e78e1a7d Prepare firefox-ui-lockdown patch for integration
Wolfgang Rosenauer <wr@rosenauer.org>
parents:
diff changeset
   338
     if (toolbarName) {
bfb0e78e1a7d Prepare firefox-ui-lockdown patch for integration
Wolfgang Rosenauer <wr@rosenauer.org>
parents:
diff changeset
   339
       let menuItem = document.createElement("menuitem");
bfb0e78e1a7d Prepare firefox-ui-lockdown patch for integration
Wolfgang Rosenauer <wr@rosenauer.org>
parents:
diff changeset
   340
       let hidingAttribute = toolbar.getAttribute("type") == "menubar" ?
bfb0e78e1a7d Prepare firefox-ui-lockdown patch for integration
Wolfgang Rosenauer <wr@rosenauer.org>
parents:
diff changeset
   341
                             "autohide" : "collapsed";
bfb0e78e1a7d Prepare firefox-ui-lockdown patch for integration
Wolfgang Rosenauer <wr@rosenauer.org>
parents:
diff changeset
   342
       menuItem.setAttribute("toolbarindex", i);
bfb0e78e1a7d Prepare firefox-ui-lockdown patch for integration
Wolfgang Rosenauer <wr@rosenauer.org>
parents:
diff changeset
   343
       menuItem.setAttribute("type", "checkbox");
bfb0e78e1a7d Prepare firefox-ui-lockdown patch for integration
Wolfgang Rosenauer <wr@rosenauer.org>
parents:
diff changeset
   344
       menuItem.setAttribute("label", toolbarName);
bfb0e78e1a7d Prepare firefox-ui-lockdown patch for integration
Wolfgang Rosenauer <wr@rosenauer.org>
parents:
diff changeset
   345
+      if (toolbar.getAttribute("disabled") == "true") {
bfb0e78e1a7d Prepare firefox-ui-lockdown patch for integration
Wolfgang Rosenauer <wr@rosenauer.org>
parents:
diff changeset
   346
+        menuItem.setAttribute("disabled", "true");
bfb0e78e1a7d Prepare firefox-ui-lockdown patch for integration
Wolfgang Rosenauer <wr@rosenauer.org>
parents:
diff changeset
   347
+      }
bfb0e78e1a7d Prepare firefox-ui-lockdown patch for integration
Wolfgang Rosenauer <wr@rosenauer.org>
parents:
diff changeset
   348
       menuItem.setAttribute("accesskey", toolbar.getAttribute("accesskey"));
bfb0e78e1a7d Prepare firefox-ui-lockdown patch for integration
Wolfgang Rosenauer <wr@rosenauer.org>
parents:
diff changeset
   349
       menuItem.setAttribute("checked", toolbar.getAttribute(hidingAttribute) != "true");
bfb0e78e1a7d Prepare firefox-ui-lockdown patch for integration
Wolfgang Rosenauer <wr@rosenauer.org>
parents:
diff changeset
   350
       popup.insertBefore(menuItem, firstMenuItem);
bfb0e78e1a7d Prepare firefox-ui-lockdown patch for integration
Wolfgang Rosenauer <wr@rosenauer.org>
parents:
diff changeset
   351
 
bfb0e78e1a7d Prepare firefox-ui-lockdown patch for integration
Wolfgang Rosenauer <wr@rosenauer.org>
parents:
diff changeset
   352
       menuItem.addEventListener("command", onViewToolbarCommand, false);
bfb0e78e1a7d Prepare firefox-ui-lockdown patch for integration
Wolfgang Rosenauer <wr@rosenauer.org>
parents:
diff changeset
   353
     }
bfb0e78e1a7d Prepare firefox-ui-lockdown patch for integration
Wolfgang Rosenauer <wr@rosenauer.org>
parents:
diff changeset
   354
     toolbar = toolbar.nextSibling;
bfb0e78e1a7d Prepare firefox-ui-lockdown patch for integration
Wolfgang Rosenauer <wr@rosenauer.org>
parents:
diff changeset
   355
   }
64
7bb1edb78dd5 Update to 1.9.2.4/3.6.4pre to prepare the bigger Lorentz merge
Wolfgang Rosenauer <wr@rosenauer.org>
parents: 40
diff changeset
   356
@@ -6737,17 +6929,23 @@ BookmarkAllTabsHandler.prototype = {
26
bfb0e78e1a7d Prepare firefox-ui-lockdown patch for integration
Wolfgang Rosenauer <wr@rosenauer.org>
parents:
diff changeset
   357
 
bfb0e78e1a7d Prepare firefox-ui-lockdown patch for integration
Wolfgang Rosenauer <wr@rosenauer.org>
parents:
diff changeset
   358
   _updateCommandState: function BATH__updateCommandState(aTabClose) {
bfb0e78e1a7d Prepare firefox-ui-lockdown patch for integration
Wolfgang Rosenauer <wr@rosenauer.org>
parents:
diff changeset
   359
     var numTabs = gBrowser.tabContainer.childNodes.length;
bfb0e78e1a7d Prepare firefox-ui-lockdown patch for integration
Wolfgang Rosenauer <wr@rosenauer.org>
parents:
diff changeset
   360
 
bfb0e78e1a7d Prepare firefox-ui-lockdown patch for integration
Wolfgang Rosenauer <wr@rosenauer.org>
parents:
diff changeset
   361
     // The TabClose event is fired before the tab is removed from the DOM
bfb0e78e1a7d Prepare firefox-ui-lockdown patch for integration
Wolfgang Rosenauer <wr@rosenauer.org>
parents:
diff changeset
   362
     if (aTabClose)
bfb0e78e1a7d Prepare firefox-ui-lockdown patch for integration
Wolfgang Rosenauer <wr@rosenauer.org>
parents:
diff changeset
   363
       numTabs--;
bfb0e78e1a7d Prepare firefox-ui-lockdown patch for integration
Wolfgang Rosenauer <wr@rosenauer.org>
parents:
diff changeset
   364
 
bfb0e78e1a7d Prepare firefox-ui-lockdown patch for integration
Wolfgang Rosenauer <wr@rosenauer.org>
parents:
diff changeset
   365
-    if (numTabs > 1)
40
200b8b027989 Add some guards for possible exceptions (from bnc#567131)
Wolfgang Rosenauer <wr@rosenauer.org>
parents: 27
diff changeset
   366
+    try {
200b8b027989 Add some guards for possible exceptions (from bnc#567131)
Wolfgang Rosenauer <wr@rosenauer.org>
parents: 27
diff changeset
   367
+      var disableBookmarks =
200b8b027989 Add some guards for possible exceptions (from bnc#567131)
Wolfgang Rosenauer <wr@rosenauer.org>
parents: 27
diff changeset
   368
+        gPrefService.getBoolPref("config.lockdown.bookmark");
200b8b027989 Add some guards for possible exceptions (from bnc#567131)
Wolfgang Rosenauer <wr@rosenauer.org>
parents: 27
diff changeset
   369
+    } catch (ex) {
200b8b027989 Add some guards for possible exceptions (from bnc#567131)
Wolfgang Rosenauer <wr@rosenauer.org>
parents: 27
diff changeset
   370
+      var disableBookmarks = false;
200b8b027989 Add some guards for possible exceptions (from bnc#567131)
Wolfgang Rosenauer <wr@rosenauer.org>
parents: 27
diff changeset
   371
+    }
200b8b027989 Add some guards for possible exceptions (from bnc#567131)
Wolfgang Rosenauer <wr@rosenauer.org>
parents: 27
diff changeset
   372
+    if (numTabs > 1 && !disableBookmarks)
26
bfb0e78e1a7d Prepare firefox-ui-lockdown patch for integration
Wolfgang Rosenauer <wr@rosenauer.org>
parents:
diff changeset
   373
       this._command.removeAttribute("disabled");
bfb0e78e1a7d Prepare firefox-ui-lockdown patch for integration
Wolfgang Rosenauer <wr@rosenauer.org>
parents:
diff changeset
   374
     else
bfb0e78e1a7d Prepare firefox-ui-lockdown patch for integration
Wolfgang Rosenauer <wr@rosenauer.org>
parents:
diff changeset
   375
       this._command.setAttribute("disabled", "true");
bfb0e78e1a7d Prepare firefox-ui-lockdown patch for integration
Wolfgang Rosenauer <wr@rosenauer.org>
parents:
diff changeset
   376
   },
bfb0e78e1a7d Prepare firefox-ui-lockdown patch for integration
Wolfgang Rosenauer <wr@rosenauer.org>
parents:
diff changeset
   377
 
bfb0e78e1a7d Prepare firefox-ui-lockdown patch for integration
Wolfgang Rosenauer <wr@rosenauer.org>
parents:
diff changeset
   378
   doCommand: function BATH_doCommand() {
bfb0e78e1a7d Prepare firefox-ui-lockdown patch for integration
Wolfgang Rosenauer <wr@rosenauer.org>
parents:
diff changeset
   379
     PlacesCommandHook.bookmarkCurrentPages();
bfb0e78e1a7d Prepare firefox-ui-lockdown patch for integration
Wolfgang Rosenauer <wr@rosenauer.org>
parents:
diff changeset
   380
   },