mozilla-silence-no-return-type.patch
branchfirefox117
changeset 1193 16de98d33e97
parent 1190 2a24a948b5cf
child 1194 d1b75dcb25fc
equal deleted inserted replaced
1192:7612b8d8c46f 1193:16de98d33e97
     1 # HG changeset patch
     1 # HG changeset patch
     2 # Parent  5df550d4b5fc674268055e504f60392389eb9ea7
     2 # Parent  505c5ac5cad0268fe81c67d39f70cbab3bff616a
     3 
     3 
     4 Index: firefox-115.0/gfx/skia/skia/include/codec/SkEncodedOrigin.h
     4 diff --git a/gfx/skia/skia/include/codec/SkEncodedOrigin.h b/gfx/skia/skia/include/codec/SkEncodedOrigin.h
     5 ===================================================================
     5 --- a/gfx/skia/skia/include/codec/SkEncodedOrigin.h
     6 --- firefox-115.0.orig/gfx/skia/skia/include/codec/SkEncodedOrigin.h
     6 +++ b/gfx/skia/skia/include/codec/SkEncodedOrigin.h
     7 +++ firefox-115.0/gfx/skia/skia/include/codec/SkEncodedOrigin.h
     7 @@ -36,16 +36,17 @@ static inline SkMatrix SkEncodedOriginTo
     8 @@ -41,6 +41,7 @@ static inline SkMatrix SkEncodedOriginTo
     8          case kBottomRight_SkEncodedOrigin: return SkMatrix::MakeAll(-1,  0, w,  0, -1, h, 0, 0, 1);
       
     9          case  kBottomLeft_SkEncodedOrigin: return SkMatrix::MakeAll( 1,  0, 0,  0, -1, h, 0, 0, 1);
       
    10          case     kLeftTop_SkEncodedOrigin: return SkMatrix::MakeAll( 0,  1, 0,  1,  0, 0, 0, 0, 1);
       
    11          case    kRightTop_SkEncodedOrigin: return SkMatrix::MakeAll( 0, -1, w,  1,  0, 0, 0, 0, 1);
       
    12          case kRightBottom_SkEncodedOrigin: return SkMatrix::MakeAll( 0, -1, w, -1,  0, h, 0, 0, 1);
     9          case  kLeftBottom_SkEncodedOrigin: return SkMatrix::MakeAll( 0,  1, 0, -1,  0, h, 0, 0, 1);
    13          case  kLeftBottom_SkEncodedOrigin: return SkMatrix::MakeAll( 0,  1, 0, -1,  0, h, 0, 0, 1);
    10      }
    14      }
    11      SK_ABORT("Unexpected origin");
    15      SK_ABORT("Unexpected origin");
    12 +    SkUNREACHABLE;
    16 +    SkUNREACHABLE;
    13  }
    17  }
    14  
    18  
    15  /**
    19  /**
    16 Index: firefox-115.0/gfx/skia/skia/include/private/gpu/ganesh/GrTypesPriv.h
    20   * Return true if the encoded origin includes a 90 degree rotation, in which case the width
    17 ===================================================================
    21   * and height of the source data are swapped relative to a correctly oriented destination.
    18 --- firefox-115.0.orig/gfx/skia/skia/include/private/gpu/ganesh/GrTypesPriv.h
    22   */
    19 +++ firefox-115.0/gfx/skia/skia/include/private/gpu/ganesh/GrTypesPriv.h
    23  static inline bool SkEncodedOriginSwapsWidthHeight(SkEncodedOrigin origin) {
    20 @@ -325,6 +325,7 @@ static inline bool GrTextureTypeHasRestr
    24      return origin >= kLeftTop_SkEncodedOrigin;
       
    25 diff --git a/gfx/skia/skia/include/private/gpu/ganesh/GrTypesPriv.h b/gfx/skia/skia/include/private/gpu/ganesh/GrTypesPriv.h
       
    26 --- a/gfx/skia/skia/include/private/gpu/ganesh/GrTypesPriv.h
       
    27 +++ b/gfx/skia/skia/include/private/gpu/ganesh/GrTypesPriv.h
       
    28 @@ -320,16 +320,17 @@ static inline bool GrTextureTypeHasRestr
       
    29              return false;
       
    30          case GrTextureType::kRectangle:
       
    31              return true;
       
    32          case GrTextureType::kExternal:
       
    33              return true;
    21          default:
    34          default:
    22              SK_ABORT("Unexpected texture type");
    35              SK_ABORT("Unexpected texture type");
    23      }
    36      }
    24 +    SkUNREACHABLE;
    37 +    SkUNREACHABLE;
    25  }
    38  }
    26  
    39  
    27  //////////////////////////////////////////////////////////////////////////////
    40  //////////////////////////////////////////////////////////////////////////////
    28 Index: firefox-115.0/gfx/skia/skia/src/core/SkDescriptor.cpp
    41  
    29 ===================================================================
    42  /**
    30 --- firefox-115.0.orig/gfx/skia/skia/src/core/SkDescriptor.cpp
    43   * Types used to describe format of vertices in arrays.
    31 +++ firefox-115.0/gfx/skia/skia/src/core/SkDescriptor.cpp
    44   */
    32 @@ -26,6 +26,7 @@ std::unique_ptr<SkDescriptor> SkDescript
    45  enum GrVertexAttribType {
       
    46 diff --git a/gfx/skia/skia/src/core/SkDescriptor.cpp b/gfx/skia/skia/src/core/SkDescriptor.cpp
       
    47 --- a/gfx/skia/skia/src/core/SkDescriptor.cpp
       
    48 +++ b/gfx/skia/skia/src/core/SkDescriptor.cpp
       
    49 @@ -21,16 +21,17 @@ std::unique_ptr<SkDescriptor> SkDescript
       
    50      SkASSERT(length >= sizeof(SkDescriptor) && SkAlign4(length) == length);
       
    51      void* allocation = ::operator new(length);
       
    52      return std::unique_ptr<SkDescriptor>(new (allocation) SkDescriptor{});
       
    53  }
       
    54  
    33  void SkDescriptor::operator delete(void* p) { ::operator delete(p); }
    55  void SkDescriptor::operator delete(void* p) { ::operator delete(p); }
    34  void* SkDescriptor::operator new(size_t) {
    56  void* SkDescriptor::operator new(size_t) {
    35      SK_ABORT("Descriptors are created with placement new.");
    57      SK_ABORT("Descriptors are created with placement new.");
    36 +    SkUNREACHABLE;
    58 +    SkUNREACHABLE;
    37  }
    59  }
    38  
    60  
    39  void SkDescriptor::flatten(SkWriteBuffer& buffer) const {
    61  void SkDescriptor::flatten(SkWriteBuffer& buffer) const {
    40 Index: firefox-115.0/gfx/skia/skia/src/core/SkGeometry.h
    62      buffer.writePad32(static_cast<const void*>(this), this->fLength);
    41 ===================================================================
    63  }
    42 --- firefox-115.0.orig/gfx/skia/skia/src/core/SkGeometry.h
    64  
    43 +++ firefox-115.0/gfx/skia/skia/src/core/SkGeometry.h
    65  void* SkDescriptor::addEntry(uint32_t tag, size_t length, const void* data) {
    44 @@ -281,6 +281,7 @@ static inline bool SkCubicIsDegenerate(S
    66      SkASSERT(tag);
       
    67 diff --git a/gfx/skia/skia/src/core/SkGeometry.h b/gfx/skia/skia/src/core/SkGeometry.h
       
    68 --- a/gfx/skia/skia/src/core/SkGeometry.h
       
    69 +++ b/gfx/skia/skia/src/core/SkGeometry.h
       
    70 @@ -276,28 +276,30 @@ static inline bool SkCubicIsDegenerate(S
       
    71          case SkCubicType::kLocalCusp:
       
    72          case SkCubicType::kCuspAtInfinity:
       
    73              return false;
       
    74          case SkCubicType::kQuadratic:
       
    75          case SkCubicType::kLineOrPoint:
    45              return true;
    76              return true;
    46      }
    77      }
    47      SK_ABORT("Invalid SkCubicType");
    78      SK_ABORT("Invalid SkCubicType");
    48 +    SkUNREACHABLE;
    79 +    SkUNREACHABLE;
    49  }
    80  }
    50  
    81  
    51  static inline const char* SkCubicTypeName(SkCubicType type) {
    82  static inline const char* SkCubicTypeName(SkCubicType type) {
    52 @@ -293,6 +294,7 @@ static inline const char* SkCubicTypeNam
    83      switch (type) {
       
    84          case SkCubicType::kSerpentine: return "kSerpentine";
       
    85          case SkCubicType::kLoop: return "kLoop";
       
    86          case SkCubicType::kLocalCusp: return "kLocalCusp";
       
    87          case SkCubicType::kCuspAtInfinity: return "kCuspAtInfinity";
       
    88          case SkCubicType::kQuadratic: return "kQuadratic";
    53          case SkCubicType::kLineOrPoint: return "kLineOrPoint";
    89          case SkCubicType::kLineOrPoint: return "kLineOrPoint";
    54      }
    90      }
    55      SK_ABORT("Invalid SkCubicType");
    91      SK_ABORT("Invalid SkCubicType");
    56 +    SkUNREACHABLE;
    92 +    SkUNREACHABLE;
    57  }
    93  }
    58  
    94  
    59  /** Returns the cubic classification.
    95  /** Returns the cubic classification.
    60 Index: firefox-115.0/gfx/skia/skia/src/core/SkTextBlob.cpp
    96  
    61 ===================================================================
    97      t[],s[] are set to the two homogeneous parameter values at which points the lines L & M
    62 --- firefox-115.0.orig/gfx/skia/skia/src/core/SkTextBlob.cpp
    98      intersect with K, sorted from smallest to largest and oriented so positive values of the
    63 +++ firefox-115.0/gfx/skia/skia/src/core/SkTextBlob.cpp
    99      implicit are on the "left" side. For a serpentine curve they are the inflection points. For a
    64 @@ -204,6 +204,7 @@ void SkTextBlob::operator delete(void* p
   100      loop they are the double point. For a local cusp, they are both equal and denote the cusp point.
       
   101 diff --git a/gfx/skia/skia/src/core/SkTextBlob.cpp b/gfx/skia/skia/src/core/SkTextBlob.cpp
       
   102 --- a/gfx/skia/skia/src/core/SkTextBlob.cpp
       
   103 +++ b/gfx/skia/skia/src/core/SkTextBlob.cpp
       
   104 @@ -199,16 +199,17 @@ unsigned SkTextBlob::ScalarsPerGlyph(Gly
       
   105  }
       
   106  
       
   107  void SkTextBlob::operator delete(void* p) {
       
   108      sk_free(p);
       
   109  }
    65  
   110  
    66  void* SkTextBlob::operator new(size_t) {
   111  void* SkTextBlob::operator new(size_t) {
    67      SK_ABORT("All blobs are created by placement new.");
   112      SK_ABORT("All blobs are created by placement new.");
    68 +    SkUNREACHABLE;
   113 +    SkUNREACHABLE;
    69  }
   114  }
    70  
   115  
    71  void* SkTextBlob::operator new(size_t, void* p) {
   116  void* SkTextBlob::operator new(size_t, void* p) {
    72 Index: firefox-115.0/gfx/skia/skia/src/core/SkTypeface_remote.h
   117      return p;
    73 ===================================================================
   118  }
    74 --- firefox-115.0.orig/gfx/skia/skia/src/core/SkTypeface_remote.h
   119  
    75 +++ firefox-115.0/gfx/skia/skia/src/core/SkTypeface_remote.h
   120  SkTextBlobRunIterator::SkTextBlobRunIterator(const SkTextBlob* blob)
    76 @@ -95,12 +95,14 @@ public:
   121      : fCurrentRun(SkTextBlob::RunRecord::First(blob)) {
       
   122 diff --git a/gfx/skia/skia/src/core/SkTypeface_remote.h b/gfx/skia/skia/src/core/SkTypeface_remote.h
       
   123 --- a/gfx/skia/skia/src/core/SkTypeface_remote.h
       
   124 +++ b/gfx/skia/skia/src/core/SkTypeface_remote.h
       
   125 @@ -90,83 +90,97 @@ public:
       
   126  
       
   127      SkTypefaceID remoteTypefaceID() const {return fTypefaceID;}
       
   128  
       
   129      int glyphCount() const {return fGlyphCount;}
       
   130  
    77      bool isLogging() const {return fIsLogging;}
   131      bool isLogging() const {return fIsLogging;}
    78  
   132  
    79  protected:
   133  protected:
    80 -    int onGetUPEM() const override { SK_ABORT("Should never be called."); }
   134 -    int onGetUPEM() const override { SK_ABORT("Should never be called."); }
    81 +    int onGetUPEM() const override { SK_ABORT("Should never be called."); SkUNREACHABLE; }
   135 +    int onGetUPEM() const override { SK_ABORT("Should never be called."); SkUNREACHABLE; }
    87          SK_ABORT("Should never be called.");
   141          SK_ABORT("Should never be called.");
    88 +        SkUNREACHABLE;
   142 +        SkUNREACHABLE;
    89      }
   143      }
    90      bool onGlyphMaskNeedsCurrentColor() const override {
   144      bool onGlyphMaskNeedsCurrentColor() const override {
    91          return fGlyphMaskNeedsCurrentColor;
   145          return fGlyphMaskNeedsCurrentColor;
    92 @@ -108,10 +110,12 @@ protected:
   146      }
    93      int onGetVariationDesignPosition(SkFontArguments::VariationPosition::Coordinate coordinates[],
   147      int onGetVariationDesignPosition(SkFontArguments::VariationPosition::Coordinate coordinates[],
    94                                       int coordinateCount) const override {
   148                                       int coordinateCount) const override {
    95          SK_ABORT("Should never be called.");
   149          SK_ABORT("Should never be called.");
    96 +        SkUNREACHABLE;
   150 +        SkUNREACHABLE;
    97      }
   151      }
   100          SK_ABORT("Should never be called.");
   154          SK_ABORT("Should never be called.");
   101 +        SkUNREACHABLE;
   155 +        SkUNREACHABLE;
   102      }
   156      }
   103      void onGetFamilyName(SkString* familyName) const override {
   157      void onGetFamilyName(SkString* familyName) const override {
   104          // Used by SkStrikeCache::DumpMemoryStatistics.
   158          // Used by SkStrikeCache::DumpMemoryStatistics.
   105 @@ -119,15 +123,19 @@ protected:
   159          *familyName = "";
   106      }
   160      }
   107      bool onGetPostScriptName(SkString*) const override {
   161      bool onGetPostScriptName(SkString*) const override {
   108          SK_ABORT("Should never be called.");
   162          SK_ABORT("Should never be called.");
   109 +        SkUNREACHABLE;
   163 +        SkUNREACHABLE;
   110      }
   164      }
   120          SK_ABORT("Should never be called.");
   174          SK_ABORT("Should never be called.");
   121 +        SkUNREACHABLE;
   175 +        SkUNREACHABLE;
   122      }
   176      }
   123      std::unique_ptr<SkScalerContext> onCreateScalerContext(
   177      std::unique_ptr<SkScalerContext> onCreateScalerContext(
   124          const SkScalerContextEffects& effects, const SkDescriptor* desc) const override
   178          const SkScalerContextEffects& effects, const SkDescriptor* desc) const override
   125 @@ -141,20 +149,25 @@ protected:
   179      {
       
   180          return std::make_unique<SkScalerContextProxy>(
       
   181                  sk_ref_sp(const_cast<SkTypefaceProxy*>(this)), effects, desc, fDiscardableManager);
       
   182      }
       
   183      void onFilterRec(SkScalerContextRec* rec) const override {
       
   184          // The rec filtering is already applied by the server when generating
       
   185          // the glyphs.
   126      }
   186      }
   127      void onGetFontDescriptor(SkFontDescriptor*, bool*) const override {
   187      void onGetFontDescriptor(SkFontDescriptor*, bool*) const override {
   128          SK_ABORT("Should never be called.");
   188          SK_ABORT("Should never be called.");
   129 +        SkUNREACHABLE;
   189 +        SkUNREACHABLE;
   130      }
   190      }
   146          SK_ABORT("Should never be called.");
   206          SK_ABORT("Should never be called.");
   147 +        SkUNREACHABLE;
   207 +        SkUNREACHABLE;
   148      }
   208      }
   149      int onCountGlyphs() const override {
   209      int onCountGlyphs() const override {
   150          return this->glyphCount();
   210          return this->glyphCount();
   151 @@ -162,6 +175,7 @@ protected:
   211      }
   152  
   212  
   153      void* onGetCTFontRef() const override {
   213      void* onGetCTFontRef() const override {
   154          SK_ABORT("Should never be called.");
   214          SK_ABORT("Should never be called.");
   155 +        SkUNREACHABLE;
   215 +        SkUNREACHABLE;
   156      }
   216      }
   157  
   217  
   158  private:
   218  private:
   159 Index: firefox-115.0/gfx/skia/skia/src/effects/imagefilters/SkBlurImageFilter.cpp
   219      const SkTypefaceID                              fTypefaceID;
   160 ===================================================================
   220      const int                                       fGlyphCount;
   161 --- firefox-115.0.orig/gfx/skia/skia/src/effects/imagefilters/SkBlurImageFilter.cpp
   221      const bool                                      fIsLogging;
   162 +++ firefox-115.0/gfx/skia/skia/src/effects/imagefilters/SkBlurImageFilter.cpp
   222      const bool                                      fGlyphMaskNeedsCurrentColor;
   163 @@ -815,6 +815,7 @@ sk_sp<SkSpecialImage> cpu_blur(
   223      sk_sp<SkStrikeClient::DiscardableHandleManager> fDiscardableManager;
       
   224 diff --git a/gfx/skia/skia/src/effects/imagefilters/SkBlurImageFilter.cpp b/gfx/skia/skia/src/effects/imagefilters/SkBlurImageFilter.cpp
       
   225 --- a/gfx/skia/skia/src/effects/imagefilters/SkBlurImageFilter.cpp
       
   226 +++ b/gfx/skia/skia/src/effects/imagefilters/SkBlurImageFilter.cpp
       
   227 @@ -810,16 +810,17 @@ sk_sp<SkSpecialImage> cpu_blur(
       
   228          SkASSERT(0 <= sigma && sigma <= 2183); // should be guaranteed after map_sigma
       
   229          if (PassMaker* maker = GaussPass::MakeMaker(sigma, &alloc)) {
       
   230              return maker;
       
   231          }
       
   232          if (PassMaker* maker = TentPass::MakeMaker(sigma, &alloc)) {
   164              return maker;
   233              return maker;
   165          }
   234          }
   166          SK_ABORT("Sigma is out of range.");
   235          SK_ABORT("Sigma is out of range.");
   167 +        SkUNREACHABLE;
   236 +        SkUNREACHABLE;
   168      };
   237      };
   169  
   238  
   170      PassMaker* makerX = makeMaker(sigma.x());
   239      PassMaker* makerX = makeMaker(sigma.x());
   171 Index: firefox-115.0/gfx/skia/skia/src/fonts/SkFontMgr_indirect.cpp
   240      PassMaker* makerY = makeMaker(sigma.y());
   172 ===================================================================
   241  
   173 --- firefox-115.0.orig/gfx/skia/skia/src/fonts/SkFontMgr_indirect.cpp
   242      if (makerX->window() <= 1 && makerY->window() <= 1) {
   174 +++ firefox-115.0/gfx/skia/skia/src/fonts/SkFontMgr_indirect.cpp
   243          return copy_image_with_bounds(ctx, input, srcBounds, dstBounds);
   175 @@ -69,6 +69,7 @@ void SkFontMgr_Indirect::onGetFamilyName
   244      }
       
   245 diff --git a/gfx/skia/skia/src/fonts/SkFontMgr_indirect.cpp b/gfx/skia/skia/src/fonts/SkFontMgr_indirect.cpp
       
   246 --- a/gfx/skia/skia/src/fonts/SkFontMgr_indirect.cpp
       
   247 +++ b/gfx/skia/skia/src/fonts/SkFontMgr_indirect.cpp
       
   248 @@ -64,16 +64,17 @@ int SkFontMgr_Indirect::onCountFamilies(
       
   249  }
       
   250  
       
   251  void SkFontMgr_Indirect::onGetFamilyName(int index, SkString* familyName) const {
       
   252      SK_ABORT("Not implemented");
       
   253  }
   176  
   254  
   177  SkFontStyleSet* SkFontMgr_Indirect::onCreateStyleSet(int index) const {
   255  SkFontStyleSet* SkFontMgr_Indirect::onCreateStyleSet(int index) const {
   178      SK_ABORT("Not implemented");
   256      SK_ABORT("Not implemented");
   179 +    SkUNREACHABLE;
   257 +    SkUNREACHABLE;
   180  }
   258  }
   181  
   259  
   182  SkFontStyleSet* SkFontMgr_Indirect::onMatchFamily(const char familyName[]) const {
   260  SkFontStyleSet* SkFontMgr_Indirect::onMatchFamily(const char familyName[]) const {
   183 Index: firefox-115.0/gfx/skia/skia/src/ports/SkFontMgr_FontConfigInterface.cpp
   261      return new SkStyleSet_Indirect(this, -1, fProxy->matchName(familyName));
   184 ===================================================================
   262  }
   185 --- firefox-115.0.orig/gfx/skia/skia/src/ports/SkFontMgr_FontConfigInterface.cpp
   263  
   186 +++ firefox-115.0/gfx/skia/skia/src/ports/SkFontMgr_FontConfigInterface.cpp
   264  SkTypeface* SkFontMgr_Indirect::createTypefaceFromFontId(const SkFontIdentity& id) const {
   187 @@ -162,18 +162,22 @@ public:
   265      if (id.fDataId == SkFontIdentity::kInvalidDataId) {
       
   266 diff --git a/gfx/skia/skia/src/ports/SkFontMgr_FontConfigInterface.cpp b/gfx/skia/skia/src/ports/SkFontMgr_FontConfigInterface.cpp
       
   267 --- a/gfx/skia/skia/src/ports/SkFontMgr_FontConfigInterface.cpp
       
   268 +++ b/gfx/skia/skia/src/ports/SkFontMgr_FontConfigInterface.cpp
       
   269 @@ -157,28 +157,32 @@ public:
       
   270      SkFontMgr_FCI(sk_sp<SkFontConfigInterface> fci)
       
   271          : fFCI(std::move(fci))
       
   272          , fCache(kMaxSize)
       
   273      {}
       
   274  
   188  protected:
   275  protected:
   189      int onCountFamilies() const override {
   276      int onCountFamilies() const override {
   190          SK_ABORT("Not implemented.");
   277          SK_ABORT("Not implemented.");
   191 +	SkUNREACHABLE;
   278 +	SkUNREACHABLE;
   192      }
   279      }
   205          SK_ABORT("Not implemented.");
   292          SK_ABORT("Not implemented.");
   206 +	SkUNREACHABLE;
   293 +	SkUNREACHABLE;
   207      }
   294      }
   208  
   295  
   209      SkTypeface* onMatchFamilyStyle(const char requestedFamilyName[],
   296      SkTypeface* onMatchFamilyStyle(const char requestedFamilyName[],
   210 Index: firefox-115.0/gfx/skia/skia/src/sksl/SkSLCompiler.cpp
   297                                     const SkFontStyle& requestedStyle) const override
   211 ===================================================================
   298      {
   212 --- firefox-115.0.orig/gfx/skia/skia/src/sksl/SkSLCompiler.cpp
   299          SkAutoMutexExclusive ama(fMutex);
   213 +++ firefox-115.0/gfx/skia/skia/src/sksl/SkSLCompiler.cpp
   300  
   214 @@ -277,6 +277,7 @@ std::unique_ptr<Expression> Compiler::co
   301          SkFontConfigInterface::FontIdentity identity;
       
   302 diff --git a/gfx/skia/skia/src/sksl/SkSLCompiler.cpp b/gfx/skia/skia/src/sksl/SkSLCompiler.cpp
       
   303 --- a/gfx/skia/skia/src/sksl/SkSLCompiler.cpp
       
   304 +++ b/gfx/skia/skia/src/sksl/SkSLCompiler.cpp
       
   305 @@ -272,16 +272,17 @@ std::unique_ptr<Expression> Compiler::co
       
   306          case Symbol::Kind::kType: {
       
   307              // go through DSLType so we report errors on private types
       
   308              dsl::DSLModifiers modifiers;
       
   309              dsl::DSLType dslType(result->name(), &modifiers, pos);
       
   310              return TypeReference::Convert(*fContext, pos, &dslType.skslType());
   215          }
   311          }
   216          default:
   312          default:
   217              SK_ABORT("unsupported symbol type %d\n", (int) result->kind());
   313              SK_ABORT("unsupported symbol type %d\n", (int) result->kind());
   218 +            SkUNREACHABLE;
   314 +            SkUNREACHABLE;
   219      }
   315      }
   220  }
   316  }
   221  
   317  
   222 Index: firefox-115.0/gfx/skia/skia/src/sksl/SkSLOperator.cpp
   318  bool Compiler::optimizeModuleBeforeMinifying(ProgramKind kind, Module& module) {
   223 ===================================================================
   319      SkASSERT(this->errorCount() == 0);
   224 --- firefox-115.0.orig/gfx/skia/skia/src/sksl/SkSLOperator.cpp
   320  
   225 +++ firefox-115.0/gfx/skia/skia/src/sksl/SkSLOperator.cpp
   321      auto m = SkSL::ModuleLoader::Get();
   226 @@ -51,7 +51,7 @@ OperatorPrecedence Operator::getBinaryPr
   322  
       
   323 diff --git a/gfx/skia/skia/src/sksl/SkSLOperator.cpp b/gfx/skia/skia/src/sksl/SkSLOperator.cpp
       
   324 --- a/gfx/skia/skia/src/sksl/SkSLOperator.cpp
       
   325 +++ b/gfx/skia/skia/src/sksl/SkSLOperator.cpp
       
   326 @@ -46,17 +46,17 @@ OperatorPrecedence Operator::getBinaryPr
       
   327          case Kind::SLASHEQ:      // fall through
       
   328          case Kind::PERCENTEQ:    // fall through
       
   329          case Kind::SHLEQ:        // fall through
       
   330          case Kind::SHREQ:        // fall through
       
   331          case Kind::BITWISEANDEQ: // fall through
   227          case Kind::BITWISEXOREQ: // fall through
   332          case Kind::BITWISEXOREQ: // fall through
   228          case Kind::BITWISEOREQ:  return OperatorPrecedence::kAssignment;
   333          case Kind::BITWISEOREQ:  return OperatorPrecedence::kAssignment;
   229          case Kind::COMMA:        return OperatorPrecedence::kSequence;
   334          case Kind::COMMA:        return OperatorPrecedence::kSequence;
   230 -        default: SK_ABORT("unsupported binary operator");
   335 -        default: SK_ABORT("unsupported binary operator");
   231 +        default: SkUNREACHABLE;
   336 +        default: SkUNREACHABLE;
   232      }
   337      }
   233  }
   338  }
   234  
   339  
   235 Index: firefox-115.0/gfx/skia/skia/src/sksl/ir/SkSLType.h
   340  const char* Operator::operatorName() const {
   236 ===================================================================
   341      switch (this->kind()) {
   237 --- firefox-115.0.orig/gfx/skia/skia/src/sksl/ir/SkSLType.h
   342          case Kind::PLUS:         return " + ";
   238 +++ firefox-115.0/gfx/skia/skia/src/sksl/ir/SkSLType.h
   343          case Kind::MINUS:        return " - ";
   239 @@ -422,6 +422,7 @@ public:
   344          case Kind::STAR:         return " * ";
       
   345 diff --git a/gfx/skia/skia/src/sksl/ir/SkSLType.h b/gfx/skia/skia/src/sksl/ir/SkSLType.h
       
   346 --- a/gfx/skia/skia/src/sksl/ir/SkSLType.h
       
   347 +++ b/gfx/skia/skia/src/sksl/ir/SkSLType.h
       
   348 @@ -417,16 +417,17 @@ public:
       
   349       * Returns the number of scalars needed to hold this type.
       
   350       */
       
   351      virtual size_t slotCount() const {
       
   352          return 0;
       
   353      }
   240  
   354  
   241      virtual const std::vector<Field>& fields() const {
   355      virtual const std::vector<Field>& fields() const {
   242          SK_ABORT("Internal error: not a struct");
   356          SK_ABORT("Internal error: not a struct");
   243 +        SkUNREACHABLE;
   357 +        SkUNREACHABLE;
   244      }
   358      }
   245  
   359  
   246      /**
   360      /**
   247 Index: firefox-115.0/gfx/skia/skia/src/utils/SkShadowUtils.cpp
   361       * For generic types, returns the types that this generic type can substitute for.
   248 ===================================================================
   362       */
   249 --- firefox-115.0.orig/gfx/skia/skia/src/utils/SkShadowUtils.cpp
   363      virtual SkSpan<const Type* const> coercibleTypes() const {
   250 +++ firefox-115.0/gfx/skia/skia/src/utils/SkShadowUtils.cpp
   364          SkDEBUGFAIL("Internal error: not a generic type");
   251 @@ -140,6 +140,7 @@ struct SpotVerticesFactory {
   365          return {};
       
   366 diff --git a/gfx/skia/skia/src/utils/SkShadowUtils.cpp b/gfx/skia/skia/src/utils/SkShadowUtils.cpp
       
   367 --- a/gfx/skia/skia/src/utils/SkShadowUtils.cpp
       
   368 +++ b/gfx/skia/skia/src/utils/SkShadowUtils.cpp
       
   369 @@ -135,16 +135,17 @@ struct SpotVerticesFactory {
       
   370                  }
       
   371                  return false;
       
   372              case OccluderType::kDirectional:
       
   373              case OccluderType::kDirectionalTransparent:
       
   374                  *translate = that.fOffset - fOffset;
   252                  return true;
   375                  return true;
   253          }
   376          }
   254          SK_ABORT("Uninitialized occluder type?");
   377          SK_ABORT("Uninitialized occluder type?");
   255 +        SkUNREACHABLE;
   378 +        SkUNREACHABLE;
   256      }
   379      }
   257  
   380  
   258      sk_sp<SkVertices> makeVertices(const SkPath& path, const SkMatrix& ctm,
   381      sk_sp<SkVertices> makeVertices(const SkPath& path, const SkMatrix& ctm,
   259 Index: firefox-115.0/intl/icu/source/i18n/number_rounding.cpp
   382                                     SkVector* translate) const {
   260 ===================================================================
   383          bool transparent = fOccluderType == OccluderType::kPointTransparent ||
   261 --- firefox-115.0.orig/intl/icu/source/i18n/number_rounding.cpp
   384                             fOccluderType == OccluderType::kDirectionalTransparent;
   262 +++ firefox-115.0/intl/icu/source/i18n/number_rounding.cpp
   385          bool directional = fOccluderType == OccluderType::kDirectional ||
   263 @@ -283,6 +283,7 @@ FractionPrecision Precision::constructFr
   386                             fOccluderType == OccluderType::kDirectionalTransparent;
       
   387 diff --git a/intl/icu/source/i18n/number_rounding.cpp b/intl/icu/source/i18n/number_rounding.cpp
       
   388 --- a/intl/icu/source/i18n/number_rounding.cpp
       
   389 +++ b/intl/icu/source/i18n/number_rounding.cpp
       
   390 @@ -278,27 +278,29 @@ Precision IncrementPrecision::withMinFra
       
   391  }
       
   392  
       
   393  FractionPrecision Precision::constructFraction(int32_t minFrac, int32_t maxFrac) {
       
   394      FractionSignificantSettings settings;
       
   395      settings.fMinFrac = static_cast<digits_t>(minFrac);
   264      settings.fMaxFrac = static_cast<digits_t>(maxFrac);
   396      settings.fMaxFrac = static_cast<digits_t>(maxFrac);
   265      settings.fMinSig = -1;
   397      settings.fMinSig = -1;
   266      settings.fMaxSig = -1;
   398      settings.fMaxSig = -1;
   267 +    settings.fPriority = UNUM_ROUNDING_PRIORITY_RELAXED;
   399 +    settings.fPriority = UNUM_ROUNDING_PRIORITY_RELAXED;
   268      PrecisionUnion union_;
   400      PrecisionUnion union_;
   269      union_.fracSig = settings;
   401      union_.fracSig = settings;
   270      return {RND_FRACTION, union_};
   402      return {RND_FRACTION, union_};
   271 @@ -294,6 +295,7 @@ Precision Precision::constructSignifican
   403  }
       
   404  
       
   405  Precision Precision::constructSignificant(int32_t minSig, int32_t maxSig) {
       
   406      FractionSignificantSettings settings;
       
   407      settings.fMinFrac = -1;
   272      settings.fMaxFrac = -1;
   408      settings.fMaxFrac = -1;
   273      settings.fMinSig = static_cast<digits_t>(minSig);
   409      settings.fMinSig = static_cast<digits_t>(minSig);
   274      settings.fMaxSig = static_cast<digits_t>(maxSig);
   410      settings.fMaxSig = static_cast<digits_t>(maxSig);
   275 +    settings.fPriority = UNUM_ROUNDING_PRIORITY_RELAXED;
   411 +    settings.fPriority = UNUM_ROUNDING_PRIORITY_RELAXED;
   276      PrecisionUnion union_;
   412      PrecisionUnion union_;
   277      union_.fracSig = settings;
   413      union_.fracSig = settings;
   278      return {RND_SIGNIFICANT, union_};
   414      return {RND_SIGNIFICANT, union_};
   279 Index: firefox-115.0/js/src/irregexp/imported/regexp-parser.cc
   415  }
   280 ===================================================================
   416  
   281 --- firefox-115.0.orig/js/src/irregexp/imported/regexp-parser.cc
   417  Precision
   282 +++ firefox-115.0/js/src/irregexp/imported/regexp-parser.cc
   418  Precision::constructFractionSignificant(
   283 @@ -2656,6 +2656,7 @@ bool MayContainStrings(ClassSetOperandTy
   419          const FractionPrecision &base,
       
   420 diff --git a/js/src/irregexp/imported/regexp-parser.cc b/js/src/irregexp/imported/regexp-parser.cc
       
   421 --- a/js/src/irregexp/imported/regexp-parser.cc
       
   422 +++ b/js/src/irregexp/imported/regexp-parser.cc
       
   423 @@ -2644,16 +2644,17 @@ bool MayContainStrings(ClassSetOperandTy
       
   424        return false;
       
   425      case ClassSetOperandType::kCharacterClassEscape:
       
   426      case ClassSetOperandType::kClassStringDisjunction:
       
   427        return operand->AsClassSetOperand()->has_strings();
       
   428      case ClassSetOperandType::kNestedClass:
   284        if (operand->IsClassRanges()) return false;
   429        if (operand->IsClassRanges()) return false;
   285        return operand->AsClassSetExpression()->may_contain_strings();
   430        return operand->AsClassSetExpression()->may_contain_strings();
   286    }
   431    }
   287 +  UNREACHABLE();
   432 +  UNREACHABLE();
   288  }
   433  }
   289  
   434  
   290  }  // namespace
   435  }  // namespace
   291 Index: firefox-115.0/third_party/libwebrtc/api/adaptation/resource.cc
   436  
   292 ===================================================================
   437  // TODO(v8:11935): Change permalink once proposal is in stage 4.
   293 --- firefox-115.0.orig/third_party/libwebrtc/api/adaptation/resource.cc
   438  // https://arai-a.github.io/ecma262-compare/snapshot.html?pr=2418#prod-ClassUnion
   294 +++ firefox-115.0/third_party/libwebrtc/api/adaptation/resource.cc
   439  template <class CharT>
   295 @@ -22,6 +22,7 @@ const char* ResourceUsageStateToString(R
   440  RegExpTree* RegExpParserImpl<CharT>::ParseClassUnion(
       
   441 diff --git a/third_party/libwebrtc/api/adaptation/resource.cc b/third_party/libwebrtc/api/adaptation/resource.cc
       
   442 --- a/third_party/libwebrtc/api/adaptation/resource.cc
       
   443 +++ b/third_party/libwebrtc/api/adaptation/resource.cc
       
   444 @@ -17,16 +17,17 @@ namespace webrtc {
       
   445  const char* ResourceUsageStateToString(ResourceUsageState usage_state) {
       
   446    switch (usage_state) {
       
   447      case ResourceUsageState::kOveruse:
       
   448        return "kOveruse";
       
   449      case ResourceUsageState::kUnderuse:
   296        return "kUnderuse";
   450        return "kUnderuse";
   297    }
   451    }
   298    RTC_CHECK_NOTREACHED();
   452    RTC_CHECK_NOTREACHED();
   299 +  return nullptr;
   453 +  return nullptr;
   300  }
   454  }
   301  
   455  
   302  ResourceListener::~ResourceListener() {}
   456  ResourceListener::~ResourceListener() {}
   303 Index: firefox-115.0/third_party/libwebrtc/api/rtp_parameters.cc
   457  
   304 ===================================================================
   458  Resource::Resource() {}
   305 --- firefox-115.0.orig/third_party/libwebrtc/api/rtp_parameters.cc
   459  
   306 +++ firefox-115.0/third_party/libwebrtc/api/rtp_parameters.cc
   460  Resource::~Resource() {}
   307 @@ -32,6 +32,7 @@ const char* DegradationPreferenceToStrin
   461  
       
   462 diff --git a/third_party/libwebrtc/api/rtp_parameters.cc b/third_party/libwebrtc/api/rtp_parameters.cc
       
   463 --- a/third_party/libwebrtc/api/rtp_parameters.cc
       
   464 +++ b/third_party/libwebrtc/api/rtp_parameters.cc
       
   465 @@ -27,16 +27,17 @@ const char* DegradationPreferenceToStrin
       
   466      case DegradationPreference::MAINTAIN_FRAMERATE:
       
   467        return "maintain-framerate";
       
   468      case DegradationPreference::MAINTAIN_RESOLUTION:
       
   469        return "maintain-resolution";
       
   470      case DegradationPreference::BALANCED:
   308        return "balanced";
   471        return "balanced";
   309    }
   472    }
   310    RTC_CHECK_NOTREACHED();
   473    RTC_CHECK_NOTREACHED();
   311 +  return "";
   474 +  return "";
   312  }
   475  }
   313  
   476  
   314  const double kDefaultBitratePriority = 1.0;
   477  const double kDefaultBitratePriority = 1.0;
   315 Index: firefox-115.0/third_party/libwebrtc/api/video/video_frame_buffer.cc
   478  
   316 ===================================================================
   479  RtcpFeedback::RtcpFeedback() = default;
   317 --- firefox-115.0.orig/third_party/libwebrtc/api/video/video_frame_buffer.cc
   480  RtcpFeedback::RtcpFeedback(RtcpFeedbackType type) : type(type) {}
   318 +++ firefox-115.0/third_party/libwebrtc/api/video/video_frame_buffer.cc
   481  RtcpFeedback::RtcpFeedback(RtcpFeedbackType type,
   319 @@ -106,6 +106,8 @@ const char* VideoFrameBufferTypeToString
   482                             RtcpFeedbackMessageType message_type)
       
   483 diff --git a/third_party/libwebrtc/api/video/video_frame_buffer.cc b/third_party/libwebrtc/api/video/video_frame_buffer.cc
       
   484 --- a/third_party/libwebrtc/api/video/video_frame_buffer.cc
       
   485 +++ b/third_party/libwebrtc/api/video/video_frame_buffer.cc
       
   486 @@ -101,16 +101,18 @@ const char* VideoFrameBufferTypeToString
       
   487        return "kI210";
       
   488      case VideoFrameBuffer::Type::kI410:
       
   489        return "kI410";
       
   490      case VideoFrameBuffer::Type::kNV12:
       
   491        return "kNV12";
   320      default:
   492      default:
   321        RTC_DCHECK_NOTREACHED();
   493        RTC_DCHECK_NOTREACHED();
   322    }
   494    }
   323 +  RTC_DCHECK_NOTREACHED();
   495 +  RTC_DCHECK_NOTREACHED();
   324 +  return nullptr;
   496 +  return nullptr;
   325  }
   497  }
   326  
   498  
   327  int I420BufferInterface::ChromaWidth() const {
   499  int I420BufferInterface::ChromaWidth() const {
   328 Index: firefox-115.0/third_party/libwebrtc/api/video_codecs/video_codec.cc
   500    return (width() + 1) / 2;
   329 ===================================================================
   501  }
   330 --- firefox-115.0.orig/third_party/libwebrtc/api/video_codecs/video_codec.cc
   502  
   331 +++ firefox-115.0/third_party/libwebrtc/api/video_codecs/video_codec.cc
   503  int I420BufferInterface::ChromaHeight() const {
   332 @@ -118,6 +118,7 @@ const char* CodecTypeToPayloadString(Vid
   504    return (height() + 1) / 2;
       
   505 diff --git a/third_party/libwebrtc/api/video_codecs/video_codec.cc b/third_party/libwebrtc/api/video_codecs/video_codec.cc
       
   506 --- a/third_party/libwebrtc/api/video_codecs/video_codec.cc
       
   507 +++ b/third_party/libwebrtc/api/video_codecs/video_codec.cc
       
   508 @@ -113,16 +113,17 @@ const char* CodecTypeToPayloadString(Vid
       
   509      case kVideoCodecH264:
       
   510        return kPayloadNameH264;
       
   511      case kVideoCodecMultiplex:
       
   512        return kPayloadNameMultiplex;
       
   513      case kVideoCodecGeneric:
   333        return kPayloadNameGeneric;
   514        return kPayloadNameGeneric;
   334    }
   515    }
   335    RTC_CHECK_NOTREACHED();
   516    RTC_CHECK_NOTREACHED();
   336 +  return "";
   517 +  return "";
   337  }
   518  }
   338  
   519  
   339  VideoCodecType PayloadStringToCodecType(const std::string& name) {
   520  VideoCodecType PayloadStringToCodecType(const std::string& name) {
   340 Index: firefox-115.0/third_party/libwebrtc/api/video_codecs/video_encoder_software_fallback_wrapper.cc
   521    if (absl::EqualsIgnoreCase(name, kPayloadNameVp8))
   341 ===================================================================
   522      return kVideoCodecVP8;
   342 --- firefox-115.0.orig/third_party/libwebrtc/api/video_codecs/video_encoder_software_fallback_wrapper.cc
   523    if (absl::EqualsIgnoreCase(name, kPayloadNameVp9))
   343 +++ firefox-115.0/third_party/libwebrtc/api/video_codecs/video_encoder_software_fallback_wrapper.cc
   524      return kVideoCodecVP9;
   344 @@ -163,6 +163,7 @@ class VideoEncoderSoftwareFallbackWrappe
   525    if (absl::EqualsIgnoreCase(name, kPayloadNameAv1) ||
       
   526 diff --git a/third_party/libwebrtc/api/video_codecs/video_encoder_software_fallback_wrapper.cc b/third_party/libwebrtc/api/video_codecs/video_encoder_software_fallback_wrapper.cc
       
   527 --- a/third_party/libwebrtc/api/video_codecs/video_encoder_software_fallback_wrapper.cc
       
   528 +++ b/third_party/libwebrtc/api/video_codecs/video_encoder_software_fallback_wrapper.cc
       
   529 @@ -158,16 +158,17 @@ class VideoEncoderSoftwareFallbackWrappe
       
   530          [[fallthrough]];
       
   531        case EncoderState::kMainEncoderUsed:
       
   532          return encoder_.get();
       
   533        case EncoderState::kFallbackDueToFailure:
       
   534        case EncoderState::kForcedFallback:
   345          return fallback_encoder_.get();
   535          return fallback_encoder_.get();
   346      }
   536      }
   347      RTC_CHECK_NOTREACHED();
   537      RTC_CHECK_NOTREACHED();
   348 +    return nullptr;
   538 +    return nullptr;
   349    }
   539    }
   350  
   540  
   351    // Updates encoder with last observed parameters, such as callbacks, rates,
   541    // Updates encoder with last observed parameters, such as callbacks, rates,
   352 @@ -343,6 +344,7 @@ int32_t VideoEncoderSoftwareFallbackWrap
   542    // etc.
       
   543    void PrimeEncoder(VideoEncoder* encoder) const;
       
   544  
       
   545    // Settings used in the last InitEncode call and used if a dynamic fallback to
       
   546    // software is required.
       
   547 @@ -338,16 +339,17 @@ int32_t VideoEncoderSoftwareFallbackWrap
       
   548      case EncoderState::kMainEncoderUsed: {
       
   549        return EncodeWithMainEncoder(frame, frame_types);
       
   550      }
       
   551      case EncoderState::kFallbackDueToFailure:
       
   552      case EncoderState::kForcedFallback:
   353        return fallback_encoder_->Encode(frame, frame_types);
   553        return fallback_encoder_->Encode(frame, frame_types);
   354    }
   554    }
   355    RTC_CHECK_NOTREACHED();
   555    RTC_CHECK_NOTREACHED();
   356 +  return WEBRTC_VIDEO_CODEC_ERROR;
   556 +  return WEBRTC_VIDEO_CODEC_ERROR;
   357  }
   557  }
   358  
   558  
   359  int32_t VideoEncoderSoftwareFallbackWrapper::EncodeWithMainEncoder(
   559  int32_t VideoEncoderSoftwareFallbackWrapper::EncodeWithMainEncoder(
   360 Index: firefox-115.0/third_party/libwebrtc/call/adaptation/video_stream_adapter.cc
   560      const VideoFrame& frame,
   361 ===================================================================
   561      const std::vector<VideoFrameType>* frame_types) {
   362 --- firefox-115.0.orig/third_party/libwebrtc/call/adaptation/video_stream_adapter.cc
   562    int32_t ret = encoder_->Encode(frame, frame_types);
   363 +++ firefox-115.0/third_party/libwebrtc/call/adaptation/video_stream_adapter.cc
   563    // If requested, try a software fallback.
   364 @@ -168,6 +168,7 @@ const char* Adaptation::StatusToString(A
   564    bool fallback_requested = (ret == WEBRTC_VIDEO_CODEC_FALLBACK_SOFTWARE);
       
   565 diff --git a/third_party/libwebrtc/call/adaptation/video_stream_adapter.cc b/third_party/libwebrtc/call/adaptation/video_stream_adapter.cc
       
   566 --- a/third_party/libwebrtc/call/adaptation/video_stream_adapter.cc
       
   567 +++ b/third_party/libwebrtc/call/adaptation/video_stream_adapter.cc
       
   568 @@ -164,16 +164,17 @@ const char* Adaptation::StatusToString(A
       
   569      case Status::kInsufficientInput:
       
   570        return "kInsufficientInput";
       
   571      case Status::kAdaptationDisabled:
       
   572        return "kAdaptationDisabled";
       
   573      case Status::kRejectedByConstraint:
   365        return "kRejectedByConstraint";
   574        return "kRejectedByConstraint";
   366    }
   575    }
   367    RTC_CHECK_NOTREACHED();
   576    RTC_CHECK_NOTREACHED();
   368 +  return "";
   577 +  return "";
   369  }
   578  }
   370  
   579  
   371  Adaptation::Adaptation(int validation_id,
   580  Adaptation::Adaptation(int validation_id,
   372 @@ -390,6 +391,7 @@ VideoStreamAdapter::RestrictionsOrState
   581                         VideoSourceRestrictions restrictions,
       
   582                         VideoAdaptationCounters counters,
       
   583                         VideoStreamInputState input_state)
       
   584      : validation_id_(validation_id),
       
   585        status_(Status::kValid),
       
   586 @@ -386,16 +387,17 @@ VideoStreamAdapter::RestrictionsOrState 
       
   587      case DegradationPreference::MAINTAIN_RESOLUTION: {
       
   588        // Scale up framerate.
       
   589        return IncreaseFramerate(input_state, current_restrictions_);
       
   590      }
       
   591      case DegradationPreference::DISABLED:
   373        return Adaptation::Status::kAdaptationDisabled;
   592        return Adaptation::Status::kAdaptationDisabled;
   374    }
   593    }
   375    RTC_CHECK_NOTREACHED();
   594    RTC_CHECK_NOTREACHED();
   376 +  return Adaptation::Status::kAdaptationDisabled;
   595 +  return Adaptation::Status::kAdaptationDisabled;
   377  }
   596  }
   378  
   597  
   379  Adaptation VideoStreamAdapter::GetAdaptationDown() {
   598  Adaptation VideoStreamAdapter::GetAdaptationDown() {
   380 @@ -472,6 +474,7 @@ VideoStreamAdapter::GetAdaptationDownSte
   599    RTC_DCHECK_RUN_ON(&sequence_checker_);
       
   600    VideoStreamInputState input_state = input_state_provider_->InputState();
       
   601    ++adaptation_validation_id_;
       
   602    RestrictionsOrState restrictions_or_state =
       
   603        GetAdaptationDownStep(input_state, current_restrictions_);
       
   604 @@ -468,16 +470,17 @@ VideoStreamAdapter::GetAdaptationDownSte
       
   605      }
       
   606      case DegradationPreference::MAINTAIN_RESOLUTION: {
       
   607        return DecreaseFramerate(input_state, current_restrictions);
       
   608      }
       
   609      case DegradationPreference::DISABLED:
   381        return Adaptation::Status::kAdaptationDisabled;
   610        return Adaptation::Status::kAdaptationDisabled;
   382    }
   611    }
   383    RTC_CHECK_NOTREACHED();
   612    RTC_CHECK_NOTREACHED();
   384 +  return Adaptation::Status::kAdaptationDisabled;
   613 +  return Adaptation::Status::kAdaptationDisabled;
   385  }
   614  }
   386  
   615  
   387  VideoStreamAdapter::RestrictionsOrState VideoStreamAdapter::DecreaseResolution(
   616  VideoStreamAdapter::RestrictionsOrState VideoStreamAdapter::DecreaseResolution(
   388 @@ -625,6 +628,8 @@ Adaptation VideoStreamAdapter::GetAdaptD
   617      const VideoStreamInputState& input_state,
       
   618      const RestrictionsWithCounters& current_restrictions) {
       
   619    int target_pixels =
       
   620        GetLowerResolutionThan(input_state.frame_size_pixels().value());
       
   621    // Use single active stream if set, this stream could be lower than the input.
       
   622 @@ -621,16 +624,18 @@ Adaptation VideoStreamAdapter::GetAdaptD
       
   623      case DegradationPreference::MAINTAIN_FRAMERATE:
       
   624        return GetAdaptationDown();
       
   625      case DegradationPreference::BALANCED: {
       
   626        return RestrictionsOrStateToAdaptation(
       
   627            GetAdaptDownResolutionStepForBalanced(input_state), input_state);
   389      }
   628      }
   390    }
   629    }
   391    RTC_CHECK_NOTREACHED();
   630    RTC_CHECK_NOTREACHED();
   392 +  return RestrictionsOrStateToAdaptation(
   631 +  return RestrictionsOrStateToAdaptation(
   393 +         Adaptation::Status::kAdaptationDisabled, input_state);
   632 +         Adaptation::Status::kAdaptationDisabled, input_state);
   394  }
   633  }
   395  
   634  
   396  VideoStreamAdapter::RestrictionsOrState
   635  VideoStreamAdapter::RestrictionsOrState
   397 Index: firefox-115.0/third_party/libwebrtc/call/rtp_payload_params.cc
   636  VideoStreamAdapter::GetAdaptDownResolutionStepForBalanced(
   398 ===================================================================
   637      const VideoStreamInputState& input_state) const {
   399 --- firefox-115.0.orig/third_party/libwebrtc/call/rtp_payload_params.cc
   638    // Adapt twice if the first adaptation did not decrease resolution.
   400 +++ firefox-115.0/third_party/libwebrtc/call/rtp_payload_params.cc
   639    auto first_step = GetAdaptationDownStep(input_state, current_restrictions_);
   401 @@ -407,7 +407,7 @@ absl::optional<FrameDependencyStructure>
   640    if (!absl::holds_alternative<RestrictionsWithCounters>(first_step)) {
       
   641 diff --git a/third_party/libwebrtc/call/rtp_payload_params.cc b/third_party/libwebrtc/call/rtp_payload_params.cc
       
   642 --- a/third_party/libwebrtc/call/rtp_payload_params.cc
       
   643 +++ b/third_party/libwebrtc/call/rtp_payload_params.cc
       
   644 @@ -400,17 +400,17 @@ absl::optional<FrameDependencyStructure>
       
   645        }
       
   646        return structure;
       
   647      }
       
   648      case VideoCodecType::kVideoCodecAV1:
       
   649      case VideoCodecType::kVideoCodecH264:
   402      case VideoCodecType::kVideoCodecMultiplex:
   650      case VideoCodecType::kVideoCodecMultiplex:
   403        return absl::nullopt;
   651        return absl::nullopt;
   404    }
   652    }
   405 -  RTC_DCHECK_NOTREACHED() << "Unsupported codec.";
   653 -  RTC_DCHECK_NOTREACHED() << "Unsupported codec.";
   406 +  RTC_CHECK_NOTREACHED();
   654 +  RTC_CHECK_NOTREACHED();
   407  }
   655  }
   408  
   656  
   409  void RtpPayloadParams::GenericToGeneric(int64_t shared_frame_id,
   657  void RtpPayloadParams::GenericToGeneric(int64_t shared_frame_id,
   410 Index: firefox-115.0/third_party/libwebrtc/call/video_send_stream.cc
   658                                          bool is_keyframe,
   411 ===================================================================
   659                                          RTPVideoHeader* rtp_video_header) {
   412 --- firefox-115.0.orig/third_party/libwebrtc/call/video_send_stream.cc
   660    RTPVideoHeader::GenericDescriptorInfo& generic =
   413 +++ firefox-115.0/third_party/libwebrtc/call/video_send_stream.cc
   661        rtp_video_header->generic.emplace();
   414 @@ -30,6 +30,7 @@ const char* StreamTypeToString(VideoSend
   662  
       
   663 diff --git a/third_party/libwebrtc/call/video_send_stream.cc b/third_party/libwebrtc/call/video_send_stream.cc
       
   664 --- a/third_party/libwebrtc/call/video_send_stream.cc
       
   665 +++ b/third_party/libwebrtc/call/video_send_stream.cc
       
   666 @@ -25,16 +25,17 @@ const char* StreamTypeToString(VideoSend
       
   667      case VideoSendStream::StreamStats::StreamType::kMedia:
       
   668        return "media";
       
   669      case VideoSendStream::StreamStats::StreamType::kRtx:
       
   670        return "rtx";
       
   671      case VideoSendStream::StreamStats::StreamType::kFlexfec:
   415        return "flexfec";
   672        return "flexfec";
   416    }
   673    }
   417    RTC_CHECK_NOTREACHED();
   674    RTC_CHECK_NOTREACHED();
   418 +  return "";
   675 +  return "";
   419  }
   676  }
   420  
   677  
   421  }  // namespace
   678  }  // namespace
   422 Index: firefox-115.0/third_party/libwebrtc/modules/audio_processing/agc2/clipping_predictor.cc
   679  
   423 ===================================================================
   680  VideoSendStream::StreamStats::StreamStats() = default;
   424 --- firefox-115.0.orig/third_party/libwebrtc/modules/audio_processing/agc2/clipping_predictor.cc
   681  VideoSendStream::StreamStats::~StreamStats() = default;
   425 +++ firefox-115.0/third_party/libwebrtc/modules/audio_processing/agc2/clipping_predictor.cc
   682  
   426 @@ -378,7 +378,7 @@ std::unique_ptr<ClippingPredictor> Creat
   683  std::string VideoSendStream::StreamStats::ToString() const {
       
   684 diff --git a/third_party/libwebrtc/modules/audio_processing/agc2/clipping_predictor.cc b/third_party/libwebrtc/modules/audio_processing/agc2/clipping_predictor.cc
       
   685 --- a/third_party/libwebrtc/modules/audio_processing/agc2/clipping_predictor.cc
       
   686 +++ b/third_party/libwebrtc/modules/audio_processing/agc2/clipping_predictor.cc
       
   687 @@ -373,12 +373,12 @@ std::unique_ptr<ClippingPredictor> Creat
       
   688            config.reference_window_delay, config.clipping_threshold,
       
   689            /*adaptive_step_estimation=*/true);
       
   690      case ClippingPredictorMode::kFixedStepClippingPeakPrediction:
       
   691        return std::make_unique<ClippingPeakPredictor>(
       
   692            num_channels, config.window_length, config.reference_window_length,
   427            config.reference_window_delay, config.clipping_threshold,
   693            config.reference_window_delay, config.clipping_threshold,
   428            /*adaptive_step_estimation=*/false);
   694            /*adaptive_step_estimation=*/false);
   429    }
   695    }
   430 -  RTC_DCHECK_NOTREACHED();
   696 -  RTC_DCHECK_NOTREACHED();
   431 +  RTC_CHECK_NOTREACHED();
   697 +  RTC_CHECK_NOTREACHED();
   432  }
   698  }
   433  
   699  
   434  }  // namespace webrtc
   700  }  // namespace webrtc
   435 Index: firefox-115.0/third_party/libwebrtc/modules/audio_processing/agc2/input_volume_stats_reporter.cc
   701 diff --git a/third_party/libwebrtc/modules/audio_processing/agc2/input_volume_stats_reporter.cc b/third_party/libwebrtc/modules/audio_processing/agc2/input_volume_stats_reporter.cc
   436 ===================================================================
   702 --- a/third_party/libwebrtc/modules/audio_processing/agc2/input_volume_stats_reporter.cc
   437 --- firefox-115.0.orig/third_party/libwebrtc/modules/audio_processing/agc2/input_volume_stats_reporter.cc
   703 +++ b/third_party/libwebrtc/modules/audio_processing/agc2/input_volume_stats_reporter.cc
   438 +++ firefox-115.0/third_party/libwebrtc/modules/audio_processing/agc2/input_volume_stats_reporter.cc
   704 @@ -43,16 +43,17 @@ int ComputeAverageUpdate(int sum_updates
   439 @@ -48,6 +48,7 @@ constexpr absl::string_view MetricNamePr
   705  constexpr absl::string_view MetricNamePrefix(
       
   706      InputVolumeType input_volume_type) {
       
   707    switch (input_volume_type) {
       
   708      case InputVolumeType::kApplied:
       
   709        return "WebRTC.Audio.Apm.AppliedInputVolume.";
   440      case InputVolumeType::kRecommended:
   710      case InputVolumeType::kRecommended:
   441        return "WebRTC.Audio.Apm.RecommendedInputVolume.";
   711        return "WebRTC.Audio.Apm.RecommendedInputVolume.";
   442    }
   712    }
   443 +  RTC_CHECK_NOTREACHED();
   713 +  RTC_CHECK_NOTREACHED();
   444  }
   714  }
   445  
   715  
   446  metrics::Histogram* CreateVolumeHistogram(InputVolumeType input_volume_type) {
   716  metrics::Histogram* CreateVolumeHistogram(InputVolumeType input_volume_type) {
   447 Index: firefox-115.0/third_party/libwebrtc/modules/audio_processing/agc2/rnn_vad/rnn_fc.cc
   717    char buffer[64];
   448 ===================================================================
   718    rtc::SimpleStringBuilder builder(buffer);
   449 --- firefox-115.0.orig/third_party/libwebrtc/modules/audio_processing/agc2/rnn_vad/rnn_fc.cc
   719    builder << MetricNamePrefix(input_volume_type) << "OnChange";
   450 +++ firefox-115.0/third_party/libwebrtc/modules/audio_processing/agc2/rnn_vad/rnn_fc.cc
   720    return metrics::HistogramFactoryGetCountsLinear(/*name=*/builder.str(),
   451 @@ -59,6 +59,8 @@ rtc::FunctionView<float(float)> GetActiv
   721                                                    /*min=*/1,
       
   722 diff --git a/third_party/libwebrtc/modules/audio_processing/agc2/rnn_vad/rnn_fc.cc b/third_party/libwebrtc/modules/audio_processing/agc2/rnn_vad/rnn_fc.cc
       
   723 --- a/third_party/libwebrtc/modules/audio_processing/agc2/rnn_vad/rnn_fc.cc
       
   724 +++ b/third_party/libwebrtc/modules/audio_processing/agc2/rnn_vad/rnn_fc.cc
       
   725 @@ -54,16 +54,18 @@ std::vector<float> PreprocessWeights(rtc
       
   726  rtc::FunctionView<float(float)> GetActivationFunction(
       
   727      ActivationFunction activation_function) {
       
   728    switch (activation_function) {
       
   729      case ActivationFunction::kTansigApproximated:
       
   730        return ::rnnoise::TansigApproximated;
   452      case ActivationFunction::kSigmoidApproximated:
   731      case ActivationFunction::kSigmoidApproximated:
   453        return ::rnnoise::SigmoidApproximated;
   732        return ::rnnoise::SigmoidApproximated;
   454    }
   733    }
   455 +  // supposed to be never reached apparently therefore returning bogus
   734 +  // supposed to be never reached apparently therefore returning bogus
   456 +  return ::rnnoise::TansigApproximated;
   735 +  return ::rnnoise::TansigApproximated;
   457  }
   736  }
   458  
   737  
   459  }  // namespace
   738  }  // namespace
   460 Index: firefox-115.0/third_party/libwebrtc/modules/audio_processing/audio_processing_impl.cc
   739  
   461 ===================================================================
   740  FullyConnectedLayer::FullyConnectedLayer(
   462 --- firefox-115.0.orig/third_party/libwebrtc/modules/audio_processing/audio_processing_impl.cc
   741      const int input_size,
   463 +++ firefox-115.0/third_party/libwebrtc/modules/audio_processing/audio_processing_impl.cc
   742      const int output_size,
   464 @@ -99,6 +99,7 @@ GainControl::Mode Agc1ConfigModeToInterf
   743      const rtc::ArrayView<const int8_t> bias,
       
   744 diff --git a/third_party/libwebrtc/modules/audio_processing/audio_processing_impl.cc b/third_party/libwebrtc/modules/audio_processing/audio_processing_impl.cc
       
   745 --- a/third_party/libwebrtc/modules/audio_processing/audio_processing_impl.cc
       
   746 +++ b/third_party/libwebrtc/modules/audio_processing/audio_processing_impl.cc
       
   747 @@ -94,16 +94,17 @@ GainControl::Mode Agc1ConfigModeToInterf
       
   748      case Agc1Config::kAdaptiveAnalog:
       
   749        return GainControl::kAdaptiveAnalog;
       
   750      case Agc1Config::kAdaptiveDigital:
       
   751        return GainControl::kAdaptiveDigital;
       
   752      case Agc1Config::kFixedDigital:
   465        return GainControl::kFixedDigital;
   753        return GainControl::kFixedDigital;
   466    }
   754    }
   467    RTC_CHECK_NOTREACHED();
   755    RTC_CHECK_NOTREACHED();
   468 +  return GainControl::kAdaptiveAnalog;
   756 +  return GainControl::kAdaptiveAnalog;
   469  }
   757  }
   470  
   758  
   471  bool MinimizeProcessingForUnusedOutput() {
   759  bool MinimizeProcessingForUnusedOutput() {
   472 @@ -166,7 +167,7 @@ int AudioFormatValidityToErrorCode(Audio
   760    return !field_trial::IsEnabled("WebRTC-MutedStateKillSwitch");
       
   761  }
       
   762  
       
   763  // Maximum lengths that frame of samples being passed from the render side to
       
   764  // the capture side can have (does not apply to AEC3).
       
   765 @@ -161,17 +162,17 @@ int AudioFormatValidityToErrorCode(Audio
       
   766      case AudioFormatValidity::kValidAndSupported:
       
   767        return AudioProcessing::kNoError;
       
   768      case AudioFormatValidity::kValidButUnsupportedSampleRate:  // fall-through
       
   769      case AudioFormatValidity::kInvalidSampleRate:
       
   770        return AudioProcessing::kBadSampleRateError;
   473      case AudioFormatValidity::kInvalidChannelCount:
   771      case AudioFormatValidity::kInvalidChannelCount:
   474        return AudioProcessing::kBadNumberChannelsError;
   772        return AudioProcessing::kBadNumberChannelsError;
   475    }
   773    }
   476 -  RTC_DCHECK(false);
   774 -  RTC_DCHECK(false);
   477 +  RTC_CHECK_NOTREACHED();
   775 +  RTC_CHECK_NOTREACHED();
   478  }
   776  }
   479  
   777  
   480  // Returns an AudioProcessing::Error together with the best possible option for
   778  // Returns an AudioProcessing::Error together with the best possible option for
   481 @@ -2421,6 +2422,7 @@ void AudioProcessingImpl::InitializeNois
   779  // output audio content.
       
   780  std::pair<int, FormatErrorOutputOption> ChooseErrorOutputOption(
       
   781      const StreamConfig& input_config,
       
   782      const StreamConfig& output_config) {
       
   783    AudioFormatValidity input_validity = ValidateAudioFormat(input_config);
       
   784 @@ -2416,16 +2417,17 @@ void AudioProcessingImpl::InitializeNois
       
   785              case NoiseSuppresionConfig::kModerate:
       
   786                return NsConfig::SuppressionLevel::k12dB;
       
   787              case NoiseSuppresionConfig::kHigh:
       
   788                return NsConfig::SuppressionLevel::k18dB;
       
   789              case NoiseSuppresionConfig::kVeryHigh:
   482                return NsConfig::SuppressionLevel::k21dB;
   790                return NsConfig::SuppressionLevel::k21dB;
   483            }
   791            }
   484            RTC_CHECK_NOTREACHED();
   792            RTC_CHECK_NOTREACHED();
   485 +	  return NsConfig::SuppressionLevel::k6dB;
   793 +	  return NsConfig::SuppressionLevel::k6dB;
   486          };
   794          };
   487  
   795  
   488      NsConfig cfg;
   796      NsConfig cfg;
   489 Index: firefox-115.0/third_party/libwebrtc/modules/audio_processing/include/audio_processing.cc
   797      cfg.target_level = map_level(config_.noise_suppression.level);
   490 ===================================================================
   798      submodules_.noise_suppressor = std::make_unique<NoiseSuppressor>(
   491 --- firefox-115.0.orig/third_party/libwebrtc/modules/audio_processing/include/audio_processing.cc
   799          cfg, proc_sample_rate_hz(), num_proc_channels());
   492 +++ firefox-115.0/third_party/libwebrtc/modules/audio_processing/include/audio_processing.cc
   800    }
   493 @@ -32,6 +32,7 @@ std::string NoiseSuppressionLevelToStrin
   801  }
       
   802 diff --git a/third_party/libwebrtc/modules/audio_processing/include/audio_processing.cc b/third_party/libwebrtc/modules/audio_processing/include/audio_processing.cc
       
   803 --- a/third_party/libwebrtc/modules/audio_processing/include/audio_processing.cc
       
   804 +++ b/third_party/libwebrtc/modules/audio_processing/include/audio_processing.cc
       
   805 @@ -27,28 +27,30 @@ std::string NoiseSuppressionLevelToStrin
       
   806      case AudioProcessing::Config::NoiseSuppression::Level::kModerate:
       
   807        return "Moderate";
       
   808      case AudioProcessing::Config::NoiseSuppression::Level::kHigh:
       
   809        return "High";
       
   810      case AudioProcessing::Config::NoiseSuppression::Level::kVeryHigh:
   494        return "VeryHigh";
   811        return "VeryHigh";
   495    }
   812    }
   496    RTC_CHECK_NOTREACHED();
   813    RTC_CHECK_NOTREACHED();
   497 +  return "";
   814 +  return "";
   498  }
   815  }
   499  
   816  
   500  std::string GainController1ModeToString(const Agc1Config::Mode& mode) {
   817  std::string GainController1ModeToString(const Agc1Config::Mode& mode) {
   501 @@ -44,6 +45,7 @@ std::string GainController1ModeToString(
   818    switch (mode) {
       
   819      case Agc1Config::Mode::kAdaptiveAnalog:
       
   820        return "AdaptiveAnalog";
       
   821      case Agc1Config::Mode::kAdaptiveDigital:
       
   822        return "AdaptiveDigital";
       
   823      case Agc1Config::Mode::kFixedDigital:
   502        return "FixedDigital";
   824        return "FixedDigital";
   503    }
   825    }
   504    RTC_CHECK_NOTREACHED();
   826    RTC_CHECK_NOTREACHED();
   505 +  return "";
   827 +  return "";
   506  }
   828  }
   507  
   829  
   508  }  // namespace
   830  }  // namespace
   509 Index: firefox-115.0/third_party/libwebrtc/modules/audio_processing/transient/transient_suppressor_impl.cc
   831  
   510 ===================================================================
   832  constexpr int AudioProcessing::kNativeSampleRatesHz[];
   511 --- firefox-115.0.orig/third_party/libwebrtc/modules/audio_processing/transient/transient_suppressor_impl.cc
   833  
   512 +++ firefox-115.0/third_party/libwebrtc/modules/audio_processing/transient/transient_suppressor_impl.cc
   834  void CustomProcessing::SetRuntimeSetting(
   513 @@ -53,6 +53,7 @@ std::string GetVadModeLabel(TransientSup
   835      AudioProcessing::RuntimeSetting setting) {}
       
   836 diff --git a/third_party/libwebrtc/modules/audio_processing/transient/transient_suppressor_impl.cc b/third_party/libwebrtc/modules/audio_processing/transient/transient_suppressor_impl.cc
       
   837 --- a/third_party/libwebrtc/modules/audio_processing/transient/transient_suppressor_impl.cc
       
   838 +++ b/third_party/libwebrtc/modules/audio_processing/transient/transient_suppressor_impl.cc
       
   839 @@ -48,16 +48,17 @@ std::string GetVadModeLabel(TransientSup
       
   840    switch (vad_mode) {
       
   841      case TransientSuppressor::VadMode::kDefault:
       
   842        return "default";
       
   843      case TransientSuppressor::VadMode::kRnnVad:
       
   844        return "RNN VAD";
   514      case TransientSuppressor::VadMode::kNoVad:
   845      case TransientSuppressor::VadMode::kNoVad:
   515        return "no VAD";
   846        return "no VAD";
   516    }
   847    }
   517 +  RTC_CHECK_NOTREACHED();
   848 +  RTC_CHECK_NOTREACHED();
   518  }
   849  }
   519  
   850  
   520  }  // namespace
   851  }  // namespace
   521 Index: firefox-115.0/third_party/libwebrtc/modules/desktop_capture/linux/wayland/screencast_portal.cc
   852  
   522 ===================================================================
   853  TransientSuppressorImpl::TransientSuppressorImpl(VadMode vad_mode,
   523 --- firefox-115.0.orig/third_party/libwebrtc/modules/desktop_capture/linux/wayland/screencast_portal.cc
   854                                                   int sample_rate_hz,
   524 +++ firefox-115.0/third_party/libwebrtc/modules/desktop_capture/linux/wayland/screencast_portal.cc
   855                                                   int detector_rate_hz,
   525 @@ -44,6 +44,7 @@ ScreenCastPortal::CaptureSourceType Scre
   856                                                   int num_channels)
       
   857 diff --git a/third_party/libwebrtc/modules/desktop_capture/linux/wayland/screencast_portal.cc b/third_party/libwebrtc/modules/desktop_capture/linux/wayland/screencast_portal.cc
       
   858 --- a/third_party/libwebrtc/modules/desktop_capture/linux/wayland/screencast_portal.cc
       
   859 +++ b/third_party/libwebrtc/modules/desktop_capture/linux/wayland/screencast_portal.cc
       
   860 @@ -39,16 +39,17 @@ ScreenCastPortal::CaptureSourceType Scre
       
   861    switch (type) {
       
   862      case CaptureType::kScreen:
       
   863        return ScreenCastPortal::CaptureSourceType::kScreen;
       
   864      case CaptureType::kWindow:
       
   865        return ScreenCastPortal::CaptureSourceType::kWindow;
   526      case CaptureType::kAnyScreenContent:
   866      case CaptureType::kAnyScreenContent:
   527        return ScreenCastPortal::CaptureSourceType::kAnyScreenContent;
   867        return ScreenCastPortal::CaptureSourceType::kAnyScreenContent;
   528    }
   868    }
   529 +  RTC_CHECK_NOTREACHED();
   869 +  RTC_CHECK_NOTREACHED();
   530  }
   870  }
   531  
   871  
   532  ScreenCastPortal::ScreenCastPortal(CaptureType type, PortalNotifier* notifier)
   872  ScreenCastPortal::ScreenCastPortal(CaptureType type, PortalNotifier* notifier)
   533 Index: firefox-115.0/third_party/libwebrtc/modules/rtp_rtcp/source/create_video_rtp_depacketizer.cc
   873      : ScreenCastPortal(type,
   534 ===================================================================
   874                         notifier,
   535 --- firefox-115.0.orig/third_party/libwebrtc/modules/rtp_rtcp/source/create_video_rtp_depacketizer.cc
   875                         OnProxyRequested,
   536 +++ firefox-115.0/third_party/libwebrtc/modules/rtp_rtcp/source/create_video_rtp_depacketizer.cc
   876                         OnSourcesRequestResponseSignal,
   537 @@ -38,6 +38,7 @@ std::unique_ptr<VideoRtpDepacketizer> Cr
   877                         this) {}
       
   878 diff --git a/third_party/libwebrtc/modules/pacing/bitrate_prober.cc b/third_party/libwebrtc/modules/pacing/bitrate_prober.cc
       
   879 --- a/third_party/libwebrtc/modules/pacing/bitrate_prober.cc
       
   880 +++ b/third_party/libwebrtc/modules/pacing/bitrate_prober.cc
       
   881 @@ -64,16 +64,17 @@ bool BitrateProber::ReadyToSetActiveStat
       
   882        return false;
       
   883      case ProbingState::kInactive:
       
   884        // If config_.min_packet_size > 0, a "large enough" packet must be sent
       
   885        // first, before a probe can be generated and sent. Otherwise, send the
       
   886        // probe asap.
       
   887        return packet_size >=
       
   888               std::min(RecommendedMinProbeSize(), config_.min_packet_size.Get());
       
   889    }
       
   890 +  RTC_CHECK_NOTREACHED();
       
   891  }
       
   892  
       
   893  void BitrateProber::OnIncomingPacket(DataSize packet_size) {
       
   894    if (ReadyToSetActiveState(packet_size)) {
       
   895      next_probe_time_ = Timestamp::MinusInfinity();
       
   896      probing_state_ = ProbingState::kActive;
       
   897    }
       
   898  }
       
   899 diff --git a/third_party/libwebrtc/modules/rtp_rtcp/source/create_video_rtp_depacketizer.cc b/third_party/libwebrtc/modules/rtp_rtcp/source/create_video_rtp_depacketizer.cc
       
   900 --- a/third_party/libwebrtc/modules/rtp_rtcp/source/create_video_rtp_depacketizer.cc
       
   901 +++ b/third_party/libwebrtc/modules/rtp_rtcp/source/create_video_rtp_depacketizer.cc
       
   902 @@ -33,11 +33,12 @@ std::unique_ptr<VideoRtpDepacketizer> Cr
       
   903        return std::make_unique<VideoRtpDepacketizerVp9>();
       
   904      case kVideoCodecAV1:
       
   905        return std::make_unique<VideoRtpDepacketizerAv1>();
       
   906      case kVideoCodecGeneric:
       
   907      case kVideoCodecMultiplex:
   538        return std::make_unique<VideoRtpDepacketizerGeneric>();
   908        return std::make_unique<VideoRtpDepacketizerGeneric>();
   539    }
   909    }
   540    RTC_CHECK_NOTREACHED();
   910    RTC_CHECK_NOTREACHED();
   541 +  return nullptr;
   911 +  return nullptr;
   542  }
   912  }
   543  
   913  
   544  }  // namespace webrtc
   914  }  // namespace webrtc
   545 Index: firefox-115.0/third_party/libwebrtc/modules/rtp_rtcp/source/rtp_sender.cc
   915 diff --git a/third_party/libwebrtc/modules/rtp_rtcp/source/rtp_sender.cc b/third_party/libwebrtc/modules/rtp_rtcp/source/rtp_sender.cc
   546 ===================================================================
   916 --- a/third_party/libwebrtc/modules/rtp_rtcp/source/rtp_sender.cc
   547 --- firefox-115.0.orig/third_party/libwebrtc/modules/rtp_rtcp/source/rtp_sender.cc
   917 +++ b/third_party/libwebrtc/modules/rtp_rtcp/source/rtp_sender.cc
   548 +++ firefox-115.0/third_party/libwebrtc/modules/rtp_rtcp/source/rtp_sender.cc
   918 @@ -135,16 +135,17 @@ bool IsNonVolatile(RTPExtensionType type
   549 @@ -142,6 +142,7 @@ bool IsNonVolatile(RTPExtensionType type
   919  #if defined(WEBRTC_MOZILLA_BUILD)
       
   920      case kRtpExtensionCsrcAudioLevel:
       
   921        // TODO: Mozilla implement for CsrcAudioLevel
       
   922        RTC_CHECK(false);
       
   923        return false;
   550  #endif
   924  #endif
   551    }
   925    }
   552    RTC_CHECK_NOTREACHED();
   926    RTC_CHECK_NOTREACHED();
   553 +  return false;
   927 +  return false;
   554  }
   928  }
   555  
   929  
   556  bool HasBweExtension(const RtpHeaderExtensionMap& extensions_map) {
   930  bool HasBweExtension(const RtpHeaderExtensionMap& extensions_map) {
   557 Index: firefox-115.0/third_party/libwebrtc/modules/rtp_rtcp/source/rtp_sender_audio.cc
   931    return extensions_map.IsRegistered(kRtpExtensionTransportSequenceNumber) ||
   558 ===================================================================
   932           extensions_map.IsRegistered(kRtpExtensionTransportSequenceNumber02) ||
   559 --- firefox-115.0.orig/third_party/libwebrtc/modules/rtp_rtcp/source/rtp_sender_audio.cc
   933           extensions_map.IsRegistered(kRtpExtensionAbsoluteSendTime) ||
   560 +++ firefox-115.0/third_party/libwebrtc/modules/rtp_rtcp/source/rtp_sender_audio.cc
   934           extensions_map.IsRegistered(kRtpExtensionTransmissionTimeOffset);
   561 @@ -45,6 +45,7 @@ namespace {
   935  }
       
   936 diff --git a/third_party/libwebrtc/modules/rtp_rtcp/source/rtp_sender_audio.cc b/third_party/libwebrtc/modules/rtp_rtcp/source/rtp_sender_audio.cc
       
   937 --- a/third_party/libwebrtc/modules/rtp_rtcp/source/rtp_sender_audio.cc
       
   938 +++ b/third_party/libwebrtc/modules/rtp_rtcp/source/rtp_sender_audio.cc
       
   939 @@ -40,16 +40,17 @@ namespace {
       
   940      case AudioFrameType::kEmptyFrame:
       
   941        return "empty";
       
   942      case AudioFrameType::kAudioFrameSpeech:
       
   943        return "audio_speech";
       
   944      case AudioFrameType::kAudioFrameCN:
   562        return "audio_cn";
   945        return "audio_cn";
   563    }
   946    }
   564    RTC_CHECK_NOTREACHED();
   947    RTC_CHECK_NOTREACHED();
   565 +  return "";
   948 +  return "";
   566  }
   949  }
   567  
   950  
   568  constexpr char kIncludeCaptureClockOffset[] =
   951  constexpr char kIncludeCaptureClockOffset[] =
   569 Index: firefox-115.0/third_party/libwebrtc/modules/video_coding/codecs/vp8/default_temporal_layers.cc
   952      "WebRTC-IncludeCaptureClockOffset";
   570 ===================================================================
   953  
   571 --- firefox-115.0.orig/third_party/libwebrtc/modules/video_coding/codecs/vp8/default_temporal_layers.cc
   954  }  // namespace
   572 +++ firefox-115.0/third_party/libwebrtc/modules/video_coding/codecs/vp8/default_temporal_layers.cc
   955  
   573 @@ -110,6 +110,7 @@ size_t BufferToIndex(Vp8BufferReference
   956  RTPSenderAudio::RTPSenderAudio(Clock* clock, RTPSender* rtp_sender)
       
   957 diff --git a/third_party/libwebrtc/modules/video_coding/codecs/vp8/default_temporal_layers.cc b/third_party/libwebrtc/modules/video_coding/codecs/vp8/default_temporal_layers.cc
       
   958 --- a/third_party/libwebrtc/modules/video_coding/codecs/vp8/default_temporal_layers.cc
       
   959 +++ b/third_party/libwebrtc/modules/video_coding/codecs/vp8/default_temporal_layers.cc
       
   960 @@ -105,16 +105,17 @@ size_t BufferToIndex(Vp8BufferReference 
       
   961        return 0;
       
   962      case Vp8FrameConfig::Vp8BufferReference::kGolden:
       
   963        return 1;
       
   964      case Vp8FrameConfig::Vp8BufferReference::kAltref:
       
   965        return 2;
   574      case Vp8FrameConfig::Vp8BufferReference::kNone:
   966      case Vp8FrameConfig::Vp8BufferReference::kNone:
   575        RTC_CHECK_NOTREACHED();
   967        RTC_CHECK_NOTREACHED();
   576    }
   968    }
   577 +  RTC_CHECK_NOTREACHED();
   969 +  RTC_CHECK_NOTREACHED();
   578  }
   970  }
   579  
   971  
   580  }  // namespace
   972  }  // namespace
   581 Index: firefox-115.0/third_party/libwebrtc/modules/video_coding/codecs/vp8/temporal_layers_checker.cc
   973  
   582 ===================================================================
   974  constexpr size_t DefaultTemporalLayers::kNumReferenceBuffers;
   583 --- firefox-115.0.orig/third_party/libwebrtc/modules/video_coding/codecs/vp8/temporal_layers_checker.cc
   975  
   584 +++ firefox-115.0/third_party/libwebrtc/modules/video_coding/codecs/vp8/temporal_layers_checker.cc
   976  std::vector<DefaultTemporalLayers::DependencyInfo>
   585 @@ -30,6 +30,7 @@ TemporalLayersChecker::CreateTemporalLay
   977  DefaultTemporalLayers::GetDependencyInfo(size_t num_layers) {
       
   978 diff --git a/third_party/libwebrtc/modules/video_coding/codecs/vp8/temporal_layers_checker.cc b/third_party/libwebrtc/modules/video_coding/codecs/vp8/temporal_layers_checker.cc
       
   979 --- a/third_party/libwebrtc/modules/video_coding/codecs/vp8/temporal_layers_checker.cc
       
   980 +++ b/third_party/libwebrtc/modules/video_coding/codecs/vp8/temporal_layers_checker.cc
       
   981 @@ -25,16 +25,17 @@ TemporalLayersChecker::CreateTemporalLay
       
   982      case Vp8TemporalLayersType::kFixedPattern:
       
   983        return std::make_unique<DefaultTemporalLayersChecker>(
       
   984            num_temporal_layers);
       
   985      case Vp8TemporalLayersType::kBitrateDynamic:
       
   986        // Conference mode temporal layering for screen content in base stream.
   586        return std::make_unique<TemporalLayersChecker>(num_temporal_layers);
   987        return std::make_unique<TemporalLayersChecker>(num_temporal_layers);
   587    }
   988    }
   588    RTC_CHECK_NOTREACHED();
   989    RTC_CHECK_NOTREACHED();
   589 +  return nullptr;
   990 +  return nullptr;
   590  }
   991  }
   591  
   992  
   592  TemporalLayersChecker::TemporalLayersChecker(int num_temporal_layers)
   993  TemporalLayersChecker::TemporalLayersChecker(int num_temporal_layers)
   593 Index: firefox-115.0/third_party/libwebrtc/video/adaptation/video_stream_encoder_resource_manager.cc
   994      : num_temporal_layers_(num_temporal_layers),
   594 ===================================================================
   995        sequence_number_(0),
   595 --- firefox-115.0.orig/third_party/libwebrtc/video/adaptation/video_stream_encoder_resource_manager.cc
   996        last_sync_sequence_number_(0),
   596 +++ firefox-115.0/third_party/libwebrtc/video/adaptation/video_stream_encoder_resource_manager.cc
   997        last_tl0_sequence_number_(0) {}
   597 @@ -63,6 +63,7 @@ std::string ToString(VideoAdaptationReas
   998  
       
   999 diff --git a/third_party/libwebrtc/video/adaptation/video_stream_encoder_resource_manager.cc b/third_party/libwebrtc/video/adaptation/video_stream_encoder_resource_manager.cc
       
  1000 --- a/third_party/libwebrtc/video/adaptation/video_stream_encoder_resource_manager.cc
       
  1001 +++ b/third_party/libwebrtc/video/adaptation/video_stream_encoder_resource_manager.cc
       
  1002 @@ -58,16 +58,17 @@ bool IsFramerateScalingEnabled(Degradati
       
  1003  std::string ToString(VideoAdaptationReason reason) {
       
  1004    switch (reason) {
       
  1005      case VideoAdaptationReason::kQuality:
       
  1006        return "quality";
       
  1007      case VideoAdaptationReason::kCpu:
   598        return "cpu";
  1008        return "cpu";
   599    }
  1009    }
   600    RTC_CHECK_NOTREACHED();
  1010    RTC_CHECK_NOTREACHED();
   601 +  return "";
  1011 +  return "";
   602  }
  1012  }
   603  
  1013  
   604  std::vector<bool> GetActiveLayersFlags(const VideoCodec& codec) {
  1014  std::vector<bool> GetActiveLayersFlags(const VideoCodec& codec) {
       
  1015    std::vector<bool> flags;
       
  1016    if (codec.codecType == VideoCodecType::kVideoCodecVP9) {
       
  1017      flags.resize(codec.VP9().numberOfSpatialLayers);
       
  1018      for (size_t i = 0; i < flags.size(); ++i) {
       
  1019        flags[i] = codec.spatialLayers[i].active;