home *** CD-ROM | disk | FTP | other *** search
- <?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/cookieContextOverlay.dtd">
-
- <overlay id="cookieContextOverlay"
- 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[
-
- // Code from nsContextMenu.js. Note that we extend the prototype here, rather
- // than making these methods on a new object, as some methods require access
- // to data maintained by nsContextMenu.
-
- var cookieContextMenu = {
-
- // Determine if "Block Image" is to appear in the menu.
- // Return true if image is not already blocked.
- isBlockingImages : function () {
- /* determine if image is already being blocked */
- const nsIPermissionManager = Components.interfaces.nsIPermissionManager;
- var permissionmanager =
- Components.classes["@mozilla.org/permissionmanager;1"]
- .getService(Components.interfaces.nsIPermissionManager);
- if(!permissionmanager) {
- return true;
- }
- var ioService = Components.classes["@mozilla.org/network/io-service;1"]
- .getService(Components.interfaces.nsIIOService);
- var uri = ioService.newURI(gContextMenu.imageURL, null, null);
- return permissionmanager.testPermission(uri, "image") != nsIPermissionManager.DENY_ACTION;
- },
-
- // Block image from loading in the future.
- blockImage : function () {
- const nsIPermissionManager = Components.interfaces.nsIPermissionManager;
- var permissionmanager =
- Components.classes["@mozilla.org/permissionmanager;1"]
- .getService(Components.interfaces.nsIPermissionManager);
- if (!permissionmanager) {
- return;
- }
- var ioService = Components.classes["@mozilla.org/network/io-service;1"]
- .getService(Components.interfaces.nsIIOService);
- uri = ioService.newURI(gContextMenu.imageURL, null, null);
- permissionmanager.add(uri, "image", nsIPermissionManager.DENY_ACTION);
- },
-
- // Unblock image from loading in the future.
- unblockImage : function () {
- const nsIPermissionManager = Components.interfaces.nsIPermissionManager;
- var permissionmanager =
- Components.classes["@mozilla.org/permissionmanager;1"]
- .getService().QueryInterface(Components.interfaces.nsIPermissionManager);
- if (!permissionmanager) {
- return;
- }
- var ioService = Components.classes["@mozilla.org/network/io-service;1"]
- .getService(Components.interfaces.nsIIOService);
- uri = ioService.newURI(gContextMenu.imageURL, null, null);
- permissionmanager.remove(uri.host, "image");
- },
-
- initImageBlocking : function () {
- var showImageBlockingContextMenu;
- try {
- var prefs = Components.classes["@mozilla.org/preferences-service;1"]
- .getService(Components.interfaces.nsIPrefBranch);
- showImageBlockingContextMenu = prefs.getBoolPref("imageblocker.enabled");
- }
- catch (ex) {
- showImageBlockingContextMenu = true;
- }
-
- try {
- // Block image depends on whether an image was clicked on
- gContextMenu.showItem
- ("context-blockimage",
- showImageBlockingContextMenu && gContextMenu.onImage && cookieContextMenu.isBlockingImages());
-
- gContextMenu.showItem
- ("context-unblockimage",
- showImageBlockingContextMenu && gContextMenu.onImage && !cookieContextMenu.isBlockingImages());
- } catch (e) {}
- },
-
- addContextMenuItemListeners : function (aEvent) {
- var contextPopup = document.getElementById("contentAreaContextSet");
- if (contextPopup)
- contextPopup.addEventListener("popupshowing", cookieContextMenu.initImageBlocking, false);
-
- var mailContextPopup = document.getElementById("messagePaneContext");
- if (mailContextPopup)
- mailContextPopup.addEventListener("popupshowing", cookieContextMenu.initImageBlocking, false);
- }
- }
- window.addEventListener("load", cookieContextMenu.addContextMenuItemListeners, false);
-
- ]]>
- </script>
-
- <!-- context menu -->
- <popup id="contentAreaContextMenu">
- <menuitem id="context-blockimage"
- label="&blockImageCmd.label;"
- accesskey=""
- oncommand="cookieContextMenu.blockImage();"
- insertafter="context-viewimage"/>
- <menuitem id="context-unblockimage"
- label="&unblockImageCmd.label;"
- accesskey=""
- oncommand="cookieContextMenu.unblockImage();"
- insertafter="context-viewimage"/>
- </popup>
-
- <!-- Mail Message Pane context menu -->
- <popup id="messagePaneContext">
- <menuitem id="context-blockimage"
- label="&blockImageCmd.label;"
- accesskey=""
- oncommand="cookieContextMenu.blockImage();"
- insertafter="context-viewimage"/>
- <menuitem id="context-unblockimage"
- label="&unblockImageCmd.label;"
- accesskey=""
- oncommand="cookieContextMenu.unblockImage();"
- insertafter="context-viewimage"/>
- </popup>
-
- </overlay>
-