Bug 1320557 - Prevent broken UI from invalid permission states. r=Gijs draft
authorJohann Hofmann <jhofmann@mozilla.com>
Fri, 06 Jan 2017 10:02:58 +0100
changeset 456819 562af940feb727d7d68e034790a9d9358768847e
parent 455291 232424f9511d61179912ccaf5b169fb45f05599a
child 541329 2715e29f6da77074a342b8aaa2f233b112239043
push id40612
push userbmo:jhofmann@mozilla.com
push dateFri, 06 Jan 2017 09:03:54 +0000
reviewersGijs
bugs1320557
milestone53.0a1
Bug 1320557 - Prevent broken UI from invalid permission states. r=Gijs MozReview-Commit-ID: FxmCHoLx0lE
browser/base/content/pageinfo/permissions.js
browser/modules/SitePermissions.jsm
--- a/browser/base/content/pageinfo/permissions.js
+++ b/browser/base/content/pageinfo/permissions.js
@@ -178,17 +178,19 @@ function onRadioClick(aPartId)
   var id = radioGroup.selectedItem.id;
   var permission = id.split('#')[1];
   SitePermissions.set(gPermURI, aPartId, permission);
 }
 
 function setRadioState(aPartId, aValue)
 {
   var radio = document.getElementById(aPartId + "#" + aValue);
-  radio.radioGroup.selectedItem = radio;
+  if (radio) {
+    radio.radioGroup.selectedItem = radio;
+  }
 }
 
 function initIndexedDBRow()
 {
   let row = document.getElementById("perm-indexedDB-row");
   let extras = document.getElementById("perm-indexedDB-extras");
 
   row.appendChild(extras);
--- a/browser/modules/SitePermissions.jsm
+++ b/browser/modules/SitePermissions.jsm
@@ -181,17 +181,17 @@ this.SitePermissions = {
         return gStringBundle.GetStringFromName("alwaysAsk");
       case this.ALLOW:
         return gStringBundle.GetStringFromName("allow");
       case this.SESSION:
         return gStringBundle.GetStringFromName("allowForSession");
       case this.BLOCK:
         return gStringBundle.GetStringFromName("block");
       default:
-        throw new Error("unknown permission state");
+        return null;
     }
   }
 };
 
 var gPermissionObject = {
   /* Holds permission ID => options pairs.
    *
    * Supported options: