firefox-ui-lockdown.patch
author Wolfgang Rosenauer <wr@rosenauer.org>
Sat, 19 Dec 2009 22:03:52 +0100
changeset 26 bfb0e78e1a7d
child 27 23cf7aafb85b
permissions -rw-r--r--
Prepare firefox-ui-lockdown patch for integration
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
26
bfb0e78e1a7d Prepare firefox-ui-lockdown patch for integration
Wolfgang Rosenauer <wr@rosenauer.org>
parents:
diff changeset
     1
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
     2
--- a/browser/base/content/browser.js
bfb0e78e1a7d Prepare firefox-ui-lockdown patch for integration
Wolfgang Rosenauer <wr@rosenauer.org>
parents:
diff changeset
     3
+++ b/browser/base/content/browser.js
bfb0e78e1a7d Prepare firefox-ui-lockdown patch for integration
Wolfgang Rosenauer <wr@rosenauer.org>
parents:
diff changeset
     4
@@ -1174,32 +1174,186 @@ function prepareForStartup() {
bfb0e78e1a7d Prepare firefox-ui-lockdown patch for integration
Wolfgang Rosenauer <wr@rosenauer.org>
parents:
diff changeset
     5
   // setup our MozApplicationManifest listener
bfb0e78e1a7d Prepare firefox-ui-lockdown patch for integration
Wolfgang Rosenauer <wr@rosenauer.org>
parents:
diff changeset
     6
   gBrowser.addEventListener("MozApplicationManifest",
bfb0e78e1a7d Prepare firefox-ui-lockdown patch for integration
Wolfgang Rosenauer <wr@rosenauer.org>
parents:
diff changeset
     7
                             OfflineApps, false);
bfb0e78e1a7d Prepare firefox-ui-lockdown patch for integration
Wolfgang Rosenauer <wr@rosenauer.org>
parents:
diff changeset
     8
 
bfb0e78e1a7d Prepare firefox-ui-lockdown patch for integration
Wolfgang Rosenauer <wr@rosenauer.org>
parents:
diff changeset
     9
   // setup simple gestures support
bfb0e78e1a7d Prepare firefox-ui-lockdown patch for integration
Wolfgang Rosenauer <wr@rosenauer.org>
parents:
diff changeset
    10
   gGestureSupport.init(true);
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
 
bfb0e78e1a7d Prepare firefox-ui-lockdown patch for integration
Wolfgang Rosenauer <wr@rosenauer.org>
parents:
diff changeset
    13
+function lockdownElement(ident, disable, hideCompletely)
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
+  var e = document.getElementById(ident);
bfb0e78e1a7d Prepare firefox-ui-lockdown patch for integration
Wolfgang Rosenauer <wr@rosenauer.org>
parents:
diff changeset
    16
+  if (!e) return;
bfb0e78e1a7d Prepare firefox-ui-lockdown patch for integration
Wolfgang Rosenauer <wr@rosenauer.org>
parents:
diff changeset
    17
+  if (hideCompletely) {
bfb0e78e1a7d Prepare firefox-ui-lockdown patch for integration
Wolfgang Rosenauer <wr@rosenauer.org>
parents:
diff changeset
    18
+    e.setAttribute("style", (disable) ? "display: none;" : "");
bfb0e78e1a7d Prepare firefox-ui-lockdown patch for integration
Wolfgang Rosenauer <wr@rosenauer.org>
parents:
diff changeset
    19
+  } else if (disable) {
bfb0e78e1a7d Prepare firefox-ui-lockdown patch for integration
Wolfgang Rosenauer <wr@rosenauer.org>
parents:
diff changeset
    20
+    e.setAttribute("disabled", "true");
bfb0e78e1a7d Prepare firefox-ui-lockdown patch for integration
Wolfgang Rosenauer <wr@rosenauer.org>
parents:
diff changeset
    21
+  } else {
bfb0e78e1a7d Prepare firefox-ui-lockdown patch for integration
Wolfgang Rosenauer <wr@rosenauer.org>
parents:
diff changeset
    22
+    e.removeAttribute("disabled");
bfb0e78e1a7d Prepare firefox-ui-lockdown patch for integration
Wolfgang Rosenauer <wr@rosenauer.org>
parents:
diff changeset
    23
+  }
bfb0e78e1a7d Prepare firefox-ui-lockdown patch for integration
Wolfgang Rosenauer <wr@rosenauer.org>
parents:
diff changeset
    24
+}
bfb0e78e1a7d Prepare firefox-ui-lockdown patch for integration
Wolfgang Rosenauer <wr@rosenauer.org>
parents:
diff changeset
    25
+
bfb0e78e1a7d Prepare firefox-ui-lockdown patch for integration
Wolfgang Rosenauer <wr@rosenauer.org>
parents:
diff changeset
    26
+function applyLockdown(isStartup)
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
+  // 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
    29
+  // "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
    30
+  // elements rather than disables them.
bfb0e78e1a7d Prepare firefox-ui-lockdown patch for integration
Wolfgang Rosenauer <wr@rosenauer.org>
parents:
diff changeset
    31
+  var disablePrinting = gPrefService.getBoolPref("config.lockdown.printing");
bfb0e78e1a7d Prepare firefox-ui-lockdown patch for integration
Wolfgang Rosenauer <wr@rosenauer.org>
parents:
diff changeset
    32
+  var disablePrintSetup = gPrefService.getBoolPref("config.lockdown.printsetup");
bfb0e78e1a7d Prepare firefox-ui-lockdown patch for integration
Wolfgang Rosenauer <wr@rosenauer.org>
parents:
diff changeset
    33
+  if (!isStartup || disablePrintSetup || disablePrintSetup) {
bfb0e78e1a7d Prepare firefox-ui-lockdown patch for integration
Wolfgang Rosenauer <wr@rosenauer.org>
parents:
diff changeset
    34
+    lockdownElement("cmd_pageSetup", disablePrinting || disablePrintSetup);
bfb0e78e1a7d Prepare firefox-ui-lockdown patch for integration
Wolfgang Rosenauer <wr@rosenauer.org>
parents:
diff changeset
    35
+    lockdownElement("menu_printPreview", disablePrinting || disablePrintSetup);
bfb0e78e1a7d Prepare firefox-ui-lockdown patch for integration
Wolfgang Rosenauer <wr@rosenauer.org>
parents:
diff changeset
    36
+    lockdownElement("cmd_print", disablePrinting);
bfb0e78e1a7d Prepare firefox-ui-lockdown patch for integration
Wolfgang Rosenauer <wr@rosenauer.org>
parents:
diff changeset
    37
+  }
bfb0e78e1a7d Prepare firefox-ui-lockdown patch for integration
Wolfgang Rosenauer <wr@rosenauer.org>
parents:
diff changeset
    38
+
bfb0e78e1a7d Prepare firefox-ui-lockdown patch for integration
Wolfgang Rosenauer <wr@rosenauer.org>
parents:
diff changeset
    39
+  var disableSave = gPrefService.getBoolPref("config.lockdown.savepage");
bfb0e78e1a7d Prepare firefox-ui-lockdown patch for integration
Wolfgang Rosenauer <wr@rosenauer.org>
parents:
diff changeset
    40
