зеркало из https://github.com/mozilla/gecko-dev.git
Bug 968836 - fix a few already_AddRefed members in MediaManager.cpp; r=jesup
This commit is contained in:
Родитель
ccfa0fd03b
Коммит
0ca2bb1bf9
|
@ -1,3 +1,5 @@
|
|||
/* -*- Mode: c++; c-basic-offset: 2; indent-tabs-mode: nil; tab-width: 40 -*- */
|
||||
/* vim: set ts=2 et sw=2 tw=80: */
|
||||
/* 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/. */
|
||||
|
@ -225,23 +227,22 @@ class DeviceSuccessCallbackRunnable: public nsRunnable
|
|||
public:
|
||||
DeviceSuccessCallbackRunnable(
|
||||
uint64_t aWindowID,
|
||||
already_AddRefed<nsIGetUserMediaDevicesSuccessCallback> aSuccess,
|
||||
already_AddRefed<nsIDOMGetUserMediaErrorCallback> aError,
|
||||
nsCOMPtr<nsIGetUserMediaDevicesSuccessCallback>& aSuccess,
|
||||
nsCOMPtr<nsIDOMGetUserMediaErrorCallback>& aError,
|
||||
nsTArray<nsCOMPtr<nsIMediaDevice> >* aDevices)
|
||||
: mSuccess(aSuccess)
|
||||
, mError(aError)
|
||||
, mDevices(aDevices)
|
||||
: mDevices(aDevices)
|
||||
, mWindowID(aWindowID)
|
||||
, mManager(MediaManager::GetInstance()) {}
|
||||
, mManager(MediaManager::GetInstance())
|
||||
{
|
||||
mSuccess.swap(aSuccess);
|
||||
mError.swap(aError);
|
||||
}
|
||||
|
||||
NS_IMETHOD
|
||||
Run()
|
||||
{
|
||||
NS_ASSERTION(NS_IsMainThread(), "Only call on main thread");
|
||||
|
||||
nsCOMPtr<nsIGetUserMediaDevicesSuccessCallback> success(mSuccess);
|
||||
nsCOMPtr<nsIDOMGetUserMediaErrorCallback> error(mError);
|
||||
|
||||
// Only run if window is still on our active list.
|
||||
if (!mManager->IsWindowStillActive(mWindowID)) {
|
||||
return NS_OK;
|
||||
|
@ -256,7 +257,7 @@ public:
|
|||
// We should in the future return an empty array, and dynamically add
|
||||
// devices to the dropdowns if things are hotplugged while the
|
||||
// requester is up.
|
||||
error->OnError(NS_LITERAL_STRING("NO_DEVICES_FOUND"));
|
||||
mError->OnError(NS_LITERAL_STRING("NO_DEVICES_FOUND"));
|
||||
return NS_OK;
|
||||
}
|
||||
|
||||
|
@ -272,13 +273,13 @@ public:
|
|||
static_cast<const void*>(tmp.Elements())
|
||||
));
|
||||
|
||||
success->OnSuccess(devices);
|
||||
mSuccess->OnSuccess(devices);
|
||||
return NS_OK;
|
||||
}
|
||||
|
||||
private:
|
||||
already_AddRefed<nsIGetUserMediaDevicesSuccessCallback> mSuccess;
|
||||
already_AddRefed<nsIDOMGetUserMediaErrorCallback> mError;
|
||||
nsCOMPtr<nsIGetUserMediaDevicesSuccessCallback> mSuccess;
|
||||
nsCOMPtr<nsIDOMGetUserMediaErrorCallback> mError;
|
||||
nsAutoPtr<nsTArray<nsCOMPtr<nsIMediaDevice> > > mDevices;
|
||||
uint64_t mWindowID;
|
||||
nsRefPtr<MediaManager> mManager;
|
||||
|
@ -1099,13 +1100,15 @@ public:
|
|||
NS_DispatchToMainThread(new DeviceSuccessCallbackRunnable(mWindowId,
|
||||
mSuccess, mError,
|
||||
final.forget()));
|
||||
// DeviceSuccessCallbackRunnable should have taken these.
|
||||
MOZ_ASSERT(!mSuccess && !mError);
|
||||
return NS_OK;
|
||||
}
|
||||
|
||||
private:
|
||||
MediaStreamConstraintsInternal mConstraints;
|
||||
already_AddRefed<nsIGetUserMediaDevicesSuccessCallback> mSuccess;
|
||||
already_AddRefed<nsIDOMGetUserMediaErrorCallback> mError;
|
||||
nsCOMPtr<nsIGetUserMediaDevicesSuccessCallback> mSuccess;
|
||||
nsCOMPtr<nsIDOMGetUserMediaErrorCallback> mError;
|
||||
nsRefPtr<MediaManager> mManager;
|
||||
uint64_t mWindowId;
|
||||
const nsString mCallId;
|
||||
|
|
Загрузка…
Ссылка в новой задаче