Bug 537219 - Port |Bug 442730 - composition security options for encrypt should only be one menu item (with checkbox) like signing| to SeaMonkey; (Av1a) Just port it.
authorSerge Gautherie <sgautherie.bz@free.fr>
Fri, 19 Nov 2010 05:53:57 +0100
changeset 6721 472dbfde9ffdae3253d68c3e8b3e320d16c001e9
parent 6720 58f105a58d5b2f12de3daed55f115ffd465f31a5
child 6722 8fe26f626337650104b7b9503409690226b1efdf
push id5164
push usersgautherie.bz@free.fr
push dateFri, 19 Nov 2010 04:54:21 +0000
treeherdercomm-central@8fe26f626337 [default view] [failures only]
perfherder[talos] [build metrics] [platform microbench] (compared to previous push)
bugs537219, 442730
Bug 537219 - Port |Bug 442730 - composition security options for encrypt should only be one menu item (with checkbox) like signing| to SeaMonkey; (Av1a) Just port it. r+sr=neil.
mailnews/extensions/smime/content/msgCompSMIMEOverlay.js
mailnews/extensions/smime/content/msgCompSMIMEOverlay.xul
suite/locales/en-US/chrome/mailnews/smime/msgCompSMIMEOverlay.dtd
--- a/mailnews/extensions/smime/content/msgCompSMIMEOverlay.js
+++ b/mailnews/extensions/smime/content/msgCompSMIMEOverlay.js
@@ -16,17 +16,17 @@
  *
  * The Initial Developer of the Original Code is
  * Netscape Communications Corporation.
  * Portions created by the Initial Developer are Copyright (C) 1998-2001
  * the Initial Developer. All Rights Reserved.
  *
  * Contributor(s):
  *   ddrinan@netscape.com
- *   Scott MacGreogr <mscott@netscape.com>
+ *   Scott MacGregor <mscott@netscape.com>
  *
  * Alternatively, the contents of this file may be used under the terms of
  * either of the GNU General Public License Version 2 or later (the "GPL"),
  * or the GNU Lesser General Public License Version 2.1 or later (the "LGPL"),
  * in which case the provisions of the GPL or the LGPL are applicable instead
  * of those above. If you wish to allow use of your version of this file only
  * under the terms of either the GPL or the LGPL, and not to allow others to
  * use your version of this file under the terms of the MPL, indicate your
@@ -146,48 +146,46 @@ function showNeedSetupInfo()
     promptService.confirmEx(window,
                             brandBundle.getString("brandShortName"),
                             compSmimeBundle.getString("NeedSetup"),
                             ifps.STD_YES_NO_BUTTONS, 0, 0, 0, null, {});
   if (buttonPressed == 0)
     openHelp("sign-encrypt", "chrome://communicator/locale/help/suitehelp.rdf");
 }
 
-function noEncryption()
-{
-  if (!gSMFields)
-    return;
-
-  gSMFields.requireEncryptMessage = false;
-  setNoEncryptionUI();
-}
-
-function encryptMessage()
+function toggleEncryptMessage()
 {
   if (!gSMFields)
     return;
 
-  if (!gCurrentIdentity.getUnicharAttribute("encryption_cert_name"))
+  gSMFields.requireEncryptMessage = !gSMFields.requireEncryptMessage;
+
+  if (gSMFields.requireEncryptMessage)
   {
-    gSMFields.requireEncryptMessage = false;
+    // Make sure we have a cert.
+    if (!gCurrentIdentity.getUnicharAttribute("encryption_cert_name"))
+    {
+      gSMFields.requireEncryptMessage = false;
+      showNeedSetupInfo();
+      return;
+    }
+
+    setEncryptionUI();
+  }
+  else
+  {
     setNoEncryptionUI();
-    showNeedSetupInfo();
-    return;
   }
-
-  gSMFields.requireEncryptMessage = true;
-  setEncryptionUI();
 }
 
