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)