michael@0: /* -*- Mode: C++; tab-width: 8; indent-tabs-mode: nil; c-basic-offset: 2 -*- */ michael@0: /* vim: set sw=2 ts=8 et tw=80 : */ michael@0: /* This Source Code Form is subject to the terms of the Mozilla Public michael@0: * License, v. 2.0. If a copy of the MPL was not distributed with this michael@0: * file, You can obtain one at http://mozilla.org/MPL/2.0/. */ michael@0: michael@0: #include "RtspChannelParent.h" michael@0: michael@0: using namespace mozilla::ipc; michael@0: michael@0: namespace mozilla { michael@0: namespace net { michael@0: michael@0: //----------------------------------------------------------------------------- michael@0: // RtspChannelParent michael@0: //----------------------------------------------------------------------------- michael@0: RtspChannelParent::RtspChannelParent(nsIURI *aUri) michael@0: : mIPCClosed(false) michael@0: { michael@0: nsBaseChannel::SetURI(aUri); michael@0: } michael@0: michael@0: RtspChannelParent::~RtspChannelParent() michael@0: { michael@0: } michael@0: michael@0: void michael@0: RtspChannelParent::ActorDestroy(ActorDestroyReason why) michael@0: { michael@0: mIPCClosed = true; michael@0: } michael@0: michael@0: //----------------------------------------------------------------------------- michael@0: // nsISupports michael@0: //----------------------------------------------------------------------------- michael@0: NS_IMPL_ISUPPORTS_INHERITED(RtspChannelParent, michael@0: nsBaseChannel, michael@0: nsIParentChannel) michael@0: michael@0: //----------------------------------------------------------------------------- michael@0: // RtspChannelParent methods michael@0: //----------------------------------------------------------------------------- michael@0: bool michael@0: RtspChannelParent::Init(const RtspChannelConnectArgs& aArgs) michael@0: { michael@0: return ConnectChannel(aArgs.channelId()); michael@0: } michael@0: michael@0: bool michael@0: RtspChannelParent::ConnectChannel(const uint32_t& channelId) michael@0: { michael@0: nsresult rv; michael@0: nsCOMPtr channel; michael@0: rv = NS_LinkRedirectChannels(channelId, this, getter_AddRefs(channel)); michael@0: michael@0: return true; michael@0: } michael@0: michael@0: //----------------------------------------------------------------------------- michael@0: // nsBaseChannel::nsIChannel michael@0: //----------------------------------------------------------------------------- michael@0: NS_IMETHODIMP michael@0: RtspChannelParent::GetContentType(nsACString& aContentType) michael@0: { michael@0: aContentType.AssignLiteral("RTSP"); michael@0: return NS_OK; michael@0: } michael@0: michael@0: NS_IMETHODIMP michael@0: RtspChannelParent::AsyncOpen(nsIStreamListener *aListener, nsISupports *aContext) michael@0: { michael@0: return NS_OK; michael@0: } michael@0: michael@0: //----------------------------------------------------------------------------- michael@0: // nsBaseChannel::nsIStreamListener::nsIRequestObserver michael@0: //----------------------------------------------------------------------------- michael@0: NS_IMETHODIMP michael@0: RtspChannelParent::OnStartRequest(nsIRequest *aRequest, michael@0: nsISupports *aContext) michael@0: { michael@0: MOZ_CRASH("Should never be called"); michael@0: } michael@0: michael@0: NS_IMETHODIMP michael@0: RtspChannelParent::OnStopRequest(nsIRequest *aRequest, michael@0: nsISupports *aContext, michael@0: nsresult aStatusCode) michael@0: { michael@0: MOZ_CRASH("Should never be called"); michael@0: } michael@0: michael@0: //----------------------------------------------------------------------------- michael@0: // nsBaseChannel::nsIStreamListener michael@0: //----------------------------------------------------------------------------- michael@0: NS_IMETHODIMP michael@0: RtspChannelParent::OnDataAvailable(nsIRequest *aRequest, michael@0: nsISupports *aContext, michael@0: nsIInputStream *aInputStream, michael@0: uint64_t aOffset, michael@0: uint32_t aCount) michael@0: { michael@0: MOZ_CRASH("Should never be called"); michael@0: } michael@0: michael@0: //----------------------------------------------------------------------------- michael@0: // nsBaseChannel::nsIChannel::nsIRequeset michael@0: //----------------------------------------------------------------------------- michael@0: NS_IMETHODIMP michael@0: RtspChannelParent::Cancel(nsresult status) michael@0: { michael@0: // FIXME: This method will be called by michael@0: // nsXMLHttpRequest::CloseRequestWithError while closing the browser app. michael@0: // However, the root cause is RtspChannelParent will be created by michael@0: // nsXMLHttpRequest::Open when we navigate away from an RTSP web page. michael@0: // We should find out why it happens and decide how to fix it. michael@0: return NS_OK; michael@0: } michael@0: michael@0: NS_IMETHODIMP michael@0: RtspChannelParent::Suspend() michael@0: { michael@0: MOZ_CRASH("Should never be called"); michael@0: } michael@0: michael@0: NS_IMETHODIMP michael@0: RtspChannelParent::Resume() michael@0: { michael@0: MOZ_CRASH("Should never be called"); michael@0: } michael@0: michael@0: //----------------------------------------------------------------------------- michael@0: // nsBaseChannel michael@0: //----------------------------------------------------------------------------- michael@0: NS_IMETHODIMP michael@0: RtspChannelParent::OpenContentStream(bool aAsync, michael@0: nsIInputStream **aStream, michael@0: nsIChannel **aChannel) michael@0: { michael@0: MOZ_CRASH("Should never be called"); michael@0: } michael@0: michael@0: //----------------------------------------------------------------------------- michael@0: // nsIParentChannel michael@0: //----------------------------------------------------------------------------- michael@0: NS_IMETHODIMP michael@0: RtspChannelParent::SetParentListener(HttpChannelParentListener *aListener) michael@0: { michael@0: return NS_OK; michael@0: } michael@0: michael@0: NS_IMETHODIMP michael@0: RtspChannelParent::Delete() michael@0: { michael@0: return NS_OK; michael@0: } michael@0: michael@0: } // namespace net michael@0: } // namespace mozilla