-function signMessage()
+function toggleSignMessage()
 {
   if (!gSMFields)
     return;
 
-  // toggle
   gSMFields.signMessage = !gSMFields.signMessage;
 
   if (gSMFields.signMessage) // make sure we have a cert name...
   {
     if (!gCurrentIdentity.getUnicharAttribute("signing_cert_name"))
     {
       gSMFields.signMessage = false;
       showNeedSetupInfo();
@@ -204,44 +202,38 @@ function signMessage()
 
 function setSecuritySettings(menu_id)
 {
   if (!gSMFields)
     return;
 
   document.getElementById("menu_securityEncryptRequire" + menu_id)
           .setAttribute("checked", gSMFields.requireEncryptMessage);
-  document.getElementById("menu_securityNoEncryption" + menu_id)
-          .setAttribute("checked", !gSMFields.requireEncryptMessage);
   document.getElementById("menu_securitySign" + menu_id)
           .setAttribute("checked", gSMFields.signMessage);
 }
 
 function setNextCommand(what)
 {
   gNextSecurityButtonCommand = what;
 }
 
 function doSecurityButton()
 {
   var what = gNextSecurityButtonCommand;
   gNextSecurityButtonCommand = "";
 
   switch (what)
   {
-    case "noEncryption":
-      noEncryption();
-      break;
-
     case "encryptMessage":
-      encryptMessage();
+      toggleEncryptMessage();
       break;
 
     case "signMessage":
-      signMessage();
+      toggleSignMessage();
       break;
 
     case "show":
     default:
       showMessageComposeSecurityStatus();
   }
 }
 
--- a/mailnews/extensions/smime/content/msgCompSMIMEOverlay.xul
+++ b/mailnews/extensions/smime/content/msgCompSMIMEOverlay.xul
@@ -1,9 +1,9 @@
-<?xml version="1.0"?> 
+<?xml version="1.0"?>
 <!-- ***** BEGIN LICENSE BLOCK *****
    - Version: MPL 1.1/GPL 2.0/LGPL 2.1
    -
    - The contents of this file are subject to the Mozilla 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/MPL/
    -
@@ -17,79 +17,88 @@
    -
    - The Initial Developer of the Original Code is
    - Netscape Communications Corporation.
    - Portions created by the Initial Developer are Copyright (C) 1999
    - the Initial Developer. All Rights Reserved.
    -
    - Contributor(s):
    -   David Drinan <ddrinan@netscape.com>
-   -   Scott MacGregor <mscott@netscape.com
+   -   Scott MacGregor <mscott@netscape.com>
    -
    - Alternatively, the contents of this file may be used under the terms of
    - either of the GNU General Public License Version 2 or later (the "GPL"),
    - or the GNU Lesser General Public License Version 2.1 or later (the "LGPL"),
    - in which case the provisions of the GPL or the LGPL are applicable instead
    - of those above. If you wish to allow use of your version of this file only
    - under the terms of either the GPL or the LGPL, and not to allow others to
    - use your version of this file under the terms of the MPL, indicate your
    - decision by deleting the provisions above and replace them with the notice
    - and other provisions required by the GPL or the LGPL. If you do not delete
    - the provisions above, a recipient may use your version of this file under
    - the terms of any one of the MPL, the GPL or the LGPL.
    -
    - ***** END LICENSE BLOCK ***** -->
 
 
-<?xml-stylesheet href="chrome://messenger/skin/smime/msgCompSMIMEOverlay.css" type="text/css"?> 
+<?xml-stylesheet href="chrome://messenger/skin/smime/msgCompSMIMEOverlay.css" type="text/css"?>
 
 <!DOCTYPE overlay SYSTEM "chrome://messenger-smime/locale/msgCompSMIMEOverlay.dtd">
 
 <overlay xmlns="http://www.mozilla.org/keymaster/gatekeeper/there.is.only.xul">
 
   <script type="application/javascript" src="chrome://messenger-smime/content/msgCompSMIMEOverlay.js"/>
 
   <window id="msgcomposeWindow">
     <broadcaster id="securityStatus" crypto="" signing=""/>
     <observes element="securityStatus" attribute="crypto" />
     <observes element="securityStatus" attribute="signing" />
     <stringbundle id="bundle_comp_smime" src="chrome://messenger-smime/locale/msgCompSMIMEOverlay.properties"/>
     <stringbundle id="bundle_brand" src="chrome://branding/locale/brand.properties"/>
   </window>
 
-  <menupopup id="optionsMenuPopup">
-    <menuseparator insertafter="fccMenu"/>
-    <menu label="&securityMenu.label;" accesskey="&securityMenu.accesskey;">
-      <menupopup onpopupshowing="setSecuritySettings(1)">
-        <menuitem id="menu_securityNoEncryption1" type="radio" name="encryptmessage" 
-          accesskey="&menu_securityNoEncryption.accesskey;" label="&menu_securityNoEncryption.label;" oncommand="noEncryption()"/>
-        <menuitem id="menu_securityEncryptRequire1" type="radio" name="encryptmessage" 
-          accesskey="&menu_securityEncryptRequire.accesskey;" label="&menu_securityEncryptRequire.label;" oncommand="encryptMessage()"/>
-        <menuseparator/>
-        <menuitem id="menu_securitySign1" type="checkbox" accesskey="&menu_securitySign.accesskey;" label="&menu_securitySign.label;" oncommand="signMessage()"/>
-      </menupopup>
-    </menu>
+  <menupopup id="optionsMenuPopup"
+             onpopupshowing="setSecuritySettings(1);">
+    <menuseparator id="smimeOptionsSeparator"/>
+
+    <menuitem id="menu_securityEncryptRequire1"
+              type="checkbox"
+              label="&menu_securityEncryptRequire.label;"
+              accesskey="&menu_securityEncryptRequire.accesskey;"
+              oncommand="toggleEncryptMessage();"/>
+    <menuitem id="menu_securitySign1"
+              type="checkbox"
+              label="&menu_securitySign.label;"
+              accesskey="&menu_securitySign.accesskey;"
+              oncommand="toggleSignMessage();"/>
   </menupopup>
 
   <toolbarpalette id="MsgComposeToolbarPalette">
     <toolbarbutton id="button-security"
                    type="menu-button"
                    class="toolbarbutton-1"
                    label="&securityButton.label;"
                    tooltiptext="&securityButton.tooltip;"
                    oncommand="doSecurityButton();">
-      <menupopup onpopupshowing="setSecuritySettings(2)">
-        <menuitem id="menu_securityNoEncryption2" type="radio" name="encryptmessage" 
-          accesskey="&menu_securityNoEncryption.accesskey;" label="&menu_securityNoEncryption.label;" oncommand="setNextCommand('noEncryption');"/>
-        <menuitem id="menu_securityEncryptRequire2" type="radio" name="encryptmessage" 
-          accesskey="&menu_securityEncryptRequire.accesskey;" label="&menu_securityEncryptRequire.label;" oncommand="setNextCommand('encryptMessage')"/>
-        <menuseparator/>
-        <menuitem id="menu_securitySign2" type="checkbox" accesskey="&menu_securitySign.accesskey;" label="&menu_securitySign.label;" oncommand="setNextCommand('signMessage');"/>
-        <menuseparator/>
-        <menuitem id="menu_securityStatus2" accesskey="&menu_securityStatus.accesskey;" label="&menu_securityStatus.label;" oncommand="setNextCommand('show');"/>
+      <menupopup onpopupshowing="setSecuritySettings(2);">
+        <menuitem id="menu_securityEncryptRequire2"
+                  type="checkbox"
+                  label="&menu_securityEncryptRequire.label;"
+                  accesskey="&menu_securityEncryptRequire.accesskey;"
+                  oncommand="setNextCommand('encryptMessage');"/>
+        <menuitem id="menu_securitySign2"
+                  type="checkbox"
+                  label="&menu_securitySign.label;"
+                  accesskey="&menu_securitySign.accesskey;"
+                  oncommand="setNextCommand('signMessage');"/>
+        <menuseparator id="smimeToolbarButtonSeparator"/>
+        <menuitem id="menu_securityStatus2"
+                  label="&menu_securityStatus.label;"
+                  accesskey="&menu_securityStatus.accesskey;"
+                  oncommand="setNextCommand('show');"/>
       </menupopup>
     </toolbarbutton>
   </toolbarpalette>
 
   <statusbar id="status-bar">
     <statusbarpanel insertbefore="offline-status" class="statusbarpanel-iconic" collapsed="true"
       id="signing-status" oncommand="showMessageComposeSecurityStatus();"/>
     <statusbarpanel insertbefore="offline-status" class="statusbarpanel-iconic" collapsed="true"
--- a/suite/locales/en-US/chrome/mailnews/smime/msgCompSMIMEOverlay.dtd
+++ b/suite/locales/en-US/chrome/mailnews/smime/msgCompSMIMEOverlay.dtd
@@ -1,21 +1,15 @@
 <!--LOCALIZATION NOTE msgCompSMIMEOverlay.dtd UI for s/mime hooks in message composition -->
 
-<!ENTITY securityMenu.label "Security">
-<!ENTITY securityMenu.accesskey "e">
-
 <!ENTITY menu_securityEncryptRequire.label "Encrypt This Message">
 <!ENTITY menu_securityEncryptRequire.accesskey "E">
 
-<!ENTITY menu_securityNoEncryption.label "Do Not Encrypt This Message">
-<!ENTITY menu_securityNoEncryption.accesskey "N">
-
 <!ENTITY menu_securitySign.label "Digitally Sign This Message">
-<!ENTITY menu_securitySign.accesskey "S">
+<!ENTITY menu_securitySign.accesskey "M">
 
 <!ENTITY menu_securityStatus.label "View Security Info">
 <!ENTITY menu_securityStatus.accesskey "I">
 
 <!ENTITY securityButton.label "Security">
 <!ENTITY securityButton.tooltip "View or change security settings">
 
 <!ENTITY menu_viewSecurityStatus.label "Message Security Info">