+  if (!isStartup || disableSave) {
bfb0e78e1a7d Prepare firefox-ui-lockdown patch for integration
Wolfgang Rosenauer <wr@rosenauer.org>
parents:
diff changeset
    41
+    lockdownElement("Browser:SavePage", disableSave);
bfb0e78e1a7d Prepare firefox-ui-lockdown patch for integration
Wolfgang Rosenauer <wr@rosenauer.org>
parents:
diff changeset
    42
+    lockdownElement("Browser:SaveFrame", disableSave);
bfb0e78e1a7d Prepare firefox-ui-lockdown patch for integration
Wolfgang Rosenauer <wr@rosenauer.org>
parents:
diff changeset
    43
+    lockdownElement("context-savepage", disableSave);
bfb0e78e1a7d Prepare firefox-ui-lockdown patch for integration
Wolfgang Rosenauer <wr@rosenauer.org>
parents:
diff changeset
    44
+    lockdownElement("context-saveframe", disableSave);
bfb0e78e1a7d Prepare firefox-ui-lockdown patch for integration
Wolfgang Rosenauer <wr@rosenauer.org>
parents:
diff changeset
    45
+    lockdownElement("context-savelink", disableSave);
bfb0e78e1a7d Prepare firefox-ui-lockdown patch for integration
Wolfgang Rosenauer <wr@rosenauer.org>
parents:
diff changeset
    46
+    lockdownElement("context-saveimage", disableSave);
bfb0e78e1a7d Prepare firefox-ui-lockdown patch for integration
Wolfgang Rosenauer <wr@rosenauer.org>
parents:
diff changeset
    47
+    lockdownElement("View:PageSource", disableSave);
bfb0e78e1a7d Prepare firefox-ui-lockdown patch for integration
Wolfgang Rosenauer <wr@rosenauer.org>
parents:
diff changeset
    48
+    lockdownElement("context-viewpartialsource-selection", disableSave);
bfb0e78e1a7d Prepare firefox-ui-lockdown patch for integration
Wolfgang Rosenauer <wr@rosenauer.org>
parents:
diff changeset
    49
+    lockdownElement("context-viewpartialsource-mathml", disableSave);
bfb0e78e1a7d Prepare firefox-ui-lockdown patch for integration
Wolfgang Rosenauer <wr@rosenauer.org>
parents:
diff changeset
    50
+    lockdownElement("context-viewsource", disableSave);
bfb0e78e1a7d Prepare firefox-ui-lockdown patch for integration
Wolfgang Rosenauer <wr@rosenauer.org>
parents:
diff changeset
    51
+    lockdownElement("context-viewframesource", disableSave);
bfb0e78e1a7d Prepare firefox-ui-lockdown patch for integration
Wolfgang Rosenauer <wr@rosenauer.org>
parents:
diff changeset
    52
+    lockdownElement("View:PageInfo", disableSave);
bfb0e78e1a7d Prepare firefox-ui-lockdown patch for integration
Wolfgang Rosenauer <wr@rosenauer.org>
parents:
diff changeset
    53
+    lockdownElement("context-viewinfo", disableSave);
bfb0e78e1a7d Prepare firefox-ui-lockdown patch for integration
Wolfgang Rosenauer <wr@rosenauer.org>
parents:
diff changeset
    54
+    lockdownElement("context-viewframeinfo", disableSave);
bfb0e78e1a7d Prepare firefox-ui-lockdown patch for integration
Wolfgang Rosenauer <wr@rosenauer.org>
parents:
diff changeset
    55
+    lockdownElement("Tasks:InspectPage", disableSave); // from DOMInspector extension
bfb0e78e1a7d Prepare firefox-ui-lockdown patch for integration
Wolfgang Rosenauer <wr@rosenauer.org>
parents:
diff changeset
    56
+  }
bfb0e78e1a7d Prepare firefox-ui-lockdown patch for integration
Wolfgang Rosenauer <wr@rosenauer.org>
parents:
diff changeset
    57
+
bfb0e78e1a7d Prepare firefox-ui-lockdown patch for integration
Wolfgang Rosenauer <wr@rosenauer.org>
parents:
diff changeset
    58
+  var disableBookmarks = gPrefService.getBoolPref("config.lockdown.hidebookmark");
bfb0e78e1a7d Prepare firefox-ui-lockdown patch for integration
Wolfgang Rosenauer <wr@rosenauer.org>
parents:
diff changeset
    59
+  var disableBookmarkEditing = gPrefService.getBoolPref("config.lockdown.bookmark");
bfb0e78e1a7d Prepare firefox-ui-lockdown patch for integration
Wolfgang Rosenauer <wr@rosenauer.org>
parents:
diff changeset
    60
+  if (!isStartup || disableBookmarks || disableBookmarkEditing) {
bfb0e78e1a7d Prepare firefox-ui-lockdown patch for integration
Wolfgang Rosenauer <wr@rosenauer.org>
parents:
diff changeset
    61
+    lockdownElement("bookmarksMenu", disableBookmarks, true);
bfb0e78e1a7d Prepare firefox-ui-lockdown patch for integration
Wolfgang Rosenauer <wr@rosenauer.org>
parents:
diff changeset
    62
+    lockdownElement("viewBookmarksSidebar", disableBookmarks);
bfb0e78e1a7d Prepare firefox-ui-lockdown patch for integration
Wolfgang Rosenauer <wr@rosenauer.org>
parents:
diff changeset
    63
+    lockdownElement("PersonalToolbar", disableBookmarks); // XXX check
bfb0e78e1a7d Prepare firefox-ui-lockdown patch for integration
Wolfgang Rosenauer <wr@rosenauer.org>
parents:
diff changeset
    64
+    lockdownElement("Browser:AddBookmarkAs", disableBookmarks || disableBookmarkEditing);
bfb0e78e1a7d Prepare firefox-ui-lockdown patch for integration
Wolfgang Rosenauer <wr@rosenauer.org>
parents:
diff changeset
    65
+    lockdownElement("Browser:ShowAllBookmarks", disableBookmarks || disableBookmarkEditing);
bfb0e78e1a7d Prepare firefox-ui-lockdown patch for integration
Wolfgang Rosenauer <wr@rosenauer.org>
parents:
diff changeset
    66
+    lockdownElement("manBookmark", disableBookmarks || disableBookmarkEditing);
bfb0e78e1a7d Prepare firefox-ui-lockdown patch for integration
Wolfgang Rosenauer <wr@rosenauer.org>
parents:
diff changeset
    67
+    lockdownElement("context-bookmarkpage", disableBookmarks || disableBookmarkEditing);
bfb0e78e1a7d Prepare firefox-ui-lockdown patch for integration
Wolfgang Rosenauer <wr@rosenauer.org>
parents:
diff changeset
    68
+    lockdownElement("context-bookmarklink", disableBookmarks || disableBookmarkEditing);
bfb0e78e1a7d Prepare firefox-ui-lockdown patch for integration
Wolfgang Rosenauer <wr@rosenauer.org>
parents:
diff changeset
    69
+
bfb0e78e1a7d Prepare firefox-ui-lockdown patch for integration
Wolfgang Rosenauer <wr@rosenauer.org>
parents:
diff changeset
    70
+    // hide the personal bookmarks toolbar if necessary
bfb0e78e1a7d Prepare firefox-ui-lockdown patch for integration
Wolfgang Rosenauer <wr@rosenauer.org>
parents:
diff changeset
    71
+    if (disableBookmarks) {
bfb0e78e1a7d Prepare firefox-ui-lockdown patch for integration
Wolfgang Rosenauer <wr@rosenauer.org>
parents:
diff changeset
    72
+      document.getElementById("PersonalToolbar").setAttribute("collapsed", "true");
bfb0e78e1a7d Prepare firefox-ui-lockdown patch for integration
Wolfgang Rosenauer <wr@rosenauer.org>
parents:
diff changeset
    73
+    }
bfb0e78e1a7d Prepare firefox-ui-lockdown patch for integration
Wolfgang Rosenauer <wr@rosenauer.org>
parents:
diff changeset
    74
+  }
bfb0e78e1a7d Prepare firefox-ui-lockdown patch for integration
Wolfgang Rosenauer <wr@rosenauer.org>
parents:
diff changeset
    75
+
bfb0e78e1a7d Prepare firefox-ui-lockdown patch for integration
Wolfgang Rosenauer <wr@rosenauer.org>
parents:
diff changeset
    76
+  var disableHistory = gPrefService.getBoolPref("config.lockdown.history");
bfb0e78e1a7d Prepare firefox-ui-lockdown patch for integration
Wolfgang Rosenauer <wr@rosenauer.org>
parents:
diff changeset
    77
+  if (!isStartup || disableHistory) {
bfb0e78e1a7d Prepare firefox-ui-lockdown patch for integration
Wolfgang Rosenauer <wr@rosenauer.org>
parents:
diff changeset
    78
+    lockdownElement("history-menu", disableHistory, true);
bfb0e78e1a7d Prepare firefox-ui-lockdown patch for integration
Wolfgang Rosenauer <wr@rosenauer.org>
parents:
diff changeset
    79
+    lockdownElement("viewHistorySidebar", disableHistory);
bfb0e78e1a7d Prepare firefox-ui-lockdown patch for integration
Wolfgang Rosenauer <wr@rosenauer.org>
parents:
diff changeset
    80
+    lockdownElement("Browser:ShowAllHistory", disableHistory);
bfb0e78e1a7d Prepare firefox-ui-lockdown patch for integration
Wolfgang Rosenauer <wr@rosenauer.org>
parents:
diff changeset
    81
+    gURLBar.setAttribute("enablehistory", disableHistory ? "false" : "true");
bfb0e78e1a7d Prepare firefox-ui-lockdown patch for integration
Wolfgang Rosenauer <wr@rosenauer.org>
parents:
diff changeset
    82
+    gURLBar.disableAutoComplete = disableHistory;
bfb0e78e1a7d Prepare firefox-ui-lockdown patch for integration
Wolfgang Rosenauer <wr@rosenauer.org>
parents:
diff changeset
    83
+  }
bfb0e78e1a7d Prepare firefox-ui-lockdown patch for integration
Wolfgang Rosenauer <wr@rosenauer.org>
parents:
diff changeset
    84
