From e151eafd75adf7ed2c5d771d02d07d5a17841234 Mon Sep 17 00:00:00 2001 From: Marco Pesenti Gritti Date: Sun, 15 Jun 2008 02:53:51 +0000 Subject: Support certificate exceptions. --- diff --git a/browser.py b/browser.py index 208ff93..39a697f 100644 --- a/browser.py +++ b/browser.py @@ -67,6 +67,23 @@ class GetSourceListener(gobject.GObject): def onSecurityChange(self, progress, request, state): pass +class CommandListener(object): + _com_interfaces_ = interfaces.nsIDOMEventListener + def __init__(self, window): + self._window = window + + def handleEvent(self, event): + if not event.isTrusted: + return + + uri = event.originalTarget.ownerDocument.documentURI + if not uri.startswith('about:neterror?e=nssBadCert'): + return + + cls = components.classes['@sugarlabs.org/add-cert-exception;1'] + cert_exception = cls.createInstance(interfaces.hulahopAddCertException) + cert_exception.showDialog(self._window) + class Browser(WebView): AGENT_SHEET = os.path.join(activity.get_bundle_path(), @@ -106,7 +123,11 @@ class Browser(WebView): listener = xpcom.server.WrapObject(ContentInvoker(self), interfaces.nsIDOMEventListener) - self.get_window_root().addEventListener('click', listener, False) + self.window_root.addEventListener('click', listener, False) + + listener = xpcom.server.WrapObject(CommandListener(self.dom_window), + interfaces.nsIDOMEventListener) + self.window_root.addEventListener('command', listener, False) def get_session(self): return sessionstore.get_session(self) -- cgit v0.9.1