Bug 569097 - e10s HTTP: Let HttpChannelParent::GetInterface result with NO_INTERFACE for nsIBadCertListener2. r=Jae-Seong.
authorJason Duell <jduell.mcbugs@gmail.com>
Tue, 01 Jun 2010 14:52:19 -0700
changeset 46889 f38dd60fc3841872ca75c43146a43b039e4ad55e
parent 46888 0292f7330100e4550ae76a547fd9751af179038d
child 46890 ae03b58ae4882cc6f0d7144b3e77e1f939723c67
push idunknown
push userunknown
push dateunknown
reviewersJae-Seong
bugs569097
milestone1.9.3a5pre
Bug 569097 - e10s HTTP: Let HttpChannelParent::GetInterface result with NO_INTERFACE for nsIBadCertListener2. r=Jae-Seong.
netwerk/protocol/http/src/HttpChannelParent.cpp
--- a/netwerk/protocol/http/src/HttpChannelParent.cpp
+++ b/netwerk/protocol/http/src/HttpChannelParent.cpp
@@ -40,16 +40,17 @@
 
 #include "mozilla/net/HttpChannelParent.h"
 #include "nsHttpChannel.h"
 #include "nsHttpHandler.h"
 #include "nsNetUtil.h"
 #include "nsISupportsPriority.h"
 #include "nsIAuthPromptProvider.h"
 #include "nsIDocShellTreeItem.h"
+#include "nsIBadCertListener2.h"
 
 namespace mozilla {
 namespace net {
 
 // C++ file contents
 HttpChannelParent::HttpChannelParent()
 : mIPCClosed(false)
 {
@@ -258,20 +259,21 @@ HttpChannelParent::GetInterface(const ns
       // The likely solution here is for this class to implement nsIChannelEventSink
       // and nsIHttpEventSink (and forward calls to any real sinks in the child), in
       // which case QueryInterface() will do the work here and these if statements
       // can be eventually discarded.
       aIID.Equals(NS_GET_IID(nsIChannelEventSink)) || 
       aIID.Equals(NS_GET_IID(nsIHttpEventSink))  ||
       // FIXME: application cache (bug 536295):
       aIID.Equals(NS_GET_IID(nsIApplicationCacheContainer)) ||
-      // FIXME:  progress notifications
       aIID.Equals(NS_GET_IID(nsIProgressEventSink)) ||
       // FIXME:  bug 561830: when fixed, we shouldn't be asked for this interface
-      aIID.Equals(NS_GET_IID(nsIDocShellTreeItem))) 
+      aIID.Equals(NS_GET_IID(nsIDocShellTreeItem)) ||
+      // Let this return NS_ERROR_NO_INTERFACE: it's OK to not provide it.
+      aIID.Equals(NS_GET_IID(nsIBadCertListener2))) 
   {
     return QueryInterface(aIID, result);
   } 
 
   // Interface we haven't dealt with yet. Make sure we know by dying.
   // - use "grep -ri [uuid] ROOT_SRC_DIR" with the uuid from the printf to
   //   find the offending interface.
   // - FIXME: make non-fatal before we ship