+
bfb0e78e1a7d Prepare firefox-ui-lockdown patch for integration
Wolfgang Rosenauer <wr@rosenauer.org>
parents:
diff changeset
    85
+  var defaultPrefs = Cc["@mozilla.org/preferences-service;1"]
bfb0e78e1a7d Prepare firefox-ui-lockdown patch for integration
Wolfgang Rosenauer <wr@rosenauer.org>
parents:
diff changeset
    86
+      .getService(Ci.nsIPrefService).getDefaultBranch(null);
bfb0e78e1a7d Prepare firefox-ui-lockdown patch for integration
Wolfgang Rosenauer <wr@rosenauer.org>
parents:
diff changeset
    87
+  if (isStartup && disableHistory) {
bfb0e78e1a7d Prepare firefox-ui-lockdown patch for integration
Wolfgang Rosenauer <wr@rosenauer.org>
parents:
diff changeset
    88
+    if (!defaultPrefs.prefIsLocked("browser.history_expire_days")) {
bfb0e78e1a7d Prepare firefox-ui-lockdown patch for integration
Wolfgang Rosenauer <wr@rosenauer.org>
parents:
diff changeset
    89
+      defaultPrefs.setIntPref("browser.history_expire_days", 0);
bfb0e78e1a7d Prepare firefox-ui-lockdown patch for integration
Wolfgang Rosenauer <wr@rosenauer.org>
parents:
diff changeset
    90
+      defaultPrefs.lockPref("browser.history_expire_days");
bfb0e78e1a7d Prepare firefox-ui-lockdown patch for integration
Wolfgang Rosenauer <wr@rosenauer.org>
parents:
diff changeset
    91
+    }
bfb0e78e1a7d Prepare firefox-ui-lockdown patch for integration
Wolfgang Rosenauer <wr@rosenauer.org>
parents:
diff changeset
    92
+    if (!defaultPrefs.prefIsLocked("browser.formfill.enable")) {
bfb0e78e1a7d Prepare firefox-ui-lockdown patch for integration
Wolfgang Rosenauer <wr@rosenauer.org>
parents:
diff changeset
    93
+      defaultPrefs.setBoolPref("browser.formfill.enable", false);
bfb0e78e1a7d Prepare firefox-ui-lockdown patch for integration
Wolfgang Rosenauer <wr@rosenauer.org>
parents:
diff changeset
    94
+      defaultPrefs.lockPref("browser.formfill.enable");
bfb0e78e1a7d Prepare firefox-ui-lockdown patch for integration
Wolfgang Rosenauer <wr@rosenauer.org>
parents:
diff changeset
    95
+    }
bfb0e78e1a7d Prepare firefox-ui-lockdown patch for integration
Wolfgang Rosenauer <wr@rosenauer.org>
parents:
diff changeset
    96
+    if (!defaultPrefs.prefIsLocked("browser.download.manager.retention")) {
bfb0e78e1a7d Prepare firefox-ui-lockdown patch for integration
Wolfgang Rosenauer <wr@rosenauer.org>
parents:
diff changeset
    97
+      defaultPrefs.setIntPref("browser.download.manager.retention", 0);
bfb0e78e1a7d Prepare firefox-ui-lockdown patch for integration
Wolfgang Rosenauer <wr@rosenauer.org>
parents:
diff changeset
    98
+      defaultPrefs.lockPref("browser.download.manager.retention");
bfb0e78e1a7d Prepare firefox-ui-lockdown patch for integration
Wolfgang Rosenauer <wr@rosenauer.org>
parents:
diff changeset
    99
+    }
bfb0e78e1a7d Prepare firefox-ui-lockdown patch for integration
Wolfgang Rosenauer <wr@rosenauer.org>
parents:
diff changeset
   100
+    gPrefService.setBoolPref("config.lockdown.history.set", true);
bfb0e78e1a7d Prepare firefox-ui-lockdown patch for integration
Wolfgang Rosenauer <wr@rosenauer.org>
parents:
diff changeset
   101
+  } 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
   102
+    if (!defaultPrefs.prefIsLocked("browser.history_expire_days")) {
bfb0e78e1a7d Prepare firefox-ui-lockdown patch for integration
Wolfgang Rosenauer <wr@rosenauer.org>
parents:
diff changeset
   103
+      defaultPrefs.clearUserPref("browser.history_expire_days");
bfb0e78e1a7d Prepare firefox-ui-lockdown patch for integration
Wolfgang Rosenauer <wr@rosenauer.org>
parents:
diff changeset
   104
+    }
bfb0e78e1a7d Prepare firefox-ui-lockdown patch for integration
Wolfgang Rosenauer <wr@rosenauer.org>
parents:
diff changeset
   105
+    if (!defaultPrefs.prefIsLocked("browser.formfill.enable")) {
bfb0e78e1a7d Prepare firefox-ui-lockdown patch for integration
Wolfgang Rosenauer <wr@rosenauer.org>
parents:
diff changeset
   106
+      defaultPrefs.clearUserPref("browser.formfill.enable");
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.download.manager.retention")) {
bfb0e78e1a7d Prepare firefox-ui-lockdown patch for integration
Wolfgang Rosenauer <wr@rosenauer.org>
parents:
diff changeset
   109
+      defaultPrefs.clearUserPref("browser.download.manager.retention");
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
+    gPrefService.clearUserPref("config.lockdown.history.set");
bfb0e78e1a7d Prepare firefox-ui-lockdown patch for integration
Wolfgang Rosenauer <wr@rosenauer.org>
parents:
diff changeset
   112
+  }
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
+  var disableURLBar = gPrefService.getBoolPref("config.lockdown.urlbar");
bfb0e78e1a7d Prepare firefox-ui-lockdown patch for integration
Wolfgang Rosenauer <wr@rosenauer.org>
parents:
diff changeset
   115
+  if (!isStartup || disableURLBar) {
bfb0e78e1a7d Prepare firefox-ui-lockdown patch for integration
Wolfgang Rosenauer <wr@rosenauer.org>
parents:
diff changeset
   116
+    lockdownElement("urlbar", disableURLBar);
bfb0e78e1a7d Prepare firefox-ui-lockdown patch for integration
Wolfgang Rosenauer <wr@rosenauer.org>
parents:
diff changeset
   117
+    lockdownElement("Browser:OpenLocation", disableURLBar);
bfb0e78e1a7d Prepare firefox-ui-lockdown patch for integration
Wolfgang Rosenauer <wr@rosenauer.org>
parents:
diff changeset
   118
+    lockdownElement("Browser:OpenFile", disableURLBar);
bfb0e78e1a7d Prepare firefox-ui-lockdown patch for integration
Wolfgang Rosenauer <wr@rosenauer.org>
parents:
diff changeset
   119
+  }
bfb0e78e1a7d Prepare firefox-ui-lockdown patch for integration
Wolfgang Rosenauer <wr@rosenauer.org>
parents:
diff changeset
   120
+
bfb0e78e1a7d Prepare firefox-ui-lockdown patch for integration
Wolfgang Rosenauer <wr@rosenauer.org>
parents:
diff changeset
   121
+  var disableSearchBar = gPrefService.getBoolPref("config.lockdown.searchbar");
bfb0e78e1a7d Prepare firefox-ui-lockdown patch for integration
Wolfgang Rosenauer <wr@rosenauer.org>
parents:
diff changeset
   122
+  if (!isStartup || disableSearchBar) {
bfb0e78e1a7d Prepare firefox-ui-lockdown patch for integration
Wolfgang Rosenauer <wr@rosenauer.org>
parents:
diff changeset
   123
+    document.getElementById("search-container")
bfb0e78e1a7d Prepare firefox-ui-lockdown patch for integration
Wolfgang Rosenauer <wr@rosenauer.org>
parents:
diff changeset
   124
+      .setAttribute("style", (disableSearchBar) ? "display: none;" : "");
bfb0e78e1a7d Prepare firefox-ui-lockdown patch for integration
Wolfgang Rosenauer <wr@rosenauer.org>
parents:
diff changeset
   125
+  }
bfb0e78e1a7d Prepare firefox-ui-lockdown patch for integration
Wolfgang Rosenauer <wr@rosenauer.org>
parents:
diff changeset
   126
