dba86ea
diff --git a/toolkit/mozapps/extensions/content/extensions.js b/toolkit/mozapps/extensions/content/extensions.js
dba86ea
--- a/toolkit/mozapps/extensions/content/extensions.js
dba86ea
+++ b/toolkit/mozapps/extensions/content/extensions.js
dba86ea
@@ -195,19 +195,25 @@ function loadView(aViewId) {
dba86ea
 
dba86ea
     gViewController.loadInitialView(aViewId);
dba86ea
   } else {
dba86ea
     gViewController.loadView(aViewId);
dba86ea
   }
dba86ea
 }
dba86ea
 
dba86ea
 function isCorrectlySigned(aAddon) {
dba86ea
-  // temporary add-ons do not require signing
dba86ea
+  // Temporary add-ons do not require signing.
dba86ea
   if (aAddon.scope == AddonManager.SCOPE_TEMPORARY)
dba86ea
       return true;
dba86ea
+  // On UNIX platforms except OSX, an additional location for system add-ons
dba86ea
+  // exists in /usr/{lib,share}/mozilla/extensions. Add-ons installed there
dba86ea
+  // do not require signing either.
dba86ea
+  if (aAddon.scope == AddonManager.SCOPE_SYSTEM &&
dba86ea
+      Services.appinfo.OS != "Darwin")
dba86ea
+    return true;
dba86ea
   if (aAddon.signedState <= AddonManager.SIGNEDSTATE_MISSING)
dba86ea
     return false;
dba86ea
   return true;
dba86ea
 }
dba86ea
 
dba86ea
 function isDiscoverEnabled() {
dba86ea
   if (Services.prefs.getPrefType(PREF_DISCOVERURL) == Services.prefs.PREF_INVALID)
dba86ea
     return false;
dba86ea
diff --git a/toolkit/mozapps/extensions/internal/XPIProvider.jsm b/toolkit/mozapps/extensions/internal/XPIProvider.jsm
dba86ea
--- a/toolkit/mozapps/extensions/internal/XPIProvider.jsm
dba86ea
+++ b/toolkit/mozapps/extensions/internal/XPIProvider.jsm
dba86ea
@@ -682,18 +682,23 @@ function isUsableAddon(aAddon) {
dba86ea
   // Hack to ensure the default theme is always usable
dba86ea
   if (aAddon.type == "theme" && aAddon.internalName == XPIProvider.defaultSkin)
dba86ea
     return true;
dba86ea
 
dba86ea
   if (aAddon._installLocation.name == KEY_APP_SYSTEM_ADDONS &&
dba86ea
       aAddon.signedState != AddonManager.SIGNEDSTATE_SYSTEM) {
dba86ea
     return false;
dba86ea
   }
dba86ea
-  // temporary and system add-ons do not require signing
dba86ea
-  if ((aAddon._installLocation.name != KEY_APP_SYSTEM_DEFAULTS &&
dba86ea
+  // Temporary and system add-ons do not require signing.
dba86ea
+  // On UNIX platforms except OSX, an additional location for system add-ons
dba86ea
+  // exists in /usr/{lib,share}/mozilla/extensions. Add-ons installed there
dba86ea
+  // do not require signing either.
dba86ea
+  if (((aAddon._installLocation.scope != AddonManager.SCOPE_SYSTEM ||
dba86ea
+        Services.appinfo.OS == "Darwin") &&
dba86ea
+       aAddon._installLocation.name != KEY_APP_SYSTEM_DEFAULTS &&
dba86ea
        aAddon._installLocation.name != KEY_APP_TEMPORARY) &&
dba86ea
        mustSign(aAddon.type)) {
dba86ea
     if (aAddon.signedState <= AddonManager.SIGNEDSTATE_MISSING)
dba86ea
       return false;
dba86ea
   }
dba86ea
 
dba86ea
   if (aAddon.blocklistState == Blocklist.STATE_BLOCKED)
dba86ea
     return false;
dba86ea