forked from mirrors/gecko-dev
		
	 f8100451db
			
		
	
	
		f8100451db
		
	
	
	
	
		
			
			We will use the new type for the generated IPDL message handler prototype to make sure correct error handling method is called. MozReview-Commit-ID: AzVbApxFGZ0
		
			
				
	
	
		
			64 lines
		
	
	
	
		
			1.8 KiB
		
	
	
	
		
			C++
		
	
	
	
	
	
			
		
		
	
	
			64 lines
		
	
	
	
		
			1.8 KiB
		
	
	
	
		
			C++
		
	
	
	
	
	
| /* -*- Mode: C++; c-basic-offset: 2; indent-tabs-mode: nil; tab-width: 8 -*- */
 | |
| /* vim: set sw=2 ts=2 et : */
 | |
| /* 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/. */
 | |
| 
 | |
| #ifndef mozilla_plugins_StreamNotifyChild_h
 | |
| #define mozilla_plugins_StreamNotifyChild_h
 | |
| 
 | |
| #include "mozilla/plugins/PStreamNotifyChild.h"
 | |
| 
 | |
| namespace mozilla {
 | |
| namespace plugins {
 | |
| 
 | |
| class BrowserStreamChild;
 | |
| 
 | |
| class StreamNotifyChild : public PStreamNotifyChild
 | |
| {
 | |
|   friend class PluginInstanceChild;
 | |
|   friend class BrowserStreamChild;
 | |
| 
 | |
| public:
 | |
|   explicit StreamNotifyChild(const nsCString& aURL)
 | |
|     : mURL(aURL)
 | |
|     , mClosure(nullptr)
 | |
|     , mBrowserStream(nullptr)
 | |
|   { }
 | |
| 
 | |
|   virtual void ActorDestroy(ActorDestroyReason why) override;
 | |
| 
 | |
|   void SetValid(void* aClosure) {
 | |
|     mClosure = aClosure;
 | |
|   }
 | |
| 
 | |
|   void NPP_URLNotify(NPReason reason);
 | |
| 
 | |
| private:
 | |
|   virtual mozilla::ipc::IPCResult Recv__delete__(const NPReason& reason) override;
 | |
| 
 | |
|   mozilla::ipc::IPCResult RecvRedirectNotify(const nsCString& url, const int32_t& status) override;
 | |
| 
 | |
|   /**
 | |
|    * If a stream is created for this this URLNotify, we associate the objects
 | |
|    * so that the NPP_URLNotify call is not fired before the stream data is
 | |
|    * completely delivered. The BrowserStreamChild takes responsibility for
 | |
|    * calling NPP_URLNotify and deleting this object.
 | |
|    */
 | |
|   void SetAssociatedStream(BrowserStreamChild* bs);
 | |
| 
 | |
|   nsCString mURL;
 | |
|   void* mClosure;
 | |
| 
 | |
|   /**
 | |
|    * If mBrowserStream is true, it is responsible for deleting this C++ object
 | |
|    * and DeallocPStreamNotify is not, so that the delayed delivery of
 | |
|    * NPP_URLNotify is possible.
 | |
|    */
 | |
|   BrowserStreamChild* mBrowserStream;
 | |
| };
 | |
| 
 | |
| } // namespace plugins
 | |
| } // namespace mozilla
 | |
| 
 | |
| #endif
 |