+
bfb0e78e1a7d Prepare firefox-ui-lockdown patch for integration
Wolfgang Rosenauer <wr@rosenauer.org>
parents:
diff changeset
   127
+  var disableToolbarEditing = gPrefService.getBoolPref("config.lockdown.toolbarediting");
bfb0e78e1a7d Prepare firefox-ui-lockdown patch for integration
Wolfgang Rosenauer <wr@rosenauer.org>
parents:
diff changeset
   128
+  if (!isStartup || disableToolbarEditing) {
bfb0e78e1a7d Prepare firefox-ui-lockdown patch for integration
Wolfgang Rosenauer <wr@rosenauer.org>
parents:
diff changeset
   129
+    var e = document.getElementById("cmd_CustomizeToolbars");
bfb0e78e1a7d Prepare firefox-ui-lockdown patch for integration
Wolfgang Rosenauer <wr@rosenauer.org>
parents:
diff changeset
   130
+    if (!e.getAttribute("inCustomization")) {
bfb0e78e1a7d Prepare firefox-ui-lockdown patch for integration
Wolfgang Rosenauer <wr@rosenauer.org>
parents:
diff changeset
   131
+      lockdownElement("cmd_CustomizeToolbars", disableToolbarEditing);
bfb0e78e1a7d Prepare firefox-ui-lockdown patch for integration
Wolfgang Rosenauer <wr@rosenauer.org>
parents:
diff changeset
   132
+    }
bfb0e78e1a7d Prepare firefox-ui-lockdown patch for integration
Wolfgang Rosenauer <wr@rosenauer.org>
parents:
diff changeset
   133
+  }
bfb0e78e1a7d Prepare firefox-ui-lockdown patch for integration
Wolfgang Rosenauer <wr@rosenauer.org>
parents:
diff changeset
   134
+
bfb0e78e1a7d Prepare firefox-ui-lockdown patch for integration
Wolfgang Rosenauer <wr@rosenauer.org>
parents:
diff changeset
   135
+  // 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
   136
+  var sidebarBox = document.getElementById("sidebar-box");
bfb0e78e1a7d Prepare firefox-ui-lockdown patch for integration
Wolfgang Rosenauer <wr@rosenauer.org>
parents:
diff changeset
   137
+  var cmd = sidebarBox.getAttribute("sidebarcommand");
bfb0e78e1a7d Prepare firefox-ui-lockdown patch for integration
Wolfgang Rosenauer <wr@rosenauer.org>
parents:
diff changeset
   138
+  if (cmd) {
bfb0e78e1a7d Prepare firefox-ui-lockdown patch for integration
Wolfgang Rosenauer <wr@rosenauer.org>
parents:
diff changeset
   139
+    var elt = document.getElementById(cmd);
bfb0e78e1a7d Prepare firefox-ui-lockdown patch for integration
Wolfgang Rosenauer <wr@rosenauer.org>
parents:
diff changeset
   140
+    if (elt && elt.getAttribute("disabled") == "true") {
bfb0e78e1a7d Prepare firefox-ui-lockdown patch for integration
Wolfgang Rosenauer <wr@rosenauer.org>
parents:
diff changeset
   141
+      toggleSidebar(cmd, false);
bfb0e78e1a7d Prepare firefox-ui-lockdown patch for integration
Wolfgang Rosenauer <wr@rosenauer.org>
parents:
diff changeset
   142
+      gMustLoadSidebar = false;
bfb0e78e1a7d Prepare firefox-ui-lockdown patch for integration
Wolfgang Rosenauer <wr@rosenauer.org>
parents:
diff changeset
   143
+    }
bfb0e78e1a7d Prepare firefox-ui-lockdown patch for integration
Wolfgang Rosenauer <wr@rosenauer.org>
parents:
diff changeset
   144
+  }
bfb0e78e1a7d Prepare firefox-ui-lockdown patch for integration
Wolfgang Rosenauer <wr@rosenauer.org>
parents:
diff changeset
   145
+}
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
+var lockdownObserver = {
bfb0e78e1a7d Prepare firefox-ui-lockdown patch for integration
Wolfgang Rosenauer <wr@rosenauer.org>
parents:
diff changeset
   148
+  observe: function(aSubject, aTopic, aPrefName)
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
+    try {
bfb0e78e1a7d Prepare firefox-ui-lockdown patch for integration
Wolfgang Rosenauer <wr@rosenauer.org>
parents:
diff changeset
   151
+      applyLockdown(false);
bfb0e78e1a7d Prepare firefox-ui-lockdown patch for integration
Wolfgang Rosenauer <wr@rosenauer.org>
parents:
diff changeset
   152
+    } catch (ex) {
bfb0e78e1a7d Prepare firefox-ui-lockdown patch for integration
Wolfgang Rosenauer <wr@rosenauer.org>
parents:
diff changeset
   153
+      dump("Failed lockdown: " + ex + "\n");
bfb0e78e1a7d Prepare firefox-ui-lockdown patch for integration
Wolfgang Rosenauer <wr@rosenauer.org>
parents:
diff changeset
   154
+    }
bfb0e78e1a7d Prepare firefox-ui-lockdown patch for integration
Wolfgang Rosenauer <wr@rosenauer.org>
parents:
diff changeset
   155
+  }
bfb0e78e1a7d Prepare firefox-ui-lockdown patch for integration
Wolfgang Rosenauer <wr@rosenauer.org>
parents:
diff changeset
   156
