From 89c20656f1a7be52cd31cb611f9e2e8a2b12452b Mon Sep 17 00:00:00 2001 From: "neil%parkwaycc.co.uk" Date: Tue, 1 Jul 2008 22:15:01 +0000 Subject: [PATCH] Bug 93390 Context menu should identify server from which images will be blocked p=misager@gmail.com p=zug_treno@yahoo.com r=IanN p=wladow@gmail.com r+sr=me git-svn-id: svn://10.0.0.236/trunk@252756 18797224-902f-48f8-a5cc-f745e15eee43 --- .../permissions/imageContextOverlay.xul | 71 ++++++++++--------- .../common/contentAreaCommands.properties | 5 ++ .../permissions/imageContextOverlay.dtd | 4 -- mozilla/suite/locales/jar.mn | 1 - 4 files changed, 42 insertions(+), 39 deletions(-) delete mode 100644 mozilla/suite/locales/en-US/chrome/common/permissions/imageContextOverlay.dtd diff --git a/mozilla/suite/common/permissions/imageContextOverlay.xul b/mozilla/suite/common/permissions/imageContextOverlay.xul index 17b6ca67d55..5baa30781a7 100644 --- a/mozilla/suite/common/permissions/imageContextOverlay.xul +++ b/mozilla/suite/common/permissions/imageContextOverlay.xul @@ -37,8 +37,6 @@ ***** END LICENSE BLOCK ***** --> - - @@ -53,23 +51,6 @@ 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; @@ -102,15 +83,45 @@ initImageBlocking : function () { try { + + //Hide Block and Unblock menuitems + gContextMenu.showItem("context-blockimage", false); + gContextMenu.showItem("context-unblockimage", false); + // Block image depends on whether an image was clicked on + if (gContextMenu.onImage) { + var bundle = srGetStrBundle("chrome://communicator/locale/contentAreaCommands.properties"); + var IOService = Components.classes["@mozilla.org/network/io-service;1"] + .getService(Components.interfaces.nsIIOService); - gContextMenu.showItem - ("context-blockimage", - gContextMenu.onImage && cookieContextMenu.isBlockingImages()); - - gContextMenu.showItem - ("context-unblockimage", - gContextMenu.onImage && !cookieContextMenu.isBlockingImages()); + var uri = IOService.newURI(gContextMenu.imageURL, null, null); + try { + var serverLabel = uri.host; + if (serverLabel) { + + // Limit length to max 15 characters + serverLabel = serverLabel.replace(/^www\./i, ""); + if (serverLabel.length > 15) { + var pref = Components.classes["@mozilla.org/preferences-service;1"] + .getService(Components.interfaces.nsIPrefBranch); + var serverLabelEllipsis = pref.getComplexValue("intl.ellipsis", + Components.interfaces.nsIPrefLocalizedString).data; + serverLabel = serverLabel.substr(0, 15) + serverLabelEllipsis; + } + + // Set label and accesskey for appropriate action and unhide menuitem + var action = "block"; + var permissionmanager = Components.classes["@mozilla.org/permissionmanager;1"] + .getService(Components.interfaces.nsIPermissionManager); + if (permissionmanager.testPermission(uri, "image") == nsIPermissionManager.DENY_ACTION) + action = "unblock"; + var blockImageMenuItem = document.getElementById("context-" + action + "image"); + blockImageMenuItem.setAttribute("label", bundle.formatStringFromName(action + "Image", [serverLabel], 1)); + blockImageMenuItem.setAttribute("accesskey", bundle.GetStringFromName(action + "Image.accesskey")); + gContextMenu.showItem("context-" + action + "image", true); + } + } catch (ex) { } + } } catch (e) {} }, @@ -132,13 +143,9 @@ @@ -146,13 +153,9 @@ diff --git a/mozilla/suite/locales/en-US/chrome/common/contentAreaCommands.properties b/mozilla/suite/locales/en-US/chrome/common/contentAreaCommands.properties index 74ee0ca8062..929812277a2 100644 --- a/mozilla/suite/locales/en-US/chrome/common/contentAreaCommands.properties +++ b/mozilla/suite/locales/en-US/chrome/common/contentAreaCommands.properties @@ -2,6 +2,11 @@ searchText=Search Web for "%S" +blockImage=Block Images from %S +blockImage.accesskey=B +unblockImage=Unblock Images from %S +unblockImage.accesskey=b + SavePageTitle=Save Web Page SaveImageTitle=Save Image SaveLinkTitle=Save As diff --git a/mozilla/suite/locales/en-US/chrome/common/permissions/imageContextOverlay.dtd b/mozilla/suite/locales/en-US/chrome/common/permissions/imageContextOverlay.dtd deleted file mode 100644 index 6655e1939c9..00000000000 --- a/mozilla/suite/locales/en-US/chrome/common/permissions/imageContextOverlay.dtd +++ /dev/null @@ -1,4 +0,0 @@ - - - - diff --git a/mozilla/suite/locales/jar.mn b/mozilla/suite/locales/jar.mn index a68b76e424f..c9d6fe48f28 100644 --- a/mozilla/suite/locales/jar.mn +++ b/mozilla/suite/locales/jar.mn @@ -128,7 +128,6 @@ locale/@AB_CD@/communicator/overrides/netErrorApp.dtd (%chrome/common/overrides/netErrorApp.dtd) locale/@AB_CD@/communicator/permissions/cookieViewer.properties (%chrome/common/permissions/cookieViewer.properties) locale/@AB_CD@/communicator/permissions/cookieViewer.dtd (%chrome/common/permissions/cookieViewer.dtd) - locale/@AB_CD@/communicator/permissions/imageContextOverlay.dtd (%chrome/common/permissions/imageContextOverlay.dtd) locale/@AB_CD@/communicator/permissions/permissionsManager.dtd (%chrome/common/permissions/permissionsManager.dtd) locale/@AB_CD@/communicator/permissions/permissionsManager.properties (%chrome/common/permissions/permissionsManager.properties) locale/@AB_CD@/communicator/permissions/permissionsNavigatorOverlay.dtd (%chrome/common/permissions/permissionsNavigatorOverlay.dtd)