From 04eaaa7caf0ce2870e2fca4bc005191e47520a77 Mon Sep 17 00:00:00 2001 From: "bienvenu%netscape.com" Date: Wed, 4 Jul 2001 02:53:18 +0000 Subject: [PATCH] fix copying news messages while offline r=naving, sr=mscott 88984 git-svn-id: svn://10.0.0.236/trunk@98607 18797224-902f-48f8-a5cc-f745e15eee43 --- mozilla/mailnews/news/src/nsNntpService.cpp | 26 ++++++++++++++++++++- 1 file changed, 25 insertions(+), 1 deletion(-) diff --git a/mozilla/mailnews/news/src/nsNntpService.cpp b/mozilla/mailnews/news/src/nsNntpService.cpp index 07a55e48fa4..fd5a0d759ed 100644 --- a/mozilla/mailnews/news/src/nsNntpService.cpp +++ b/mozilla/mailnews/news/src/nsNntpService.cpp @@ -294,14 +294,38 @@ nsNntpService::DisplayMessage(const char* aMessageURI, nsISupports * aDisplayCon rv = docShell->LoadURI(url, loadInfo, nsIWebNavigation::LOAD_FLAGS_NONE); } else + { + nsCOMPtr aStreamListener = do_QueryInterface(aDisplayConsumer, &rv); + if (NS_SUCCEEDED(rv) && aStreamListener) + { + nsCOMPtr aChannel; + nsCOMPtr aLoadGroup; + nsCOMPtr mailnewsUrl = do_QueryInterface(url, &rv); + if (NS_SUCCEEDED(rv) && mailnewsUrl) + { + if (aMsgWindow) + mailnewsUrl->SetMsgWindow(aMsgWindow); + mailnewsUrl->GetLoadGroup(getter_AddRefs(aLoadGroup)); + } + rv = NewChannel(url, getter_AddRefs(aChannel)); + if (NS_FAILED(rv)) return rv; + + rv = aChannel->SetLoadGroup(aLoadGroup); + if (NS_FAILED(rv)) return rv; + + nsCOMPtr aCtxt = do_QueryInterface(url); + // now try to open the channel passing in our display consumer as the listener + rv = aChannel->AsyncOpen(aStreamListener, aCtxt); + } + else rv = RunNewsUrl(url, aMsgWindow, aDisplayConsumer); } + } if (aURL) { *aURL = url; NS_IF_ADDREF(*aURL); } - return rv; }