+};
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
 function delayedStartup(isLoadingBlank, mustLoadSidebar) {
bfb0e78e1a7d Prepare firefox-ui-lockdown patch for integration
Wolfgang Rosenauer <wr@rosenauer.org>
parents:
diff changeset
   159
   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
   160
   os.addObserver(gSessionHistoryObserver, "browser:purge-session-history", false);
bfb0e78e1a7d Prepare firefox-ui-lockdown patch for integration
Wolfgang Rosenauer <wr@rosenauer.org>
parents:
diff changeset
   161
   os.addObserver(gXPInstallObserver, "xpinstall-install-blocked", false);
bfb0e78e1a7d Prepare firefox-ui-lockdown patch for integration
Wolfgang Rosenauer <wr@rosenauer.org>
parents:
diff changeset
   162
 
bfb0e78e1a7d Prepare firefox-ui-lockdown patch for integration
Wolfgang Rosenauer <wr@rosenauer.org>
parents:
diff changeset
   163
+  try {
bfb0e78e1a7d Prepare firefox-ui-lockdown patch for integration
Wolfgang Rosenauer <wr@rosenauer.org>
parents:
diff changeset
   164
+    // 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
   165
+    // 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
   166
+    applyLockdown(true);
bfb0e78e1a7d Prepare firefox-ui-lockdown patch for integration
Wolfgang Rosenauer <wr@rosenauer.org>
parents:
diff changeset
   167
+    gPrefService.addObserver("config.lockdown.", lockdownObserver, false);
bfb0e78e1a7d Prepare firefox-ui-lockdown patch for integration
Wolfgang Rosenauer <wr@rosenauer.org>
parents:
diff changeset
   168
+  } catch (ex) {
bfb0e78e1a7d Prepare firefox-ui-lockdown patch for integration
Wolfgang Rosenauer <wr@rosenauer.org>
parents:
diff changeset
   169
+    dump("Failed lockdown: " + ex + "\n");
bfb0e78e1a7d Prepare firefox-ui-lockdown patch for integration
Wolfgang Rosenauer <wr@rosenauer.org>
parents:
diff changeset
   170
+  }
bfb0e78e1a7d Prepare firefox-ui-lockdown patch for integration
Wolfgang Rosenauer <wr@rosenauer.org>
parents:
diff changeset
   171
+
bfb0e78e1a7d Prepare firefox-ui-lockdown patch for integration
Wolfgang Rosenauer <wr@rosenauer.org>
parents:
diff changeset
   172
   BrowserOffline.init();
bfb0e78e1a7d Prepare firefox-ui-lockdown patch for integration
Wolfgang Rosenauer <wr@rosenauer.org>
parents:
diff changeset
   173
   OfflineApps.init();
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
   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
   176
 
bfb0e78e1a7d Prepare firefox-ui-lockdown patch for integration
Wolfgang Rosenauer <wr@rosenauer.org>
parents:
diff changeset
   177
   // Ensure login manager is up and running.
bfb0e78e1a7d Prepare firefox-ui-lockdown patch for integration
Wolfgang Rosenauer <wr@rosenauer.org>
parents:
diff changeset
   178
   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
   179
 
bfb0e78e1a7d Prepare firefox-ui-lockdown patch for integration
Wolfgang Rosenauer <wr@rosenauer.org>
parents:
diff changeset
   180
   if (mustLoadSidebar) {
bfb0e78e1a7d Prepare firefox-ui-lockdown patch for integration
Wolfgang Rosenauer <wr@rosenauer.org>
parents:
diff changeset
   181
+    let sidebarBox = document.getElementById("sidebar-box");
bfb0e78e1a7d Prepare firefox-ui-lockdown patch for integration
Wolfgang Rosenauer <wr@rosenauer.org>
parents:
diff changeset
   182
     let sidebar = document.getElementById("sidebar");
bfb0e78e1a7d Prepare firefox-ui-lockdown patch for integration
Wolfgang Rosenauer <wr@rosenauer.org>
parents:
diff changeset
   183
-    let sidebarBox = document.getElementById("sidebar-box");
bfb0e78e1a7d Prepare firefox-ui-lockdown patch for integration
Wolfgang Rosenauer <wr@rosenauer.org>
parents:
diff changeset
   184
     sidebar.setAttribute("src", sidebarBox.getAttribute("src"));
bfb0e78e1a7d Prepare firefox-ui-lockdown patch for integration
Wolfgang Rosenauer <wr@rosenauer.org>
parents:
diff changeset
   185
   }
bfb0e78e1a7d Prepare firefox-ui-lockdown patch for integration
Wolfgang Rosenauer <wr@rosenauer.org>
parents:
diff changeset
   186
 
bfb0e78e1a7d Prepare firefox-ui-lockdown patch for integration
Wolfgang Rosenauer <wr@rosenauer.org>
parents:
diff changeset
   187
   UpdateUrlbarSearchSplitterState();
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
   PlacesStarButton.init();
bfb0e78e1a7d Prepare firefox-ui-lockdown patch for integration
Wolfgang Rosenauer <wr@rosenauer.org>
parents:
diff changeset
   190
 
bfb0e78e1a7d Prepare firefox-ui-lockdown patch for integration
Wolfgang Rosenauer <wr@rosenauer.org>
parents:
diff changeset
   191
   // called when we go into full screen, even if it is
bfb0e78e1a7d Prepare firefox-ui-lockdown patch for integration
Wolfgang Rosenauer <wr@rosenauer.org>
parents:
diff changeset
   192
@@ -1399,16 +1553,18 @@ function BrowserShutdown()
bfb0e78e1a7d Prepare firefox-ui-lockdown patch for integration
Wolfgang Rosenauer <wr@rosenauer.org>
parents:
diff changeset
   193
     Components.utils.reportError(ex);
bfb0e78e1a7d Prepare firefox-ui-lockdown patch for integration
Wolfgang Rosenauer <wr@rosenauer.org>
parents:
diff changeset
   194
   }
bfb0e78e1a7d Prepare firefox-ui-lockdown patch for integration
Wolfgang Rosenauer <wr@rosenauer.org>
parents:
diff changeset
   195
 
bfb0e78e1a7d Prepare firefox-ui-lockdown patch for integration
Wolfgang Rosenauer <wr@rosenauer.org>
parents:
diff changeset
   196
   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
   197
     .getService(Components.interfaces.nsIObserverService);
bfb0e78e1a7d Prepare firefox-ui-lockdown patch for integration
Wolfgang Rosenauer <wr@rosenauer.org>
parents:
diff changeset
   198
   os.removeObserver(gSessionHistoryObserver, "browser:purge-session-history");
bfb0e78e1a7d Prepare firefox-ui-lockdown patch for integration
Wolfgang Rosenauer <wr@rosenauer.org>
parents:
diff changeset
   199
   os.removeObserver(gXPInstallObserver, "xpinstall-install-blocked");
bfb0e78e1a7d Prepare firefox-ui-lockdown patch for integration
Wolfgang Rosenauer <wr@rosenauer.org>
parents:
diff changeset
   200
 
bfb0e78e1a7d Prepare firefox-ui-lockdown patch for integration
Wolfgang Rosenauer <wr@rosenauer.org>
parents:
diff changeset
   201
+  gPrefService.removeObserver("config.lockdown.", lockdownObserver);
bfb0e78e1a7d Prepare firefox-ui-lockdown patch for integration
Wolfgang Rosenauer <wr@rosenauer.org>
parents:
diff changeset
   202
+
bfb0e78e1a7d Prepare firefox-ui-lockdown patch for integration
Wolfgang Rosenauer <wr@rosenauer.org>
parents:
diff changeset
   203
   try {
bfb0e78e1a7d Prepare firefox-ui-lockdown patch for integration
Wolfgang Rosenauer <wr@rosenauer.org>
parents:
diff changeset
   204
     gBrowser.removeProgressListener(window.XULBrowserWindow);
bfb0e78e1a7d Prepare firefox-ui-lockdown patch for integration
Wolfgang Rosenauer <wr@rosenauer.org>
parents:
diff changeset
   205
     gBrowser.removeTabsProgressListener(window.TabsProgressListener);
bfb0e78e1a7d Prepare firefox-ui-lockdown patch for integration
Wolfgang Rosenauer <wr@rosenauer.org>
parents:
diff changeset
   206
   } catch (ex) {
bfb0e78e1a7d Prepare firefox-ui-lockdown patch for integration
Wolfgang Rosenauer <wr@rosenauer.org>
parents:
diff changeset
   207
   }
bfb0e78e1a7d Prepare firefox-ui-lockdown patch for integration
Wolfgang Rosenauer <wr@rosenauer.org>
parents:
diff changeset
   208
 
bfb0e78e1a7d Prepare firefox-ui-lockdown patch for integration
Wolfgang Rosenauer <wr@rosenauer.org>
parents:
diff changeset
   209
   PlacesStarButton.uninit();
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
@@ -3208,16 +3364,22 @@ function FillHistoryMenu(aParent) {
bfb0e78e1a7d Prepare firefox-ui-lockdown patch for integration
Wolfgang Rosenauer <wr@rosenauer.org>
parents:
diff changeset
   212
 
bfb0e78e1a7d Prepare firefox-ui-lockdown patch for integration
Wolfgang Rosenauer <wr@rosenauer.org>
parents:
diff changeset
   213
   // Remove old entries if any
bfb0e78e1a7d Prepare firefox-ui-lockdown patch for integration
Wolfgang Rosenauer <wr@rosenauer.org>
parents:
diff changeset
   214
   var children = aParent.childNodes;
bfb0e78e1a7d Prepare firefox-ui-lockdown patch for integration
Wolfgang Rosenauer <wr@rosenauer.org>
parents:
diff changeset
   215
   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
   216
     if (children[i].hasAttribute("index"))
bfb0e78e1a7d Prepare firefox-ui-lockdown patch for integration
Wolfgang Rosenauer <wr@rosenauer.org>
parents:
diff changeset
   217
       aParent.removeChild(children[i]);
bfb0e78e1a7d Prepare firefox-ui-lockdown patch for integration
Wolfgang Rosenauer <wr@rosenauer.org>
parents:
diff changeset
   218
   }
bfb0e78e1a7d Prepare firefox-ui-lockdown patch for integration
Wolfgang Rosenauer <wr@rosenauer.org>
parents:
diff changeset
   219
 
bfb0e78e1a7d Prepare firefox-ui-lockdown patch for integration
Wolfgang Rosenauer <wr@rosenauer.org>
parents:
diff changeset
   220
+  // lockdown. Don't display anything if locked down.
bfb0e78e1a7d Prepare firefox-ui-lockdown patch for integration
Wolfgang Rosenauer <wr@rosenauer.org>
parents:
diff changeset
   221
+  var disableHistory = gPrefService.getBoolPref("config.lockdown.history");
bfb0e78e1a7d Prepare firefox-ui-lockdown patch for integration
Wolfgang Rosenauer <wr@rosenauer.org>
parents:
diff changeset
   222
