mirror of
https://github.com/mozilla/gecko-dev.git
synced 2024-11-06 17:16:12 +00:00
1683da5f16
b=225857, p=mpconnor@myrealbox.com, r=neil, sr=alecf
295 lines
12 KiB
XML
295 lines
12 KiB
XML
<?xml version="1.0"?>
|
|
|
|
<!--
|
|
The contents of this file are subject to the Netscape Public
|
|
License Version 1.1 (the "License"); you may not use this file
|
|
except in compliance with the License. You may obtain a copy of
|
|
the License at http://www.mozilla.org/NPL/
|
|
|
|
Software distributed under the License is distributed on an "AS
|
|
IS" basis, WITHOUT WARRANTY OF ANY KIND, either express or
|
|
implied. See the License for the specific language governing
|
|
rights and limitations under the License.
|
|
|
|
The Original Code is Mozilla Communicator client code, released
|
|
March 31, 1998.
|
|
|
|
The Initial Developer of the Original Code is Netscape
|
|
Communications Corporation. Portions created by Netscape are
|
|
Copyright (C) 1998-1999 Netscape Communications Corporation. All
|
|
Rights Reserved.
|
|
|
|
Contributor(s):
|
|
-->
|
|
|
|
<!DOCTYPE overlay SYSTEM "chrome://cookie/locale/cookieNavigatorOverlay.dtd">
|
|
|
|
<overlay id="cookieNavigatorOverlay"
|
|
xmlns="http://www.mozilla.org/keymaster/gatekeeper/there.is.only.xul">
|
|
|
|
<script type="application/x-javascript" src="chrome://cookie/content/cookieOverlay.js"/>
|
|
<script type="application/x-javascript">
|
|
<![CDATA[
|
|
/******* THE FOLLOWING IS FOR THE TASKMENU OVERLAY *******/
|
|
|
|
// both are necessary. popupmanager is just a special case
|
|
// of permissionmanager but does extra work on add/remove
|
|
const nsIPermissionManager = Components.interfaces.nsIPermissionManager;
|
|
var permissionmanager;
|
|
var popupmanager;
|
|
|
|
// XXX this needs to be defined publicly
|
|
// see bug 225857 comment 7
|
|
const ALLOW_SESSION_ONLY = 8;
|
|
|
|
// Remove the image entries from the task menu
|
|
function HideImage() {
|
|
document.getElementById("image").hidden = true;
|
|
}
|
|
|
|
// for some unexplainable reason, CheckForImage() keeps getting called repeatedly
|
|
// as we mouse over the task menu. IMO, that shouldn't be happening. To avoid
|
|
// taking a performance hit due to this, we will set the following flag to avoid
|
|
// reexecuting the routine
|
|
var alreadyCheckedForImage = false;
|
|
|
|
// determine which items we need to hide or disable from the task menu
|
|
function CheckForVisibility()
|
|
{
|
|
// obtain access to permissionmanager and popupmanager
|
|
// (popup manager is a wrapper around permission that does extra work)
|
|
permissionmanager =
|
|
Components.classes["@mozilla.org/permissionmanager;1"]
|
|
.getService(Components.interfaces.nsIPermissionManager);
|
|
popupmanager =
|
|
Components.classes["@mozilla.org/PopupWindowManager;1"]
|
|
.getService(Components.interfaces.nsIPopupWindowManager);
|
|
if (!("_content" in window) || !window._content) {
|
|
// this occurs if doing tasks->privacy->cookie->block from java console
|
|
return;
|
|
}
|
|
|
|
// determine current state (blocked or unblocked) and hide appropriate menu item
|
|
var uri = getBrowser().currentURI;
|
|
setRadioButton("UseCookiesDefault", uri, nsIPermissionManager.UNKNOWN_ACTION, "cookie");
|
|
setRadioButton("AllowCookies", uri, nsIPermissionManager.ALLOW_ACTION, "cookie");
|
|
setRadioButton("AllowSessionCookies", uri, ALLOW_SESSION_ONLY, "cookie");
|
|
setRadioButton("BlockCookies", uri, nsIPermissionManager.DENY_ACTION, "cookie");
|
|
setRadioButton("UseImagesDefault", uri, nsIPermissionManager.UNKNOWN_ACTION, "image");
|
|
setRadioButton("AllowImages", uri, nsIPermissionManager.ALLOW_ACTION, "image");
|
|
setRadioButton("BlockImages", uri, nsIPermissionManager.DENY_ACTION, "image");
|
|
|
|
SetPopupMenuEnabledState();
|
|
|
|
var pref;
|
|
pref = Components.classes['@mozilla.org/preferences-service;1'];
|
|
pref = pref.getService();
|
|
pref = pref.QueryInterface(Components.interfaces.nsIPrefBranch);
|
|
|
|
// determine if image manager should be in the UI
|
|
if (alreadyCheckedForImage) {
|
|
return;
|
|
}
|
|
alreadyCheckedForImage = true;
|
|
// remove image functions (unless overruled by the "imageblocker.enabled" pref)
|
|
try {
|
|
if (!pref.getBoolPref("imageblocker.enabled")) {
|
|
HideImage();
|
|
}
|
|
} catch(e) {
|
|
HideImage();
|
|
}
|
|
}
|
|
|
|
function SetPopupMenuEnabledState() {
|
|
var blocked = nsIPermissionManager.UNKNOWN_ACTION;
|
|
var policy = pref.getBoolPref("dom.disable_open_during_load");
|
|
|
|
blocked = permissionmanager.testPermission(getBrowser().currentURI, "popup");
|
|
|
|
document.getElementById("AboutPopups").hidden = policy;
|
|
document.getElementById("ManagePopups").hidden = !policy;
|
|
|
|
if (policy) {
|
|
enableElement("AllowPopups", blocked != nsIPermissionManager.ALLOW_ACTION);
|
|
return;
|
|
}
|
|
|
|
enableElement("AllowPopups", false);
|
|
}
|
|
|
|
function setRadioButton(elementID, uri, perm, type) {
|
|
var enable = (perm == permissionmanager.testPermission(uri, type));
|
|
document.getElementById(elementID).setAttribute("checked", enable);
|
|
}
|
|
|
|
function enableElement(elementID, enable) {
|
|
var element = document.getElementById(elementID);
|
|
if (enable)
|
|
element.removeAttribute("disabled");
|
|
else
|
|
element.setAttribute("disabled", "true");
|
|
}
|
|
|
|
// perform a Cookie or Image action
|
|
function CookieImageAction(action) {
|
|
|
|
if (!("_content" in window) || !window._content) {
|
|
// this occurs if doing tasks->privacy->cookie->block from java console
|
|
return;
|
|
}
|
|
var element;
|
|
var uri = getBrowser().currentURI;
|
|
|
|
switch (action) {
|
|
case "cookieAllow":
|
|
if (permissionmanager.testPermission(uri, "cookie") == nsIPermissionManager.ALLOW_ACTION)
|
|
return;
|
|
permissionmanager.add(uri, "cookie", nsIPermissionManager.ALLOW_ACTION);
|
|
element = document.getElementById("AllowCookies");
|
|
break;
|
|
case "cookieSession":
|
|
if (permissionmanager.testPermission(uri, "cookie") == ALLOW_SESSION_ONLY)
|
|
return;
|
|
permissionmanager.add(uri, "cookie", ALLOW_SESSION_ONLY);
|
|
element = document.getElementById("AllowSessionCookies");
|
|
break;
|
|
case "cookieDefault":
|
|
if (permissionmanager.testPermission(uri, "cookie") == nsIPermissionManager.UNKNOWN_ACTION)
|
|
return;
|
|
permissionmanager.remove(uri.host, "cookie");
|
|
element = document.getElementById("UseCookiesDefault");
|
|
break;
|
|
case "cookieBlock":
|
|
if (permissionmanager.testPermission(uri, "cookie") == nsIPermissionManager.DENY_ACTION)
|
|
return;
|
|
permissionmanager.add(uri, "cookie", nsIPermissionManager.DENY_ACTION);
|
|
element = document.getElementById("BlockCookies");
|
|
break;
|
|
case "imageAllow":
|
|
if (permissionmanager.testPermission(uri, "image") == nsIPermissionManager.ALLOW_ACTION)
|
|
return;
|
|
permissionmanager.add(uri, "image", nsIPermissionManager.ALLOW_ACTION);
|
|
element = document.getElementById("AllowImages");
|
|
break;
|
|
case "imageDefault":
|
|
if (permissionmanager.testPermission(uri, "image") == nsIPermissionManager.UNKNOWN_ACTION)
|
|
return;
|
|
permissionmanager.remove(uri.host, "image");
|
|
element = document.getElementById("UseImagesDefault");
|
|
break;
|
|
case "imageBlock":
|
|
if (permissionmanager.testPermission(uri, "image") == nsIPermissionManager.DENY_ACTION)
|
|
return;
|
|
permissionmanager.add(uri, "image", nsIPermissionManager.DENY_ACTION);
|
|
element = document.getElementById("BlockImages");
|
|
break;
|
|
default:
|
|
return;
|
|
}
|
|
var promptService = Components.classes["@mozilla.org/embedcomp/prompt-service;1"]
|
|
.getService(Components.interfaces.nsIPromptService);
|
|
promptService.alert(window,element.getAttribute("title"), element.getAttribute("msg"));
|
|
}
|
|
|
|
function OpenAboutPopups() {
|
|
window.openDialog("chrome://communicator/content/aboutPopups.xul", "",
|
|
"chrome,centerscreen,dependent",
|
|
false);
|
|
}
|
|
|
|
function OpenManagePopups(host) {
|
|
window.openDialog("chrome://communicator/content/popupManager.xul", "",
|
|
"chrome,resizable=yes",
|
|
host);
|
|
}
|
|
|
|
]]>
|
|
</script>
|
|
|
|
<!-- tasksOverlay menu items -->
|
|
<menupopup id="taskPopup" onpopupshowing="CheckForVisibility()">
|
|
<menu insertbefore="navBeginGlobalItems"
|
|
label="&cookieCookieManager.label;"
|
|
accesskey="&cookieCookieManager.accesskey;">
|
|
<menupopup>
|
|
<menuitem id="BlockCookies" label="&cookieBlockCookiesCmd.label;"
|
|
accesskey="&cookieBlockCookiesCmd.accesskey;"
|
|
title="&cookieMessageTitle.label;"
|
|
msg="&cookieBlockCookiesMsg.label;"
|
|
type="radio" name="cookies"
|
|
oncommand="CookieImageAction('cookieBlock');"/>
|
|
<menuitem id="UseCookiesDefault" label="&cookieCookiesDefaultCmd.label;"
|
|
accesskey="&cookieCookiesDefaultCmd.accesskey;"
|
|
title="&cookieMessageTitle.label;"
|
|
msg="&cookieCookiesDefaultMsg.label;"
|
|
type="radio" name="cookies" checked="true"
|
|
oncommand="CookieImageAction('cookieDefault');"/>
|
|
<menuitem id="AllowSessionCookies" label="&cookieAllowSessionCookiesCmd.label;"
|
|
title="&cookieMessageTitle.label;"
|
|
accesskey="&cookieAllowSessionCookiesCmd.accesskey;"
|
|
msg="&cookieAllowSessionCookiesMsg.label;"
|
|
type="radio" name="cookies"
|
|
oncommand="CookieImageAction('cookieSession');"/>
|
|
<menuitem id="AllowCookies" label="&cookieAllowCookiesCmd.label;"
|
|
title="&cookieMessageTitle.label;"
|
|
accesskey="&cookieAllowCookiesCmd.accesskey;"
|
|
msg="&cookieAllowCookiesMsg.label;"
|
|
type="radio" name="cookies"
|
|
oncommand="CookieImageAction('cookieAllow');"/>
|
|
<menuseparator/>
|
|
<menuitem label="&cookieDisplayCookiesCmd.label;"
|
|
accesskey="&cookieDisplayCookiesCmd.accesskey;"
|
|
oncommand="viewCookies();"/>
|
|
</menupopup>
|
|
</menu>
|
|
<menu label="&cookieImageManager.label;"
|
|
accesskey="&cookieImageManager.accesskey;"
|
|
id="image"
|
|
insertbefore="navBeginGlobalItems">
|
|
<menupopup>
|
|
<menuitem id="BlockImages" label="&cookieBlockImagesCmd.label;"
|
|
accesskey="&cookieBlockImagesCmd.accesskey;"
|
|
title="&cookieImageMessageTitle.label;"
|
|
msg="&cookieBlockImagesMsg.label;"
|
|
type="radio" name="images"
|
|
oncommand="CookieImageAction('imageBlock');"/>
|
|
<menuitem id="UseImagesDefault" label="&cookieImagesDefaultCmd.label;"
|
|
accesskey="&cookieImagesDefaultCmd.accesskey;"
|
|
title="&cookieImageMessageTitle.label;"
|
|
msg="&cookieImagesDefaultMsg.label;"
|
|
type="radio" name="images"
|
|
oncommand="CookieImageAction('imageDefault');"/>
|
|
<menuitem id="AllowImages" label="&cookieAllowImagesCmd.label;"
|
|
accesskey="&cookieAllowImagesCmd.accesskey;"
|
|
title="&cookieImageMessageTitle.label;"
|
|
msg="&cookieAllowImagesMsg.label;"
|
|
type="radio" name="images"
|
|
oncommand="CookieImageAction('imageAllow');"/>
|
|
<menuseparator/>
|
|
<menuitem label="&cookieDisplayImagesCmd.label;"
|
|
accesskey="&cookieDisplayImagesCmd.accesskey;"
|
|
oncommand="viewImages();"/>
|
|
</menupopup>
|
|
</menu>
|
|
<menu label="&cookiePopupManager.label;"
|
|
accesskey="&cookiePopupManager.accesskey;"
|
|
id="popup"
|
|
insertbefore="navBeginGlobalItems">
|
|
<menupopup>
|
|
<menuitem id="AllowPopups" label="&cookieAllowPopupsCmd.label;"
|
|
accesskey="&cookieAllowPopupsCmd.accesskey;"
|
|
oncommand="OpenManagePopups(getBrowser().currentURI.host);"/>
|
|
<menuitem id="AboutPopups" label="&cookieAboutPopupBlocking.label;"
|
|
accesskey="&cookieAboutPopupBlocking.accesskey;"
|
|
oncommand="OpenAboutPopups();"
|
|
hidden="true"/>
|
|
<menuitem id="ManagePopups" label="&cookieManagePopups.label;"
|
|
accesskey="&cookieManagePopups.accesskey;"
|
|
oncommand="OpenManagePopups('');"
|
|
hidden="true"/>
|
|
</menupopup>
|
|
</menu>
|
|
</menupopup>
|
|
</overlay>
|