Copy as Markdown

Other Tools

/* THIS FILE IS AUTOGENERATED FROM MozDocumentObserver.webidl BY Codegen.py - DO NOT EDIT */
#ifndef DOM_MOZDOCUMENTOBSERVERBINDING_H_
#define DOM_MOZDOCUMENTOBSERVERBINDING_H_
#include "js/CallAndConstruct.h"
#include "js/RootingAPI.h"
#include "js/TypeDecls.h"
#include "mozilla/ErrorResult.h"
#include "mozilla/dom/BindingDeclarations.h"
#include "mozilla/dom/CallbackInterface.h"
#include "mozilla/dom/Nullable.h"
#include "mozilla/dom/PrototypeList.h"
#include "mozilla/dom/ToJSValue.h"
class nsILoadInfo;
namespace mozilla {
namespace dom {
class MozDocumentCallback;
struct MozDocumentCallbackAtoms;
struct NativePropertyHooks;
class ProtoAndIfaceCache;
class WindowProxyHolder;
} // namespace dom
namespace extensions {
class DocumentObserver;
class MozDocumentMatcher;
} // namespace extensions
} // namespace mozilla
namespace mozilla::dom {
namespace MozDocumentObserver_Binding {
typedef mozilla::extensions::DocumentObserver NativeType;
bool
ConstructorEnabled(JSContext* aCx, JS::Handle<JSObject*> aObj);
bool
Wrap(JSContext* aCx, mozilla::extensions::DocumentObserver* aObject, nsWrapperCache* aCache, JS::Handle<JSObject*> aGivenProto, JS::MutableHandle<JSObject*> aReflector);
template <class T>
inline JSObject* Wrap(JSContext* aCx, T* aObject, JS::Handle<JSObject*> aGivenProto)
{
JS::Rooted<JSObject*> reflector(aCx);
return Wrap(aCx, aObject, aObject, aGivenProto, &reflector) ? reflector.get() : nullptr;
}
void
CreateInterfaceObjects(JSContext* aCx, JS::Handle<JSObject*> aGlobal, ProtoAndIfaceCache& aProtoAndIfaceCache, DefineInterfaceProperty aDefineOnGlobal);
JS::Handle<JSObject*>
GetConstructorObjectHandle(JSContext* aCx);
inline bool CreateAndDefineOnGlobal(JSContext* aCx)
{
// Get the interface or namespace object for this class. This will
// create the object as needed and always define the properties for
// it on the global. The caller should make sure the interface or
// namespace is exposed on the global before calling this.
return GetPerInterfaceObjectHandle(aCx, constructors::id::MozDocumentObserver,
&CreateInterfaceObjects,
DefineInterfaceProperty::Always);
}
} // namespace MozDocumentObserver_Binding
class MozDocumentCallback : public CallbackInterface
{
public:
explicit inline MozDocumentCallback(JSContext* aCx, JS::Handle<JSObject*> aCallback, JS::Handle<JSObject*> aCallbackGlobal, nsIGlobalObject* aIncumbentGlobal)
: CallbackInterface(aCx, aCallback, aCallbackGlobal, aIncumbentGlobal)
{
}
explicit inline MozDocumentCallback(JSObject* aCallback, JSObject* aCallbackGlobal, const FastCallbackConstructor& )
: CallbackInterface(aCallback, aCallbackGlobal, FastCallbackConstructor())
{
}
explicit inline MozDocumentCallback(JSObject* aCallback, JSObject* aCallbackGlobal, JSObject* aAsyncStack, nsIGlobalObject* aIncumbentGlobal)
: CallbackInterface(aCallback, aCallbackGlobal, aAsyncStack, aIncumbentGlobal)
{
}
void OnNewDocument(extensions::MozDocumentMatcher& matcher, const WindowProxyHolder& window, ErrorResult& aRv, const char* aExecutionReason = nullptr, ExceptionHandling aExceptionHandling = eReportExceptions, JS::Realm* aRealm = nullptr);
void OnPreloadDocument(extensions::MozDocumentMatcher& matcher, nsILoadInfo* loadInfo, ErrorResult& aRv, const char* aExecutionReason = nullptr, ExceptionHandling aExceptionHandling = eReportExceptions, JS::Realm* aRealm = nullptr);
inline bool
operator==(const MozDocumentCallback& aOther) const
{
return CallbackInterface::operator==(aOther);
}
private:
static bool
InitIds(JSContext* cx, MozDocumentCallbackAtoms* atomsCache);
};
namespace binding_detail {
class FastMozDocumentCallback : public MozDocumentCallback
{
public:
explicit inline FastMozDocumentCallback(JSObject* aCallback, JSObject* aCallbackGlobal)
: MozDocumentCallback(aCallback, aCallbackGlobal, FastCallbackConstructor())
{
}
inline void
Trace(JSTracer* aTracer)
{
MozDocumentCallback::Trace(aTracer);
}
inline void
FinishSlowJSInitIfMoreThanOneOwner(JSContext* aCx)
{
MozDocumentCallback::FinishSlowJSInitIfMoreThanOneOwner(aCx);
}
};
} // namespace binding_detail
} // namespace mozilla::dom
#endif // DOM_MOZDOCUMENTOBSERVERBINDING_H_