+  if (disableHistory) {
bfb0e78e1a7d Prepare firefox-ui-lockdown patch for integration
Wolfgang Rosenauer <wr@rosenauer.org>
parents:
diff changeset
   223
+    return false;
bfb0e78e1a7d Prepare firefox-ui-lockdown patch for integration
Wolfgang Rosenauer <wr@rosenauer.org>
parents:
diff changeset
   224
+  }
bfb0e78e1a7d Prepare firefox-ui-lockdown patch for integration
Wolfgang Rosenauer <wr@rosenauer.org>
parents:
diff changeset
   225
+
bfb0e78e1a7d Prepare firefox-ui-lockdown patch for integration
Wolfgang Rosenauer <wr@rosenauer.org>
parents:
diff changeset
   226
   var webNav = getWebNavigation();
bfb0e78e1a7d Prepare firefox-ui-lockdown patch for integration
Wolfgang Rosenauer <wr@rosenauer.org>
parents:
diff changeset
   227
   var sessionHistory = webNav.sessionHistory;
bfb0e78e1a7d Prepare firefox-ui-lockdown patch for integration
Wolfgang Rosenauer <wr@rosenauer.org>
parents:
diff changeset
   228
 
bfb0e78e1a7d Prepare firefox-ui-lockdown patch for integration
Wolfgang Rosenauer <wr@rosenauer.org>
parents:
diff changeset
   229
   var count = sessionHistory.count;
bfb0e78e1a7d Prepare firefox-ui-lockdown patch for integration
Wolfgang Rosenauer <wr@rosenauer.org>
parents:
diff changeset
   230
   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
   231
     return false;
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
   const MAX_HISTORY_MENU_ITEMS = 15;
bfb0e78e1a7d Prepare firefox-ui-lockdown patch for integration
Wolfgang Rosenauer <wr@rosenauer.org>
parents:
diff changeset
   234
@@ -3357,16 +3519,17 @@ function BrowserCustomizeToolbar()
bfb0e78e1a7d Prepare firefox-ui-lockdown patch for integration
Wolfgang Rosenauer <wr@rosenauer.org>
parents:
diff changeset
   235
 {
bfb0e78e1a7d Prepare firefox-ui-lockdown patch for integration
Wolfgang Rosenauer <wr@rosenauer.org>
parents:
diff changeset
   236
   // Disable the toolbar context menu items
bfb0e78e1a7d Prepare firefox-ui-lockdown patch for integration
Wolfgang Rosenauer <wr@rosenauer.org>
parents:
diff changeset
   237
   var menubar = document.getElementById("main-menubar");
bfb0e78e1a7d Prepare firefox-ui-lockdown patch for integration
Wolfgang Rosenauer <wr@rosenauer.org>
parents:
diff changeset
   238
   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
   239
     menubar.childNodes[i].setAttribute("disabled", true);
bfb0e78e1a7d Prepare firefox-ui-lockdown patch for integration
Wolfgang Rosenauer <wr@rosenauer.org>
parents:
diff changeset
   240
 
bfb0e78e1a7d Prepare firefox-ui-lockdown patch for integration
Wolfgang Rosenauer <wr@rosenauer.org>
parents:
diff changeset
   241
   var cmd = document.getElementById("cmd_CustomizeToolbars");
bfb0e78e1a7d Prepare firefox-ui-lockdown patch for integration
Wolfgang Rosenauer <wr@rosenauer.org>
parents:
diff changeset
   242
   cmd.setAttribute("disabled", "true");
bfb0e78e1a7d Prepare firefox-ui-lockdown patch for integration
Wolfgang Rosenauer <wr@rosenauer.org>
parents:
diff changeset
   243
+  cmd.setAttribute("inCustomization", "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 splitter = document.getElementById("urlbar-search-splitter");
bfb0e78e1a7d Prepare firefox-ui-lockdown patch for integration
Wolfgang Rosenauer <wr@rosenauer.org>
parents:
diff changeset
   246
   if (splitter)
bfb0e78e1a7d Prepare firefox-ui-lockdown patch for integration
Wolfgang Rosenauer <wr@rosenauer.org>
parents:
diff changeset
   247
     splitter.parentNode.removeChild(splitter);
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 customizeURL = "chrome://global/content/customizeToolbar.xul";
bfb0e78e1a7d Prepare firefox-ui-lockdown patch for integration
Wolfgang Rosenauer <wr@rosenauer.org>
parents:
diff changeset
   250
   gCustomizeSheet = getBoolPref("toolbar.customization.usesheet", false);
bfb0e78e1a7d Prepare firefox-ui-lockdown patch for integration
Wolfgang Rosenauer <wr@rosenauer.org>
parents:
diff changeset
   251
 
bfb0e78e1a7d Prepare firefox-ui-lockdown patch for integration
Wolfgang Rosenauer <wr@rosenauer.org>
parents:
diff changeset
   252
@@ -3394,16 +3557,25 @@ function BrowserCustomizeToolbar()
bfb0e78e1a7d Prepare firefox-ui-lockdown patch for integration
Wolfgang Rosenauer <wr@rosenauer.org>
parents:
diff changeset
   253
   } else {
bfb0e78e1a7d Prepare firefox-ui-lockdown patch for integration
Wolfgang Rosenauer <wr@rosenauer.org>
parents:
diff changeset
   254
     return window.openDialog(customizeURL,
bfb0e78e1a7d Prepare firefox-ui-lockdown patch for integration
Wolfgang Rosenauer <wr@rosenauer.org>
parents:
diff changeset
   255
                              "CustomizeToolbar",
bfb0e78e1a7d Prepare firefox-ui-lockdown patch for integration
Wolfgang Rosenauer <wr@rosenauer.org>
parents:
diff changeset
   256
                              "chrome,titlebar,toolbar,location,resizable,dependent",
bfb0e78e1a7d Prepare firefox-ui-lockdown patch for integration
Wolfgang Rosenauer <wr@rosenauer.org>
parents:
diff changeset
   257
                              gNavToolbox);
bfb0e78e1a7d Prepare firefox-ui-lockdown patch for integration
Wolfgang Rosenauer <wr@rosenauer.org>
parents:
diff changeset
   258
   }
bfb0e78e1a7d Prepare firefox-ui-lockdown patch for integration
Wolfgang Rosenauer <wr@rosenauer.org>
parents:
diff changeset
   259
 }
bfb0e78e1a7d Prepare firefox-ui-lockdown patch for integration
Wolfgang Rosenauer <wr@rosenauer.org>
parents:
diff changeset
   260
 
bfb0e78e1a7d Prepare firefox-ui-lockdown patch for integration
Wolfgang Rosenauer <wr@rosenauer.org>
parents:
diff changeset
   261
+function BrowserRestoreCustomizationDisabledState()
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
+  var cmd = document.getElementById("cmd_CustomizeToolbars");
bfb0e78e1a7d Prepare firefox-ui-lockdown patch for integration
Wolfgang Rosenauer <wr@rosenauer.org>
parents:
diff changeset
   264
+  if (!gPrefService.getBoolPref("config.lockdown.toolbarediting")) {
bfb0e78e1a7d Prepare firefox-ui-lockdown patch for integration
Wolfgang Rosenauer <wr@rosenauer.org>
parents:
diff changeset
   265
+    cmd.removeAttribute("disabled", "true");
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
+  cmd.removeAttribute("inCustomization");
bfb0e78e1a7d Prepare firefox-ui-lockdown patch for integration
Wolfgang Rosenauer <wr@rosenauer.org>
parents:
diff changeset
   268
+}
bfb0e78e1a7d Prepare firefox-ui-lockdown patch for integration
Wolfgang Rosenauer <wr@rosenauer.org>
parents:
diff changeset
   269
