summaryrefslogtreecommitdiffstats
path: root/dom
diff options
context:
space:
mode:
authorwolfbeast <mcwerewolf@wolfbeast.com>2020-02-20 12:00:26 +0100
committerwolfbeast <mcwerewolf@wolfbeast.com>2020-04-14 12:47:56 +0200
commit009c9dd2f82445de79cfedf03ddd8d321df9b69b (patch)
treebd5f8904957e6feb63af35b8008cd3ac9ada9647 /dom
parent6407f1abd4f2f598f42cd416d7de9345c77e2444 (diff)
downloadUXP-009c9dd2f82445de79cfedf03ddd8d321df9b69b.tar
UXP-009c9dd2f82445de79cfedf03ddd8d321df9b69b.tar.gz
UXP-009c9dd2f82445de79cfedf03ddd8d321df9b69b.tar.lz
UXP-009c9dd2f82445de79cfedf03ddd8d321df9b69b.tar.xz
UXP-009c9dd2f82445de79cfedf03ddd8d321df9b69b.zip
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.h2
-rw-r--r--dom/performance/PerformanceMainThread.cpp9
-rw-r--r--dom/performance/PerformanceMainThread.h8
-rw-r--r--dom/performance/PerformanceWorker.h2
-rw-r--r--dom/webidl/Performance.webidl2
5 files changed, 23 insertions, 0 deletions
diff --git a/dom/performance/Performance.h b/dom/performance/Performance.h
index 4debecc90..c40dd8aff 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 5a84f5fb1..4c800005f 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 9f0e185fc..68b306d93 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 346bdd026..ffe2a1998 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 0bd2677df..e811e1cee 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)]