diff --git a/mozilla/modules/plugin/base/src/ns4xPluginStream.cpp b/mozilla/modules/plugin/base/src/ns4xPluginStream.cpp deleted file mode 100644 index 512339ee214..00000000000 --- a/mozilla/modules/plugin/base/src/ns4xPluginStream.cpp +++ /dev/null @@ -1,276 +0,0 @@ -/* -*- Mode: C++; tab-width: 4; indent-tabs-mode: nil; c-basic-offset: 2 -*- */ -/* ***** BEGIN LICENSE BLOCK ***** - * Version: NPL 1.1/GPL 2.0/LGPL 2.1 - * - * The contents of this file are subject to the Netscape Public License - * Version 1.1 (the "License"); you may not use this file except in - * compliance with the License. You may obtain a copy of the License at - * http://www.mozilla.org/NPL/ - * - * Software distributed under the License is distributed on an "AS IS" basis, - * WITHOUT WARRANTY OF ANY KIND, either express or implied. See the License - * for the specific language governing rights and limitations under the - * License. - * - * The Original Code is mozilla.org code. - * - * The Initial Developer of the Original Code is - * Netscape Communications Corporation. - * Portions created by the Initial Developer are Copyright (C) 1998 - * the Initial Developer. All Rights Reserved. - * - * Contributor(s): - * - * Alternatively, the contents of this file may be used under the terms of - * either the GNU General Public License Version 2 or later (the "GPL"), or - * the GNU Lesser General Public License Version 2.1 or later (the "LGPL"), - * in which case the provisions of the GPL or the LGPL are applicable instead - * of those above. If you wish to allow use of your version of this file only - * under the terms of either the GPL or the LGPL, and not to allow others to - * use your version of this file under the terms of the NPL, indicate your - * decision by deleting the provisions above and replace them with the notice - * and other provisions required by the GPL or the LGPL. If you do not delete - * the provisions above, a recipient may use your version of this file under - * the terms of any one of the NPL, the GPL or the LGPL. - * - * ***** END LICENSE BLOCK ***** */ - - -#include "ns4xPluginStream.h" -#include "prlog.h" // for PR_ASSERT -#include "nsPluginSafety.h" - -static NS_DEFINE_IID(kCPluginManagerCID, NS_PLUGINMANAGER_CID); - -//////////////////////////////////////////////////////////////////////// - - -ns4xPluginStream::ns4xPluginStream(void) - : fStreamType(nsPluginStreamType_Normal), fSeekable(PR_FALSE), fPosition(0) -{ - NS_INIT_REFCNT(); - - fPeer = nsnull; - fInstance = nsnull; - - // Initialize the 4.x interface structure - memset(&fNPStream, 0, sizeof(fNPStream)); -} - - -ns4xPluginStream::~ns4xPluginStream(void) -{ - const NPPluginFuncs *callbacks; - NPP npp; - nsPluginReason reason; - - fInstance->GetCallbacks(&callbacks); - fInstance->GetNPP(&npp); - fPeer->GetReason(&reason); - - if (callbacks->destroystream != NULL) - { - PRLibrary* lib = nsnull; - if(fInstance) - lib = fInstance->fLibrary; - - NS_TRY_SAFE_CALL_VOID(CallNPP_DestroyStreamProc(callbacks->destroystream, - npp, - &fNPStream, - reason), lib); - } - - NS_IF_RELEASE(fPeer); - NS_IF_RELEASE(fInstance); -} - - -//////////////////////////////////////////////////////////////////////// - -NS_IMPL_ADDREF(ns4xPluginStream); -NS_IMPL_RELEASE(ns4xPluginStream); - -static NS_DEFINE_IID(kISupportsIID, NS_ISUPPORTS_IID); -static NS_DEFINE_IID(kIPluginStreamIID, NS_IPLUGINSTREAM_IID); -static NS_DEFINE_IID(kISeekablePluginStreamPeerIID, NS_ISEEKABLEPLUGINSTREAMPEER_IID); - -NS_IMETHODIMP ns4xPluginStream::QueryInterface(const nsIID& iid, void** instance) -{ - if (instance == NULL) - return NS_ERROR_NULL_POINTER; - - if (iid.Equals(kIPluginStreamIID)) - { - *instance = (void *)(nsIPluginStream *)this; - AddRef(); - return NS_OK; - } - else if (iid.Equals(kISupportsIID)) - { - *instance = (void *)(nsISupports *)this; - AddRef(); - return NS_OK; - } - - return NS_NOINTERFACE; -} - - -//////////////////////////////////////////////////////////////////////// - - -NS_IMETHODIMP ns4xPluginStream::Initialize(ns4xPluginInstance* instance, - nsIPluginStreamPeer* peer) -{ - fInstance = instance; - fPeer = peer; - - NS_ASSERTION(fInstance != NULL, "null instance"); - - NS_ADDREF(fInstance); - - NS_ASSERTION(fPeer != NULL, "null peer"); - - NS_ADDREF(fPeer); - - const char *url; - PRUint32 length, modified; - - fPeer->GetURL(&url); - fPeer->GetEnd(&length); - fPeer->GetLastModified(&modified); - - fNPStream.ndata = (void*) fPeer; - fNPStream.url = url; - fNPStream.end = length; - fNPStream.lastmodified = modified; - - // Are we seekable? - - nsISupports* seekablePeer; - - if (fPeer->QueryInterface(kISeekablePluginStreamPeerIID, - (void**) &seekablePeer) == NS_OK) - { - fSeekable = TRUE; - NS_RELEASE(seekablePeer); - } - - const NPPluginFuncs *callbacks; - NPP npp; - nsMIMEType mimetype; - - fInstance->GetCallbacks(&callbacks); - fInstance->GetNPP(&npp); - fPeer->GetMIMEType(&mimetype); - - if (callbacks->newstream == NULL) - return NS_ERROR_FAILURE; - - PRUint16 streamType = (PRUint16) fStreamType; - - PRLibrary* lib = nsnull; - if(fInstance) - lib = fInstance->fLibrary; - - NP_ERROR error = NS_OK; - - NS_TRY_SAFE_CALL_RETURN(error, CallNPP_NewStreamProc(callbacks->newstream, - npp, - (char *)mimetype, - &fNPStream, - fSeekable, - &streamType), lib); - - fStreamType = (nsPluginStreamType) streamType; - - return (nsresult)error; -} - -NS_IMETHODIMP ns4xPluginStream::Write(const char* buffer, PRUint32 offset, PRUint32 len, PRUint32 *aWriteCount) -{ - const NPPluginFuncs *callbacks; - NPP npp; - PRUint32 remaining = len; - - fInstance->GetCallbacks(&callbacks); - fInstance->GetNPP(&npp); - - if (callbacks->write == NULL) - return NS_OK; - - while (remaining > 0) - { - PRUint32 numtowrite; - - if (callbacks->writeready != NULL) - { - PRLibrary* lib = nsnull; - if(fInstance) - lib = fInstance->fLibrary; - - NS_TRY_SAFE_CALL_RETURN(numtowrite, CallNPP_WriteReadyProc(callbacks->writeready, - npp, - &fNPStream), lib); - - if (numtowrite > remaining) - numtowrite = remaining; - } - else - numtowrite = (int32)len; - - PRLibrary* lib = nsnull; - if(fInstance) - lib = fInstance->fLibrary; - - NS_TRY_SAFE_CALL_RETURN(*aWriteCount, CallNPP_WriteProc(callbacks->write, - npp, - &fNPStream, - fPosition, - numtowrite, - (void *)buffer), lib); - - remaining -= numtowrite; - } - - fPosition += len; - - return NS_OK; //XXX this seems bad... -} - -NS_IMETHODIMP ns4xPluginStream::GetStreamType(nsPluginStreamType *result) -{ - *result = fStreamType; - return NS_OK; -} - -NS_IMETHODIMP ns4xPluginStream::AsFile(const char* filename) -{ - const NPPluginFuncs *callbacks; - NPP npp; - - fInstance->GetCallbacks(&callbacks); - fInstance->GetNPP(&npp); - - if (callbacks->asfile == NULL) - return NS_OK; - - PRLibrary* lib = nsnull; - if(fInstance) - lib = fInstance->fLibrary; - - NS_TRY_SAFE_CALL_VOID(CallNPP_StreamAsFileProc(callbacks->asfile, - npp, - &fNPStream, - filename), lib); - - return NS_OK; -} - -NS_IMETHODIMP ns4xPluginStream :: Close(void) -{ - return NS_OK; -} - -//////////////////////////////////////////////////////////////////////// - diff --git a/mozilla/modules/plugin/base/src/ns4xPluginStream.h b/mozilla/modules/plugin/base/src/ns4xPluginStream.h deleted file mode 100644 index f3e3676f627..00000000000 --- a/mozilla/modules/plugin/base/src/ns4xPluginStream.h +++ /dev/null @@ -1,134 +0,0 @@ -/* -*- Mode: C++; tab-width: 4; indent-tabs-mode: nil; c-basic-offset: 2 -*- */ -/* ***** BEGIN LICENSE BLOCK ***** - * Version: NPL 1.1/GPL 2.0/LGPL 2.1 - * - * The contents of this file are subject to the Netscape Public License - * Version 1.1 (the "License"); you may not use this file except in - * compliance with the License. You may obtain a copy of the License at - * http://www.mozilla.org/NPL/ - * - * Software distributed under the License is distributed on an "AS IS" basis, - * WITHOUT WARRANTY OF ANY KIND, either express or implied. See the License - * for the specific language governing rights and limitations under the - * License. - * - * The Original Code is mozilla.org code. - * - * The Initial Developer of the Original Code is - * Netscape Communications Corporation. - * Portions created by the Initial Developer are Copyright (C) 1998 - * the Initial Developer. All Rights Reserved. - * - * Contributor(s): - * - * Alternatively, the contents of this file may be used under the terms of - * either the GNU General Public License Version 2 or later (the "GPL"), or - * the GNU Lesser General Public License Version 2.1 or later (the "LGPL"), - * in which case the provisions of the GPL or the LGPL are applicable instead - * of those above. If you wish to allow use of your version of this file only - * under the terms of either the GPL or the LGPL, and not to allow others to - * use your version of this file under the terms of the NPL, indicate your - * decision by deleting the provisions above and replace them with the notice - * and other provisions required by the GPL or the LGPL. If you do not delete - * the provisions above, a recipient may use your version of this file under - * the terms of any one of the NPL, the GPL or the LGPL. - * - * ***** END LICENSE BLOCK ***** */ - -#ifndef ns4xPluginStream_h__ -#define ns4xPluginStream_h__ - -#define _UINT32 -#define _INT32 - -#include "jri.h" // XXX should be jni.h -#include "nsplugin.h" -#include "ns4xPluginInstance.h" - -//////////////////////////////////////////////////////////////////////// - -/** - * A 5.0 wrapper for a 4.x plugin stream. - */ -class ns4xPluginStream : public nsIPluginStream -{ -public: - - /** - * Construct a new 4.x plugin stream associated with the specified - * instance and stream peer. - */ - ns4xPluginStream(); - ~ns4xPluginStream(); - - NS_DECL_ISUPPORTS - - /** - * Do internal initialization. This actually calls into the 4.x plugin - * to create the stream, and may fail (which is why it's separate from - * the constructor). - */ - NS_METHOD - Initialize(ns4xPluginInstance* instance, nsIPluginStreamPeer* peer); - - //////////////////////////////////////////////////////////////////////// - // nsIPluginStream methods - - // (Corresponds to NPP_Write and NPN_Write.) - NS_IMETHOD - Write(const char* buffer, PRUint32 offset, PRUint32 len, PRUint32 *aWriteCount); - - // (Corresponds to NPP_NewStream's stype return parameter.) - NS_IMETHOD - GetStreamType(nsPluginStreamType *result); - - // (Corresponds to NPP_StreamAsFile.) - NS_IMETHOD - AsFile(const char* fname); - - NS_IMETHOD - Close(void); - - //////////////////////////////////////////////////////////////////////// - // Methods specific to ns4xPluginStream - -protected: - - /** - * The plugin instance to which this stream belongs. - */ - ns4xPluginInstance* fInstance; - - /** - * The peer associated with this stream. - */ - nsIPluginStreamPeer* fPeer; - - /** - * The type of stream, for the peer's use. - */ - nsPluginStreamType fStreamType; - - /** - * The 4.x-style structure used to contain stream information. - * This is what actually gets used to communicate with the plugin. - */ - NPStream fNPStream; - - /** - * Set to TRUE if the peer implements - * NPISeekablPluginStreamPeer. - */ - PRBool fSeekable; - - /** - * Tracks the position in the content that is being - * read. 4.x-style plugins expect to be told the offset in the - * buffer that they should read to, even though it's always - * done serially. - */ - PRUint32 fPosition; -}; - - -#endif // ns4xPluginStream_h__