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
3 * file, You can obtain one at http://mozilla.org/MPL/2.0/. */
5 #include "nsHtml5StreamListener.h"
7 NS_IMPL_ADDREF(nsHtml5StreamListener
)
8 NS_IMPL_RELEASE(nsHtml5StreamListener
)
10 NS_INTERFACE_MAP_BEGIN(nsHtml5StreamListener
)
11 NS_INTERFACE_MAP_ENTRY_AMBIGUOUS(nsISupports
, nsIRequestObserver
)
12 NS_INTERFACE_MAP_ENTRY(nsIRequestObserver
)
13 NS_INTERFACE_MAP_ENTRY(nsIStreamListener
)
14 NS_INTERFACE_MAP_ENTRY(nsIThreadRetargetableStreamListener
)
17 nsHtml5StreamListener::nsHtml5StreamListener(nsHtml5StreamParser
* aDelegate
)
18 : mDelegate(aDelegate
) {}
20 nsHtml5StreamListener::~nsHtml5StreamListener() {}
22 void nsHtml5StreamListener::DropDelegate() {
23 MOZ_ASSERT(NS_IsMainThread(),
24 "Must not call DropDelegate from non-main threads.");
29 nsHtml5StreamListener::CheckListenerChain() {
30 if (MOZ_UNLIKELY(!mDelegate
)) {
31 return NS_ERROR_NOT_AVAILABLE
;
33 return mDelegate
->CheckListenerChain();
37 nsHtml5StreamListener::OnStartRequest(nsIRequest
* aRequest
) {
38 if (MOZ_UNLIKELY(!mDelegate
)) {
39 return NS_ERROR_NOT_AVAILABLE
;
41 return mDelegate
->OnStartRequest(aRequest
);
45 nsHtml5StreamListener::OnStopRequest(nsIRequest
* aRequest
, nsresult aStatus
) {
46 if (MOZ_UNLIKELY(!mDelegate
)) {
47 return NS_ERROR_NOT_AVAILABLE
;
49 return mDelegate
->OnStopRequest(aRequest
, aStatus
);
53 nsHtml5StreamListener::OnDataAvailable(nsIRequest
* aRequest
,
54 nsIInputStream
* aInStream
,
55 uint64_t aSourceOffset
,
57 if (MOZ_UNLIKELY(!mDelegate
)) {
58 return NS_ERROR_NOT_AVAILABLE
;
60 return mDelegate
->OnDataAvailable(aRequest
, aInStream
, aSourceOffset
,