/* * DO NOT EDIT. THIS FILE IS GENERATED FROM $SRCDIR/tools/profiler/gecko/nsIProfiler.idl */ #ifndef __gen_nsIProfiler_h__ #define __gen_nsIProfiler_h__ #include "nsISupports.h" #include "nsTArray.h" #include "js/Value.h" /* For IDL files that don't want to include root IDL files. */ #ifndef NS_NO_VTABLE #define NS_NO_VTABLE #endif // %{C++:8-12 #include "mozilla/Maybe.h" #include "nsTArrayForwardDeclare.h" #include "nsStringFwd.h" #include "mozilla/MozPromise.h" #include "mozilla/ipc/IPCCore.h" // %} /* starting interface: nsIProfilerStartParams */ #define NS_IPROFILERSTARTPARAMS_IID_STR "0a175ba7-8fcf-4ce9-9c4b-ccc6272f4425" #define NS_IPROFILERSTARTPARAMS_IID \ {0x0a175ba7, 0x8fcf, 0x4ce9, \ { 0x9c, 0x4b, 0xcc, 0xc6, 0x27, 0x2f, 0x44, 0x25 }} class NS_NO_VTABLE MOZ_BINDING(binding_to, idl, class, XPIDL_nsIProfilerStartParams) nsIProfilerStartParams : public nsISupports { public: NS_INLINE_DECL_STATIC_IID(NS_IPROFILERSTARTPARAMS_IID) /* Used by ToJSValue to check which scriptable interface is implemented. */ using ScriptableInterfaceType = nsIProfilerStartParams; /* readonly attribute uint32_t entries; */ MOZ_BINDING(binding_to, idl, getter, XPIDL_nsIProfilerStartParams_entries) NS_IMETHOD GetEntries(uint32_t *aEntries) = 0; /* readonly attribute double duration; */ MOZ_BINDING(binding_to, idl, getter, XPIDL_nsIProfilerStartParams_duration) NS_IMETHOD GetDuration(double *aDuration) = 0; /* readonly attribute double interval; */ MOZ_BINDING(binding_to, idl, getter, XPIDL_nsIProfilerStartParams_interval) NS_IMETHOD GetInterval(double *aInterval) = 0; /* readonly attribute uint32_t features; */ MOZ_BINDING(binding_to, idl, getter, XPIDL_nsIProfilerStartParams_features) NS_IMETHOD GetFeatures(uint32_t *aFeatures) = 0; /* readonly attribute uint64_t activeTabID; */ MOZ_BINDING(binding_to, idl, getter, XPIDL_nsIProfilerStartParams_activeTabID) NS_IMETHOD GetActiveTabID(uint64_t *aActiveTabID) = 0; /* [noscript,nostdcall,notxpcom] StringArrayRef getFilters (); */ MOZ_BINDING(binding_to, idl, method, XPIDL_nsIProfilerStartParams_getFilters) virtual const nsTArray & GetFilters(void) = 0; }; /* Use this macro when declaring classes that implement this interface. */ #define NS_DECL_NSIPROFILERSTARTPARAMS \ NS_IMETHOD GetEntries(uint32_t *aEntries) override; \ NS_IMETHOD GetDuration(double *aDuration) override; \ NS_IMETHOD GetInterval(double *aInterval) override; \ NS_IMETHOD GetFeatures(uint32_t *aFeatures) override; \ NS_IMETHOD GetActiveTabID(uint64_t *aActiveTabID) override; \ virtual const nsTArray & GetFilters(void) override; /* Use this macro when declaring the members of this interface when the class doesn't implement the interface. This is useful for forwarding. */ #define NS_DECL_NON_VIRTUAL_NSIPROFILERSTARTPARAMS \ MOZ_BINDING(binding_to, idl, getter, XPIDL_nsIProfilerStartParams_entries)\ nsresult GetEntries(uint32_t *aEntries); \ MOZ_BINDING(binding_to, idl, getter, XPIDL_nsIProfilerStartParams_duration)\ nsresult GetDuration(double *aDuration); \ MOZ_BINDING(binding_to, idl, getter, XPIDL_nsIProfilerStartParams_interval)\ nsresult GetInterval(double *aInterval); \ MOZ_BINDING(binding_to, idl, getter, XPIDL_nsIProfilerStartParams_features)\ nsresult GetFeatures(uint32_t *aFeatures); \ MOZ_BINDING(binding_to, idl, getter, XPIDL_nsIProfilerStartParams_activeTabID)\ nsresult GetActiveTabID(uint64_t *aActiveTabID); \ MOZ_BINDING(binding_to, idl, method, XPIDL_nsIProfilerStartParams_getFilters)\ const nsTArray & GetFilters(void); /* Use this macro to declare functions that forward the behavior of this interface to another object. */ #define NS_FORWARD_NSIPROFILERSTARTPARAMS(_to) \ NS_IMETHOD GetEntries(uint32_t *aEntries) override { return _to GetEntries(aEntries); } \ NS_IMETHOD GetDuration(double *aDuration) override { return _to GetDuration(aDuration); } \ NS_IMETHOD GetInterval(double *aInterval) override { return _to GetInterval(aInterval); } \ NS_IMETHOD GetFeatures(uint32_t *aFeatures) override { return _to GetFeatures(aFeatures); } \ NS_IMETHOD GetActiveTabID(uint64_t *aActiveTabID) override { return _to GetActiveTabID(aActiveTabID); } \ virtual const nsTArray & GetFilters(void) override { return _to GetFilters(); } /* Use this macro to declare functions that forward the behavior of this interface to another object in a safe way. */ #define NS_FORWARD_SAFE_NSIPROFILERSTARTPARAMS(_to) \ NS_IMETHOD GetEntries(uint32_t *aEntries) override { return !_to ? NS_ERROR_NULL_POINTER : _to->GetEntries(aEntries); } \ NS_IMETHOD GetDuration(double *aDuration) override { return !_to ? NS_ERROR_NULL_POINTER : _to->GetDuration(aDuration); } \ NS_IMETHOD GetInterval(double *aInterval) override { return !_to ? NS_ERROR_NULL_POINTER : _to->GetInterval(aInterval); } \ NS_IMETHOD GetFeatures(uint32_t *aFeatures) override { return !_to ? NS_ERROR_NULL_POINTER : _to->GetFeatures(aFeatures); } \ NS_IMETHOD GetActiveTabID(uint64_t *aActiveTabID) override { return !_to ? NS_ERROR_NULL_POINTER : _to->GetActiveTabID(aActiveTabID); } \ virtual const nsTArray & GetFilters(void) override; /* starting interface: nsIProfiler */ #define NS_IPROFILER_IID_STR "ead3f75c-0e0e-4fbb-901c-1e5392ef5b2a" #define NS_IPROFILER_IID \ {0xead3f75c, 0x0e0e, 0x4fbb, \ { 0x90, 0x1c, 0x1e, 0x53, 0x92, 0xef, 0x5b, 0x2a }} class NS_NO_VTABLE MOZ_BINDING(binding_to, idl, class, XPIDL_nsIProfiler) nsIProfiler : public nsISupports { public: NS_INLINE_DECL_STATIC_IID(NS_IPROFILER_IID) /* Used by ToJSValue to check which scriptable interface is implemented. */ using ScriptableInterfaceType = nsIProfiler; /* [implicit_jscontext] Promise StartProfiler (in uint32_t aEntries, in double aInterval, in Array aFeatures, [optional] in Array aFilters, [optional] in uint64_t aActiveTabID, [optional] in double aDuration); */ MOZ_BINDING(binding_to, idl, method, XPIDL_nsIProfiler_StartProfiler) NS_IMETHOD StartProfiler(uint32_t aEntries, double aInterval, const nsTArray& aFeatures, const nsTArray& aFilters, uint64_t aActiveTabID, double aDuration, JSContext* cx, ::mozilla::dom::Promise * * _retval) = 0; /* [implicit_jscontext] Promise StopProfiler (); */ MOZ_BINDING(binding_to, idl, method, XPIDL_nsIProfiler_StopProfiler) NS_IMETHOD StopProfiler(JSContext* cx, ::mozilla::dom::Promise * * _retval) = 0; /* boolean IsPaused (); */ MOZ_BINDING(binding_to, idl, method, XPIDL_nsIProfiler_IsPaused) NS_IMETHOD IsPaused(bool *_retval) = 0; /* [implicit_jscontext] Promise Pause (); */ MOZ_BINDING(binding_to, idl, method, XPIDL_nsIProfiler_Pause) NS_IMETHOD Pause(JSContext* cx, ::mozilla::dom::Promise * * _retval) = 0; /* [implicit_jscontext] Promise Resume (); */ MOZ_BINDING(binding_to, idl, method, XPIDL_nsIProfiler_Resume) NS_IMETHOD Resume(JSContext* cx, ::mozilla::dom::Promise * * _retval) = 0; /* boolean IsSamplingPaused (); */ MOZ_BINDING(binding_to, idl, method, XPIDL_nsIProfiler_IsSamplingPaused) NS_IMETHOD IsSamplingPaused(bool *_retval) = 0; /* [implicit_jscontext] Promise PauseSampling (); */ MOZ_BINDING(binding_to, idl, method, XPIDL_nsIProfiler_PauseSampling) NS_IMETHOD PauseSampling(JSContext* cx, ::mozilla::dom::Promise * * _retval) = 0; /* [implicit_jscontext] Promise ResumeSampling (); */ MOZ_BINDING(binding_to, idl, method, XPIDL_nsIProfiler_ResumeSampling) NS_IMETHOD ResumeSampling(JSContext* cx, ::mozilla::dom::Promise * * _retval) = 0; /* [implicit_jscontext] Promise waitOnePeriodicSampling (); */ MOZ_BINDING(binding_to, idl, method, XPIDL_nsIProfiler_waitOnePeriodicSampling) NS_IMETHOD WaitOnePeriodicSampling(JSContext* cx, ::mozilla::dom::Promise * * _retval) = 0; /* string GetProfile ([optional] in double aSinceTime); */ MOZ_BINDING(binding_to, idl, method, XPIDL_nsIProfiler_GetProfile) NS_IMETHOD GetProfile(double aSinceTime, char * *_retval) = 0; /* [implicit_jscontext] jsval getProfileData ([optional] in double aSinceTime); */ MOZ_BINDING(binding_to, idl, method, XPIDL_nsIProfiler_getProfileData) NS_IMETHOD GetProfileData(double aSinceTime, JSContext* cx, JS::MutableHandle _retval) = 0; /* [implicit_jscontext] Promise getProfileDataAsync ([optional] in double aSinceTime); */ MOZ_BINDING(binding_to, idl, method, XPIDL_nsIProfiler_getProfileDataAsync) NS_IMETHOD GetProfileDataAsync(double aSinceTime, JSContext* cx, ::mozilla::dom::Promise * * _retval) = 0; /* [implicit_jscontext] Promise getProfileDataAsArrayBuffer ([optional] in double aSinceTime); */ MOZ_BINDING(binding_to, idl, method, XPIDL_nsIProfiler_getProfileDataAsArrayBuffer) NS_IMETHOD GetProfileDataAsArrayBuffer(double aSinceTime, JSContext* cx, ::mozilla::dom::Promise * * _retval) = 0; /* [implicit_jscontext] Promise getProfileDataAsGzippedArrayBuffer ([optional] in double aSinceTime); */ MOZ_BINDING(binding_to, idl, method, XPIDL_nsIProfiler_getProfileDataAsGzippedArrayBuffer) NS_IMETHOD GetProfileDataAsGzippedArrayBuffer(double aSinceTime, JSContext* cx, ::mozilla::dom::Promise * * _retval) = 0; /* [implicit_jscontext] Promise dumpProfileToFileAsync (in ACString aFilename, [optional] in double aSinceTime); */ MOZ_BINDING(binding_to, idl, method, XPIDL_nsIProfiler_dumpProfileToFileAsync) NS_IMETHOD DumpProfileToFileAsync(const nsACString& aFilename, double aSinceTime, JSContext* cx, ::mozilla::dom::Promise * * _retval) = 0; /* [nostdcall,notxpcom] ProfileFileDumpMozPromise dumpProfileToFileAsyncNoJs (in ACString aFilename, in double aSinceTime); */ MOZ_BINDING(binding_to, idl, method, XPIDL_nsIProfiler_dumpProfileToFileAsyncNoJs) virtual RefPtr> DumpProfileToFileAsyncNoJs(const nsACString& aFilename, double aSinceTime) = 0; /* void dumpProfileToFile (in string aFilename); */ MOZ_BINDING(binding_to, idl, method, XPIDL_nsIProfiler_dumpProfileToFile) NS_IMETHOD DumpProfileToFile(const char * aFilename) = 0; /* void scheduleDumpToFile (in double aDelaySeconds, in string aFilename, in boolean aExitAfterDump); */ MOZ_BINDING(binding_to, idl, method, XPIDL_nsIProfiler_scheduleDumpToFile) NS_IMETHOD ScheduleDumpToFile(double aDelaySeconds, const char * aFilename, bool aExitAfterDump) = 0; /* void cancelScheduledDump (); */ MOZ_BINDING(binding_to, idl, method, XPIDL_nsIProfiler_cancelScheduledDump) NS_IMETHOD CancelScheduledDump(void) = 0; /* void waitForScheduledDump (); */ MOZ_BINDING(binding_to, idl, method, XPIDL_nsIProfiler_waitForScheduledDump) NS_IMETHOD WaitForScheduledDump(void) = 0; /* boolean IsActive (); */ MOZ_BINDING(binding_to, idl, method, XPIDL_nsIProfiler_IsActive) NS_IMETHOD IsActive(bool *_retval) = 0; /* void ClearAllPages (); */ MOZ_BINDING(binding_to, idl, method, XPIDL_nsIProfiler_ClearAllPages) NS_IMETHOD ClearAllPages(void) = 0; /* Array GetFeatures (); */ MOZ_BINDING(binding_to, idl, method, XPIDL_nsIProfiler_GetFeatures) NS_IMETHOD GetFeatures(nsTArray& _retval) = 0; /* [implicit_jscontext] readonly attribute jsval activeConfiguration; */ MOZ_BINDING(binding_to, idl, getter, XPIDL_nsIProfiler_activeConfiguration) NS_IMETHOD GetActiveConfiguration(JSContext* cx, JS::MutableHandle aActiveConfiguration) = 0; /* Array GetAllFeatures (); */ MOZ_BINDING(binding_to, idl, method, XPIDL_nsIProfiler_GetAllFeatures) NS_IMETHOD GetAllFeatures(nsTArray& _retval) = 0; /* void GetBufferInfo (out uint32_t aCurrentPosition, out uint32_t aTotalSize, out uint32_t aGeneration); */ MOZ_BINDING(binding_to, idl, method, XPIDL_nsIProfiler_GetBufferInfo) NS_IMETHOD GetBufferInfo(uint32_t *aCurrentPosition, uint32_t *aTotalSize, uint32_t *aGeneration) = 0; /* double getElapsedTime (); */ MOZ_BINDING(binding_to, idl, method, XPIDL_nsIProfiler_getElapsedTime) NS_IMETHOD GetElapsedTime(double *_retval) = 0; /* [implicit_jscontext] readonly attribute jsval sharedLibraries; */ MOZ_BINDING(binding_to, idl, getter, XPIDL_nsIProfiler_sharedLibraries) NS_IMETHOD GetSharedLibraries(JSContext* cx, JS::MutableHandle aSharedLibraries) = 0; /* [implicit_jscontext] Promise getSymbolTable (in ACString aDebugPath, in ACString aBreakpadID); */ MOZ_BINDING(binding_to, idl, method, XPIDL_nsIProfiler_getSymbolTable) NS_IMETHOD GetSymbolTable(const nsACString& aDebugPath, const nsACString& aBreakpadID, JSContext* cx, ::mozilla::dom::Promise * * _retval) = 0; /* [nostdcall,notxpcom] ProfileDataBufferMozPromise getProfileDataAsGzippedArrayBufferAndroid (in double aSinceTime); */ MOZ_BINDING(binding_to, idl, method, XPIDL_nsIProfiler_getProfileDataAsGzippedArrayBufferAndroid) virtual RefPtr, nsresult, true>> GetProfileDataAsGzippedArrayBufferAndroid(double aSinceTime) = 0; }; /* Use this macro when declaring classes that implement this interface. */ #define NS_DECL_NSIPROFILER \ NS_IMETHOD StartProfiler(uint32_t aEntries, double aInterval, const nsTArray& aFeatures, const nsTArray& aFilters, uint64_t aActiveTabID, double aDuration, JSContext* cx, ::mozilla::dom::Promise * * _retval) override; \ NS_IMETHOD StopProfiler(JSContext* cx, ::mozilla::dom::Promise * * _retval) override; \ NS_IMETHOD IsPaused(bool *_retval) override; \ NS_IMETHOD Pause(JSContext* cx, ::mozilla::dom::Promise * * _retval) override; \ NS_IMETHOD Resume(JSContext* cx, ::mozilla::dom::Promise * * _retval) override; \ NS_IMETHOD IsSamplingPaused(bool *_retval) override; \ NS_IMETHOD PauseSampling(JSContext* cx, ::mozilla::dom::Promise * * _retval) override; \ NS_IMETHOD ResumeSampling(JSContext* cx, ::mozilla::dom::Promise * * _retval) override; \ NS_IMETHOD WaitOnePeriodicSampling(JSContext* cx, ::mozilla::dom::Promise * * _retval) override; \ NS_IMETHOD GetProfile(double aSinceTime, char * *_retval) override; \ NS_IMETHOD GetProfileData(double aSinceTime, JSContext* cx, JS::MutableHandle _retval) override; \ NS_IMETHOD GetProfileDataAsync(double aSinceTime, JSContext* cx, ::mozilla::dom::Promise * * _retval) override; \ NS_IMETHOD GetProfileDataAsArrayBuffer(double aSinceTime, JSContext* cx, ::mozilla::dom::Promise * * _retval) override; \ NS_IMETHOD GetProfileDataAsGzippedArrayBuffer(double aSinceTime, JSContext* cx, ::mozilla::dom::Promise * * _retval) override; \ NS_IMETHOD DumpProfileToFileAsync(const nsACString& aFilename, double aSinceTime, JSContext* cx, ::mozilla::dom::Promise * * _retval) override; \ virtual RefPtr> DumpProfileToFileAsyncNoJs(const nsACString& aFilename, double aSinceTime) override; \ NS_IMETHOD DumpProfileToFile(const char * aFilename) override; \ NS_IMETHOD ScheduleDumpToFile(double aDelaySeconds, const char * aFilename, bool aExitAfterDump) override; \ NS_IMETHOD CancelScheduledDump(void) override; \ NS_IMETHOD WaitForScheduledDump(void) override; \ NS_IMETHOD IsActive(bool *_retval) override; \ NS_IMETHOD ClearAllPages(void) override; \ NS_IMETHOD GetFeatures(nsTArray& _retval) override; \ NS_IMETHOD GetActiveConfiguration(JSContext* cx, JS::MutableHandle aActiveConfiguration) override; \ NS_IMETHOD GetAllFeatures(nsTArray& _retval) override; \ NS_IMETHOD GetBufferInfo(uint32_t *aCurrentPosition, uint32_t *aTotalSize, uint32_t *aGeneration) override; \ NS_IMETHOD GetElapsedTime(double *_retval) override; \ NS_IMETHOD GetSharedLibraries(JSContext* cx, JS::MutableHandle aSharedLibraries) override; \ NS_IMETHOD GetSymbolTable(const nsACString& aDebugPath, const nsACString& aBreakpadID, JSContext* cx, ::mozilla::dom::Promise * * _retval) override; \ virtual RefPtr, nsresult, true>> GetProfileDataAsGzippedArrayBufferAndroid(double aSinceTime) override; /* Use this macro when declaring the members of this interface when the class doesn't implement the interface. This is useful for forwarding. */ #define NS_DECL_NON_VIRTUAL_NSIPROFILER \ MOZ_BINDING(binding_to, idl, method, XPIDL_nsIProfiler_StartProfiler)\ nsresult StartProfiler(uint32_t aEntries, double aInterval, const nsTArray& aFeatures, const nsTArray& aFilters, uint64_t aActiveTabID, double aDuration, JSContext* cx, ::mozilla::dom::Promise * * _retval); \ MOZ_BINDING(binding_to, idl, method, XPIDL_nsIProfiler_StopProfiler)\ nsresult StopProfiler(JSContext* cx, ::mozilla::dom::Promise * * _retval); \ MOZ_BINDING(binding_to, idl, method, XPIDL_nsIProfiler_IsPaused)\ nsresult IsPaused(bool *_retval); \ MOZ_BINDING(binding_to, idl, method, XPIDL_nsIProfiler_Pause)\ nsresult Pause(JSContext* cx, ::mozilla::dom::Promise * * _retval); \ MOZ_BINDING(binding_to, idl, method, XPIDL_nsIProfiler_Resume)\ nsresult Resume(JSContext* cx, ::mozilla::dom::Promise * * _retval); \ MOZ_BINDING(binding_to, idl, method, XPIDL_nsIProfiler_IsSamplingPaused)\ nsresult IsSamplingPaused(bool *_retval); \ MOZ_BINDING(binding_to, idl, method, XPIDL_nsIProfiler_PauseSampling)\ nsresult PauseSampling(JSContext* cx, ::mozilla::dom::Promise * * _retval); \ MOZ_BINDING(binding_to, idl, method, XPIDL_nsIProfiler_ResumeSampling)\ nsresult ResumeSampling(JSContext* cx, ::mozilla::dom::Promise * * _retval); \ MOZ_BINDING(binding_to, idl, method, XPIDL_nsIProfiler_waitOnePeriodicSampling)\ nsresult WaitOnePeriodicSampling(JSContext* cx, ::mozilla::dom::Promise * * _retval); \ MOZ_BINDING(binding_to, idl, method, XPIDL_nsIProfiler_GetProfile)\ nsresult GetProfile(double aSinceTime, char * *_retval); \ MOZ_BINDING(binding_to, idl, method, XPIDL_nsIProfiler_getProfileData)\ nsresult GetProfileData(double aSinceTime, JSContext* cx, JS::MutableHandle _retval); \ MOZ_BINDING(binding_to, idl, method, XPIDL_nsIProfiler_getProfileDataAsync)\ nsresult GetProfileDataAsync(double aSinceTime, JSContext* cx, ::mozilla::dom::Promise * * _retval); \ MOZ_BINDING(binding_to, idl, method, XPIDL_nsIProfiler_getProfileDataAsArrayBuffer)\ nsresult GetProfileDataAsArrayBuffer(double aSinceTime, JSContext* cx, ::mozilla::dom::Promise * * _retval); \ MOZ_BINDING(binding_to, idl, method, XPIDL_nsIProfiler_getProfileDataAsGzippedArrayBuffer)\ nsresult GetProfileDataAsGzippedArrayBuffer(double aSinceTime, JSContext* cx, ::mozilla::dom::Promise * * _retval); \ MOZ_BINDING(binding_to, idl, method, XPIDL_nsIProfiler_dumpProfileToFileAsync)\ nsresult DumpProfileToFileAsync(const nsACString& aFilename, double aSinceTime, JSContext* cx, ::mozilla::dom::Promise * * _retval); \ MOZ_BINDING(binding_to, idl, method, XPIDL_nsIProfiler_dumpProfileToFileAsyncNoJs)\ RefPtr> DumpProfileToFileAsyncNoJs(const nsACString& aFilename, double aSinceTime); \ MOZ_BINDING(binding_to, idl, method, XPIDL_nsIProfiler_dumpProfileToFile)\ nsresult DumpProfileToFile(const char * aFilename); \ MOZ_BINDING(binding_to, idl, method, XPIDL_nsIProfiler_scheduleDumpToFile)\ nsresult ScheduleDumpToFile(double aDelaySeconds, const char * aFilename, bool aExitAfterDump); \ MOZ_BINDING(binding_to, idl, method, XPIDL_nsIProfiler_cancelScheduledDump)\ nsresult CancelScheduledDump(void); \ MOZ_BINDING(binding_to, idl, method, XPIDL_nsIProfiler_waitForScheduledDump)\ nsresult WaitForScheduledDump(void); \ MOZ_BINDING(binding_to, idl, method, XPIDL_nsIProfiler_IsActive)\ nsresult IsActive(bool *_retval); \ MOZ_BINDING(binding_to, idl, method, XPIDL_nsIProfiler_ClearAllPages)\ nsresult ClearAllPages(void); \ MOZ_BINDING(binding_to, idl, method, XPIDL_nsIProfiler_GetFeatures)\ nsresult GetFeatures(nsTArray& _retval); \ MOZ_BINDING(binding_to, idl, getter, XPIDL_nsIProfiler_activeConfiguration)\ nsresult GetActiveConfiguration(JSContext* cx, JS::MutableHandle aActiveConfiguration); \ MOZ_BINDING(binding_to, idl, method, XPIDL_nsIProfiler_GetAllFeatures)\ nsresult GetAllFeatures(nsTArray& _retval); \ MOZ_BINDING(binding_to, idl, method, XPIDL_nsIProfiler_GetBufferInfo)\ nsresult GetBufferInfo(uint32_t *aCurrentPosition, uint32_t *aTotalSize, uint32_t *aGeneration); \ MOZ_BINDING(binding_to, idl, method, XPIDL_nsIProfiler_getElapsedTime)\ nsresult GetElapsedTime(double *_retval); \ MOZ_BINDING(binding_to, idl, getter, XPIDL_nsIProfiler_sharedLibraries)\ nsresult GetSharedLibraries(JSContext* cx, JS::MutableHandle aSharedLibraries); \ MOZ_BINDING(binding_to, idl, method, XPIDL_nsIProfiler_getSymbolTable)\ nsresult GetSymbolTable(const nsACString& aDebugPath, const nsACString& aBreakpadID, JSContext* cx, ::mozilla::dom::Promise * * _retval); \ MOZ_BINDING(binding_to, idl, method, XPIDL_nsIProfiler_getProfileDataAsGzippedArrayBufferAndroid)\ RefPtr, nsresult, true>> GetProfileDataAsGzippedArrayBufferAndroid(double aSinceTime); /* Use this macro to declare functions that forward the behavior of this interface to another object. */ #define NS_FORWARD_NSIPROFILER(_to) \ NS_IMETHOD StartProfiler(uint32_t aEntries, double aInterval, const nsTArray& aFeatures, const nsTArray& aFilters, uint64_t aActiveTabID, double aDuration, JSContext* cx, ::mozilla::dom::Promise * * _retval) override { return _to StartProfiler(aEntries, aInterval, aFeatures, aFilters, aActiveTabID, aDuration, cx, _retval); } \ NS_IMETHOD StopProfiler(JSContext* cx, ::mozilla::dom::Promise * * _retval) override { return _to StopProfiler(cx, _retval); } \ NS_IMETHOD IsPaused(bool *_retval) override { return _to IsPaused(_retval); } \ NS_IMETHOD Pause(JSContext* cx, ::mozilla::dom::Promise * * _retval) override { return _to Pause(cx, _retval); } \ NS_IMETHOD Resume(JSContext* cx, ::mozilla::dom::Promise * * _retval) override { return _to Resume(cx, _retval); } \ NS_IMETHOD IsSamplingPaused(bool *_retval) override { return _to IsSamplingPaused(_retval); } \ NS_IMETHOD PauseSampling(JSContext* cx, ::mozilla::dom::Promise * * _retval) override { return _to PauseSampling(cx, _retval); } \ NS_IMETHOD ResumeSampling(JSContext* cx, ::mozilla::dom::Promise * * _retval) override { return _to ResumeSampling(cx, _retval); } \ NS_IMETHOD WaitOnePeriodicSampling(JSContext* cx, ::mozilla::dom::Promise * * _retval) override { return _to WaitOnePeriodicSampling(cx, _retval); } \ NS_IMETHOD GetProfile(double aSinceTime, char * *_retval) override { return _to GetProfile(aSinceTime, _retval); } \ NS_IMETHOD GetProfileData(double aSinceTime, JSContext* cx, JS::MutableHandle _retval) override { return _to GetProfileData(aSinceTime, cx, _retval); } \ NS_IMETHOD GetProfileDataAsync(double aSinceTime, JSContext* cx, ::mozilla::dom::Promise * * _retval) override { return _to GetProfileDataAsync(aSinceTime, cx, _retval); } \ NS_IMETHOD GetProfileDataAsArrayBuffer(double aSinceTime, JSContext* cx, ::mozilla::dom::Promise * * _retval) override { return _to GetProfileDataAsArrayBuffer(aSinceTime, cx, _retval); } \ NS_IMETHOD GetProfileDataAsGzippedArrayBuffer(double aSinceTime, JSContext* cx, ::mozilla::dom::Promise * * _retval) override { return _to GetProfileDataAsGzippedArrayBuffer(aSinceTime, cx, _retval); } \ NS_IMETHOD DumpProfileToFileAsync(const nsACString& aFilename, double aSinceTime, JSContext* cx, ::mozilla::dom::Promise * * _retval) override { return _to DumpProfileToFileAsync(aFilename, aSinceTime, cx, _retval); } \ virtual RefPtr> DumpProfileToFileAsyncNoJs(const nsACString& aFilename, double aSinceTime) override { return _to DumpProfileToFileAsyncNoJs(aFilename, aSinceTime); } \ NS_IMETHOD DumpProfileToFile(const char * aFilename) override { return _to DumpProfileToFile(aFilename); } \ NS_IMETHOD ScheduleDumpToFile(double aDelaySeconds, const char * aFilename, bool aExitAfterDump) override { return _to ScheduleDumpToFile(aDelaySeconds, aFilename, aExitAfterDump); } \ NS_IMETHOD CancelScheduledDump(void) override { return _to CancelScheduledDump(); } \ NS_IMETHOD WaitForScheduledDump(void) override { return _to WaitForScheduledDump(); } \ NS_IMETHOD IsActive(bool *_retval) override { return _to IsActive(_retval); } \ NS_IMETHOD ClearAllPages(void) override { return _to ClearAllPages(); } \ NS_IMETHOD GetFeatures(nsTArray& _retval) override { return _to GetFeatures(_retval); } \ NS_IMETHOD GetActiveConfiguration(JSContext* cx, JS::MutableHandle aActiveConfiguration) override { return _to GetActiveConfiguration(cx, aActiveConfiguration); } \ NS_IMETHOD GetAllFeatures(nsTArray& _retval) override { return _to GetAllFeatures(_retval); } \ NS_IMETHOD GetBufferInfo(uint32_t *aCurrentPosition, uint32_t *aTotalSize, uint32_t *aGeneration) override { return _to GetBufferInfo(aCurrentPosition, aTotalSize, aGeneration); } \ NS_IMETHOD GetElapsedTime(double *_retval) override { return _to GetElapsedTime(_retval); } \ NS_IMETHOD GetSharedLibraries(JSContext* cx, JS::MutableHandle aSharedLibraries) override { return _to GetSharedLibraries(cx, aSharedLibraries); } \ NS_IMETHOD GetSymbolTable(const nsACString& aDebugPath, const nsACString& aBreakpadID, JSContext* cx, ::mozilla::dom::Promise * * _retval) override { return _to GetSymbolTable(aDebugPath, aBreakpadID, cx, _retval); } \ virtual RefPtr, nsresult, true>> GetProfileDataAsGzippedArrayBufferAndroid(double aSinceTime) override { return _to GetProfileDataAsGzippedArrayBufferAndroid(aSinceTime); } /* Use this macro to declare functions that forward the behavior of this interface to another object in a safe way. */ #define NS_FORWARD_SAFE_NSIPROFILER(_to) \ NS_IMETHOD StartProfiler(uint32_t aEntries, double aInterval, const nsTArray& aFeatures, const nsTArray& aFilters, uint64_t aActiveTabID, double aDuration, JSContext* cx, ::mozilla::dom::Promise * * _retval) override { return !_to ? NS_ERROR_NULL_POINTER : _to->StartProfiler(aEntries, aInterval, aFeatures, aFilters, aActiveTabID, aDuration, cx, _retval); } \ NS_IMETHOD StopProfiler(JSContext* cx, ::mozilla::dom::Promise * * _retval) override { return !_to ? NS_ERROR_NULL_POINTER : _to->StopProfiler(cx, _retval); } \ NS_IMETHOD IsPaused(bool *_retval) override { return !_to ? NS_ERROR_NULL_POINTER : _to->IsPaused(_retval); } \ NS_IMETHOD Pause(JSContext* cx, ::mozilla::dom::Promise * * _retval) override { return !_to ? NS_ERROR_NULL_POINTER : _to->Pause(cx, _retval); } \ NS_IMETHOD Resume(JSContext* cx, ::mozilla::dom::Promise * * _retval) override { return !_to ? NS_ERROR_NULL_POINTER : _to->Resume(cx, _retval); } \ NS_IMETHOD IsSamplingPaused(bool *_retval) override { return !_to ? NS_ERROR_NULL_POINTER : _to->IsSamplingPaused(_retval); } \ NS_IMETHOD PauseSampling(JSContext* cx, ::mozilla::dom::Promise * * _retval) override { return !_to ? NS_ERROR_NULL_POINTER : _to->PauseSampling(cx, _retval); } \ NS_IMETHOD ResumeSampling(JSContext* cx, ::mozilla::dom::Promise * * _retval) override { return !_to ? NS_ERROR_NULL_POINTER : _to->ResumeSampling(cx, _retval); } \ NS_IMETHOD WaitOnePeriodicSampling(JSContext* cx, ::mozilla::dom::Promise * * _retval) override { return !_to ? NS_ERROR_NULL_POINTER : _to->WaitOnePeriodicSampling(cx, _retval); } \ NS_IMETHOD GetProfile(double aSinceTime, char * *_retval) override { return !_to ? NS_ERROR_NULL_POINTER : _to->GetProfile(aSinceTime, _retval); } \ NS_IMETHOD GetProfileData(double aSinceTime, JSContext* cx, JS::MutableHandle _retval) override { return !_to ? NS_ERROR_NULL_POINTER : _to->GetProfileData(aSinceTime, cx, _retval); } \ NS_IMETHOD GetProfileDataAsync(double aSinceTime, JSContext* cx, ::mozilla::dom::Promise * * _retval) override { return !_to ? NS_ERROR_NULL_POINTER : _to->GetProfileDataAsync(aSinceTime, cx, _retval); } \ NS_IMETHOD GetProfileDataAsArrayBuffer(double aSinceTime, JSContext* cx, ::mozilla::dom::Promise * * _retval) override { return !_to ? NS_ERROR_NULL_POINTER : _to->GetProfileDataAsArrayBuffer(aSinceTime, cx, _retval); } \ NS_IMETHOD GetProfileDataAsGzippedArrayBuffer(double aSinceTime, JSContext* cx, ::mozilla::dom::Promise * * _retval) override { return !_to ? NS_ERROR_NULL_POINTER : _to->GetProfileDataAsGzippedArrayBuffer(aSinceTime, cx, _retval); } \ NS_IMETHOD DumpProfileToFileAsync(const nsACString& aFilename, double aSinceTime, JSContext* cx, ::mozilla::dom::Promise * * _retval) override { return !_to ? NS_ERROR_NULL_POINTER : _to->DumpProfileToFileAsync(aFilename, aSinceTime, cx, _retval); } \ virtual RefPtr> DumpProfileToFileAsyncNoJs(const nsACString& aFilename, double aSinceTime) override; \ NS_IMETHOD DumpProfileToFile(const char * aFilename) override { return !_to ? NS_ERROR_NULL_POINTER : _to->DumpProfileToFile(aFilename); } \ NS_IMETHOD ScheduleDumpToFile(double aDelaySeconds, const char * aFilename, bool aExitAfterDump) override { return !_to ? NS_ERROR_NULL_POINTER : _to->ScheduleDumpToFile(aDelaySeconds, aFilename, aExitAfterDump); } \ NS_IMETHOD CancelScheduledDump(void) override { return !_to ? NS_ERROR_NULL_POINTER : _to->CancelScheduledDump(); } \ NS_IMETHOD WaitForScheduledDump(void) override { return !_to ? NS_ERROR_NULL_POINTER : _to->WaitForScheduledDump(); } \ NS_IMETHOD IsActive(bool *_retval) override { return !_to ? NS_ERROR_NULL_POINTER : _to->IsActive(_retval); } \ NS_IMETHOD ClearAllPages(void) override { return !_to ? NS_ERROR_NULL_POINTER : _to->ClearAllPages(); } \ NS_IMETHOD GetFeatures(nsTArray& _retval) override { return !_to ? NS_ERROR_NULL_POINTER : _to->GetFeatures(_retval); } \ NS_IMETHOD GetActiveConfiguration(JSContext* cx, JS::MutableHandle aActiveConfiguration) override { return !_to ? NS_ERROR_NULL_POINTER : _to->GetActiveConfiguration(cx, aActiveConfiguration); } \ NS_IMETHOD GetAllFeatures(nsTArray& _retval) override { return !_to ? NS_ERROR_NULL_POINTER : _to->GetAllFeatures(_retval); } \ NS_IMETHOD GetBufferInfo(uint32_t *aCurrentPosition, uint32_t *aTotalSize, uint32_t *aGeneration) override { return !_to ? NS_ERROR_NULL_POINTER : _to->GetBufferInfo(aCurrentPosition, aTotalSize, aGeneration); } \ NS_IMETHOD GetElapsedTime(double *_retval) override { return !_to ? NS_ERROR_NULL_POINTER : _to->GetElapsedTime(_retval); } \ NS_IMETHOD GetSharedLibraries(JSContext* cx, JS::MutableHandle aSharedLibraries) override { return !_to ? NS_ERROR_NULL_POINTER : _to->GetSharedLibraries(cx, aSharedLibraries); } \ NS_IMETHOD GetSymbolTable(const nsACString& aDebugPath, const nsACString& aBreakpadID, JSContext* cx, ::mozilla::dom::Promise * * _retval) override { return !_to ? NS_ERROR_NULL_POINTER : _to->GetSymbolTable(aDebugPath, aBreakpadID, cx, _retval); } \ virtual RefPtr, nsresult, true>> GetProfileDataAsGzippedArrayBufferAndroid(double aSinceTime) override; #endif /* __gen_nsIProfiler_h__ */