tor-browser

The Tor Browser
git clone https://git.dasho.dev/tor-browser.git
Log | Files | Refs | README | LICENSE

nsStreamListenerWrapper.cpp (1631B)


      1 /* This Source Code Form is subject to the terms of the Mozilla Public
      2 * License, v. 2.0. If a copy of the MPL was not distributed with this file,
      3 * You can obtain one at http://mozilla.org/MPL/2.0/. */
      4 
      5 #include "nsStreamListenerWrapper.h"
      6 #ifdef DEBUG
      7 #  include "MainThreadUtils.h"
      8 #endif
      9 
     10 namespace mozilla {
     11 namespace net {
     12 
     13 NS_IMPL_ISUPPORTS(nsStreamListenerWrapper, nsIStreamListener,
     14                  nsIRequestObserver, nsIMultiPartChannelListener,
     15                  nsIThreadRetargetableStreamListener)
     16 
     17 NS_IMETHODIMP
     18 nsStreamListenerWrapper::OnAfterLastPart(nsresult aStatus) {
     19  if (nsCOMPtr<nsIMultiPartChannelListener> listener =
     20          do_QueryInterface(mListener)) {
     21    nsresult rv = NS_OK;
     22    if (nsCOMPtr<nsIMultiPartChannelListener> listener =
     23            do_QueryInterface(mListener)) {
     24      rv = listener->OnAfterLastPart(aStatus);
     25    }
     26    mListener = nullptr;
     27    return rv;
     28  }
     29  return NS_OK;
     30 }
     31 
     32 NS_IMETHODIMP
     33 nsStreamListenerWrapper::CheckListenerChain() {
     34  NS_ASSERTION(NS_IsMainThread(), "Should be on main thread!");
     35  nsresult rv = NS_OK;
     36  nsCOMPtr<nsIThreadRetargetableStreamListener> retargetableListener =
     37      do_QueryInterface(mListener, &rv);
     38  if (retargetableListener) {
     39    rv = retargetableListener->CheckListenerChain();
     40  }
     41  return rv;
     42 }
     43 
     44 NS_IMETHODIMP
     45 nsStreamListenerWrapper::OnDataFinished(nsresult aStatus) {
     46  nsCOMPtr<nsIThreadRetargetableStreamListener> retargetableListener =
     47      do_QueryInterface(mListener);
     48  if (retargetableListener) {
     49    return retargetableListener->OnDataFinished(aStatus);
     50  }
     51 
     52  return NS_OK;
     53 }
     54 }  // namespace net
     55 }  // namespace mozilla