forked from mirrors/gecko-dev
		
	
		
			
				
	
	
		
			56 lines
		
	
	
	
		
			2 KiB
		
	
	
	
		
			C++
		
	
	
	
	
	
			
		
		
	
	
			56 lines
		
	
	
	
		
			2 KiB
		
	
	
	
		
			C++
		
	
	
	
	
	
| /* vim: set ts=8 sts=2 et sw=2 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 "{{ webidl_name }}.h"
 | |
| #include "ExtensionEventManager.h"
 | |
| 
 | |
| #include "mozilla/dom/{{ webidl_name }}Binding.h"
 | |
| #include "nsIGlobalObject.h"
 | |
| 
 | |
| namespace mozilla::extensions {
 | |
| 
 | |
| NS_IMPL_CYCLE_COLLECTING_ADDREF({{ webidl_name }});
 | |
| NS_IMPL_CYCLE_COLLECTING_RELEASE({{ webidl_name }})
 | |
| NS_IMPL_CYCLE_COLLECTION_WRAPPERCACHE({{ webidl_name }}, mGlobal, mExtensionBrowser
 | |
|                                       /* TODO: add events properties if any */);
 | |
| 
 | |
| NS_INTERFACE_MAP_BEGIN_CYCLE_COLLECTION({{ webidl_name }})
 | |
|   NS_WRAPPERCACHE_INTERFACE_MAP_ENTRY
 | |
|   NS_INTERFACE_MAP_ENTRY(nsISupports)
 | |
| NS_INTERFACE_MAP_END
 | |
| 
 | |
| /* TODO add implementation for the event manager getter if any.
 | |
| 
 | |
| // Defines the OnEVENTNAME method implementation and expects a data member computed
 | |
| // based on the getter method name (e.g. `mOnEVENTNAMEEventManager`) where the
 | |
| // ExtensionEventManager instance is going to be stored.
 | |
| NS_IMPL_WEBEXT_EVENTMGR({{webidl_name}}, u"onEVENTNAME"_ns, OnEVENTNAME)
 | |
| 
 | |
| // or to use a specific data member name:
 | |
| //
 | |
| // NS_IMPL_WEBEXT_EVENTMGR_WITH_DATAMEMBER({{webidl_name}}, u"onEVENTNAME"_ns, OnEventName, mDataMemberName)
 | |
| 
 | |
| */
 | |
| 
 | |
| {{ webidl_name }}::{{ webidl_name }}(nsIGlobalObject* aGlobal,
 | |
|                              ExtensionBrowser* aExtensionBrowser)
 | |
|     : mGlobal(aGlobal), mExtensionBrowser(aExtensionBrowser) {
 | |
|   MOZ_DIAGNOSTIC_ASSERT(mGlobal);
 | |
|   MOZ_DIAGNOSTIC_ASSERT(mExtensionBrowser);
 | |
| }
 | |
| 
 | |
| /* static */
 | |
| bool {{ webidl_name }}::IsAllowed(JSContext* aCx, JSObject* aGlobal) {
 | |
|   return true;
 | |
| }
 | |
| 
 | |
| JSObject* {{ webidl_name }}::WrapObject(JSContext* aCx,
 | |
|                                     JS::Handle<JSObject*> aGivenProto) {
 | |
|   return dom::{{ webidl_name }}_Binding::Wrap(aCx, this, aGivenProto);
 | |
| }
 | |
| 
 | |
| nsIGlobalObject* {{ webidl_name }}::GetParentObject() const { return mGlobal; }
 | |
| 
 | |
| }  // namespace mozilla::extensions
 | 