+
bfb0e78e1a7d Prepare firefox-ui-lockdown patch for integration
Wolfgang Rosenauer <wr@rosenauer.org>
parents:
diff changeset
   270
 function BrowserToolboxCustomizeDone(aToolboxChanged) {
bfb0e78e1a7d Prepare firefox-ui-lockdown patch for integration
Wolfgang Rosenauer <wr@rosenauer.org>
parents:
diff changeset
   271
   if (gCustomizeSheet) {
bfb0e78e1a7d Prepare firefox-ui-lockdown patch for integration
Wolfgang Rosenauer <wr@rosenauer.org>
parents:
diff changeset
   272
     document.getElementById("customizeToolbarSheetIFrame").hidden = true;
bfb0e78e1a7d Prepare firefox-ui-lockdown patch for integration
Wolfgang Rosenauer <wr@rosenauer.org>
parents:
diff changeset
   273
     document.getElementById("customizeToolbarSheetPopup").hidePopup();
bfb0e78e1a7d Prepare firefox-ui-lockdown patch for integration
Wolfgang Rosenauer <wr@rosenauer.org>
parents:
diff changeset
   274
   }
bfb0e78e1a7d Prepare firefox-ui-lockdown patch for integration
Wolfgang Rosenauer <wr@rosenauer.org>
parents:
diff changeset
   275
 
bfb0e78e1a7d Prepare firefox-ui-lockdown patch for integration
Wolfgang Rosenauer <wr@rosenauer.org>
parents:
diff changeset
   276
   // 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
   277
   if (aToolboxChanged) {
bfb0e78e1a7d Prepare firefox-ui-lockdown patch for integration
Wolfgang Rosenauer <wr@rosenauer.org>
parents:
diff changeset
   278
@@ -3411,16 +3583,23 @@ function BrowserToolboxCustomizeDone(aTo
bfb0e78e1a7d Prepare firefox-ui-lockdown patch for integration
Wolfgang Rosenauer <wr@rosenauer.org>
parents:
diff changeset
   279
     if (gURLBar)
bfb0e78e1a7d Prepare firefox-ui-lockdown patch for integration
Wolfgang Rosenauer <wr@rosenauer.org>
parents:
diff changeset
   280
       gURLBar.emptyText = gURLBarEmptyText.value;
bfb0e78e1a7d Prepare firefox-ui-lockdown patch for integration
Wolfgang Rosenauer <wr@rosenauer.org>
parents:
diff changeset
   281
 
bfb0e78e1a7d Prepare firefox-ui-lockdown patch for integration
Wolfgang Rosenauer <wr@rosenauer.org>
parents:
diff changeset
   282
     gProxyFavIcon = document.getElementById("page-proxy-favicon");
bfb0e78e1a7d Prepare firefox-ui-lockdown patch for integration
Wolfgang Rosenauer <wr@rosenauer.org>
parents:
diff changeset
   283
     gHomeButton.updateTooltip();
bfb0e78e1a7d Prepare firefox-ui-lockdown patch for integration
Wolfgang Rosenauer <wr@rosenauer.org>
parents:
diff changeset
   284
     gIdentityHandler._cacheElements();
bfb0e78e1a7d Prepare firefox-ui-lockdown patch for integration
Wolfgang Rosenauer <wr@rosenauer.org>
parents:
diff changeset
   285
     window.XULBrowserWindow.init();
bfb0e78e1a7d Prepare firefox-ui-lockdown patch for integration
Wolfgang Rosenauer <wr@rosenauer.org>
parents:
diff changeset
   286
 
bfb0e78e1a7d Prepare firefox-ui-lockdown patch for integration
Wolfgang Rosenauer <wr@rosenauer.org>
parents:
diff changeset
   287
+    // make sure the search bar is not put back if locked down
bfb0e78e1a7d Prepare firefox-ui-lockdown patch for integration
Wolfgang Rosenauer <wr@rosenauer.org>
parents:
diff changeset
   288
+    var disableSearchBar = gPrefService.getBoolPref("config.lockdown.searchbar");
bfb0e78e1a7d Prepare firefox-ui-lockdown patch for integration
Wolfgang Rosenauer <wr@rosenauer.org>
parents:
diff changeset
   289
+    if (disableSearchBar) {
bfb0e78e1a7d Prepare firefox-ui-lockdown patch for integration
Wolfgang Rosenauer <wr@rosenauer.org>
parents:
diff changeset
   290
+      document.getElementById("search-container")
bfb0e78e1a7d Prepare firefox-ui-lockdown patch for integration
Wolfgang Rosenauer <wr@rosenauer.org>
parents:
diff changeset
   291
+        .setAttribute("style", (disableSearchBar) ? "display: none;" : "");
bfb0e78e1a7d Prepare firefox-ui-lockdown patch for integration
Wolfgang Rosenauer <wr@rosenauer.org>
parents:
diff changeset
   292
+    }
bfb0e78e1a7d Prepare firefox-ui-lockdown patch for integration
Wolfgang Rosenauer <wr@rosenauer.org>
parents:
diff changeset
   293
+
bfb0e78e1a7d Prepare firefox-ui-lockdown patch for integration
Wolfgang Rosenauer <wr@rosenauer.org>
parents:
diff changeset
   294
     var backForwardDropmarker = document.getElementById("back-forward-dropmarker");
bfb0e78e1a7d Prepare firefox-ui-lockdown patch for integration
Wolfgang Rosenauer <wr@rosenauer.org>
parents:
diff changeset
   295
     if (backForwardDropmarker)
bfb0e78e1a7d Prepare firefox-ui-lockdown patch for integration
Wolfgang Rosenauer <wr@rosenauer.org>
parents:
diff changeset
   296
       backForwardDropmarker.disabled =
bfb0e78e1a7d Prepare firefox-ui-lockdown patch for integration
Wolfgang Rosenauer <wr@rosenauer.org>
parents:
diff changeset
   297
         document.getElementById('Browser:Back').hasAttribute('disabled') &&
bfb0e78e1a7d Prepare firefox-ui-lockdown patch for integration
Wolfgang Rosenauer <wr@rosenauer.org>
parents:
diff changeset
   298
         document.getElementById('Browser:Forward').hasAttribute('disabled');
bfb0e78e1a7d Prepare firefox-ui-lockdown patch for integration
Wolfgang Rosenauer <wr@rosenauer.org>
parents:
diff changeset
   299
 
bfb0e78e1a7d Prepare firefox-ui-lockdown patch for integration
Wolfgang Rosenauer <wr@rosenauer.org>
parents:
diff changeset
   300
     // support downgrading to Firefox 2.0
bfb0e78e1a7d Prepare firefox-ui-lockdown patch for integration
Wolfgang Rosenauer <wr@rosenauer.org>
parents:
diff changeset
   301
     var navBar = document.getElementById("nav-bar");
bfb0e78e1a7d Prepare firefox-ui-lockdown patch for integration
Wolfgang Rosenauer <wr@rosenauer.org>
parents:
diff changeset
   302
@@ -3445,18 +3624,17 @@ function BrowserToolboxCustomizeDone(aTo
bfb0e78e1a7d Prepare firefox-ui-lockdown patch for integration
Wolfgang Rosenauer <wr@rosenauer.org>
parents:
diff changeset
   303
     XULBrowserWindow.asyncUpdateUI();
bfb0e78e1a7d Prepare firefox-ui-lockdown patch for integration
Wolfgang Rosenauer <wr@rosenauer.org>
parents:
diff changeset
   304
     PlacesStarButton.updateState();
bfb0e78e1a7d Prepare firefox-ui-lockdown patch for integration
Wolfgang Rosenauer <wr@rosenauer.org>
parents:
diff changeset
   305
   }
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
   // 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
   308
   var menubar = document.getElementById("main-menubar");
bfb0e78e1a7d Prepare firefox-ui-lockdown patch for integration
Wolfgang Rosenauer <wr@rosenauer.org>
parents:
diff changeset
   309
   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
   310
     menubar.childNodes[i].setAttribute("disabled", false);
bfb0e78e1a7d Prepare firefox-ui-lockdown patch for integration
Wolfgang Rosenauer <wr@rosenauer.org>
parents:
diff changeset
   311
-  var cmd = document.getElementById("cmd_CustomizeToolbars");
bfb0e78e1a7d Prepare firefox-ui-lockdown patch for integration
Wolfgang Rosenauer <wr@rosenauer.org>
parents:
diff changeset
   312
-  cmd.removeAttribute("disabled");
bfb0e78e1a7d Prepare firefox-ui-lockdown patch for integration
Wolfgang Rosenauer <wr@rosenauer.org>
parents:
diff changeset
   313
+  BrowserRestoreCustomizationDisabledState();
bfb0e78e1a7d Prepare firefox-ui-lockdown patch for integration
Wolfgang Rosenauer <wr@rosenauer.org>
parents:
diff changeset
   314
 
bfb0e78e1a7d Prepare firefox-ui-lockdown patch for integration
Wolfgang Rosenauer <wr@rosenauer.org>
parents:
diff changeset
   315
 #ifdef XP_MACOSX
bfb0e78e1a7d Prepare firefox-ui-lockdown patch for integration
Wolfgang Rosenauer <wr@rosenauer.org>
parents:
diff changeset
   316
   // make sure to re-enable click-and-hold
bfb0e78e1a7d Prepare firefox-ui-lockdown patch for integration
Wolfgang Rosenauer <wr@rosenauer.org>
parents:
diff changeset
   317
   if (!getBoolPref("ui.click_hold_context_menus", false))
bfb0e78e1a7d Prepare firefox-ui-lockdown patch for integration
Wolfgang Rosenauer <wr@rosenauer.org>
parents:
diff changeset
   318
     SetClickAndHoldHandlers();
bfb0e78e1a7d Prepare firefox-ui-lockdown patch for integration
Wolfgang Rosenauer <wr@rosenauer.org>
parents:
diff changeset
   319
 #endif
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
   // XXX Shouldn't have to do this, but I do
bfb0e78e1a7d Prepare firefox-ui-lockdown patch for integration
Wolfgang Rosenauer <wr@rosenauer.org>
parents:
diff changeset
   322
@@ -4544,16 +4722,19 @@ function onViewToolbarsPopupShowing(aEve
bfb0e78e1a7d Prepare firefox-ui-lockdown patch for integration
Wolfgang Rosenauer <wr@rosenauer.org>
parents:
diff changeset
   323
     var toolbarName = toolbar.getAttribute("toolbarname");
bfb0e78e1a7d Prepare firefox-ui-lockdown patch for integration
Wolfgang Rosenauer <wr@rosenauer.org>
parents:
diff changeset
   324
     if (toolbarName) {
bfb0e78e1a7d Prepare firefox-ui-lockdown patch for integration
Wolfgang Rosenauer <wr@rosenauer.org>
parents:
diff changeset
   325
       let menuItem = document.createElement("menuitem");
bfb0e78e1a7d Prepare firefox-ui-lockdown patch for integration
Wolfgang Rosenauer <wr@rosenauer.org>
parents:
diff changeset
   326
       let hidingAttribute = toolbar.getAttribute("type") == "menubar" ?
bfb0e78e1a7d Prepare firefox-ui-lockdown patch for integration
Wolfgang Rosenauer <wr@rosenauer.org>
parents:
diff changeset
   327
                             "autohide" : "collapsed";
bfb0e78e1a7d Prepare firefox-ui-lockdown patch for integration
Wolfgang Rosenauer <wr@rosenauer.org>
parents:
diff changeset
   328
       menuItem.setAttribute("toolbarindex", i);
bfb0e78e1a7d Prepare firefox-ui-lockdown patch for integration
Wolfgang Rosenauer <wr@rosenauer.org>
parents:
diff changeset
   329
       menuItem.setAttribute("type", "checkbox");
bfb0e78e1a7d Prepare firefox-ui-lockdown patch for integration
Wolfgang Rosenauer <wr@rosenauer.org>
parents:
diff changeset
   330
       menuItem.setAttribute("label", toolbarName);
bfb0e78e1a7d Prepare firefox-ui-lockdown patch for integration
Wolfgang Rosenauer <wr@rosenauer.org>
parents:
diff changeset
   331
+      if (toolbar.getAttribute("disabled") == "true") {
bfb0e78e1a7d Prepare firefox-ui-lockdown patch for integration
Wolfgang Rosenauer <wr@rosenauer.org>
parents:
diff changeset
   332
+        menuItem.setAttribute("disabled", "true");
bfb0e78e1a7d Prepare firefox-ui-lockdown patch for integration
Wolfgang Rosenauer <wr@rosenauer.org>
parents:
diff changeset
   333
+      }
bfb0e78e1a7d Prepare firefox-ui-lockdown patch for integration
Wolfgang Rosenauer <wr@rosenauer.org>
parents:
diff changeset
   334
       menuItem.setAttribute("accesskey", toolbar.getAttribute("accesskey"));
bfb0e78e1a7d Prepare firefox-ui-lockdown patch for integration
Wolfgang Rosenauer <wr@rosenauer.org>
parents:
diff changeset
   335
       menuItem.setAttribute("checked", toolbar.getAttribute(hidingAttribute) != "true");
bfb0e78e1a7d Prepare firefox-ui-lockdown patch for integration
Wolfgang Rosenauer <wr@rosenauer.org>
parents:
diff changeset
   336
       popup.insertBefore(menuItem, firstMenuItem);
bfb0e78e1a7d Prepare firefox-ui-lockdown patch for integration
Wolfgang Rosenauer <wr@rosenauer.org>
parents:
diff changeset
   337
 
bfb0e78e1a7d Prepare firefox-ui-lockdown patch for integration
Wolfgang Rosenauer <wr@rosenauer.org>
parents:
diff changeset
   338
       menuItem.addEventListener("command", onViewToolbarCommand, false);
bfb0e78e1a7d Prepare firefox-ui-lockdown patch for integration
Wolfgang Rosenauer <wr@rosenauer.org>
parents:
diff changeset
   339
     }
bfb0e78e1a7d Prepare firefox-ui-lockdown patch for integration
Wolfgang Rosenauer <wr@rosenauer.org>
parents:
diff changeset
   340
     toolbar = toolbar.nextSibling;
bfb0e78e1a7d Prepare firefox-ui-lockdown patch for integration
Wolfgang Rosenauer <wr@rosenauer.org>
parents:
diff changeset
   341
   }
bfb0e78e1a7d Prepare firefox-ui-lockdown patch for integration
Wolfgang Rosenauer <wr@rosenauer.org>
parents:
diff changeset
   342
@@ -6421,17 +6602,17 @@ BookmarkAllTabsHandler.prototype = {
bfb0e78e1a7d Prepare firefox-ui-lockdown patch for integration
Wolfgang Rosenauer <wr@rosenauer.org>
parents:
diff changeset
   343
 
bfb0e78e1a7d Prepare firefox-ui-lockdown patch for integration
Wolfgang Rosenauer <wr@rosenauer.org>
parents:
diff changeset
   344
   _updateCommandState: function BATH__updateCommandState(aTabClose) {
bfb0e78e1a7d Prepare firefox-ui-lockdown patch for integration
Wolfgang Rosenauer <wr@rosenauer.org>
parents:
diff changeset
   345
     var numTabs = gBrowser.tabContainer.childNodes.length;
bfb0e78e1a7d Prepare firefox-ui-lockdown patch for integration
Wolfgang Rosenauer <wr@rosenauer.org>
parents:
diff changeset
   346
 
bfb0e78e1a7d Prepare firefox-ui-lockdown patch for integration
Wolfgang Rosenauer <wr@rosenauer.org>
parents:
diff changeset
   347
     // 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
   348
     if (aTabClose)
bfb0e78e1a7d Prepare firefox-ui-lockdown patch for integration
Wolfgang Rosenauer <wr@rosenauer.org>
parents:
diff changeset
   349
       numTabs--;
bfb0e78e1a7d Prepare firefox-ui-lockdown patch for integration
Wolfgang Rosenauer <wr@rosenauer.org>
parents:
diff changeset
   350
 
bfb0e78e1a7d Prepare firefox-ui-lockdown patch for integration
Wolfgang Rosenauer <wr@rosenauer.org>
parents:
diff changeset
   351
-    if (numTabs > 1)
bfb0e78e1a7d Prepare firefox-ui-lockdown patch for integration
Wolfgang Rosenauer <wr@rosenauer.org>
parents:
diff changeset
   352
+    if (numTabs > 1 && !gPrefService.getBoolPref("config.lockdown.bookmark"))
bfb0e78e1a7d Prepare firefox-ui-lockdown patch for integration
Wolfgang Rosenauer <wr@rosenauer.org>
parents:
diff changeset
   353
       this._command.removeAttribute("disabled");
bfb0e78e1a7d Prepare firefox-ui-lockdown patch for integration
Wolfgang Rosenauer <wr@rosenauer.org>
parents:
diff changeset
   354
     else
bfb0e78e1a7d Prepare firefox-ui-lockdown patch for integration
Wolfgang Rosenauer <wr@rosenauer.org>
parents:
diff changeset
   355
       this._command.setAttribute("disabled", "true");
bfb0e78e1a7d Prepare firefox-ui-lockdown patch for integration
Wolfgang Rosenauer <wr@rosenauer.org>
parents:
diff changeset
   356
   },
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
   doCommand: function BATH_doCommand() {
bfb0e78e1a7d Prepare firefox-ui-lockdown patch for integration
Wolfgang Rosenauer <wr@rosenauer.org>
parents:
diff changeset
   359
     PlacesCommandHook.bookmarkCurrentPages();
bfb0e78e1a7d Prepare firefox-ui-lockdown patch for integration
Wolfgang Rosenauer <wr@rosenauer.org>
parents:
diff changeset
   360
   },