diff options
author | wolfbeast <mcwerewolf@wolfbeast.com> | 2020-02-20 12:00:26 +0100 |
---|---|---|
committer | wolfbeast <mcwerewolf@wolfbeast.com> | 2020-02-20 12:00:26 +0100 |
commit | 59f7a2cdb4f36f017586aa139a7fe8def39e777b (patch) | |
tree | 45779e58d11a2e540cb7db858c383d4471ab475b /dom | |
parent | e3d81b698ea104e4b55ee618b931ea1311c04169 (diff) | |
download | uxp-59f7a2cdb4f36f017586aa139a7fe8def39e777b.tar.gz |
Issue #316 - Make the memory GC performance object conditional (WIP)
This was only added for GCubench and likely interfering with building
without devtools-server.
Diffstat (limited to 'dom')
-rw-r--r-- | dom/performance/Performance.h | 2 | ||||
-rw-r--r-- | dom/performance/PerformanceMainThread.cpp | 9 | ||||
-rw-r--r-- | dom/performance/PerformanceMainThread.h | 8 | ||||
-rw-r--r-- | dom/performance/PerformanceWorker.h | 2 | ||||
-rw-r--r-- | dom/webidl/Performance.webidl | 2 |
5 files changed, 23 insertions, 0 deletions
diff --git a/dom/performance/Performance.h b/dom/performance/Performance.h index 4debecc90f..c40dd8affa 100644 --- a/dom/performance/Performance.h +++ b/dom/performance/Performance.h @@ -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; diff --git a/dom/performance/PerformanceMainThread.cpp b/dom/performance/PerformanceMainThread.cpp index 5a84f5fb11..4c800005fe 100644 --- a/dom/performance/PerformanceMainThread.cpp +++ b/dom/performance/PerformanceMainThread.cpp @@ -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() diff --git a/dom/performance/PerformanceMainThread.h b/dom/performance/PerformanceMainThread.h index 9f0e185fcf..68b306d93a 100644 --- a/dom/performance/PerformanceMainThread.h +++ b/dom/performance/PerformanceMainThread.h @@ -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 diff --git a/dom/performance/PerformanceWorker.h b/dom/performance/PerformanceWorker.h index 346bdd0260..ffe2a1998a 100644 --- a/dom/performance/PerformanceWorker.h +++ b/dom/performance/PerformanceWorker.h @@ -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 { diff --git a/dom/webidl/Performance.webidl b/dom/webidl/Performance.webidl index 0bd2677df7..e811e1cee2 100644 --- a/dom/webidl/Performance.webidl +++ b/dom/webidl/Performance.webidl @@ -55,12 +55,14 @@ partial interface Performance { attribute EventHandler onresourcetimingbufferfull; }; +#ifdef MOZ_DEVTOOLS_SERVER // GC microbenchmarks, pref-guarded, not for general use (bug 1125412) [Exposed=Window] partial interface Performance { [Pref="dom.enable_memory_stats"] readonly attribute object mozMemory; }; +#endif // http://www.w3.org/TR/user-timing/ [Exposed=(Window,Worker)] |