Issue #316 - Make the memory GC performance object conditional (WIP)

This was only added for GCubench and likely interfering with building
without devtools-server.
This commit is contained in:
wolfbeast 2020-02-20 12:00:26 +01:00 • committed by Roy Tam
commit 1e553d0e73
11 changed files with 36 additions and 0 deletions

View file

@ -96,8 +96,10 @@ public:
IMPL_EVENT_HANDLER(resourcetimingbufferfull)
#ifdef MOZ_DEVTOOLS_SERVER
virtual void GetMozMemory(JSContext *aCx,
JS::MutableHandle<JSObject*> aObj) = 0;
#endif
virtual nsDOMNavigationTiming* GetDOMTiming() const = 0;

View file

@ -11,6 +11,7 @@
namespace mozilla {
namespace dom {
#ifdef MOZ_DEVTOOLS_SERVER
NS_IMPL_CYCLE_COLLECTION_CLASS(PerformanceMainThread)
NS_IMPL_CYCLE_COLLECTION_UNLINK_BEGIN_INHERITED(PerformanceMainThread,
@ -36,6 +37,10 @@ NS_IMPL_CYCLE_COLLECTION_TRACE_END
NS_IMPL_ADDREF_INHERITED(PerformanceMainThread, Performance)
NS_IMPL_RELEASE_INHERITED(PerformanceMainThread, Performance)
#else
NS_IMPL_CYCLE_COLLECTION_INHERITED(PerformanceMainThread, Performance
mTiming, mNavigation, mDocEntry)
#endif
// QueryInterface implementation for PerformanceMainThread
NS_INTERFACE_MAP_BEGIN_CYCLE_COLLECTION(PerformanceMainThread)
@ -55,9 +60,12 @@ PerformanceMainThread::PerformanceMainThread(nsPIDOMWindowInner* aWindow,
PerformanceMainThread::~PerformanceMainThread()
{
#ifdef MOZ_DEVTOOLS_SERVER
mozilla::DropJSObjects(this);
#endif
}
#ifdef MOZ_DEVTOOLS_SERVER
void
PerformanceMainThread::GetMozMemory(JSContext *aCx,
JS::MutableHandle<JSObject*> aObj)
@ -71,6 +79,7 @@ PerformanceMainThread::GetMozMemory(JSContext *aCx,
aObj.set(mMozMemory);
}
#endif
PerformanceTiming*
PerformanceMainThread::Timing()

View file

@ -20,8 +20,12 @@ public:
nsITimedChannel* aChannel);
NS_DECL_ISUPPORTS_INHERITED
#ifdef MOZ_DEVTOOLS_SERVER
NS_DECL_CYCLE_COLLECTION_SCRIPT_HOLDER_CLASS_INHERITED(PerformanceMainThread,
Performance)
#else
NS_DECL_CYCLE_COLLECTION_CLASS_INHERITED(PerformanceMainThread, Performance)
#endif
virtual PerformanceTiming* Timing() override;
@ -34,8 +38,10 @@ public:
DOMHighResTimeStamp CreationTime() const override;
#ifdef MOZ_DEVTOOLS_SERVER
virtual void GetMozMemory(JSContext *aCx,
JS::MutableHandle<JSObject*> aObj) override;
#endif
virtual nsDOMNavigationTiming* GetDOMTiming() const override
{
@ -79,7 +85,9 @@ protected:
nsCOMPtr<nsITimedChannel> mChannel;
RefPtr<PerformanceTiming> mTiming;
RefPtr<PerformanceNavigation> mNavigation;
#ifdef MOZ_DEVTOOLS_SERVER
JS::Heap<JSObject*> mMozMemory;
#endif
};
} // namespace dom

View file

@ -43,11 +43,13 @@ public:
DOMHighResTimeStamp CreationTime() const override;
#ifdef MOZ_DEVTOOLS_SERVER
virtual void GetMozMemory(JSContext *aCx,
JS::MutableHandle<JSObject*> aObj) override
{
MOZ_CRASH("This should not be called on workers.");
}
#endif
virtual nsDOMNavigationTiming* GetDOMTiming() const override
{