r17356 - in /desktop/etch/epiphany-browser/debian: certManager.js changelog epiphany-browser.install patches/21_chrome_certmanager.patch
joss at users.alioth.debian.org
joss at users.alioth.debian.org
Tue Oct 28 12:10:47 UTC 2008
Author: joss
Date: Tue Oct 28 12:10:46 2008
New Revision: 17356
URL: http://svn.debian.org/wsvn/pkg-gnome/?sc=1&rev=17356
Log:
* Backport changes from unstable.
* debian/certManager.js: this is a custom version of certManager.js
that doesn’t use deletecert.xul, which doesn’t work because of
broken argument passing.
* 21_chrome_certmanager.patch: override certManager.js with the custom
version.
* epiphany-browser.install: install it.
* Closes: #393837. Thanks to Romain Beauxis and Mike Hommey.
Added:
desktop/etch/epiphany-browser/debian/certManager.js
desktop/etch/epiphany-browser/debian/patches/21_chrome_certmanager.patch
Modified:
desktop/etch/epiphany-browser/debian/changelog
desktop/etch/epiphany-browser/debian/epiphany-browser.install
Added: desktop/etch/epiphany-browser/debian/certManager.js
URL: http://svn.debian.org/wsvn/pkg-gnome/desktop/etch/epiphany-browser/debian/certManager.js?rev=17356&op=file
==============================================================================
--- desktop/etch/epiphany-browser/debian/certManager.js (added)
+++ desktop/etch/epiphany-browser/debian/certManager.js Tue Oct 28 12:10:46 2008
@@ -1,0 +1,492 @@
+/* ***** 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/
+ *
+ * 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.org code.
+ *
+ * The Initial Developer of the Original Code is
+ * Netscape Communications Corporation.
+ * Portions created by the Initial Developer are Copyright (C) 2001
+ * the Initial Developer. All Rights Reserved.
+ *
+ * Contributor(s):
+ * Bob Lord <lord at netscape.com>
+ * Ian McGreer <mcgreer at netscape.com>
+ *
+ * Alternatively, the contents of this file may be used under the terms of
+ * either 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 ***** */
+
+const nsIFilePicker = Components.interfaces.nsIFilePicker;
+const nsFilePicker = "@mozilla.org/filepicker;1";
+const nsIX509CertDB = Components.interfaces.nsIX509CertDB;
+const nsX509CertDB = "@mozilla.org/security/x509certdb;1";
+const nsIX509Cert = Components.interfaces.nsIX509Cert;
+const nsICertTree = Components.interfaces.nsICertTree;
+const nsCertTree = "@mozilla.org/security/nsCertTree;1";
+const nsIDialogParamBlock = Components.interfaces.nsIDialogParamBlock;
+const nsDialogParamBlock = "@mozilla.org/embedcomp/dialogparam;1";
+const nsIPKIParamBlock = Components.interfaces.nsIPKIParamBlock;
+const nsPKIParamBlock = "@mozilla.org/security/pkiparamblock;1";
+const nsINSSCertCache = Components.interfaces.nsINSSCertCache;
+const nsNSSCertCache = "@mozilla.org/security/nsscertcache;1";
+
+var key;
+
+var selected_certs = [];
+var selected_cert_index = [];
+var certdb;
+
+var caTreeView;
+var serverTreeView;
+var emailTreeView;
+var userTreeView;
+
+function LoadCerts()
+{
+ window.crypto.enableSmartCardEvents = true;
+ document.addEventListener("smartcard-insert", onSmartCardChange, false);
+ document.addEventListener("smartcard-remove", onSmartCardChange, false);
+
+ certdb = Components.classes[nsX509CertDB].getService(nsIX509CertDB);
+ var certcache = Components.classes[nsNSSCertCache].createInstance(nsINSSCertCache);
+
+ certcache.cacheAllCerts();
+
+ caTreeView = Components.classes[nsCertTree]
+ .createInstance(nsICertTree);
+ caTreeView.loadCertsFromCache(certcache, nsIX509Cert.CA_CERT);
+ document.getElementById('ca-tree')
+ .treeBoxObject.view = caTreeView;
+
+ serverTreeView = Components.classes[nsCertTree]
+ .createInstance(nsICertTree);
+ serverTreeView.loadCertsFromCache(certcache, nsIX509Cert.SERVER_CERT);
+ document.getElementById('server-tree')
+ .treeBoxObject.view = serverTreeView;
+
+ emailTreeView = Components.classes[nsCertTree]
+ .createInstance(nsICertTree);
+ emailTreeView.loadCertsFromCache(certcache, nsIX509Cert.EMAIL_CERT);
+ document.getElementById('email-tree')
+ .treeBoxObject.view = emailTreeView;
+
+ userTreeView = Components.classes[nsCertTree]
+ .createInstance(nsICertTree);
+ userTreeView.loadCertsFromCache(certcache, nsIX509Cert.USER_CERT);
+ document.getElementById('user-tree')
+ .treeBoxObject.view = userTreeView;
+
+ var rowCnt = userTreeView.rowCount;
+ var enableBackupAllButton=document.getElementById('mine_backupAllButton');
+ if(rowCnt < 1) {
+ enableBackupAllButton.setAttribute("disabled",true);
+ } else {
+ enableBackupAllButton.setAttribute("enabled",true);
+ }
+
+ if (certdb.isOcspOn) {
+ document.getElementById('ocsp_info').removeAttribute("hidden");
+ }
+}
+
+function getSelectedTab()
+{
+ var selTab = document.getElementById('certMgrTabbox').selectedItem;
+ var selTabID = selTab.getAttribute('id');
+ if (selTabID == 'mine_tab') {
+ key = "my_certs";
+ } else if (selTabID == "others_tab") {
+ key = "others_certs";
+ } else if (selTabID == "websites_tab") {
+ key = "web_certs";
+ } else if (selTabID == "ca_tab") {
+ key = "ca_certs";
+ }
+ return key;
+}
+
+
+function doHelpButton() {
+ var uri = getSelectedTab();
+ openHelp(uri);
+}
+
+
+function getSelectedCerts()
+{
+ var ca_tab = document.getElementById("ca_tab");
+ var mine_tab = document.getElementById("mine_tab");
+ var others_tab = document.getElementById("others_tab");
+ var websites_tab = document.getElementById("websites_tab");
+ var items = null;
+ if (ca_tab.selected) {
+ items = caTreeView.selection;
+ } else if (mine_tab.selected) {
+ items = userTreeView.selection;
+ } else if (others_tab.selected) {
+ items = emailTreeView.selection;
+ } else if (websites_tab.selected) {
+ items = serverTreeView.selection;
+ }
+ selected_certs = [];
+ var cert = null;
+ var nr = 0;
+ if (items != null) nr = items.getRangeCount();
+ if (nr > 0) {
+ for (var i=0; i<nr; i++) {
+ var o1 = {};
+ var o2 = {};
+ items.getRangeAt(i, o1, o2);
+ var min = o1.value;
+ var max = o2.value;
+ for (var j=min; j<=max; j++) {
+ if (ca_tab.selected) {
+ cert = caTreeView.getCert(j);
+ } else if (mine_tab.selected) {
+ cert = userTreeView.getCert(j);
+ } else if (others_tab.selected) {
+ cert = emailTreeView.getCert(j);
+ } else if (websites_tab.selected) {
+ cert = serverTreeView.getCert(j);
+ }
+ if (cert) {
+ var sc = selected_certs.length;
+ selected_certs[sc] = cert;
+ selected_cert_index[sc] = j;
+ }
+ }
+ }
+ }
+}
+
+function ca_enableButtons()
+{
+ var items = caTreeView.selection;
+ var nr = items.getRangeCount();
+ var toggle="false";
+ if (nr == 0) {
+ toggle="true";
+ }
+ var edit_toggle=toggle;
+/*
+ var edit_toggle="true";
+ if (nr > 0) {
+ for (var i=0; i<nr; i++) {
+ var o1 = {};
+ var o2 = {};
+ items.getRangeAt(i, o1, o2);
+ var min = o1.value;
+ var max = o2.value;
+ var stop = false;
+ for (var j=min; j<=max; j++) {
+ var tokenName = items.tree.view.getCellText(j, "tokencol");
+ if (tokenName == "Builtin Object Token") { stop = true; } break;
+ }
+ if (stop) break;
+ }
+ if (i == nr) {
+ edit_toggle="false";
+ }
+ }
+*/
+ var enableViewButton=document.getElementById('ca_viewButton');
+ enableViewButton.setAttribute("disabled",toggle);
+ var enableEditButton=document.getElementById('ca_editButton');
+ enableEditButton.setAttribute("disabled",edit_toggle);
+ var enableDeleteButton=document.getElementById('ca_deleteButton');
+ enableDeleteButton.setAttribute("disabled",toggle);
+}
+
+function mine_enableButtons()
+{
+ var items = userTreeView.selection;
+ var toggle="false";
+ if (items.getRangeCount() == 0) {
+ toggle="true";
+ }
+ var enableViewButton=document.getElementById('mine_viewButton');
+ enableViewButton.setAttribute("disabled",toggle);
+ var enableBackupButton=document.getElementById('mine_backupButton');
+ enableBackupButton.setAttribute("disabled",toggle);
+ var enableDeleteButton=document.getElementById('mine_deleteButton');
+ enableDeleteButton.setAttribute("disabled",toggle);
+}
+
+function websites_enableButtons()
+{
+ var items = serverTreeView.selection;
+ var toggle="false";
+ if (items.getRangeCount() == 0) {
+ toggle="true";
+ }
+ var enableViewButton=document.getElementById('websites_viewButton');
+ enableViewButton.setAttribute("disabled",toggle);
+ var enableEditButton=document.getElementById('websites_editButton');
+ enableEditButton.setAttribute("disabled",toggle);
+ var enableDeleteButton=document.getElementById('websites_deleteButton');
+ enableDeleteButton.setAttribute("disabled",toggle);
+}
+
+function email_enableButtons()
+{
+ var items = emailTreeView.selection;
+ var toggle="false";
+ if (items.getRangeCount() == 0) {
+ toggle="true";
+ }
+ var enableViewButton=document.getElementById('email_viewButton');
+ enableViewButton.setAttribute("disabled",toggle);
+ var enableEditButton=document.getElementById('email_editButton');
+ enableEditButton.setAttribute("disabled",toggle);
+ var enableDeleteButton=document.getElementById('email_deleteButton');
+ enableDeleteButton.setAttribute("disabled",toggle);
+}
+
+function backupCerts()
+{
+ getSelectedCerts();
+ var numcerts = selected_certs.length;
+ if (!numcerts)
+ return;
+ var bundle = srGetStrBundle("chrome://pippki/locale/pippki.properties");
+ var fp = Components.classes[nsFilePicker].createInstance(nsIFilePicker);
+ fp.init(window,
+ bundle.GetStringFromName("chooseP12BackupFileDialog"),
+ nsIFilePicker.modeSave);
+ fp.appendFilter(bundle.GetStringFromName("file_browse_PKCS12_spec"),
+ "*.p12");
+ fp.appendFilters(nsIFilePicker.filterAll);
+ var rv = fp.show();
+ if (rv == nsIFilePicker.returnOK || rv == nsIFilePicker.returnReplace) {
+ certdb.exportPKCS12File(null, fp.file,
+ selected_certs.length, selected_certs);
+ }
+}
+
+function backupAllCerts()
+{
+ // Select all rows, then call doBackup()
+ var items = userTreeView.selection.selectAll();
+ backupCerts();
+}
+
+function editCerts()
+{
+ getSelectedCerts();
+ var numcerts = selected_certs.length;
+ if (!numcerts)
+ return;
+ for (var t=0; t<numcerts; t++) {
+ var cert = selected_certs[t];
+ var certkey = cert.dbKey;
+ var ca_tab = document.getElementById("ca_tab");
+ var others_tab = document.getElementById("others_tab");
+ if (ca_tab.selected) {
+ window.openDialog('chrome://pippki/content/editcacert.xul', certkey,
+ 'chrome,centerscreen,modal');
+ } else if (others_tab.selected) {
+ window.openDialog('chrome://pippki/content/editemailcert.xul', certkey,
+ 'chrome,centerscreen,modal');
+ } else {
+ window.openDialog('chrome://pippki/content/editsslcert.xul', certkey,
+ 'chrome,centerscreen,modal');
+ }
+ }
+}
+
+function restoreCerts()
+{
+ var bundle = srGetStrBundle("chrome://pippki/locale/pippki.properties");
+ var fp = Components.classes[nsFilePicker].createInstance(nsIFilePicker);
+ fp.init(window,
+ bundle.GetStringFromName("chooseP12RestoreFileDialog"),
+ nsIFilePicker.modeOpen);
+ fp.appendFilter(bundle.GetStringFromName("file_browse_PKCS12_spec"),
+ "*.p12; *.pfx");
+ fp.appendFilters(nsIFilePicker.filterAll);
+ if (fp.show() == nsIFilePicker.returnOK) {
+ certdb.importPKCS12File(null, fp.file);
+
+ var certcache = Components.classes[nsNSSCertCache].createInstance(nsINSSCertCache);
+ certcache.cacheAllCerts();
+ userTreeView.loadCertsFromCache(certcache, nsIX509Cert.USER_CERT);
+ userTreeView.selection.clearSelection();
+ caTreeView.loadCertsFromCache(certcache, nsIX509Cert.CA_CERT);
+ caTreeView.selection.clearSelection();
+ }
+}
+
+function deleteCerts()
+{
+ getSelectedCerts();
+ var numcerts = selected_certs.length;
+ if (!numcerts)
+ return;
+
+ var bundle = srGetStrBundle("chrome://pippki/locale/pippki.properties");
+ var selTab = document.getElementById('certMgrTabbox').selectedItem;
+ var selTabID = selTab.getAttribute('id');
+ var t;
+ var confirmtext;
+
+ if (selTabID == 'mine_tab')
+ {
+ confirmtext = bundle.GetStringFromName("deleteUserCertConfirm");
+ }
+ else if (selTabID == "websites_tab")
+ {
+ confirmtext = bundle.GetStringFromName("deleteSslCertConfirm");
+ }
+ else if (selTabID == "ca_tab")
+ {
+ confirmtext = bundle.GetStringFromName("deleteCaCertConfirm");
+ }
+ else if (selTabID == "others_tab")
+ {
+ confirmtext = bundle.GetStringFromName("deleteEmailCertConfirm");
+ }
+ else
+ {
+ return;
+ }
+
+ var oktodelete = confirm (confirmtext);
+
+ if (oktodelete) {
+ // user closed dialog with OK
+ var treeView = null;
+ var loadParam = null;
+
+ selTab = document.getElementById('certMgrTabbox').selectedItem;
+ selTabID = selTab.getAttribute('id');
+ if (selTabID == 'mine_tab') {
+ treeView = userTreeView;
+ loadParam = nsIX509Cert.USER_CERT;
+ } else if (selTabID == "others_tab") {
+ treeView = emailTreeView;
+ loadParam = nsIX509Cert.EMAIL_CERT;
+ } else if (selTabID == "websites_tab") {
+ treeView = serverTreeView;
+ loadParam = nsIX509Cert.SERVER_CERT;
+ } else if (selTabID == "ca_tab") {
+ treeView = caTreeView;
+ loadParam = nsIX509Cert.CA_CERT;
+ }
+
+ for (t=numcerts-1; t>=0; t--)
+ {
+ treeView.removeCert(selected_cert_index[t]);
+ }
+
+ treeView.selection.clearSelection();
+ }
+}
+
+function viewCerts()
+{
+ getSelectedCerts();
+ var numcerts = selected_certs.length;
+ if (!numcerts)
+ return;
+
+ for (var t=0; t<numcerts; t++) {
+ viewCertHelper(window, selected_certs[t]);
+ }
+}
+
+function addCACerts()
+{
+ var bundle = srGetStrBundle("chrome://pippki/locale/pippki.properties");
+ var fp = Components.classes[nsFilePicker].createInstance(nsIFilePicker);
+ fp.init(window,
+ bundle.GetStringFromName("importCACertsPrompt"),
+ nsIFilePicker.modeOpen);
+ fp.appendFilter(bundle.GetStringFromName("file_browse_Certificate_spec"),
+ "*.crt; *.cert; *.cer; *.pem; *.der");
+ fp.appendFilters(nsIFilePicker.filterAll);
+ if (fp.show() == nsIFilePicker.returnOK) {
+ certdb.importCertsFromFile(null, fp.file, nsIX509Cert.CA_CERT);
+ caTreeView.loadCerts(nsIX509Cert.CA_CERT);
+ caTreeView.selection.clearSelection();
+ }
+}
+
+function onSmartCardChange()
+{
+ var certcache = Components.classes[nsNSSCertCache].createInstance(nsINSSCertCache);
+ // We've change the state of the smart cards inserted or removed
+ // that means the available certs may have changed. Update the display
+ certcache.cacheAllCerts();
+ userTreeView.loadCertsFromCache(certcache, nsIX509Cert.USER_CERT);
+ userTreeView.selection.clearSelection();
+ caTreeView.loadCertsFromCache(certcache, nsIX509Cert.CA_CERT);
+ caTreeView.selection.clearSelection();
+ serverTreeView.loadCertsFromCache(certcache, nsIX509Cert.SERVER_CERT);
+ serverTreeView.selection.clearSelection();
+ emailTreeView.loadCertsFromCache(certcache, nsIX509Cert.EMAIL_CERT);
+ emailTreeView.selection.clearSelection();
+
+}
+
+function addEmailCert()
+{
+ var bundle = srGetStrBundle("chrome://pippki/locale/pippki.properties");
+ var fp = Components.classes[nsFilePicker].createInstance(nsIFilePicker);
+ fp.init(window,
+ bundle.GetStringFromName("importEmailCertPrompt"),
+ nsIFilePicker.modeOpen);
+ fp.appendFilter(bundle.GetStringFromName("file_browse_Certificate_spec"),
+ "*.crt; *.cert; *.cer; *.pem; *.der");
+ fp.appendFilters(nsIFilePicker.filterAll);
+ if (fp.show() == nsIFilePicker.returnOK) {
+ certdb.importCertsFromFile(null, fp.file, nsIX509Cert.EMAIL_CERT);
+ var certcache = Components.classes[nsNSSCertCache].createInstance(nsINSSCertCache);
+ certcache.cacheAllCerts();
+ emailTreeView.loadCertsFromCache(certcache, nsIX509Cert.EMAIL_CERT);
+ emailTreeView.selection.clearSelection();
+ caTreeView.loadCertsFromCache(certcache, nsIX509Cert.CA_CERT);
+ caTreeView.selection.clearSelection();
+ }
+}
+
+function addWebSiteCert()
+{
+ var bundle = srGetStrBundle("chrome://pippki/locale/pippki.properties");
+ var fp = Components.classes[nsFilePicker].createInstance(nsIFilePicker);
+ fp.init(window,
+ bundle.GetStringFromName("importWebSiteCertPrompt"),
+ nsIFilePicker.modeOpen);
+ fp.appendFilter(bundle.GetStringFromName("file_browse_Certificate_spec"),
+ "*.crt; *.cert; *.cer; *.pem; *.der");
+ fp.appendFilters(nsIFilePicker.filterAll);
+ if (fp.show() == nsIFilePicker.returnOK) {
+ certdb.importCertsFromFile(null, fp.file, nsIX509Cert.SERVER_CERT);
+
+ var certcache = Components.classes[nsNSSCertCache].createInstance(nsINSSCertCache);
+ certcache.cacheAllCerts();
+ serverTreeView.loadCertsFromCache(certcache, nsIX509Cert.SERVER_CERT);
+ serverTreeView.selection.clearSelection();
+ caTreeView.loadCertsFromCache(certcache, nsIX509Cert.CA_CERT);
+ caTreeView.selection.clearSelection();
+ }
+}
Modified: desktop/etch/epiphany-browser/debian/changelog
URL: http://svn.debian.org/wsvn/pkg-gnome/desktop/etch/epiphany-browser/debian/changelog?rev=17356&op=diff
==============================================================================
--- desktop/etch/epiphany-browser/debian/changelog (original)
+++ desktop/etch/epiphany-browser/debian/changelog Tue Oct 28 12:10:46 2008
@@ -1,3 +1,16 @@
+epiphany-browser (2.14.3-8) stable; urgency=low
+
+ * Backport changes from unstable.
+ * debian/certManager.js: this is a custom version of certManager.js
+ that doesnât use deletecert.xul, which doesnât work because of
+ broken argument passing.
+ * 21_chrome_certmanager.patch: override certManager.js with the custom
+ version.
+ * epiphany-browser.install: install it.
+ * Closes: #393837. Thanks to Romain Beauxis and Mike Hommey.
+
+ -- Josselin Mouette <joss at debian.org> Tue, 28 Oct 2008 13:07:50 +0100
+
epiphany-browser (2.14.3-7) stable; urgency=low
* epiphany-browser.gconf-defaults: set the default language to
Modified: desktop/etch/epiphany-browser/debian/epiphany-browser.install
URL: http://svn.debian.org/wsvn/pkg-gnome/desktop/etch/epiphany-browser/debian/epiphany-browser.install?rev=17356&op=diff
==============================================================================
--- desktop/etch/epiphany-browser/debian/epiphany-browser.install (original)
+++ desktop/etch/epiphany-browser/debian/epiphany-browser.install Tue Oct 28 12:10:46 2008
@@ -8,3 +8,4 @@
debian/tmp/usr/share/locale/*
debian/tmp/usr/share/omf/*
debian/tmp/usr/share/pixmaps/*
+debian/certManager.js /usr/share/epiphany-browser/chrome/pippki/
Added: desktop/etch/epiphany-browser/debian/patches/21_chrome_certmanager.patch
URL: http://svn.debian.org/wsvn/pkg-gnome/desktop/etch/epiphany-browser/debian/patches/21_chrome_certmanager.patch?rev=17356&op=file
==============================================================================
--- desktop/etch/epiphany-browser/debian/patches/21_chrome_certmanager.patch (added)
+++ desktop/etch/epiphany-browser/debian/patches/21_chrome_certmanager.patch Tue Oct 28 12:10:46 2008
@@ -1,0 +1,7 @@
+--- data/chrome/epiphany.manifest.in.orig 2008-10-28 12:53:40.533203750 +0100
++++ data/chrome/epiphany.manifest.in 2008-10-28 12:54:27.472137250 +0100
+@@ -1,3 +1,4 @@
+ override chrome://branding/locale/brand.properties file://@CHROMEDIR@/branding/brand.properties
+ override chrome://branding/locale/brand.dtd file://@CHROMEDIR@/branding/brand.dtd
+ override chrome://global/content/about.xhtml file://@CHROMEDIR@/global/about.xhtml
++override chrome://pippki/content/certManager.js file://@CHROMEDIR@/pippki/certManager.js
More information about the pkg-gnome-commits
mailing list