void
nsPerformanceGroup::Dispose() {
  if (!mService) {
    // We have already called `Dispose()`.
    return;
  }

  // Remove any reference to the service
  RefPtr<nsPerformanceStatsService> service;
  service.swap(mService);

  service->mGroups.RemoveEntry(this);

  if (mScope == GroupScope::ADDON) {
    MOZ_ASSERT(IsAddon());
    service->mAddonIdToGroup.RemoveEntry(AddonId());
  } else if (mScope == GroupScope::WINDOW) {
    MOZ_ASSERT(IsWindow());
    service->mWindowIdToGroup.RemoveEntry(WindowId());
  }
}
/* readonly attribute uint64_t windowId; */
NS_IMETHODIMP
nsPerformanceGroupDetails::GetWindowId(uint64_t *aWindowId) {
  *aWindowId = WindowId();
  return NS_OK;
}