Loading dom/cache/TypeUtils.cpp +1 −1 Original line number Diff line number Diff line Loading @@ -184,7 +184,7 @@ void TypeUtils::ToCacheResponseWithoutBody(CacheResponse& aOut, aOut.statusText() = aIn.GetUnfilteredStatusText(); RefPtr<InternalHeaders> headers = aIn.UnfilteredHeaders(); MOZ_DIAGNOSTIC_ASSERT(headers); if (HasVaryStar(headers)) { if (aIn.Type() != ResponseType::Opaque && HasVaryStar(headers)) { aRv.ThrowTypeError("Invalid Response object with a 'Vary: *' header."); return; } Loading dom/canvas/WebGLContextExtensions.cpp +7 −10 Original line number Diff line number Diff line Loading @@ -17,15 +17,10 @@ namespace mozilla { const char* GetExtensionName(const WebGLExtensionID ext) { static EnumeratedArray<WebGLExtensionID, WebGLExtensionID::Max, const char*> sExtensionNamesEnumeratedArray; static bool initialized = false; if (!initialized) { initialized = true; switch (ext) { #define WEBGL_EXTENSION_IDENTIFIER(x) \ sExtensionNamesEnumeratedArray[WebGLExtensionID::x] = #x; case WebGLExtensionID::x: \ return #x; WEBGL_EXTENSION_IDENTIFIER(ANGLE_instanced_arrays) WEBGL_EXTENSION_IDENTIFIER(EXT_blend_minmax) Loading Loading @@ -67,9 +62,11 @@ const char* GetExtensionName(const WebGLExtensionID ext) { WEBGL_EXTENSION_IDENTIFIER(WEBGL_provoking_vertex) #undef WEBGL_EXTENSION_IDENTIFIER } return sExtensionNamesEnumeratedArray[ext]; case WebGLExtensionID::Max: break; } MOZ_CRASH("bad WebGLExtensionID"); } // ---------------------------- Loading dom/media/MediaTrackGraph.cpp +35 −21 Original line number Diff line number Diff line Loading @@ -145,6 +145,27 @@ class GraphKey final { nsTHashMap<nsGenericHashKey<GraphKey>, MediaTrackGraphImpl*> gGraphs; } // anonymous namespace static void ApplyTrackDisabling(DisabledTrackMode aDisabledMode, MediaSegment* aSegment, MediaSegment* aRawSegment) { if (aDisabledMode == DisabledTrackMode::ENABLED) { return; } if (aDisabledMode == DisabledTrackMode::SILENCE_BLACK) { aSegment->ReplaceWithDisabled(); if (aRawSegment) { aRawSegment->ReplaceWithDisabled(); } } else if (aDisabledMode == DisabledTrackMode::SILENCE_FREEZE) { aSegment->ReplaceWithNull(); if (aRawSegment) { aRawSegment->ReplaceWithNull(); } } else { MOZ_CRASH("Unsupported mode"); } } MediaTrackGraphImpl::~MediaTrackGraphImpl() { MOZ_ASSERT(mTracks.IsEmpty() && mSuspendedTracks.IsEmpty(), "All tracks should have been destroyed by messages from the main " Loading Loading @@ -2421,6 +2442,7 @@ RefPtr<GenericPromise> MediaTrack::RemoveListener( void MediaTrack::AddDirectListenerImpl( already_AddRefed<DirectMediaTrackListener> aListener) { MOZ_ASSERT(mGraph->OnGraphThread()); // Base implementation, for tracks that don't support direct track listeners. RefPtr<DirectMediaTrackListener> listener = aListener; listener->NotifyDirectListenerInstalled( Loading Loading @@ -2503,6 +2525,7 @@ void MediaTrack::RunAfterPendingUpdates( } void MediaTrack::SetDisabledTrackModeImpl(DisabledTrackMode aMode) { MOZ_ASSERT(mGraph->OnGraphThread()); MOZ_DIAGNOSTIC_ASSERT( aMode == DisabledTrackMode::ENABLED || mDisabledMode == DisabledTrackMode::ENABLED, Loading Loading @@ -2531,22 +2554,8 @@ void MediaTrack::SetDisabledTrackMode(DisabledTrackMode aMode) { void MediaTrack::ApplyTrackDisabling(MediaSegment* aSegment, MediaSegment* aRawSegment) { if (mDisabledMode == DisabledTrackMode::ENABLED) { return; } if (mDisabledMode == DisabledTrackMode::SILENCE_BLACK) { aSegment->ReplaceWithDisabled(); if (aRawSegment) { aRawSegment->ReplaceWithDisabled(); } } else if (mDisabledMode == DisabledTrackMode::SILENCE_FREEZE) { aSegment->ReplaceWithNull(); if (aRawSegment) { aRawSegment->ReplaceWithNull(); } } else { MOZ_CRASH("Unsupported mode"); } MOZ_ASSERT(mGraph->OnGraphThread()); mozilla::ApplyTrackDisabling(mDisabledMode, aSegment, aRawSegment); } void MediaTrack::AddMainThreadListener( Loading Loading @@ -2866,7 +2875,7 @@ TrackTime SourceMediaTrack::AppendData(MediaSegment* aSegment, // Apply track disabling before notifying any consumers directly // or inserting into the graph ApplyTrackDisabling(aSegment, aRawSegment); mozilla::ApplyTrackDisabling(mDirectDisabledMode, aSegment, aRawSegment); ResampleAudioToGraphSampleRate(aSegment); Loading Loading @@ -2910,6 +2919,7 @@ void SourceMediaTrack::NotifyDirectConsumers(MediaSegment* aSegment) { void SourceMediaTrack::AddDirectListenerImpl( already_AddRefed<DirectMediaTrackListener> aListener) { MOZ_ASSERT(mGraph->OnGraphThread()); MutexAutoLock lock(mMutex); RefPtr<DirectMediaTrackListener> listener = aListener; Loading Loading @@ -2979,6 +2989,7 @@ void SourceMediaTrack::AddDirectListenerImpl( void SourceMediaTrack::RemoveDirectListenerImpl( DirectMediaTrackListener* aListener) { mGraph->AssertOnGraphThreadOrNotRunning(); MutexAutoLock lock(mMutex); for (int32_t i = mDirectTrackListeners.Length() - 1; i >= 0; --i) { const RefPtr<DirectMediaTrackListener>& l = mDirectTrackListeners[i]; Loading Loading @@ -3008,17 +3019,20 @@ void SourceMediaTrack::End() { } void SourceMediaTrack::SetDisabledTrackModeImpl(DisabledTrackMode aMode) { MOZ_ASSERT(mGraph->OnGraphThread()); { MutexAutoLock lock(mMutex); const DisabledTrackMode oldMode = mDirectDisabledMode; const bool oldEnabled = oldMode == DisabledTrackMode::ENABLED; const bool enabled = aMode == DisabledTrackMode::ENABLED; mDirectDisabledMode = aMode; for (const auto& l : mDirectTrackListeners) { DisabledTrackMode oldMode = mDisabledMode; bool oldEnabled = oldMode == DisabledTrackMode::ENABLED; if (!oldEnabled && aMode == DisabledTrackMode::ENABLED) { if (!oldEnabled && enabled) { LOG(LogLevel::Debug, ("%p: SourceMediaTrack %p setting " "direct listener enabled", GraphImpl(), this)); l->DecreaseDisabled(oldMode); } else if (oldEnabled && aMode != DisabledTrackMode::ENABLED) { } else if (oldEnabled && !enabled) { LOG(LogLevel::Debug, ("%p: SourceMediaTrack %p setting " "direct listener disabled", GraphImpl(), this)); Loading dom/media/MediaTrackGraph.h +5 −10 Original line number Diff line number Diff line Loading @@ -652,18 +652,8 @@ class SourceMediaTrack : public MediaTrack { */ void End(); // Overriding allows us to hold the mMutex lock while changing the track // enable status void SetDisabledTrackModeImpl(DisabledTrackMode aMode) override; // Overriding allows us to ensure mMutex is locked while changing the track // enable status void ApplyTrackDisabling(MediaSegment* aSegment, MediaSegment* aRawSegment = nullptr) override { mMutex.AssertCurrentThreadOwns(); MediaTrack::ApplyTrackDisabling(aSegment, aRawSegment); } uint32_t NumberOfChannels() const override; void RemoveAllDirectListenersImpl() override; Loading Loading @@ -742,6 +732,11 @@ class SourceMediaTrack : public MediaTrack { // protected by mMutex float mVolume MOZ_GUARDED_BY(mMutex) = 1.0; UniquePtr<TrackData> mUpdateTrack MOZ_GUARDED_BY(mMutex); // This track's associated disabled mode for uses on the producing thread. // It can either by disabled by frames being replaced by black, or by // retaining the previous frame. DisabledTrackMode mDirectDisabledMode MOZ_GUARDED_BY(mMutex) = DisabledTrackMode::ENABLED; nsTArray<RefPtr<DirectMediaTrackListener>> mDirectTrackListeners MOZ_GUARDED_BY(mMutex); }; Loading gfx/2d/RecordedEventImpl.h +1 −1 Original line number Diff line number Diff line Loading @@ -65,7 +65,7 @@ class RecordedDrawTargetCreation BackendType mBackendType; IntRect mRect; SurfaceFormat mFormat; bool mHasExistingData; bool mHasExistingData = false; RefPtr<SourceSurface> mExistingData; private: Loading Loading
dom/cache/TypeUtils.cpp +1 −1 Original line number Diff line number Diff line Loading @@ -184,7 +184,7 @@ void TypeUtils::ToCacheResponseWithoutBody(CacheResponse& aOut, aOut.statusText() = aIn.GetUnfilteredStatusText(); RefPtr<InternalHeaders> headers = aIn.UnfilteredHeaders(); MOZ_DIAGNOSTIC_ASSERT(headers); if (HasVaryStar(headers)) { if (aIn.Type() != ResponseType::Opaque && HasVaryStar(headers)) { aRv.ThrowTypeError("Invalid Response object with a 'Vary: *' header."); return; } Loading
dom/canvas/WebGLContextExtensions.cpp +7 −10 Original line number Diff line number Diff line Loading @@ -17,15 +17,10 @@ namespace mozilla { const char* GetExtensionName(const WebGLExtensionID ext) { static EnumeratedArray<WebGLExtensionID, WebGLExtensionID::Max, const char*> sExtensionNamesEnumeratedArray; static bool initialized = false; if (!initialized) { initialized = true; switch (ext) { #define WEBGL_EXTENSION_IDENTIFIER(x) \ sExtensionNamesEnumeratedArray[WebGLExtensionID::x] = #x; case WebGLExtensionID::x: \ return #x; WEBGL_EXTENSION_IDENTIFIER(ANGLE_instanced_arrays) WEBGL_EXTENSION_IDENTIFIER(EXT_blend_minmax) Loading Loading @@ -67,9 +62,11 @@ const char* GetExtensionName(const WebGLExtensionID ext) { WEBGL_EXTENSION_IDENTIFIER(WEBGL_provoking_vertex) #undef WEBGL_EXTENSION_IDENTIFIER } return sExtensionNamesEnumeratedArray[ext]; case WebGLExtensionID::Max: break; } MOZ_CRASH("bad WebGLExtensionID"); } // ---------------------------- Loading
dom/media/MediaTrackGraph.cpp +35 −21 Original line number Diff line number Diff line Loading @@ -145,6 +145,27 @@ class GraphKey final { nsTHashMap<nsGenericHashKey<GraphKey>, MediaTrackGraphImpl*> gGraphs; } // anonymous namespace static void ApplyTrackDisabling(DisabledTrackMode aDisabledMode, MediaSegment* aSegment, MediaSegment* aRawSegment) { if (aDisabledMode == DisabledTrackMode::ENABLED) { return; } if (aDisabledMode == DisabledTrackMode::SILENCE_BLACK) { aSegment->ReplaceWithDisabled(); if (aRawSegment) { aRawSegment->ReplaceWithDisabled(); } } else if (aDisabledMode == DisabledTrackMode::SILENCE_FREEZE) { aSegment->ReplaceWithNull(); if (aRawSegment) { aRawSegment->ReplaceWithNull(); } } else { MOZ_CRASH("Unsupported mode"); } } MediaTrackGraphImpl::~MediaTrackGraphImpl() { MOZ_ASSERT(mTracks.IsEmpty() && mSuspendedTracks.IsEmpty(), "All tracks should have been destroyed by messages from the main " Loading Loading @@ -2421,6 +2442,7 @@ RefPtr<GenericPromise> MediaTrack::RemoveListener( void MediaTrack::AddDirectListenerImpl( already_AddRefed<DirectMediaTrackListener> aListener) { MOZ_ASSERT(mGraph->OnGraphThread()); // Base implementation, for tracks that don't support direct track listeners. RefPtr<DirectMediaTrackListener> listener = aListener; listener->NotifyDirectListenerInstalled( Loading Loading @@ -2503,6 +2525,7 @@ void MediaTrack::RunAfterPendingUpdates( } void MediaTrack::SetDisabledTrackModeImpl(DisabledTrackMode aMode) { MOZ_ASSERT(mGraph->OnGraphThread()); MOZ_DIAGNOSTIC_ASSERT( aMode == DisabledTrackMode::ENABLED || mDisabledMode == DisabledTrackMode::ENABLED, Loading Loading @@ -2531,22 +2554,8 @@ void MediaTrack::SetDisabledTrackMode(DisabledTrackMode aMode) { void MediaTrack::ApplyTrackDisabling(MediaSegment* aSegment, MediaSegment* aRawSegment) { if (mDisabledMode == DisabledTrackMode::ENABLED) { return; } if (mDisabledMode == DisabledTrackMode::SILENCE_BLACK) { aSegment->ReplaceWithDisabled(); if (aRawSegment) { aRawSegment->ReplaceWithDisabled(); } } else if (mDisabledMode == DisabledTrackMode::SILENCE_FREEZE) { aSegment->ReplaceWithNull(); if (aRawSegment) { aRawSegment->ReplaceWithNull(); } } else { MOZ_CRASH("Unsupported mode"); } MOZ_ASSERT(mGraph->OnGraphThread()); mozilla::ApplyTrackDisabling(mDisabledMode, aSegment, aRawSegment); } void MediaTrack::AddMainThreadListener( Loading Loading @@ -2866,7 +2875,7 @@ TrackTime SourceMediaTrack::AppendData(MediaSegment* aSegment, // Apply track disabling before notifying any consumers directly // or inserting into the graph ApplyTrackDisabling(aSegment, aRawSegment); mozilla::ApplyTrackDisabling(mDirectDisabledMode, aSegment, aRawSegment); ResampleAudioToGraphSampleRate(aSegment); Loading Loading @@ -2910,6 +2919,7 @@ void SourceMediaTrack::NotifyDirectConsumers(MediaSegment* aSegment) { void SourceMediaTrack::AddDirectListenerImpl( already_AddRefed<DirectMediaTrackListener> aListener) { MOZ_ASSERT(mGraph->OnGraphThread()); MutexAutoLock lock(mMutex); RefPtr<DirectMediaTrackListener> listener = aListener; Loading Loading @@ -2979,6 +2989,7 @@ void SourceMediaTrack::AddDirectListenerImpl( void SourceMediaTrack::RemoveDirectListenerImpl( DirectMediaTrackListener* aListener) { mGraph->AssertOnGraphThreadOrNotRunning(); MutexAutoLock lock(mMutex); for (int32_t i = mDirectTrackListeners.Length() - 1; i >= 0; --i) { const RefPtr<DirectMediaTrackListener>& l = mDirectTrackListeners[i]; Loading Loading @@ -3008,17 +3019,20 @@ void SourceMediaTrack::End() { } void SourceMediaTrack::SetDisabledTrackModeImpl(DisabledTrackMode aMode) { MOZ_ASSERT(mGraph->OnGraphThread()); { MutexAutoLock lock(mMutex); const DisabledTrackMode oldMode = mDirectDisabledMode; const bool oldEnabled = oldMode == DisabledTrackMode::ENABLED; const bool enabled = aMode == DisabledTrackMode::ENABLED; mDirectDisabledMode = aMode; for (const auto& l : mDirectTrackListeners) { DisabledTrackMode oldMode = mDisabledMode; bool oldEnabled = oldMode == DisabledTrackMode::ENABLED; if (!oldEnabled && aMode == DisabledTrackMode::ENABLED) { if (!oldEnabled && enabled) { LOG(LogLevel::Debug, ("%p: SourceMediaTrack %p setting " "direct listener enabled", GraphImpl(), this)); l->DecreaseDisabled(oldMode); } else if (oldEnabled && aMode != DisabledTrackMode::ENABLED) { } else if (oldEnabled && !enabled) { LOG(LogLevel::Debug, ("%p: SourceMediaTrack %p setting " "direct listener disabled", GraphImpl(), this)); Loading
dom/media/MediaTrackGraph.h +5 −10 Original line number Diff line number Diff line Loading @@ -652,18 +652,8 @@ class SourceMediaTrack : public MediaTrack { */ void End(); // Overriding allows us to hold the mMutex lock while changing the track // enable status void SetDisabledTrackModeImpl(DisabledTrackMode aMode) override; // Overriding allows us to ensure mMutex is locked while changing the track // enable status void ApplyTrackDisabling(MediaSegment* aSegment, MediaSegment* aRawSegment = nullptr) override { mMutex.AssertCurrentThreadOwns(); MediaTrack::ApplyTrackDisabling(aSegment, aRawSegment); } uint32_t NumberOfChannels() const override; void RemoveAllDirectListenersImpl() override; Loading Loading @@ -742,6 +732,11 @@ class SourceMediaTrack : public MediaTrack { // protected by mMutex float mVolume MOZ_GUARDED_BY(mMutex) = 1.0; UniquePtr<TrackData> mUpdateTrack MOZ_GUARDED_BY(mMutex); // This track's associated disabled mode for uses on the producing thread. // It can either by disabled by frames being replaced by black, or by // retaining the previous frame. DisabledTrackMode mDirectDisabledMode MOZ_GUARDED_BY(mMutex) = DisabledTrackMode::ENABLED; nsTArray<RefPtr<DirectMediaTrackListener>> mDirectTrackListeners MOZ_GUARDED_BY(mMutex); }; Loading
gfx/2d/RecordedEventImpl.h +1 −1 Original line number Diff line number Diff line Loading @@ -65,7 +65,7 @@ class RecordedDrawTargetCreation BackendType mBackendType; IntRect mRect; SurfaceFormat mFormat; bool mHasExistingData; bool mHasExistingData = false; RefPtr<SourceSurface> mExistingData; private: Loading