home *** CD-ROM | disk | FTP | other *** search
/ Mac Easy 2010 May / Mac Life Ubuntu.iso / casper / filesystem.squashfs / usr / lib / firefox-3.0.14 / chrome / browser.jar / content / browser / pageinfo / permissions.js < prev    next >
Encoding:
Text File  |  2007-08-06  |  4.0 KB  |  135 lines

  1. //@line 36 "/build/buildd/firefox-3.0-3.0.14+build2+nobinonly/build-tree/mozilla/browser/base/content/pageinfo/permissions.js"
  2. const ALLOW = nsIPermissionManager.ALLOW_ACTION;   // 1
  3. const BLOCK = nsIPermissionManager.DENY_ACTION;    // 2
  4. const SESSION = nsICookiePermission.ACCESS_SESSION;// 8
  5. var gPermURI;
  6. var gPrefs;
  7.  
  8. var gPermObj = {
  9.   image: function getImageDefaultPermission()
  10.   {
  11.     if (gPrefs.getIntPref("permissions.default.image") == 2)
  12.       return BLOCK;
  13.     return ALLOW;
  14.   },
  15.   cookie: function getCookieDefaultPermission()
  16.   {
  17.     if (gPrefs.getIntPref("network.cookie.cookieBehavior") == 2)
  18.       return BLOCK;
  19.  
  20.     if (gPrefs.getIntPref("network.cookie.lifetimePolicy") == 2)
  21.       return SESSION;
  22.     return ALLOW;
  23.   },
  24.   popup: function getPopupDefaultPermission()
  25.   {
  26.     if (gPrefs.getBoolPref("dom.disable_open_during_load"))
  27.       return BLOCK;
  28.     return ALLOW;
  29.   },
  30.   install: function getInstallDefaultPermission()
  31.   {
  32.     if (gPrefs.getBoolPref("xpinstall.whitelist.required"))
  33.       return BLOCK;
  34.     return ALLOW;
  35.   }
  36. };
  37.  
  38. var permissionObserver = {
  39.   observe: function (aSubject, aTopic, aData)
  40.   {
  41.     if (aTopic == "perm-changed") {
  42.       var permission = aSubject.QueryInterface(Components.interfaces.nsIPermission);
  43.       if (permission.host == gPermURI.host && permission.type in gPermObj)
  44.         initRow(permission.type);
  45.     }
  46.   }
  47. };
  48.  
  49. function onLoadPermission()
  50. {
  51.   gPrefs = Components.classes[PREFERENCES_CONTRACTID]
  52.                      .getService(Components.interfaces.nsIPrefBranch2);
  53.  
  54.   var uri = gDocument.documentURIObject;
  55.   var permTab = document.getElementById("permTab");
  56.   if(/^https?/.test(uri.scheme)) {
  57.     gPermURI = uri;
  58.     var hostText = document.getElementById("hostText");
  59.     hostText.value = gPermURI.host;
  60.  
  61.     for (var i in gPermObj)
  62.       initRow(i);
  63.     var os = Components.classes["@mozilla.org/observer-service;1"]
  64.                        .getService(Components.interfaces.nsIObserverService);
  65.     os.addObserver(permissionObserver, "perm-changed", false);
  66.     onUnloadRegistry.push(onUnloadPermission);
  67.     permTab.hidden = false;
  68.   }
  69.   else
  70.     permTab.hidden = true;
  71. }
  72.  
  73. function onUnloadPermission()
  74. {
  75.   var os = Components.classes["@mozilla.org/observer-service;1"]
  76.                      .getService(Components.interfaces.nsIObserverService);
  77.   os.removeObserver(permissionObserver, "perm-changed");
  78. }
  79.  
  80. function initRow(aPartId)
  81. {
  82.   var permissionManager = Components.classes[PERMISSION_CONTRACTID]
  83.                                     .getService(nsIPermissionManager);
  84.  
  85.   var checkbox = document.getElementById(aPartId + "Def");
  86.   var command  = document.getElementById("cmd_" + aPartId + "Toggle");
  87.   var perm = permissionManager.testPermission(gPermURI, aPartId);
  88.   if (perm) {
  89.     checkbox.checked = false;
  90.     command.removeAttribute("disabled");
  91.   }
  92.   else {
  93.     checkbox.checked = true;
  94.     command.setAttribute("disabled", "true");
  95.     perm = gPermObj[aPartId]();
  96.   }
  97.   setRadioState(aPartId, perm);
  98. }
  99.  
  100. function onCheckboxClick(aPartId)
  101. {
  102.   var permissionManager = Components.classes[PERMISSION_CONTRACTID]
  103.                                     .getService(nsIPermissionManager);
  104.  
  105.   var command  = document.getElementById("cmd_" + aPartId + "Toggle");
  106.   var checkbox = document.getElementById(aPartId + "Def");
  107.   if (checkbox.checked) {
  108.     permissionManager.remove(gPermURI.host, aPartId);
  109.     command.setAttribute("disabled", "true");
  110.     var perm = gPermObj[aPartId]();
  111.     setRadioState(aPartId, perm);
  112.   }
  113.   else {
  114.     onRadioClick(aPartId);
  115.     command.removeAttribute("disabled");
  116.   }
  117. }
  118.  
  119. function onRadioClick(aPartId)
  120. {
  121.   var permissionManager = Components.classes[PERMISSION_CONTRACTID]
  122.                                     .getService(nsIPermissionManager);
  123.  
  124.   var radioGroup = document.getElementById(aPartId + "RadioGroup");
  125.   var id = radioGroup.selectedItem.id;
  126.   var permission = id.split('#')[1];
  127.   permissionManager.add(gPermURI, aPartId, permission);
  128. }
  129.  
  130. function setRadioState(aPartId, aValue)
  131. {
  132.   var radio = document.getElementById(aPartId + "#" + aValue);
  133.   radio.radioGroup.selectedItem = radio;
  134. }
  135.