commit 2725e43b1301692b2bfe67e5449bb7a3d5b31bef parent 6e929bbaa08abeec3b87e240b2ef2e8fe66ca6dd Author: Simon Kornblith <simon@simonster.com> Date: Mon, 27 Feb 2012 20:30:09 -0500 Don't try to get key for null Diffstat:
| M | chrome/content/zotero/xpcom/cookieSandbox.js | | | 38 | ++++++++++++++++++++------------------ |
1 file changed, 20 insertions(+), 18 deletions(-)
diff --git a/chrome/content/zotero/xpcom/cookieSandbox.js b/chrome/content/zotero/xpcom/cookieSandbox.js @@ -141,38 +141,40 @@ Zotero.CookieSandbox.Observer = new function() { notificationCallbacks = channel.notificationCallbacks; // try the notification callbacks - trackedBy = this.trackedInterfaceRequestors.get(notificationCallbacks); - if(trackedBy) { - tested = true; - } else { - // try the browser - try { - browser = notificationCallbacks.getInterface(Ci.nsIWebNavigation) - .QueryInterface(Ci.nsIDocShell).chromeEventHandler; - } catch(e) {} - if(browser) { + if(notificationCallbacks) { + trackedBy = this.trackedInterfaceRequestors.get(notificationCallbacks); + if(trackedBy) { tested = true; - trackedBy = this.trackedBrowsers.get(browser); } else { - // try the document for the load group + // try the browser try { - browser = channel.loadGroup.notificationCallbacks.getInterface(Ci.nsIWebNavigation) + browser = notificationCallbacks.getInterface(Ci.nsIWebNavigation) .QueryInterface(Ci.nsIDocShell).chromeEventHandler; } catch(e) {} if(browser) { tested = true; trackedBy = this.trackedBrowsers.get(browser); } else { - // try getting as an XHR or nsIWBP + // try the document for the load group try { - notificationCallbacks.QueryInterface(Components.interfaces.nsIXMLHttpRequest); - tested = true; + browser = channel.loadGroup.notificationCallbacks.getInterface(Ci.nsIWebNavigation) + .QueryInterface(Ci.nsIDocShell).chromeEventHandler; } catch(e) {} - if(!tested) { + if(browser) { + tested = true; + trackedBy = this.trackedBrowsers.get(browser); + } else { + // try getting as an XHR or nsIWBP try { - notificationCallbacks.QueryInterface(Components.interfaces.nsIWebBrowserPersist); + notificationCallbacks.QueryInterface(Components.interfaces.nsIXMLHttpRequest); tested = true; } catch(e) {} + if(!tested) { + try { + notificationCallbacks.QueryInterface(Components.interfaces.nsIWebBrowserPersist); + tested = true; + } catch(e) {} + } } } }