diff options
Diffstat (limited to 'dom/presentation/AvailabilityCollection.cpp')
-rw-r--r-- | dom/presentation/AvailabilityCollection.cpp | 99 |
1 files changed, 0 insertions, 99 deletions
diff --git a/dom/presentation/AvailabilityCollection.cpp b/dom/presentation/AvailabilityCollection.cpp deleted file mode 100644 index 73752c750..000000000 --- a/dom/presentation/AvailabilityCollection.cpp +++ /dev/null @@ -1,99 +0,0 @@ -/* -*- Mode: C++; tab-width: 2; indent-tabs-mode: nil; c-basic-offset: 2 -*- */ -/* vim:set ts=2 sw=2 sts=2 et cindent: */ -/* This Source Code Form is subject to the terms of the Mozilla Public - * License, v. 2.0. If a copy of the MPL was not distributed with this - * file, You can obtain one at http://mozilla.org/MPL/2.0/. */ - -#include "AvailabilityCollection.h" - -#include "mozilla/ClearOnShutdown.h" -#include "PresentationAvailability.h" - -namespace mozilla { -namespace dom { - -/* static */ -StaticAutoPtr<AvailabilityCollection> -AvailabilityCollection::sSingleton; -static bool gOnceAliveNowDead = false; - -/* static */ AvailabilityCollection* -AvailabilityCollection::GetSingleton() -{ - MOZ_ASSERT(NS_IsMainThread()); - - if (!sSingleton && !gOnceAliveNowDead) { - sSingleton = new AvailabilityCollection(); - ClearOnShutdown(&sSingleton); - } - - return sSingleton; -} - -AvailabilityCollection::AvailabilityCollection() -{ - MOZ_COUNT_CTOR(AvailabilityCollection); -} - -AvailabilityCollection::~AvailabilityCollection() -{ - MOZ_COUNT_DTOR(AvailabilityCollection); - gOnceAliveNowDead = true; -} - -void -AvailabilityCollection::Add(PresentationAvailability* aAvailability) -{ - MOZ_ASSERT(NS_IsMainThread()); - - if (!aAvailability) { - return; - } - - WeakPtr<PresentationAvailability> availability = aAvailability; - if (mAvailabilities.Contains(aAvailability)) { - return; - } - - mAvailabilities.AppendElement(aAvailability); -} - -void -AvailabilityCollection::Remove(PresentationAvailability* aAvailability) -{ - MOZ_ASSERT(NS_IsMainThread()); - - if (!aAvailability) { - return; - } - - WeakPtr<PresentationAvailability> availability = aAvailability; - mAvailabilities.RemoveElement(availability); -} - -already_AddRefed<PresentationAvailability> -AvailabilityCollection::Find(const uint64_t aWindowId, const nsTArray<nsString>& aUrls) -{ - MOZ_ASSERT(NS_IsMainThread()); - - // Loop backwards to allow removing elements in the loop. - for (int i = mAvailabilities.Length() - 1; i >= 0; --i) { - WeakPtr<PresentationAvailability> availability = mAvailabilities[i]; - if (!availability) { - // The availability object was destroyed. Remove it from the list. - mAvailabilities.RemoveElementAt(i); - continue; - } - - if (availability->Equals(aWindowId, aUrls)) { - RefPtr<PresentationAvailability> matchedAvailability = availability.get(); - return matchedAvailability.forget(); - } - } - - - return nullptr; -} - -} // namespace dom -} // namespace mozilla |