r17353 - in /desktop/unstable/epiphany-browser/debian: certManager.js changelog epiphany-browser-data.install patches/21_chrome_certmanager.patch patches/series

joss at users.alioth.debian.org joss at users.alioth.debian.org
Tue Oct 28 11:31:52 UTC 2008


Author: joss
Date: Tue Oct 28 11:31:52 2008
New Revision: 17353

URL: http://svn.debian.org/wsvn/pkg-gnome/?sc=1&rev=17353
Log:
* The OMGWTFBBQ release.
* 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-data.install: install it.
* Closes: #393837. Thanks to Romain Beauxis and Mike Hommey.

Added:
    desktop/unstable/epiphany-browser/debian/certManager.js
    desktop/unstable/epiphany-browser/debian/epiphany-browser-data.install
    desktop/unstable/epiphany-browser/debian/patches/21_chrome_certmanager.patch
Modified:
    desktop/unstable/epiphany-browser/debian/changelog
    desktop/unstable/epiphany-browser/debian/patches/series

Added: desktop/unstable/epiphany-browser/debian/certManager.js
URL: http://svn.debian.org/wsvn/pkg-gnome/desktop/unstable/epiphany-browser/debian/certManager.js?rev=17353&op=file
==============================================================================
--- desktop/unstable/epiphany-browser/debian/certManager.js (added)
+++ desktop/unstable/epiphany-browser/debian/certManager.js Tue Oct 28 11:31:52 2008
@@ -1,0 +1,616 @@
+/* ***** 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>
+ *   Kai Engert <kengert at redhat.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_tree_items = [];
+var selected_index = [];
+var certdb;
+
+var caTreeView;
+var serverTreeView;
+var emailTreeView;
+var userTreeView;
+var orphanTreeView;
+
+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;
+
+  orphanTreeView = Components.classes[nsCertTree]
+                      .createInstance(nsICertTree);
+  orphanTreeView.loadCertsFromCache(certcache, nsIX509Cert.UNKNOWN_CERT);
+  document.getElementById('orphan-tree')
+   .treeBoxObject.view = orphanTreeView;
+
+  var rowCnt = userTreeView.rowCount;
+  var enableBackupAllButton=document.getElementById('mine_backupAllButton');
+  if(rowCnt < 1) {
+    enableBackupAllButton.setAttribute("disabled",true);
+  } else  {
+    enableBackupAllButton.setAttribute("enabled",true);
+  }
+}
+
+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 orphan_tab = document.getElementById("orphan_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;
+  } else if (orphan_tab.selected) {
+    items = orphanTreeView.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);
+        } else if (orphan_tab.selected) {
+          cert = orphanTreeView.getCert(j);
+        }
+        if (cert) {
+          var sc = selected_certs.length;
+          selected_certs[sc] = cert;
+          selected_index[sc] = j;
+        }
+      }
+    }
+  }
+}
+
+function getSelectedTreeItems()
+{
+  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 orphan_tab = document.getElementById("orphan_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;
+  } else if (orphan_tab.selected) {
+    items = orphanTreeView.selection;
+  }
+  selected_certs = [];
+  selected_tree_items = [];
+  selected_index = [];
+  var tree_item = 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) {
+          tree_item = caTreeView.getTreeItem(j);
+        } else if (mine_tab.selected) {
+          tree_item = userTreeView.getTreeItem(j);
+        } else if (others_tab.selected) {
+          tree_item = emailTreeView.getTreeItem(j);
+        } else if (websites_tab.selected) {
+          tree_item = serverTreeView.getTreeItem(j);
+        } else if (orphan_tab.selected) {
+          tree_item = orphanTreeView.getTreeItem(j);
+        }
+        if (tree_item) {
+          var sc = selected_tree_items.length;
+          selected_tree_items[sc] = tree_item;
+          selected_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 enableExportButton=document.getElementById('ca_exportButton');
+  enableExportButton.setAttribute("disabled",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 count_ranges = items.getRangeCount();
+
+  var enable_delete = false;
+  var enable_view = false;
+  var enable_edit = false;
+
+  if (count_ranges > 0) {
+    enable_delete = true;
+  }
+
+  if (count_ranges == 1) {
+    var o1 = {};
+    var o2 = {};
+    items.getRangeAt(0, o1, o2); // the first range
+    if (o1.value == o2.value) {
+      // only a single item is selected
+      try {
+        var ti = serverTreeView.getTreeItem(o1.value);
+        if (ti) {
+          if (ti.cert) {
+            enable_view = true;
+          }
+          // Trust editing is not possible for override
+          // entries that are bound to host:port,
+          // where the cert is stored for convenince only.
+          if (!ti.hostPort.length) {
+            enable_edit = true;
+          }
+        }
+      }
+      catch (e) {
+      }
+    }
+  }
+
+  var enableViewButton=document.getElementById('websites_viewButton');
+  enableViewButton.setAttribute("disabled", !enable_view);
+  var enableEditButton=document.getElementById('websites_editButton');
+  enableEditButton.setAttribute("disabled", !enable_edit);
+  var enableExportButton=document.getElementById('websites_exportButton');
+  enableExportButton.setAttribute("disabled", !enable_view);
+  var enableDeleteButton=document.getElementById('websites_deleteButton');
+  enableDeleteButton.setAttribute("disabled", !enable_delete);
+}
+
+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 enableExportButton=document.getElementById('email_exportButton');
+  enableExportButton.setAttribute("disabled",toggle);
+  var enableDeleteButton=document.getElementById('email_deleteButton');
+  enableDeleteButton.setAttribute("disabled",toggle);
+}
+
+function orphan_enableButtons()
+{
+  var items = orphanTreeView.selection;
+  var toggle="false";
+  if (items.getRangeCount() == 0) {
+    toggle="true";
+  }
+  var enableViewButton=document.getElementById('orphan_viewButton');
+  enableViewButton.setAttribute("disabled",toggle);
+  var enableExportButton=document.getElementById('orphan_exportButton');
+  enableExportButton.setAttribute("disabled",toggle);
+  var enableDeleteButton=document.getElementById('orphan_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;
+    if (document.getElementById("ca_tab").selected) {
+      window.openDialog('chrome://pippki/content/editcacert.xul', certkey,
+                        'chrome,centerscreen,modal');
+    } else if (document.getElementById("others_tab").selected) {
+      window.openDialog('chrome://pippki/content/editemailcert.xul', certkey,
+                        'chrome,centerscreen,modal');
+    } else if (!document.getElementById("websites_tab").selected
+               || !serverTreeView.isHostPortOverride(selected_index[t])) {
+      // If the web sites tab is select, trust editing is only allowed
+      // if the entry refers to a real cert, but not if it's
+      // a host:port override, where the cert is stored for convenince only.
+      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 exportCerts()
+{
+  getSelectedCerts();
+  var numcerts = selected_certs.length;
+  if (!numcerts)
+    return;
+
+  for (var t=0; t<numcerts; t++) {
+    exportToFile(window, selected_certs[t]);
+  }
+}
+
+function deleteCerts()
+{
+  getSelectedTreeItems();
+  var numcerts = selected_tree_items.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;
+
+  if (selTabID == 'mine_tab') 
+  {
+    confirmtext = bundle.GetStringFromName("deleteUserCertConfirm");
+  } 
+  else if (selTabID == "websites_tab") 
+  {
+    confirmtext = bundle.GetStringFromName("deleteSslCertConfirm3");
+  } 
+  else if (selTabID == "ca_tab") 
+  {
+    confirmtext = bundle.GetStringFromName("deleteCaCertConfirm");
+  }
+  else if (selTabID == "others_tab") 
+  {
+    confirmtext = bundle.GetStringFromName("deleteEmailCertConfirm");
+  }
+  else if (selTabID == "orphan_tab") 
+  {
+    confirmtext = bundle.GetStringFromName("deleteOrphanCertConfirm");
+  }
+  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;
+    } else if (selTabID == "others_tab") {
+      treeView = emailTreeView;
+    } else if (selTabID == "websites_tab") {
+      treeView = serverTreeView;
+    } else if (selTabID == "ca_tab") {
+      treeView = caTreeView;
+    } else if (selTabID == "orphan_tab") {
+      treeView = orphanTreeView;
+    }
+
+    for (t=numcerts-1; t>=0; t--)
+    {
+      treeView.deleteEntryObject(selected_index[t]);
+    }
+
+    selected_tree_items = [];
+    selected_index = [];
+    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();
+  orphanTreeView.loadCertsFromCache(certcache, nsIX509Cert.UNKNOWN_CERT);
+  orphanTreeView.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("importServerCertPrompt"),
+          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();
+  }
+}
+
+function addException()
+{
+  window.openDialog('chrome://pippki/content/exceptionDialog.xul', "",
+                    'chrome,centerscreen,modal');
+  var certcache = Components.classes[nsNSSCertCache].createInstance(nsINSSCertCache);
+  certcache.cacheAllCerts();
+  serverTreeView.loadCertsFromCache(certcache, nsIX509Cert.SERVER_CERT);
+  serverTreeView.selection.clearSelection();
+  orphanTreeView.loadCertsFromCache(certcache, nsIX509Cert.UNKNOWN_CERT);
+  orphanTreeView.selection.clearSelection();
+}
+

Modified: desktop/unstable/epiphany-browser/debian/changelog
URL: http://svn.debian.org/wsvn/pkg-gnome/desktop/unstable/epiphany-browser/debian/changelog?rev=17353&op=diff
==============================================================================
--- desktop/unstable/epiphany-browser/debian/changelog (original)
+++ desktop/unstable/epiphany-browser/debian/changelog Tue Oct 28 11:31:52 2008
@@ -1,3 +1,16 @@
+epiphany-browser (2.22.3-6) unstable; urgency=low
+
+  * The OMGWTFBBQ release.
+  * 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-data.install: install it.
+  * Closes: #393837. Thanks to Romain Beauxis and Mike Hommey.
+
+ -- Josselin Mouette <joss at debian.org>  Tue, 28 Oct 2008 12:17:03 +0100
+
 epiphany-browser (2.22.3-5) unstable; urgency=low
 
   * Fix first changelog entry. Closes: #501357.

Added: desktop/unstable/epiphany-browser/debian/epiphany-browser-data.install
URL: http://svn.debian.org/wsvn/pkg-gnome/desktop/unstable/epiphany-browser/debian/epiphany-browser-data.install?rev=17353&op=file
==============================================================================
--- desktop/unstable/epiphany-browser/debian/epiphany-browser-data.install (added)
+++ desktop/unstable/epiphany-browser/debian/epiphany-browser-data.install Tue Oct 28 11:31:52 2008
@@ -1,0 +1,1 @@
+debian/certManager.js /usr/share/epiphany-browser/chrome/pippki/

Added: desktop/unstable/epiphany-browser/debian/patches/21_chrome_certmanager.patch
URL: http://svn.debian.org/wsvn/pkg-gnome/desktop/unstable/epiphany-browser/debian/patches/21_chrome_certmanager.patch?rev=17353&op=file
==============================================================================
--- desktop/unstable/epiphany-browser/debian/patches/21_chrome_certmanager.patch (added)
+++ desktop/unstable/epiphany-browser/debian/patches/21_chrome_certmanager.patch Tue Oct 28 11:31:52 2008
@@ -1,0 +1,9 @@
+Index: epiphany-2.22.3/data/chrome/app-chrome.manifest.in
+===================================================================
+--- epiphany-2.22.3.orig/data/chrome/app-chrome.manifest.in	2008-10-28 12:07:19.752421675 +0100
++++ epiphany-2.22.3/data/chrome/app-chrome.manifest.in	2008-10-28 12:06:49.968423011 +0100
+@@ -2,3 +2,4 @@
+ override chrome://branding/locale/brand.dtd file://@CHROMEDIR@/branding/brand.dtd
+ override chrome://global/content/about.xhtml file://@CHROMEDIR@/global/about.xhtml
+ override chrome://global/locale/netErrorApp.dtd file://@CHROMEDIR@/global/netError.dtd
++override chrome://pippki/content/certManager.js file://@CHROMEDIR@/pippki/certManager.js

Modified: desktop/unstable/epiphany-browser/debian/patches/series
URL: http://svn.debian.org/wsvn/pkg-gnome/desktop/unstable/epiphany-browser/debian/patches/series?rev=17353&op=diff
==============================================================================
--- desktop/unstable/epiphany-browser/debian/patches/series (original)
+++ desktop/unstable/epiphany-browser/debian/patches/series Tue Oct 28 11:31:52 2008
@@ -19,4 +19,5 @@
 18_gnome-vfs-for-helper-display.patch
 19_passwords_crash.patch
 20_print_garbage.patch
+21_chrome_certmanager.patch
 99_autoreconf.patch




More information about the pkg-gnome-commits mailing list