Commit ab063d9c authored by fkilic's avatar fkilic Committed by Pier Angelo Vendrame
Browse files

Bug 1977576 - Pass JSContext to VideoFrame::PrefEnabled in more places. r=manuel,chunmin,tjr

parent 71220d5d
Loading
Loading
Loading
Loading
+7 −8
Original line number Diff line number Diff line
@@ -1110,7 +1110,7 @@ JSObject* StructuredCloneHolder::CustomReadHandler(
    return ClonedErrorHolder::ReadStructuredClone(aCx, aReader, this);
  }

  if (VideoFrame::PrefEnabled() && aTag == SCTAG_DOM_VIDEOFRAME &&
  if (VideoFrame::PrefEnabled(aCx) && aTag == SCTAG_DOM_VIDEOFRAME &&
      CloneScope() == StructuredCloneScope::SameProcess &&
      aCloneDataPolicy.areIntraClusterClonableSharedObjectsAllowed()) {
    JS::Rooted<JSObject*> global(aCx, mGlobal->GetGlobalJSObject());
@@ -1250,7 +1250,7 @@ bool StructuredCloneHolder::CustomWriteHandler(
  }

  // See if this is a VideoFrame object.
  if (VideoFrame::PrefEnabled()) {
  if (VideoFrame::PrefEnabled(aCx)) {
    VideoFrame* videoFrame = nullptr;
    if (NS_SUCCEEDED(UNWRAP_OBJECT(VideoFrame, &obj, videoFrame))) {
      SameProcessScopeRequired(aSameProcessScopeRequired);
@@ -1446,7 +1446,7 @@ StructuredCloneHolder::CustomReadTransferHandler(
                                            aReturnObject);
  }

  if (VideoFrame::PrefEnabled() && aTag == SCTAG_DOM_VIDEOFRAME &&
  if (VideoFrame::PrefEnabled(aCx) && aTag == SCTAG_DOM_VIDEOFRAME &&
      CloneScope() == StructuredCloneScope::SameProcess &&
      aCloneDataPolicy.areIntraClusterClonableSharedObjectsAllowed()) {
    MOZ_ASSERT(aContent);
@@ -1591,7 +1591,7 @@ StructuredCloneHolder::CustomWriteTransferHandler(
        return true;
      }

      if (VideoFrame::PrefEnabled()) {
      if (VideoFrame::PrefEnabled(aCx)) {
        VideoFrame* videoFrame = nullptr;
        rv = UNWRAP_OBJECT(VideoFrame, &obj, videoFrame);
        if (NS_SUCCEEDED(rv)) {
@@ -1758,7 +1758,7 @@ void StructuredCloneHolder::CustomFreeTransferHandler(
    return;
  }

  if (VideoFrame::PrefEnabled() && aTag == SCTAG_DOM_VIDEOFRAME &&
  if (aTag == SCTAG_DOM_VIDEOFRAME &&
      CloneScope() == StructuredCloneScope::SameProcess) {
    if (aContent) {
      VideoFrame::TransferredData* data =
@@ -1767,8 +1767,7 @@ void StructuredCloneHolder::CustomFreeTransferHandler(
    }
    return;
  }
  if (StaticPrefs::dom_media_webcodecs_enabled() &&
      aTag == SCTAG_DOM_AUDIODATA &&
  if (aTag == SCTAG_DOM_AUDIODATA &&
      CloneScope() == StructuredCloneScope::SameProcess) {
    if (aContent) {
      AudioData::TransferredData* data =
@@ -1851,7 +1850,7 @@ bool StructuredCloneHolder::CustomCanTransferHandler(
    }
  }

  if (VideoFrame::PrefEnabled()) {
  if (VideoFrame::PrefEnabled(aCx)) {
    VideoFrame* videoframe = nullptr;
    nsresult rv = UNWRAP_OBJECT(VideoFrame, &obj, videoframe);
    if (NS_SUCCEEDED(rv)) {
+1 −1
Original line number Diff line number Diff line
@@ -104,7 +104,7 @@ class VideoFrame final : public nsISupports,
  JSObject* WrapObject(JSContext* aCx,
                       JS::Handle<JSObject*> aGivenProto) override;

  static bool PrefEnabled(JSContext* aCx = nullptr, JSObject* aObj = nullptr);
  static bool PrefEnabled(JSContext* aCx, JSObject* aObj = nullptr);

  static already_AddRefed<VideoFrame> Constructor(
      const GlobalObject& aGlobal, HTMLImageElement& aImageElement,
+4 −2
Original line number Diff line number Diff line
@@ -2715,8 +2715,10 @@ bool nsRFPService::IsWebCodecsRFPTargetEnabled(JSContext* aCx) {
  // We know that the RFPTarget::WebCodecs is enabled, check if principal
  // is exempted.

  // VideoFrame::PrefEnabled function can be called without a JSContext.
  if (!aCx) {
  if (NS_WARN_IF(!aCx)) {
    MOZ_LOG(gResistFingerprintingLog, LogLevel::Warning,
            ("nsRFPService::IsWebCodecsRFPTargetEnabled called with null "
             "JSContext"));
    return true;
  }