diff options
Diffstat (limited to 'dom/presentation/PresentationConnectionList.cpp')
-rw-r--r-- | dom/presentation/PresentationConnectionList.cpp | 125 |
1 files changed, 0 insertions, 125 deletions
diff --git a/dom/presentation/PresentationConnectionList.cpp b/dom/presentation/PresentationConnectionList.cpp deleted file mode 100644 index 0e0e7696c..000000000 --- a/dom/presentation/PresentationConnectionList.cpp +++ /dev/null @@ -1,125 +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 "PresentationConnectionList.h" - -#include "mozilla/AsyncEventDispatcher.h" -#include "mozilla/dom/PresentationConnectionAvailableEvent.h" -#include "mozilla/dom/PresentationConnectionListBinding.h" -#include "mozilla/dom/Promise.h" -#include "PresentationConnection.h" - -namespace mozilla { -namespace dom { - -NS_IMPL_CYCLE_COLLECTION_INHERITED(PresentationConnectionList, DOMEventTargetHelper, - mGetConnectionListPromise, - mConnections) - -NS_IMPL_ADDREF_INHERITED(PresentationConnectionList, DOMEventTargetHelper) -NS_IMPL_RELEASE_INHERITED(PresentationConnectionList, DOMEventTargetHelper) - -NS_INTERFACE_MAP_BEGIN_CYCLE_COLLECTION_INHERITED(PresentationConnectionList) -NS_INTERFACE_MAP_END_INHERITING(DOMEventTargetHelper) - -PresentationConnectionList::PresentationConnectionList(nsPIDOMWindowInner* aWindow, - Promise* aPromise) - : DOMEventTargetHelper(aWindow) - , mGetConnectionListPromise(aPromise) -{ - MOZ_ASSERT(aWindow); - MOZ_ASSERT(aPromise); -} - -/* virtual */ JSObject* -PresentationConnectionList::WrapObject(JSContext* aCx, - JS::Handle<JSObject*> aGivenProto) -{ - return PresentationConnectionListBinding::Wrap(aCx, this, aGivenProto); -} - -void -PresentationConnectionList::GetConnections( - nsTArray<RefPtr<PresentationConnection>>& aConnections) const -{ - aConnections = mConnections; -} - -nsresult -PresentationConnectionList::DispatchConnectionAvailableEvent( - PresentationConnection* aConnection) -{ - PresentationConnectionAvailableEventInit init; - init.mConnection = aConnection; - - RefPtr<PresentationConnectionAvailableEvent> event = - PresentationConnectionAvailableEvent::Constructor( - this, - NS_LITERAL_STRING("connectionavailable"), - init); - - if (NS_WARN_IF(!event)) { - return NS_ERROR_FAILURE; - } - event->SetTrusted(true); - - RefPtr<AsyncEventDispatcher> asyncDispatcher = - new AsyncEventDispatcher(this, event); - return asyncDispatcher->PostDOMEvent(); -} - -PresentationConnectionList::ConnectionArrayIndex -PresentationConnectionList::FindConnectionById( - const nsAString& aId) -{ - for (ConnectionArrayIndex i = 0; i < mConnections.Length(); i++) { - nsAutoString id; - mConnections[i]->GetId(id); - if (id == nsAutoString(aId)) { - return i; - } - } - - return mConnections.NoIndex; -} - -void -PresentationConnectionList::NotifyStateChange(const nsAString& aSessionId, - PresentationConnection* aConnection) -{ - if (!aConnection) { - MOZ_ASSERT(false, "PresentationConnection can not be null."); - return; - } - - bool connectionFound = - FindConnectionById(aSessionId) != mConnections.NoIndex ? true : false; - - PresentationConnectionListBinding::ClearCachedConnectionsValue(this); - switch (aConnection->State()) { - case PresentationConnectionState::Connected: - if (!connectionFound) { - mConnections.AppendElement(aConnection); - if (mGetConnectionListPromise) { - mGetConnectionListPromise->MaybeResolve(this); - mGetConnectionListPromise = nullptr; - return; - } - } - DispatchConnectionAvailableEvent(aConnection); - break; - case PresentationConnectionState::Terminated: - if (connectionFound) { - mConnections.RemoveElement(aConnection); - } - break; - default: - break; - } -} - -} // namespace dom -} // namespace mozilla |