tor-browser

The Tor Browser
git clone https://git.dasho.dev/tor-browser.git
Log | Files | Refs | README | LICENSE

commit 0e8d216b6ee7ae9ff406dc1d001e4f06e3ff94f9
parent b9ccd5f6f0f980387771d6fbf348d86da78bd493
Author: Andreas Pehrson <apehrson@mozilla.com>
Date:   Tue, 11 Nov 2025 08:20:24 +0000

Bug 1771789 - Clean up type mismatches and unused things in CamerasParent. r=jib

Differential Revision: https://phabricator.services.mozilla.com/D266401

Diffstat:
Mdom/media/systemservices/CamerasParent.cpp | 90++++++++++++++++++++++++++++++++++---------------------------------------------
Mdom/media/systemservices/CamerasParent.h | 14+++++---------
2 files changed, 44 insertions(+), 60 deletions(-)

diff --git a/dom/media/systemservices/CamerasParent.cpp b/dom/media/systemservices/CamerasParent.cpp @@ -57,8 +57,8 @@ using dom::VideoResizeModeEnum; using media::ShutdownBlockingTicket; namespace camera { -MOZ_RUNINIT std::map<uint32_t, const char*> sDeviceUniqueIDs; -MOZ_RUNINIT std::map<uint32_t, webrtc::VideoCaptureCapability> +MOZ_RUNINIT std::map<int, const char*> sDeviceUniqueIDs; +MOZ_RUNINIT std::map<int, webrtc::VideoCaptureCapability> sAllRequestedCapabilities; uint32_t ResolutionFeasibilityDistance(int32_t candidate, int32_t requested) { @@ -252,7 +252,7 @@ void CamerasParent::OnDeviceChange() { class DeliverFrameRunnable : public mozilla::Runnable { public: DeliverFrameRunnable(CamerasParent* aParent, CaptureEngine aEngine, - uint32_t aStreamId, const TrackingId& aTrackingId, + int aStreamId, const TrackingId& aTrackingId, const webrtc::VideoFrame& aFrame, const VideoFrameProperties& aProperties) : Runnable("camera::DeliverFrameRunnable"), @@ -260,8 +260,7 @@ class DeliverFrameRunnable : public mozilla::Runnable { mCapEngine(aEngine), mStreamId(aStreamId), mTrackingId(aTrackingId), - mProperties(aProperties), - mResult(0) { + mProperties(aProperties) { // No ShmemBuffer (of the right size) was available, so make an // extra buffer here. We have no idea when we are going to run and // it will be potentially long after the webrtc frame callback has @@ -278,7 +277,7 @@ class DeliverFrameRunnable : public mozilla::Runnable { } DeliverFrameRunnable(CamerasParent* aParent, CaptureEngine aEngine, - uint32_t aStreamId, const TrackingId& aTrackingId, + int aStreamId, const TrackingId& aTrackingId, ShmemBuffer aBuffer, VideoFrameProperties& aProperties) : Runnable("camera::DeliverFrameRunnable"), mParent(aParent), @@ -286,8 +285,7 @@ class DeliverFrameRunnable : public mozilla::Runnable { mStreamId(aStreamId), mTrackingId(aTrackingId), mBuffer(std::move(aBuffer)), - mProperties(aProperties), - mResult(0) {}; + mProperties(aProperties) {} NS_IMETHOD Run() override { // runs on BackgroundEventTarget @@ -295,34 +293,25 @@ class DeliverFrameRunnable : public mozilla::Runnable { mParent->mPBackgroundEventTarget); if (mParent->IsShuttingDown()) { // Communication channel is being torn down - mResult = 0; return NS_OK; } - if (!mParent->DeliverFrameOverIPC(mCapEngine, mStreamId, mTrackingId, - std::move(mBuffer), - mAlternateBuffer.get(), mProperties)) { - mResult = -1; - } else { - mResult = 0; - } + mParent->DeliverFrameOverIPC(mCapEngine, mStreamId, mTrackingId, + std::move(mBuffer), mAlternateBuffer.get(), + mProperties); return NS_OK; } - int GetResult() { return mResult; } - private: const RefPtr<CamerasParent> mParent; const CaptureEngine mCapEngine; - const uint32_t mStreamId; + const int mStreamId; const TrackingId mTrackingId; ShmemBuffer mBuffer; UniquePtr<unsigned char[]> mAlternateBuffer; const VideoFrameProperties mProperties; - int mResult; }; -int CamerasParent::DeliverFrameOverIPC(CaptureEngine aCapEngine, - uint32_t aStreamId, +int CamerasParent::DeliverFrameOverIPC(CaptureEngine aCapEngine, int aStreamId, const TrackingId& aTrackingId, ShmemBuffer aBuffer, unsigned char* aAltBuffer, @@ -672,34 +661,33 @@ ipc::IPCResult CamerasParent::RecvGetCaptureCapability( aIndex); using Promise = MozPromise<webrtc::VideoCaptureCapability, int, true>; - InvokeAsync(mVideoCaptureThread, __func__, - [this, self = RefPtr(this), id = nsCString(aUniqueId), aCapEngine, - aIndex] { - webrtc::VideoCaptureCapability webrtcCaps; - int error = -1; - if (auto devInfo = GetDeviceInfo(aCapEngine)) { - error = devInfo->GetCapability(id.get(), aIndex, webrtcCaps); - } + InvokeAsync( + mVideoCaptureThread, __func__, + [this, self = RefPtr(this), id = nsCString(aUniqueId), aCapEngine, + aIndex] { + webrtc::VideoCaptureCapability webrtcCaps; + int error = -1; + if (auto devInfo = GetDeviceInfo(aCapEngine)) { + error = devInfo->GetCapability(id.get(), aIndex, webrtcCaps); + } - if (!error && aCapEngine == CameraEngine) { - auto iter = mAllCandidateCapabilities.find(id); - if (iter == mAllCandidateCapabilities.end()) { - std::map<uint32_t, webrtc::VideoCaptureCapability> - candidateCapabilities; - candidateCapabilities.emplace(aIndex, webrtcCaps); - mAllCandidateCapabilities.emplace(id, - candidateCapabilities); - } else { - (iter->second).emplace(aIndex, webrtcCaps); - } - } - if (error) { - return Promise::CreateAndReject( - error, "CamerasParent::RecvGetCaptureCapability"); - } - return Promise::CreateAndResolve( - webrtcCaps, "CamerasParent::RecvGetCaptureCapability"); - }) + if (!error && aCapEngine == CameraEngine) { + auto iter = mAllCandidateCapabilities.find(id); + if (iter == mAllCandidateCapabilities.end()) { + std::map<int, webrtc::VideoCaptureCapability> candidateCapabilities; + candidateCapabilities.emplace(aIndex, webrtcCaps); + mAllCandidateCapabilities.emplace(id, candidateCapabilities); + } else { + (iter->second).emplace(aIndex, webrtcCaps); + } + } + if (error) { + return Promise::CreateAndReject( + error, "CamerasParent::RecvGetCaptureCapability"); + } + return Promise::CreateAndResolve( + webrtcCaps, "CamerasParent::RecvGetCaptureCapability"); + }) ->Then( mPBackgroundEventTarget, __func__, [this, self = RefPtr(this)](Promise::ResolveOrRejectValue&& aValue) { @@ -1090,7 +1078,7 @@ ipc::IPCResult CamerasParent::RecvStartCapture( CallbackHelper* cbh = nullptr; for (auto& cb : mCallbacks) { if (cb->mCapEngine == aCapEngine && - cb->mStreamId == (uint32_t)aCaptureId) { + cb->mStreamId == aCaptureId) { cbh = cb.get(); break; } @@ -1202,7 +1190,7 @@ void CamerasParent::StopCapture(const CaptureEngine& aCapEngine, // we're removing elements, iterate backwards for (size_t i = mCallbacks.Length(); i > 0; i--) { if (mCallbacks[i - 1]->mCapEngine == aCapEngine && - mCallbacks[i - 1]->mStreamId == (uint32_t)aCaptureId) { + mCallbacks[i - 1]->mStreamId == aCaptureId) { CallbackHelper* cbh = mCallbacks[i - 1].get(); engine->WithEntry(aCaptureId, [cbh, &aCaptureId]( VideoEngine::CaptureEntry& cap) { diff --git a/dom/media/systemservices/CamerasParent.h b/dom/media/systemservices/CamerasParent.h @@ -30,13 +30,12 @@ class VideoEngine; class CallbackHelper : public webrtc::VideoSinkInterface<webrtc::VideoFrame> { public: - CallbackHelper(CaptureEngine aCapEng, uint32_t aStreamId, - CamerasParent* aParent) + CallbackHelper(CaptureEngine aCapEng, int aStreamId, CamerasParent* aParent) : mCapEngine(aCapEng), mStreamId(aStreamId), mTrackingId(CaptureEngineToTrackingSourceStr(aCapEng), aStreamId), mParent(aParent), - mConfiguration("CallbackHelper::mConfiguration") {}; + mConfiguration("CallbackHelper::mConfiguration") {} void SetConfiguration(const webrtc::VideoCaptureCapability& aCapability, const NormalizedConstraints& aConstraints, @@ -56,7 +55,7 @@ class CallbackHelper : public webrtc::VideoSinkInterface<webrtc::VideoFrame> { dom::VideoResizeModeEnum mResizeMode{}; }; const CaptureEngine mCapEngine; - const uint32_t mStreamId; + const int mStreamId; const TrackingId mTrackingId; CamerasParent* const mParent; MediaEventListener mCaptureEndedListener; @@ -139,7 +138,7 @@ class CamerasParent final : public PCamerasParent { ShmemBuffer GetBuffer(size_t aSize); // helper to forward to the PBackground thread - int DeliverFrameOverIPC(CaptureEngine aCapEngine, uint32_t aStreamId, + int DeliverFrameOverIPC(CaptureEngine aCapEngine, int aStreamId, const TrackingId& aTrackingId, ShmemBuffer aBuffer, unsigned char* aAltBuffer, const VideoFrameProperties& aProps); @@ -162,9 +161,6 @@ class CamerasParent final : public PCamerasParent { int aEngine); VideoEngine* EnsureInitialized(int aEngine); - bool IsWindowCapturing(VideoEngine* aEngine, uint64_t aWindowID, - const nsACString& aUniqueIdUTF8); - // Stops any ongoing capturing and releases resources. Called on // mVideoCaptureThread. Idempotent. void CloseEngines(); @@ -197,7 +193,7 @@ class CamerasParent final : public PCamerasParent { // Set to true in ActorDestroy. PBackground only. bool mDestroyed; - std::map<nsCString, std::map<uint32_t, webrtc::VideoCaptureCapability>> + std::map<nsCString, std::map<int, webrtc::VideoCaptureCapability>> mAllCandidateCapabilities; // Listener for the camera VideoEngine::DeviceChangeEvent(). Video capture