diff --git a/browser/base/content/browser-siteIdentity.js b/browser/base/content/browser-siteIdentity.js index 4efbba2..5445b03 100644 --- a/browser/base/content/browser-siteIdentity.js +++ b/browser/base/content/browser-siteIdentity.js @@ -414,6 +414,33 @@ var gIdentityHandler = { event.stopPropagation(); }, + async refreshSiteData() { + document.getElementById("identity-popup-allow-sitedata-toggle").toggleAttribute( + "pressed", + Services.perms.testExactPermissionFromPrincipal( + gBrowser.contentPrincipal, + "cookie" + ) === Services.perms.ALLOW_ACTION + ); + }, + + async toggleSiteData() { + const pressed = document.getElementById("identity-popup-allow-sitedata-toggle").toggleAttribute( + "pressed" + ); + + if (pressed) { + Services.perms.addFromPrincipal( + gBrowser.contentPrincipal, + "cookie", + Services.perms.ALLOW_ACTION, + Services.perms.EXPIRE_NEVER + ); + } else { + Services.perms.removeFromPrincipal(gBrowser.contentPrincipal, "cookie"); + } + }, + /** * Handler for mouseclicks on the "More Information" button in the * "identity-popup" panel. @@ -1151,6 +1178,8 @@ var gIdentityHandler = { this._identityPopupContentOwner.textContent = owner; this._identityPopupContentSupp.textContent = supplemental; this._identityPopupContentVerif.textContent = verifier; + + this.refreshSiteData(); }, setURI(uri) { diff --git a/browser/components/controlcenter/content/identityPanel.inc.xhtml b/browser/components/controlcenter/content/identityPanel.inc.xhtml index 8bc64fa..4a4a1af 100644 --- a/browser/components/controlcenter/content/identityPanel.inc.xhtml +++ b/browser/components/controlcenter/content/identityPanel.inc.xhtml @@ -96,6 +96,12 @@ data-l10n-id="identity-clear-site-data" class="subviewbutton" oncommand="gIdentityHandler.clearSiteData(event);"/> + + + +