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