FF8 80.0.1 including some required patches (see changes) firefox80
authorWolfgang Rosenauer <wr@rosenauer.org>
Thu, 17 Sep 2020 14:32:09 +0200
branchfirefox80
changeset 1143 ff28137410eb
parent 1142 c5e32127317c
child 1144 8a43aff7e982
FF8 80.0.1 including some required patches (see changes)
MozillaFirefox/MozillaFirefox.changes
MozillaFirefox/MozillaFirefox.spec
MozillaFirefox/_constraints
MozillaFirefox/mozilla-bmo1661715.patch
MozillaFirefox/mozilla-silence-no-return-type.patch
MozillaFirefox/tar_stamps
mozilla-bmo1661715.patch
mozilla-silence-no-return-type.patch
series
--- a/MozillaFirefox/MozillaFirefox.changes	Tue Aug 25 21:31:17 2020 +0200
+++ b/MozillaFirefox/MozillaFirefox.changes	Thu Sep 17 14:32:09 2020 +0200
@@ -1,7 +1,35 @@
 -------------------------------------------------------------------
+Thu Sep 17 11:45:31 UTC 2020 - Guillaume GARDET <guillaume.gardet@opensuse.org>
+
+- Use %limit_build macro again for aarch64 and armv7, instead of
+  the new memoryperjob _constraints to use more workers
+
+-------------------------------------------------------------------
+Sat Sep  5 17:43:26 UTC 2020 - Wolfgang Rosenauer <wr@rosenauer.org>
+
+- add mozilla-bmo1661715.patch to fix Flash plugin
+
+-------------------------------------------------------------------
+Wed Sep  2 17:11:19 UTC 2020 - Manfred Hollstein <manfred.h@gmx.net>
+
+- Mozilla Firefox 80.0.1: Bug fixes:
+  * Fixed a performance regression when encountering new intermediate
+    CA certificates (bmo#1661543)
+  * Fixed crashes possibly related to GPU resets (bmo#1627616)
+  * Fixed rendering on some sites using WebGL (bmo#1659225)
+  * Fixed the zoom-in keyboard shortcut on Japanese language builds
+    (bmo#1661895)
+  * Fixed download issues related to extensions and cookies
+    (bmo#1655190)
+- added mozilla-silence-no-return-type.patch
+
+-------------------------------------------------------------------
 Tue Aug 25 19:30:15 UTC 2020 - Wolfgang Rosenauer <wr@rosenauer.org>
 
-- more whitelisting for sandbox in relation to FIPS (bsc#1174284)
+- more whitelisting (/dev/random) for sandbox in relation to FIPS
+  (bsc#1174284)
+- improve langpack builds to use dedicated objdirs and make it
+  parallel again
 
 -------------------------------------------------------------------
 Sat Aug 22 06:52:01 UTC 2020 - Wolfgang Rosenauer <wr@rosenauer.org>
--- a/MozillaFirefox/MozillaFirefox.spec	Tue Aug 25 21:31:17 2020 +0200
+++ b/MozillaFirefox/MozillaFirefox.spec	Thu Sep 17 14:32:09 2020 +0200
@@ -26,8 +26,8 @@
 # major 69
 # mainver %major.99
 %define major          80
-%define mainver        %major.0
-%define orig_version   80.0
+%define mainver        %major.0.1
+%define orig_version   80.0.1
 %define orig_suffix    %{nil}
 %define update_channel release
 %define branding       1
@@ -82,6 +82,7 @@
 BuildRequires:  dbus-1-glib-devel
 BuildRequires:  dejavu-fonts
 BuildRequires:  fdupes
+BuildRequires:  memory-constraints
 %if 0%{?suse_version} <= 1320
 BuildRequires:  gcc9-c++
 %else
@@ -209,10 +210,12 @@
 Patch27:        mozilla-s390x-skia-gradient.patch
 Patch28:        mozilla-libavcodec58_91.patch
 Patch29:        mozilla-system-nspr.patch
+Patch30:        mozilla-silence-no-return-type.patch
+Patch31:        mozilla-bmo1661715.patch
 # Firefox/browser
 Patch101:       firefox-kde.patch
 Patch102:       firefox-branded-icons.patch
-%endif # only_print_mozconfig
+%endif
 BuildRoot:      %{_tmppath}/%{name}-%{version}-build
 Requires(post):   coreutils shared-mime-info desktop-file-utils
 Requires(postun): shared-mime-info desktop-file-utils
@@ -352,10 +355,12 @@
 %patch27 -p1
 %patch28 -p1
 %patch29 -p1
+%patch30 -p1
+%patch31 -p1
 # Firefox
 %patch101 -p1
 %patch102 -p1
-%endif # only_print_mozconfig
+%endif
 
 %build
 %if !%{with only_print_mozconfig}
@@ -378,9 +383,9 @@
   echo fix kde helper version in the .spec file
   exit 1
 fi
-%endif # only_print_mozconfig
 
 source %{SOURCE4}
+%endif
 
 export CARGO_HOME=${RPM_BUILD_DIR}/%{srcname}-%{orig_version}/.cargo
 export MOZ_SOURCE_CHANGESET=$RELEASE_TAG
@@ -431,6 +436,9 @@
 echo ""
 cat << EOF
 %else
+%ifarch aarch64 %arm
+%limit_build -m 2000
+%endif
 cat << EOF > $MOZCONFIG
 %endif
 mk_add_options MOZILLA_OFFICIAL=1
@@ -475,6 +483,7 @@
 #ac_add_options --enable-chrome-format=jar
 ac_add_options --enable-update-channel=%{update_channel}
 ac_add_options --with-mozilla-api-keyfile=%{SOURCE18}
+# Google-service currently not available for free anymore
 #ac_add_options --with-google-location-service-api-keyfile=%{SOURCE19}
 ac_add_options --with-google-safebrowsing-api-keyfile=%{SOURCE19}
 ac_add_options --with-unsigned-addon-scopes=app
@@ -528,22 +537,36 @@
 
 # build additional locales
 %if %localize
-# The file obj/browser/locales/bookmarks.html will be overwritten by each langpack-build with the current translation
-# Thus we save here the original, to restore it afterwards, so that the default installation will not have zh-TW
-# bookmarks
-# See also https://bugzilla.opensuse.org/show_bug.cgi?id=1167976
-cp ../obj/browser/locales/bookmarks.html ../obj/browser/locales/bookmarks.html_ORIG
-
 mkdir -p %{buildroot}%{progdir}/browser/extensions
 truncate -s 0 %{_tmppath}/translations.{common,other}
-# Adding "-P 0" would give us parallel builds of langpacks. Unfortunately, mach currently doesn't support
-# building them in parallel. If we do, we get race-conditions and have mixed languages in the langpacks.
-# See https://bugzilla.suse.com/show_bug.cgi?id=1173986
+# langpack-build can not be done in parallel easily (see https://bugzilla.mozilla.org/show_bug.cgi?id=1660943)
+# Therefore, we have to have a separate obj-dir for each language
+# We do this, by creating a mozconfig-template with the necessary switches
+# and a placeholder obj-dir, which gets copied and modified for each language
+
+# Create mozconfig-template for langbuild
+cat << EOF > ${MOZCONFIG}_LANG
+mk_add_options MOZILLA_OFFICIAL=1
+mk_add_options BUILD_OFFICIAL=1
+mk_add_options MOZ_OBJDIR=@TOPSRCDIR@/../obj_LANG
+. \$topsrcdir/browser/config/mozconfig
+ac_add_options --prefix=%{_prefix}
+ac_add_options --with-l10n-base=$RPM_BUILD_DIR/l10n
+ac_add_options --disable-updater
+%if %branding
+ac_add_options --enable-official-branding
+%endif
+EOF
+
 sed -r '/^(ja-JP-mac|ga-IE|en-US|)$/d;s/ .*$//' $RPM_BUILD_DIR/%{srcname}-%{orig_version}/browser/locales/shipped-locales \
-    | xargs -n 1 -I {} /bin/sh -c '
+    | xargs -n 1 %{?jobs:-P %jobs} -I {} /bin/sh -c '
         locale=$1
-        ./mach build langpack-$locale
-        cp -L ../obj/dist/linux-*/xpi/firefox-%{orig_version}.$locale.langpack.xpi \
+        cp ${MOZCONFIG}_LANG ${MOZCONFIG}_$locale
+        sed -i "s|obj_LANG|obj_$locale|" ${MOZCONFIG}_$locale
+        export MOZCONFIG=${MOZCONFIG}_$locale
+        # nsinstall is needed for langpack-build. It is already built by `./mach build`, but building it again is very fast
+        ./mach build config/nsinstall langpack-$locale
+        cp -L ../obj_$locale/dist/linux-*/xpi/firefox-%{orig_version}.$locale.langpack.xpi \
             %{buildroot}%{progdir}/browser/extensions/langpack-$locale@firefox.mozilla.org.xpi
         # remove prefs, profile defaults, and hyphenation from langpack
         #rm -rf %{buildroot}%{progdir}/browser/extensions/langpack-$locale@firefox.mozilla.org/defaults
@@ -557,13 +580,10 @@
         echo %{progdir}/browser/extensions/langpack-$locale@firefox.mozilla.org.xpi \
             >> %{_tmppath}/translations.$_l10ntarget
 ' -- {}
-
-# Restoring the original bookmarksfile
-cp ../obj/browser/locales/bookmarks.html_ORIG ../obj/browser/locales/bookmarks.html
 %endif
 
 ccache -s
-%endif # only_print_mozconfig
+%endif
 
 %install
 cd $RPM_BUILD_DIR/obj
@@ -773,12 +793,12 @@
 %files translations-common -f %{_tmppath}/translations.common
 %defattr(-,root,root)
 %dir %{progdir}
-%dir %{progdir}/browser/extensions
+%dir %{progdir}/browser/extensions/
 
 %files translations-other -f %{_tmppath}/translations.other
 %defattr(-,root,root)
 %dir %{progdir}
-%dir %{progdir}/browser/extensions
+%dir %{progdir}/browser/extensions/
 %endif
 
 # this package does not need to provide files but is needed to fulfill
--- a/MozillaFirefox/_constraints	Tue Aug 25 21:31:17 2020 +0200
+++ b/MozillaFirefox/_constraints	Thu Sep 17 14:32:09 2020 +0200
@@ -17,12 +17,15 @@
       <arch>armv7l</arch>
     </conditions>
     <hardware>
+      <memoryperjob>
+        <size unit="M">1000</size>
+      </memoryperjob>
       <disk>
         <size unit="G">12</size>
       </disk>
-      <memory>
+      <physicalmemory>
         <size unit="G">5</size>
-      </memory>
+      </pyhsicalmemory>
     </hardware>
   </overwrite>
   <overwrite>
@@ -30,9 +33,13 @@
       <arch>aarch64</arch>
     </conditions>
     <hardware>
-      <memory>
+      <processors>4</processors>
+      <memoryperjob>
+        <size unit="M">1000</size>
+      </memoryperjob>
+      <physicalmemory>
         <size unit="G">12</size>
-      </memory>
+      </physicalmemory>
     </hardware>
   </overwrite>
   <overwrite>
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/MozillaFirefox/mozilla-bmo1661715.patch	Thu Sep 17 14:32:09 2020 +0200
@@ -0,0 +1,1 @@
+../mozilla-bmo1661715.patch
\ No newline at end of file
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/MozillaFirefox/mozilla-silence-no-return-type.patch	Thu Sep 17 14:32:09 2020 +0200
@@ -0,0 +1,1 @@
+../mozilla-silence-no-return-type.patch
\ No newline at end of file
--- a/MozillaFirefox/tar_stamps	Tue Aug 25 21:31:17 2020 +0200
+++ b/MozillaFirefox/tar_stamps	Thu Sep 17 14:32:09 2020 +0200
@@ -1,11 +1,11 @@
 PRODUCT="firefox"
 CHANNEL="release"
-VERSION="80.0"
+VERSION="80.0.1"
 VERSION_SUFFIX=""
-PREV_VERSION="79.0"
+PREV_VERSION="80.0"
 PREV_VERSION_SUFFIX=""
 #SKIP_LOCALES="" # Uncomment to skip l10n and compare-locales-generation
 
 RELEASE_REPO="https://hg.mozilla.org/releases/mozilla-release"
-RELEASE_TAG="bd5d1f49975deb730064a16b3079edb53c4a5f84"
-RELEASE_TIMESTAMP="20200818235255"
+RELEASE_TAG="2c869ada52702e6a02b2fe73b4d81d6be6d515f0"
+RELEASE_TIMESTAMP="20200831163820"
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/mozilla-bmo1661715.patch	Thu Sep 17 14:32:09 2020 +0200
@@ -0,0 +1,72 @@
+
+# HG changeset patch
+# User Olivier Tilloy <olivier@tilloy.net>
+# Date 1598829330 0
+# Node ID 5d87a8dae5fe55360890e4ea4ed12135a8e909ed
+# Parent  bb814cdd2848401f78e44814363de03b013551ca
+Bug 1661715 - Move GTK function stubs to the correct section. r=karlt
+
+Differential Revision: https://phabricator.services.mozilla.com/D88588
+
+diff --git a/widget/gtk/mozgtk/mozgtk.c b/widget/gtk/mozgtk/mozgtk.c
+--- a/widget/gtk/mozgtk/mozgtk.c
++++ b/widget/gtk/mozgtk/mozgtk.c
+@@ -524,21 +524,19 @@ STUB(gtk_window_resize)
+ STUB(gtk_window_set_accept_focus)
+ STUB(gtk_window_set_decorated)
+ STUB(gtk_window_set_deletable)
+ STUB(gtk_window_set_destroy_with_parent)
+ STUB(gtk_window_set_focus_on_map)
+ STUB(gtk_window_set_geometry_hints)
+ STUB(gtk_window_set_icon_name)
+ STUB(gtk_window_set_modal)
+-STUB(gdk_window_set_opaque_region)
+ STUB(gtk_window_set_skip_taskbar_hint)
+ STUB(gtk_window_set_startup_id)
+ STUB(gtk_window_set_title)
+-STUB(gtk_window_set_titlebar)
+ STUB(gtk_window_set_transient_for)
+ STUB(gtk_window_set_type_hint)
+ STUB(gtk_window_set_wmclass)
+ STUB(gtk_window_unfullscreen)
+ STUB(gtk_window_unmaximize)
+ #endif
+ 
+ #ifdef GTK3_SYMBOLS
+@@ -549,16 +547,17 @@ STUB(gdk_device_manager_get_client_point
+ STUB(gdk_disable_multidevice)
+ STUB(gdk_device_manager_list_devices)
+ STUB(gdk_display_get_device_manager)
+ STUB(gdk_display_manager_open_display)
+ STUB(gdk_error_trap_pop_ignored)
+ STUB(gdk_event_get_source_device)
+ STUB(gdk_screen_get_monitor_workarea)
+ STUB(gdk_window_get_type)
++STUB(gdk_window_set_opaque_region)
+ STUB(gdk_x11_window_get_xid)
+ STUB(gdk_x11_display_get_type)
+ STUB(gdk_wayland_display_get_type)
+ STUB(gdk_wayland_display_get_wl_compositor)
+ STUB(gdk_wayland_display_get_wl_display)
+ STUB(gdk_wayland_window_get_wl_surface)
+ STUB(gtk_box_new)
+ STUB(gtk_cairo_should_draw_window)
+@@ -629,16 +628,17 @@ STUB(gtk_widget_path_copy)
+ STUB(gtk_widget_path_free)
+ STUB(gtk_widget_path_iter_add_class)
+ STUB(gtk_widget_path_get_object_type)
+ STUB(gtk_widget_path_length)
+ STUB(gtk_widget_path_new)
+ STUB(gtk_widget_path_unref)
+ STUB(gtk_widget_set_valign)
+ STUB(gtk_widget_set_visual)
++STUB(gtk_window_set_titlebar)
+ STUB(gtk_app_chooser_dialog_new_for_content_type)
+ STUB(gtk_app_chooser_get_type)
+ STUB(gtk_app_chooser_get_app_info)
+ STUB(gtk_app_chooser_dialog_get_type)
+ STUB(gtk_app_chooser_dialog_set_heading)
+ STUB(gtk_color_chooser_dialog_new)
+ STUB(gtk_color_chooser_dialog_get_type)
+ STUB(gtk_color_chooser_get_type)
+
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/mozilla-silence-no-return-type.patch	Thu Sep 17 14:32:09 2020 +0200
@@ -0,0 +1,1022 @@
+diff -rup firefox-80.0.1.orig/gfx/skia/skia/include/codec/SkEncodedOrigin.h firefox-80.0.1/gfx/skia/skia/include/codec/SkEncodedOrigin.h
+--- firefox-80.0.1.orig/gfx/skia/skia/include/codec/SkEncodedOrigin.h	2020-08-31 16:04:09.000000000 +0200
++++ firefox-80.0.1/gfx/skia/skia/include/codec/SkEncodedOrigin.h	2020-09-05 17:20:04.093066839 +0200
+@@ -41,6 +41,7 @@ static inline SkMatrix SkEncodedOriginTo
+         case  kLeftBottom_SkEncodedOrigin: return SkMatrix::MakeAll( 0,  1, 0, -1,  0, w, 0, 0, 1);
+     }
+     SK_ABORT("Unexpected origin");
++    SkUNREACHABLE;
+ }
+ 
+ 
+diff -rup firefox-80.0.1.orig/gfx/skia/skia/include/private/GrTypesPriv.h firefox-80.0.1/gfx/skia/skia/include/private/GrTypesPriv.h
+--- firefox-80.0.1.orig/gfx/skia/skia/include/private/GrTypesPriv.h	2020-08-31 16:04:09.000000000 +0200
++++ firefox-80.0.1/gfx/skia/skia/include/private/GrTypesPriv.h	2020-09-05 16:27:55.719487864 +0200
+@@ -540,6 +540,7 @@ static inline GrSLType GrSLCombinedSampl
+         default:
+             SK_ABORT("Unexpected texture type");
+     }
++    SkUNREACHABLE;
+ }
+ 
+ /** Rectangle and external textures only support the clamp wrap mode and do not support
+@@ -556,6 +557,7 @@ static inline bool GrTextureTypeHasRestr
+         default:
+             SK_ABORT("Unexpected texture type");
+     }
++    SkUNREACHABLE;
+ }
+ 
+ static constexpr bool GrSLTypeIsCombinedSamplerType(GrSLType type) {
+@@ -858,6 +860,7 @@ static inline size_t GrCompressedFormatD
+     }
+ 
+     SK_ABORT("Invalid pixel config");
++    SkUNREACHABLE;
+ }
+ 
+ /**
+diff -rup firefox-80.0.1.orig/gfx/skia/skia/src/core/SkGeometry.h firefox-80.0.1/gfx/skia/skia/src/core/SkGeometry.h
+--- firefox-80.0.1.orig/gfx/skia/skia/src/core/SkGeometry.h	2020-08-31 16:04:09.000000000 +0200
++++ firefox-80.0.1/gfx/skia/skia/src/core/SkGeometry.h	2020-09-05 17:33:51.896635366 +0200
+@@ -182,6 +182,7 @@ static inline bool SkCubicIsDegenerate(S
+             return true;
+     }
+     SK_ABORT("Invalid SkCubicType");
++    SkUNREACHABLE;
+ }
+ 
+ static inline const char* SkCubicTypeName(SkCubicType type) {
+@@ -194,6 +195,7 @@ static inline const char* SkCubicTypeNam
+         case SkCubicType::kLineOrPoint: return "kLineOrPoint";
+     }
+     SK_ABORT("Invalid SkCubicType");
++    SkUNREACHABLE;
+ }
+ 
+ /** Returns the cubic classification.
+diff -rup firefox-80.0.1.orig/gfx/skia/skia/src/core/SkTextBlob.cpp firefox-80.0.1/gfx/skia/skia/src/core/SkTextBlob.cpp
+--- firefox-80.0.1.orig/gfx/skia/skia/src/core/SkTextBlob.cpp	2020-08-31 16:04:09.000000000 +0200
++++ firefox-80.0.1/gfx/skia/skia/src/core/SkTextBlob.cpp	2020-09-05 17:33:19.028493560 +0200
+@@ -201,6 +201,7 @@ void SkTextBlob::operator delete(void* p
+ 
+ void* SkTextBlob::operator new(size_t) {
+     SK_ABORT("All blobs are created by placement new.");
++    SkUNREACHABLE;
+ }
+ 
+ void* SkTextBlob::operator new(size_t, void* p) {
+diff -rup firefox-80.0.1.orig/gfx/skia/skia/src/core/SkTypeface_remote.cpp firefox-80.0.1/gfx/skia/skia/src/core/SkTypeface_remote.cpp
+--- firefox-80.0.1.orig/gfx/skia/skia/src/core/SkTypeface_remote.cpp	2020-08-31 16:04:09.000000000 +0200
++++ firefox-80.0.1/gfx/skia/skia/src/core/SkTypeface_remote.cpp	2020-09-05 17:33:09.424452127 +0200
+@@ -29,6 +29,7 @@ void SkScalerContextProxy::initCache(SkS
+ 
+ unsigned SkScalerContextProxy::generateGlyphCount()  {
+     SK_ABORT("Should never be called.");
++    SkUNREACHABLE;
+ }
+ 
+ bool SkScalerContextProxy::generateAdvance(SkGlyph* glyph) {
+diff -rup firefox-80.0.1.orig/gfx/skia/skia/src/core/SkTypeface_remote.h firefox-80.0.1/gfx/skia/skia/src/core/SkTypeface_remote.h
+--- firefox-80.0.1.orig/gfx/skia/skia/src/core/SkTypeface_remote.h	2020-08-31 16:04:09.000000000 +0200
++++ firefox-80.0.1/gfx/skia/skia/src/core/SkTypeface_remote.h	2020-09-05 17:34:55.424909478 +0200
+@@ -63,23 +63,28 @@ public:
+     bool isLogging() const {return fIsLogging;}
+ 
+ protected:
+-    int onGetUPEM() const override { SK_ABORT("Should never be called."); }
++    int onGetUPEM() const override { SK_ABORT("Should never be called."); SkUNREACHABLE; }
+     std::unique_ptr<SkStreamAsset> onOpenStream(int* ttcIndex) const override {
+         SK_ABORT("Should never be called.");
++	SkUNREACHABLE;
+     }
+     std::unique_ptr<SkFontData> onMakeFontData() const override {
+         SK_ABORT("Should never be called.");
++	SkUNREACHABLE;
+     }
+     sk_sp<SkTypeface> onMakeClone(const SkFontArguments& args) const override {
+         SK_ABORT("Should never be called.");
++	SkUNREACHABLE;
+     }
+     int onGetVariationDesignPosition(SkFontArguments::VariationPosition::Coordinate coordinates[],
+                                      int coordinateCount) const override {
+         SK_ABORT("Should never be called.");
++	SkUNREACHABLE;
+     }
+     int onGetVariationDesignParameters(SkFontParameters::Variation::Axis parameters[],
+                                        int parameterCount) const override {
+         SK_ABORT("Should never be called.");
++	SkUNREACHABLE;
+     }
+     void onGetFamilyName(SkString* familyName) const override {
+         // Used by SkStrikeCache::DumpMemoryStatistics.
+@@ -87,12 +92,15 @@ protected:
+     }
+     SkTypeface::LocalizedStrings* onCreateFamilyNameIterator() const override {
+         SK_ABORT("Should never be called.");
++	SkUNREACHABLE;
+     }
+     int onGetTableTags(SkFontTableTag tags[]) const override {
+         SK_ABORT("Should never be called.");
++	SkUNREACHABLE;
+     }
+     size_t onGetTableData(SkFontTableTag, size_t offset, size_t length, void* data) const override {
+         SK_ABORT("Should never be called.");
++	SkUNREACHABLE;
+     }
+     SkScalerContext* onCreateScalerContext(const SkScalerContextEffects& effects,
+                                            const SkDescriptor* desc) const override {
+@@ -116,6 +124,7 @@ protected:
+ 
+     std::unique_ptr<SkAdvancedTypefaceMetrics> onGetAdvancedMetrics() const override {
+         SK_ABORT("Should never be called.");
++	SkUNREACHABLE;
+     }
+     void onCharsToGlyphs(const SkUnichar* chars, int count, SkGlyphID glyphs[]) const override {
+         SK_ABORT("Should never be called.");
+@@ -126,6 +135,7 @@ protected:
+ 
+     void* onGetCTFontRef() const override {
+         SK_ABORT("Should never be called.");
++	SkUNREACHABLE;
+     }
+ 
+ private:
+diff -rup firefox-80.0.1.orig/gfx/skia/skia/src/effects/imagefilters/SkBlurImageFilter.cpp firefox-80.0.1/gfx/skia/skia/src/effects/imagefilters/SkBlurImageFilter.cpp
+--- firefox-80.0.1.orig/gfx/skia/skia/src/effects/imagefilters/SkBlurImageFilter.cpp	2020-08-31 16:04:09.000000000 +0200
++++ firefox-80.0.1/gfx/skia/skia/src/effects/imagefilters/SkBlurImageFilter.cpp	2020-09-05 17:35:26.657044250 +0200
+@@ -144,6 +144,7 @@ static GrTextureDomain::Mode to_texture_
+             return GrTextureDomain::kRepeat_Mode;
+         default:
+             SK_ABORT("Unsupported tile mode.");
++	    SkUNREACHABLE;
+     }
+ }
+ #endif
+diff -rup firefox-80.0.1.orig/gfx/skia/skia/src/effects/imagefilters/SkLightingImageFilter.cpp firefox-80.0.1/gfx/skia/skia/src/effects/imagefilters/SkLightingImageFilter.cpp
+--- firefox-80.0.1.orig/gfx/skia/skia/src/effects/imagefilters/SkLightingImageFilter.cpp	2020-08-31 16:04:09.000000000 +0200
++++ firefox-80.0.1/gfx/skia/skia/src/effects/imagefilters/SkLightingImageFilter.cpp	2020-09-05 17:35:30.841062305 +0200
+@@ -1701,6 +1701,7 @@ static SkImageFilterLight* create_random
+         }
+         default:
+             SK_ABORT("Unexpected value.");
++	    SkUNREACHABLE;
+     }
+ }
+ 
+diff -rup firefox-80.0.1.orig/gfx/skia/skia/src/fonts/SkFontMgr_indirect.cpp firefox-80.0.1/gfx/skia/skia/src/fonts/SkFontMgr_indirect.cpp
+--- firefox-80.0.1.orig/gfx/skia/skia/src/fonts/SkFontMgr_indirect.cpp	2020-08-31 16:04:09.000000000 +0200
++++ firefox-80.0.1/gfx/skia/skia/src/fonts/SkFontMgr_indirect.cpp	2020-09-05 17:35:41.193106978 +0200
+@@ -69,6 +69,7 @@ void SkFontMgr_Indirect::onGetFamilyName
+ 
+ SkFontStyleSet* SkFontMgr_Indirect::onCreateStyleSet(int index) const {
+     SK_ABORT("Not implemented");
++    SkUNREACHABLE;
+ }
+ 
+ SkFontStyleSet* SkFontMgr_Indirect::onMatchFamily(const char familyName[]) const {
+diff -rup firefox-80.0.1.orig/gfx/skia/skia/src/gpu/GrDataUtils.cpp firefox-80.0.1/gfx/skia/skia/src/gpu/GrDataUtils.cpp
+--- firefox-80.0.1.orig/gfx/skia/skia/src/gpu/GrDataUtils.cpp	2020-08-31 16:04:09.000000000 +0200
++++ firefox-80.0.1/gfx/skia/skia/src/gpu/GrDataUtils.cpp	2020-09-05 17:26:21.958694975 +0200
+@@ -128,6 +128,7 @@ size_t GrCompressedDataSize(SkImage::Com
+             return numBlocks * sizeof(ETC1Block);
+     }
+     SK_ABORT("Unexpected compression type");
++    SkUNREACHABLE;
+ }
+ 
+ size_t GrCompressedRowBytes(SkImage::CompressionType type, int width) {
+@@ -137,6 +138,7 @@ size_t GrCompressedRowBytes(SkImage::Com
+             return numBlocksWidth * sizeof(ETC1Block);
+     }
+     SK_ABORT("Unexpected compression type");
++    SkUNREACHABLE;
+ }
+ 
+ // Fill in 'dest' with ETC1 blocks derived from 'colorf'
+diff -rup firefox-80.0.1.orig/gfx/skia/skia/src/gpu/GrFragmentProcessor.h firefox-80.0.1/gfx/skia/skia/src/gpu/GrFragmentProcessor.h
+--- firefox-80.0.1.orig/gfx/skia/skia/src/gpu/GrFragmentProcessor.h	2020-08-31 16:04:09.000000000 +0200
++++ firefox-80.0.1/gfx/skia/skia/src/gpu/GrFragmentProcessor.h	2020-09-05 17:26:07.414632282 +0200
+@@ -375,6 +375,7 @@ protected:
+ private:
+     virtual SkPMColor4f constantOutputForConstantInput(const SkPMColor4f& /* inputColor */) const {
+         SK_ABORT("Subclass must override this if advertising this optimization.");
++	SkUNREACHABLE;
+     }
+ 
+     /** Returns a new instance of the appropriate *GL* implementation class
+diff -rup firefox-80.0.1.orig/gfx/skia/skia/src/gpu/GrPathRendering.cpp firefox-80.0.1/gfx/skia/skia/src/gpu/GrPathRendering.cpp
+--- firefox-80.0.1.orig/gfx/skia/skia/src/gpu/GrPathRendering.cpp	2020-08-31 16:04:09.000000000 +0200
++++ firefox-80.0.1/gfx/skia/skia/src/gpu/GrPathRendering.cpp	2020-09-05 17:28:44.215308274 +0200
+@@ -19,6 +19,7 @@ const GrUserStencilSettings& GrPathRende
+     switch (fill) {
+         default:
+             SK_ABORT("Unexpected path fill.");
++	    SkUNREACHABLE;
+         case GrPathRendering::kWinding_FillType: {
+             constexpr static GrUserStencilSettings kWindingStencilPass(
+                 GrUserStencilSettings::StaticInit<
+diff -rup firefox-80.0.1.orig/gfx/skia/skia/src/gpu/GrPathRendering.h firefox-80.0.1/gfx/skia/skia/src/gpu/GrPathRendering.h
+--- firefox-80.0.1.orig/gfx/skia/skia/src/gpu/GrPathRendering.h	2020-08-31 16:04:09.000000000 +0200
++++ firefox-80.0.1/gfx/skia/skia/src/gpu/GrPathRendering.h	2020-09-05 17:28:31.247252358 +0200
+@@ -63,6 +63,7 @@ public:
+ 
+             default:
+                 SK_ABORT("Unknown path transform type");
++		SkUNREACHABLE;
+         }
+     }
+ 
+diff -rup firefox-80.0.1.orig/gfx/skia/skia/src/gpu/GrProcessorUnitTest.cpp firefox-80.0.1/gfx/skia/skia/src/gpu/GrProcessorUnitTest.cpp
+--- firefox-80.0.1.orig/gfx/skia/skia/src/gpu/GrProcessorUnitTest.cpp	2020-08-31 16:04:09.000000000 +0200
++++ firefox-80.0.1/gfx/skia/skia/src/gpu/GrProcessorUnitTest.cpp	2020-09-05 17:21:37.549469393 +0200
+@@ -20,6 +20,7 @@ std::unique_ptr<GrFragmentProcessor> GrP
+     return fp;
+ #else
+     SK_ABORT("Should not be called if !SK_ALLOW_STATIC_GLOBAL_INITIALIZERS");
++    SkUNREACHABLE;
+ #endif
+ }
+ #endif
+diff -rup firefox-80.0.1.orig/gfx/skia/skia/src/gpu/GrReducedClip.cpp firefox-80.0.1/gfx/skia/skia/src/gpu/GrReducedClip.cpp
+--- firefox-80.0.1.orig/gfx/skia/skia/src/gpu/GrReducedClip.cpp	2020-08-31 16:04:09.000000000 +0200
++++ firefox-80.0.1/gfx/skia/skia/src/gpu/GrReducedClip.cpp	2020-09-05 17:28:39.151286438 +0200
+@@ -525,6 +525,7 @@ GrReducedClip::ClipResult GrReducedClip:
+     }
+ 
+     SK_ABORT("Unexpected DeviceSpaceType");
++    SkUNREACHABLE;
+ }
+ 
+ GrReducedClip::ClipResult GrReducedClip::clipOutsideElement(const Element* element) {
+@@ -591,6 +592,7 @@ GrReducedClip::ClipResult GrReducedClip:
+     }
+ 
+     SK_ABORT("Unexpected DeviceSpaceType");
++    SkUNREACHABLE;
+ }
+ 
+ inline void GrReducedClip::addWindowRectangle(const SkRect& elementInteriorRect, bool elementIsAA) {
+diff -rup firefox-80.0.1.orig/gfx/skia/skia/src/gpu/GrResourceCache.cpp firefox-80.0.1/gfx/skia/skia/src/gpu/GrResourceCache.cpp
+--- firefox-80.0.1.orig/gfx/skia/skia/src/gpu/GrResourceCache.cpp	2020-08-31 16:04:09.000000000 +0200
++++ firefox-80.0.1/gfx/skia/skia/src/gpu/GrResourceCache.cpp	2020-09-05 17:24:04.038100548 +0200
+@@ -40,6 +40,7 @@ GrScratchKey::ResourceType GrScratchKey:
+     int32_t type = nextType++;
+     if (type > SkTo<int32_t>(UINT16_MAX)) {
+         SK_ABORT("Too many Resource Types");
++	SkUNREACHABLE;
+     }
+ 
+     return static_cast<ResourceType>(type);
+@@ -51,6 +52,7 @@ GrUniqueKey::Domain GrUniqueKey::Generat
+     int32_t domain = nextDomain++;
+     if (domain > SkTo<int32_t>(UINT16_MAX)) {
+         SK_ABORT("Too many GrUniqueKey Domains");
++	SkUNREACHABLE;
+     }
+ 
+     return static_cast<Domain>(domain);
+diff -rup firefox-80.0.1.orig/gfx/skia/skia/src/gpu/GrShaderVar.cpp firefox-80.0.1/gfx/skia/skia/src/gpu/GrShaderVar.cpp
+--- firefox-80.0.1.orig/gfx/skia/skia/src/gpu/GrShaderVar.cpp	2020-08-31 16:04:09.000000000 +0200
++++ firefox-80.0.1/gfx/skia/skia/src/gpu/GrShaderVar.cpp	2020-09-05 17:21:29.397434277 +0200
+@@ -18,6 +18,7 @@ static const char* type_modifier_string(
+         case GrShaderVar::kUniform_TypeModifier: return "uniform";
+     }
+     SK_ABORT("Unknown shader variable type modifier.");
++    SkUNREACHABLE;
+ }
+ 
+ void GrShaderVar::setIOType(GrIOType ioType) {
+@@ -32,6 +33,7 @@ void GrShaderVar::setIOType(GrIOType ioT
+             return;
+     }
+     SK_ABORT("Unknown io type.");
++    SkUNREACHABLE;
+ }
+ 
+ void GrShaderVar::appendDecl(const GrShaderCaps* shaderCaps, SkString* out) const {
+diff -rup firefox-80.0.1.orig/gfx/skia/skia/src/gpu/SkGpuDevice.cpp firefox-80.0.1/gfx/skia/skia/src/gpu/SkGpuDevice.cpp
+--- firefox-80.0.1.orig/gfx/skia/skia/src/gpu/SkGpuDevice.cpp	2020-08-31 16:04:09.000000000 +0200
++++ firefox-80.0.1/gfx/skia/skia/src/gpu/SkGpuDevice.cpp	2020-09-05 17:30:38.891802801 +0200
+@@ -283,6 +283,7 @@ static inline GrPrimitiveType point_mode
+             return GrPrimitiveType::kLineStrip;
+     }
+     SK_ABORT("Unexpected mode");
++    SkUNREACHABLE;
+ }
+ 
+ void SkGpuDevice::drawPoints(SkCanvas::PointMode mode,
+diff -rup firefox-80.0.1.orig/gfx/skia/skia/src/gpu/SkGr.h firefox-80.0.1/gfx/skia/skia/src/gpu/SkGr.h
+--- firefox-80.0.1.orig/gfx/skia/skia/src/gpu/SkGr.h	2020-08-31 16:04:09.000000000 +0200
++++ firefox-80.0.1/gfx/skia/skia/src/gpu/SkGr.h	2020-09-05 17:30:45.151829800 +0200
+@@ -159,6 +159,7 @@ static inline GrPrimitiveType SkVertexMo
+             break;
+     }
+     SK_ABORT("Invalid mode");
++    SkUNREACHABLE;
+ }
+ 
+ //////////////////////////////////////////////////////////////////////////////
+diff -rup firefox-80.0.1.orig/gfx/skia/skia/src/gpu/ccpr/GrCCCoverageProcessor.h firefox-80.0.1/gfx/skia/skia/src/gpu/ccpr/GrCCCoverageProcessor.h
+--- firefox-80.0.1.orig/gfx/skia/skia/src/gpu/ccpr/GrCCCoverageProcessor.h	2020-08-31 16:04:09.000000000 +0200
++++ firefox-80.0.1/gfx/skia/skia/src/gpu/ccpr/GrCCCoverageProcessor.h	2020-09-05 17:32:06.476180575 +0200
+@@ -240,6 +240,7 @@ inline const char* GrCCCoverageProcessor
+         case PrimitiveType::kConics: return "kConics";
+     }
+     SK_ABORT("Invalid PrimitiveType");
++    SkUNREACHABLE;
+ }
+ 
+ inline void GrCCCoverageProcessor::TriPointInstance::set(
+diff -rup firefox-80.0.1.orig/gfx/skia/skia/src/gpu/ccpr/GrCCStrokeGeometry.cpp firefox-80.0.1/gfx/skia/skia/src/gpu/ccpr/GrCCStrokeGeometry.cpp
+--- firefox-80.0.1.orig/gfx/skia/skia/src/gpu/ccpr/GrCCStrokeGeometry.cpp	2020-08-31 16:04:09.000000000 +0200
++++ firefox-80.0.1/gfx/skia/skia/src/gpu/ccpr/GrCCStrokeGeometry.cpp	2020-09-05 17:32:10.548198140 +0200
+@@ -60,6 +60,7 @@ static GrCCStrokeGeometry::Verb join_ver
+             return Verb::kRoundJoin;
+     }
+     SK_ABORT("Invalid SkPaint::Join.");
++    SkUNREACHABLE;
+ }
+ 
+ void GrCCStrokeGeometry::beginPath(const SkStrokeRec& stroke, float strokeDevWidth,
+diff -rup firefox-80.0.1.orig/gfx/skia/skia/src/gpu/ccpr/GrCCStrokeGeometry.h firefox-80.0.1/gfx/skia/skia/src/gpu/ccpr/GrCCStrokeGeometry.h
+--- firefox-80.0.1.orig/gfx/skia/skia/src/gpu/ccpr/GrCCStrokeGeometry.h	2020-08-31 16:04:09.000000000 +0200
++++ firefox-80.0.1/gfx/skia/skia/src/gpu/ccpr/GrCCStrokeGeometry.h	2020-09-05 17:32:25.116260983 +0200
+@@ -175,5 +175,6 @@ inline bool GrCCStrokeGeometry::IsIntern
+             return false;
+     }
+     SK_ABORT("Invalid GrCCStrokeGeometry::Verb.");
++    SkUNREACHABLE;
+ }
+ #endif
+diff -rup firefox-80.0.1.orig/gfx/skia/skia/src/gpu/ccpr/GrCoverageCountingPathRenderer.cpp firefox-80.0.1/gfx/skia/skia/src/gpu/ccpr/GrCoverageCountingPathRenderer.cpp
+--- firefox-80.0.1.orig/gfx/skia/skia/src/gpu/ccpr/GrCoverageCountingPathRenderer.cpp	2020-08-31 16:04:09.000000000 +0200
++++ firefox-80.0.1/gfx/skia/skia/src/gpu/ccpr/GrCoverageCountingPathRenderer.cpp	2020-09-05 17:32:16.092222055 +0200
+@@ -164,6 +164,7 @@ GrPathRenderer::CanDrawPath GrCoverageCo
+     }
+ 
+     SK_ABORT("Invalid stroke style.");
++    SkUNREACHABLE;
+ }
+ 
+ bool GrCoverageCountingPathRenderer::onDrawPath(const DrawPathArgs& args) {
+diff -rup firefox-80.0.1.orig/gfx/skia/skia/src/gpu/ccpr/GrVSCoverageProcessor.cpp firefox-80.0.1/gfx/skia/skia/src/gpu/ccpr/GrVSCoverageProcessor.cpp
+--- firefox-80.0.1.orig/gfx/skia/skia/src/gpu/ccpr/GrVSCoverageProcessor.cpp	2020-08-31 16:04:09.000000000 +0200
++++ firefox-80.0.1/gfx/skia/skia/src/gpu/ccpr/GrVSCoverageProcessor.cpp	2020-09-05 17:32:20.524241174 +0200
+@@ -550,4 +550,5 @@ GrGLSLPrimitiveProcessor* GrVSCoveragePr
+             return new Impl(std::move(shader), 4);
+     }
+     SK_ABORT("Invalid PrimitiveType");
++    SkUNREACHABLE;
+ }
+diff -rup firefox-80.0.1.orig/gfx/skia/skia/src/gpu/dawn/GrDawnOpsRenderPass.cpp firefox-80.0.1/gfx/skia/skia/src/gpu/dawn/GrDawnOpsRenderPass.cpp
+--- firefox-80.0.1.orig/gfx/skia/skia/src/gpu/dawn/GrDawnOpsRenderPass.cpp	2020-08-31 16:04:09.000000000 +0200
++++ firefox-80.0.1/gfx/skia/skia/src/gpu/dawn/GrDawnOpsRenderPass.cpp	2020-09-05 17:29:04.783396962 +0200
+@@ -39,7 +39,9 @@ static dawn::LoadOp to_dawn_load_op(GrLo
+             return dawn::LoadOp::Clear;
+         default:
+             SK_ABORT("Invalid LoadOp");
++	    SkUNREACHABLE;
+     }
++    SkUNREACHABLE;
+ }
+ 
+ GrDawnOpsRenderPass::GrDawnOpsRenderPass(GrDawnGpu* gpu, GrRenderTarget* rt, GrSurfaceOrigin origin,
+diff -rup firefox-80.0.1.orig/gfx/skia/skia/src/gpu/dawn/GrDawnUniformHandler.cpp firefox-80.0.1/gfx/skia/skia/src/gpu/dawn/GrDawnUniformHandler.cpp
+--- firefox-80.0.1.orig/gfx/skia/skia/src/gpu/dawn/GrDawnUniformHandler.cpp	2020-08-31 16:04:09.000000000 +0200
++++ firefox-80.0.1/gfx/skia/skia/src/gpu/dawn/GrDawnUniformHandler.cpp	2020-09-05 17:29:19.431460126 +0200
+@@ -95,6 +95,7 @@ uint32_t grsltype_to_alignment_mask(GrSL
+             break;
+     }
+     SK_ABORT("Unexpected type");
++    SkUNREACHABLE;
+ }
+ 
+ static inline uint32_t grsltype_to_size(GrSLType type) {
+@@ -173,6 +174,7 @@ static inline uint32_t grsltype_to_size(
+             break;
+     }
+     SK_ABORT("Unexpected type");
++    SkUNREACHABLE;
+ }
+ 
+ uint32_t get_ubo_offset(uint32_t* currentOffset,
+diff -rup firefox-80.0.1.orig/gfx/skia/skia/src/gpu/dawn/GrDawnVaryingHandler.cpp firefox-80.0.1/gfx/skia/skia/src/gpu/dawn/GrDawnVaryingHandler.cpp
+--- firefox-80.0.1.orig/gfx/skia/skia/src/gpu/dawn/GrDawnVaryingHandler.cpp	2020-08-31 16:04:09.000000000 +0200
++++ firefox-80.0.1/gfx/skia/skia/src/gpu/dawn/GrDawnVaryingHandler.cpp	2020-09-05 17:29:23.527477789 +0200
+@@ -76,6 +76,7 @@ static inline int grsltype_to_location_s
+              return 0;
+     }
+     SK_ABORT("Unexpected type");
++    SkUNREACHABLE;
+ }
+ 
+ static void finalize_helper(GrDawnVaryingHandler::VarArray& vars) {
+diff -rup firefox-80.0.1.orig/gfx/skia/skia/src/gpu/effects/GrConstColorProcessor.fp firefox-80.0.1/gfx/skia/skia/src/gpu/effects/GrConstColorProcessor.fp
+--- firefox-80.0.1.orig/gfx/skia/skia/src/gpu/effects/GrConstColorProcessor.fp	2020-08-31 16:04:09.000000000 +0200
++++ firefox-80.0.1/gfx/skia/skia/src/gpu/effects/GrConstColorProcessor.fp	2020-09-05 17:31:23.039993215 +0200
+@@ -58,6 +58,7 @@ void main() {
+                 return color * input;
+         }
+         SK_ABORT("Unexpected mode");
++	SkUNREACHABLE;
+     }
+ }
+ 
+diff -rup firefox-80.0.1.orig/gfx/skia/skia/src/gpu/effects/GrCoverageSetOpXP.cpp firefox-80.0.1/gfx/skia/skia/src/gpu/effects/GrCoverageSetOpXP.cpp
+--- firefox-80.0.1.orig/gfx/skia/skia/src/gpu/effects/GrCoverageSetOpXP.cpp	2020-08-31 16:04:09.000000000 +0200
++++ firefox-80.0.1/gfx/skia/skia/src/gpu/effects/GrCoverageSetOpXP.cpp	2020-09-05 17:31:42.796078430 +0200
+@@ -204,6 +204,7 @@ const GrXPFactory* GrCoverageSetOpXPFact
+     }
+ #undef _CONSTEXPR_
+     SK_ABORT("Unknown region op.");
++    SkUNREACHABLE;
+ }
+ 
+ sk_sp<const GrXferProcessor> GrCoverageSetOpXPFactory::makeXferProcessor(
+diff -rup firefox-80.0.1.orig/gfx/skia/skia/src/gpu/effects/GrPorterDuffXferProcessor.cpp firefox-80.0.1/gfx/skia/skia/src/gpu/effects/GrPorterDuffXferProcessor.cpp
+--- firefox-80.0.1.orig/gfx/skia/skia/src/gpu/effects/GrPorterDuffXferProcessor.cpp	2020-08-31 16:04:09.000000000 +0200
++++ firefox-80.0.1/gfx/skia/skia/src/gpu/effects/GrPorterDuffXferProcessor.cpp	2020-09-05 17:31:32.900035745 +0200
+@@ -753,6 +753,7 @@ const GrXPFactory* GrPorterDuffXPFactory
+             return &gScreenPDXPF;
+         default:
+             SK_ABORT("Unexpected blend mode.");
++	    SkUNREACHABLE;
+     }
+ }
+ 
+diff -rup firefox-80.0.1.orig/gfx/skia/skia/src/gpu/effects/GrSkSLFP.cpp firefox-80.0.1/gfx/skia/skia/src/gpu/effects/GrSkSLFP.cpp
+--- firefox-80.0.1.orig/gfx/skia/skia/src/gpu/effects/GrSkSLFP.cpp	2020-08-31 16:04:09.000000000 +0200
++++ firefox-80.0.1/gfx/skia/skia/src/gpu/effects/GrSkSLFP.cpp	2020-09-05 17:31:49.900109073 +0200
+@@ -154,6 +154,7 @@ public:
+         }
+         printf("%s\n", SkSL::String(type.fName).c_str());
+         SK_ABORT("unsupported uniform type");
++	SkUNREACHABLE;
+     }
+ 
+     void emitCode(EmitArgs& args) override {
+@@ -568,6 +569,7 @@ std::unique_ptr<GrFragmentProcessor> GrS
+         }
+     }
+     SK_ABORT("unreachable");
++    SkUNREACHABLE;
+ }
+ 
+ #endif
+diff -rup firefox-80.0.1.orig/gfx/skia/skia/src/gpu/effects/generated/GrConstColorProcessor.h firefox-80.0.1/gfx/skia/skia/src/gpu/effects/generated/GrConstColorProcessor.h
+--- firefox-80.0.1.orig/gfx/skia/skia/src/gpu/effects/generated/GrConstColorProcessor.h	2020-08-31 16:04:09.000000000 +0200
++++ firefox-80.0.1/gfx/skia/skia/src/gpu/effects/generated/GrConstColorProcessor.h	2020-09-05 17:30:53.303864960 +0200
+@@ -41,6 +41,7 @@ public:
+                 return color * input;
+         }
+         SK_ABORT("Unexpected mode");
++	SkUNREACHABLE;
+     }
+     static std::unique_ptr<GrFragmentProcessor> Make(SkPMColor4f color, InputMode mode) {
+         return std::unique_ptr<GrFragmentProcessor>(new GrConstColorProcessor(color, mode));
+diff -rup firefox-80.0.1.orig/gfx/skia/skia/src/gpu/geometry/GrShape.cpp firefox-80.0.1/gfx/skia/skia/src/gpu/geometry/GrShape.cpp
+--- firefox-80.0.1.orig/gfx/skia/skia/src/gpu/geometry/GrShape.cpp	2020-08-31 16:04:09.000000000 +0200
++++ firefox-80.0.1/gfx/skia/skia/src/gpu/geometry/GrShape.cpp	2020-09-05 17:26:35.670754081 +0200
+@@ -164,6 +164,7 @@ SkRect GrShape::bounds() const {
+             return this->path().getBounds();
+     }
+     SK_ABORT("Unknown shape type");
++    SkUNREACHABLE;
+ }
+ 
+ SkRect GrShape::styledBounds() const {
+@@ -254,6 +255,7 @@ int GrShape::unstyledKeySize() const {
+         }
+     }
+     SK_ABORT("Should never get here.");
++    SkUNREACHABLE;
+ }
+ 
+ void GrShape::writeUnstyledKey(uint32_t* key) const {
+diff -rup firefox-80.0.1.orig/gfx/skia/skia/src/gpu/gl/GrGLCaps.cpp firefox-80.0.1/gfx/skia/skia/src/gpu/gl/GrGLCaps.cpp
+--- firefox-80.0.1.orig/gfx/skia/skia/src/gpu/gl/GrGLCaps.cpp	2020-08-31 16:04:09.000000000 +0200
++++ firefox-80.0.1/gfx/skia/skia/src/gpu/gl/GrGLCaps.cpp	2020-09-05 17:23:12.109876788 +0200
+@@ -4159,6 +4159,7 @@ GrBackendFormat GrGLCaps::getBackendForm
+             return GrBackendFormat::MakeGL(GR_GL_COMPRESSED_ETC1_RGB8, GR_GL_TEXTURE_2D);
+     }
+     SK_ABORT("Invalid compression type");
++    SkUNREACHABLE;
+ }
+ 
+ GrSwizzle GrGLCaps::getTextureSwizzle(const GrBackendFormat& format, GrColorType colorType) const {
+diff -rup firefox-80.0.1.orig/gfx/skia/skia/src/gpu/gl/GrGLGLSL.cpp firefox-80.0.1/gfx/skia/skia/src/gpu/gl/GrGLGLSL.cpp
+--- firefox-80.0.1.orig/gfx/skia/skia/src/gpu/gl/GrGLGLSL.cpp	2020-08-31 16:04:09.000000000 +0200
++++ firefox-80.0.1/gfx/skia/skia/src/gpu/gl/GrGLGLSL.cpp	2020-09-05 17:22:08.885604389 +0200
+@@ -68,4 +68,5 @@ bool GrGLGetGLSLGeneration(const GrGLInt
+         return true;
+     }
+     SK_ABORT("Unknown GL Standard");
++    SkUNREACHABLE;
+ }
+diff -rup firefox-80.0.1.orig/gfx/skia/skia/src/gpu/gl/GrGLGpu.cpp firefox-80.0.1/gfx/skia/skia/src/gpu/gl/GrGLGpu.cpp
+--- firefox-80.0.1.orig/gfx/skia/skia/src/gpu/gl/GrGLGpu.cpp	2020-08-31 16:04:09.000000000 +0200
++++ firefox-80.0.1/gfx/skia/skia/src/gpu/gl/GrGLGpu.cpp	2020-09-05 17:23:04.717844938 +0200
+@@ -196,6 +196,7 @@ static int gl_target_to_binding_index(Gr
+             return 2;
+     }
+     SK_ABORT("Unexpected GL texture target.");
++    SkUNREACHABLE;
+ }
+ 
+ GrGpuResource::UniqueID GrGLGpu::TextureUnitBindings::boundID(GrGLenum target) const {
+@@ -234,6 +235,7 @@ static GrGLenum filter_to_gl_mag_filter(
+         case GrSamplerState::Filter::kMipMap:  return GR_GL_LINEAR;
+     }
+     SK_ABORT("Unknown filter");
++    SkUNREACHABLE;
+ }
+ 
+ static GrGLenum filter_to_gl_min_filter(GrSamplerState::Filter filter) {
+@@ -243,6 +245,7 @@ static GrGLenum filter_to_gl_min_filter(
+         case GrSamplerState::Filter::kMipMap:  return GR_GL_LINEAR_MIPMAP_LINEAR;
+     }
+     SK_ABORT("Unknown filter");
++    SkUNREACHABLE;
+ }
+ 
+ static inline GrGLenum wrap_mode_to_gl_wrap(GrSamplerState::WrapMode wrapMode,
+@@ -257,6 +260,7 @@ static inline GrGLenum wrap_mode_to_gl_w
+             return GR_GL_CLAMP_TO_BORDER;
+     }
+     SK_ABORT("Unknown wrap mode");
++    SkUNREACHABLE;
+ }
+ 
+ ///////////////////////////////////////////////////////////////////////////////
+@@ -1107,7 +1111,7 @@ static bool renderbuffer_storage_msaa(co
+             break;
+         case GrGLCaps::kNone_MSFBOType:
+             SK_ABORT("Shouldn't be here if we don't support multisampled renderbuffers.");
+-            break;
++	    SkUNREACHABLE;
+     }
+     return (GR_GL_NO_ERROR == CHECK_ALLOC_ERROR(ctx.interface()));
+ }
+@@ -2275,9 +2279,10 @@ static GrGLenum gr_primitive_type_to_gl_
+             return GR_GL_LINE_STRIP;
+         case GrPrimitiveType::kPath:
+             SK_ABORT("non-mesh-based GrPrimitiveType");
+-            return 0;
++            SkUNREACHABLE;
+     }
+     SK_ABORT("invalid GrPrimitiveType");
++    SkUNREACHABLE;
+ }
+ 
+ void GrGLGpu::sendMeshToGpu(GrPrimitiveType primitiveType, const GrBuffer* vertexBuffer,
+@@ -4006,7 +4011,8 @@ int GrGLGpu::TextureToCopyProgramIdx(GrT
+         case kTextureExternalSampler_GrSLType:
+             return 2;
+         default:
+-            SK_ABORT("Unexpected samper type");
++            SK_ABORT("Unexpected sampler type");
++	    SkUNREACHABLE;
+     }
+ }
+ 
+diff -rup firefox-80.0.1.orig/gfx/skia/skia/src/gpu/gl/GrGLPath.cpp firefox-80.0.1/gfx/skia/skia/src/gpu/gl/GrGLPath.cpp
+--- firefox-80.0.1.orig/gfx/skia/skia/src/gpu/gl/GrGLPath.cpp	2020-08-31 16:04:09.000000000 +0200
++++ firefox-80.0.1/gfx/skia/skia/src/gpu/gl/GrGLPath.cpp	2020-09-05 17:23:22.477921462 +0200
+@@ -197,6 +197,7 @@ static GrPathRendering::FillType convert
+     switch (fill) {
+         default:
+             SK_ABORT("Incomplete Switch\n");
++	    SkUNREACHABLE;
+         case SkPath::kWinding_FillType:
+         case SkPath::kInverseWinding_FillType:
+             return GrPathRendering::kWinding_FillType;
+diff -rup firefox-80.0.1.orig/gfx/skia/skia/src/gpu/gl/GrGLTexture.cpp firefox-80.0.1/gfx/skia/skia/src/gpu/gl/GrGLTexture.cpp
+--- firefox-80.0.1.orig/gfx/skia/skia/src/gpu/gl/GrGLTexture.cpp	2020-08-31 16:04:09.000000000 +0200
++++ firefox-80.0.1/gfx/skia/skia/src/gpu/gl/GrGLTexture.cpp	2020-09-05 17:22:32.685706927 +0200
+@@ -25,6 +25,7 @@ GrTextureType GrGLTexture::TextureTypeFr
+             return GrTextureType::kExternal;
+     }
+     SK_ABORT("Unexpected texture target");
++    SkUNREACHABLE;
+ }
+ 
+ static inline GrGLenum target_from_texture_type(GrTextureType type) {
+@@ -37,8 +38,10 @@ static inline GrGLenum target_from_textu
+             return GR_GL_TEXTURE_EXTERNAL;
+         default:
+             SK_ABORT("Unexpected texture target");
++	    SkUNREACHABLE;
+     }
+     SK_ABORT("Unexpected texture type");
++    SkUNREACHABLE;
+ }
+ 
+ // Because this class is virtually derived from GrSurface we must explicitly call its constructor.
+diff -rup firefox-80.0.1.orig/gfx/skia/skia/src/gpu/gl/GrGLVertexArray.cpp firefox-80.0.1/gfx/skia/skia/src/gpu/gl/GrGLVertexArray.cpp
+--- firefox-80.0.1.orig/gfx/skia/skia/src/gpu/gl/GrGLVertexArray.cpp	2020-08-31 16:04:09.000000000 +0200
++++ firefox-80.0.1/gfx/skia/skia/src/gpu/gl/GrGLVertexArray.cpp	2020-09-05 17:23:27.989945214 +0200
+@@ -80,6 +80,7 @@ static AttribLayout attrib_layout(GrVert
+             return {true, 4, GR_GL_UNSIGNED_SHORT};
+     }
+     SK_ABORT("Unknown vertex attrib type");
++    SkUNREACHABLE;
+ };
+ 
+ void GrGLAttribArrayState::set(GrGLGpu* gpu,
+diff -rup firefox-80.0.1.orig/gfx/skia/skia/src/gpu/glsl/GrGLSL.cpp firefox-80.0.1/gfx/skia/skia/src/gpu/glsl/GrGLSL.cpp
+--- firefox-80.0.1.orig/gfx/skia/skia/src/gpu/glsl/GrGLSL.cpp	2020-08-31 16:04:09.000000000 +0200
++++ firefox-80.0.1/gfx/skia/skia/src/gpu/glsl/GrGLSL.cpp	2020-09-05 17:30:03.215648939 +0200
+@@ -98,4 +98,5 @@ const char* GrGLSLTypeString(GrSLType t)
+             return "sampler";
+     }
+     SK_ABORT("Unknown shader var type.");
++    SkUNREACHABLE;
+ }
+diff -rup firefox-80.0.1.orig/gfx/skia/skia/src/gpu/glsl/GrGLSLVarying.cpp firefox-80.0.1/gfx/skia/skia/src/gpu/glsl/GrGLSLVarying.cpp
+--- firefox-80.0.1.orig/gfx/skia/skia/src/gpu/glsl/GrGLSLVarying.cpp	2020-08-31 16:04:09.000000000 +0200
++++ firefox-80.0.1/gfx/skia/skia/src/gpu/glsl/GrGLSLVarying.cpp	2020-09-05 17:30:16.439705971 +0200
+@@ -35,6 +35,7 @@ static bool use_flat_interpolation(GrGLS
+             return true;
+     }
+     SK_ABORT("Invalid interpolation");
++    SkUNREACHABLE;
+ }
+ 
+ void GrGLSLVaryingHandler::addVarying(const char* name, GrGLSLVarying* varying,
+diff -rup firefox-80.0.1.orig/gfx/skia/skia/src/gpu/glsl/GrGLSLVertexGeoBuilder.cpp firefox-80.0.1/gfx/skia/skia/src/gpu/glsl/GrGLSLVertexGeoBuilder.cpp
+--- firefox-80.0.1.orig/gfx/skia/skia/src/gpu/glsl/GrGLSLVertexGeoBuilder.cpp	2020-08-31 16:04:09.000000000 +0200
++++ firefox-80.0.1/gfx/skia/skia/src/gpu/glsl/GrGLSLVertexGeoBuilder.cpp	2020-09-05 17:30:09.799677334 +0200
+@@ -51,6 +51,7 @@ static const char* input_type_name(GrGLS
+         case InputType::kTriangles: return "triangles";
+     }
+     SK_ABORT("invalid input type");
++    SkUNREACHABLE;
+ }
+ 
+ static const char* output_type_name(GrGLSLGeometryBuilder::OutputType out) {
+@@ -61,6 +62,7 @@ static const char* output_type_name(GrGL
+         case OutputType::kTriangleStrip: return "triangle_strip";
+     }
+     SK_ABORT("invalid output type");
++    SkUNREACHABLE;
+ }
+ 
+ void GrGLSLGeometryBuilder::configure(InputType inputType, OutputType outputType, int maxVertices,
+diff -rup firefox-80.0.1.orig/gfx/skia/skia/src/gpu/mtl/GrMtlCaps.mm firefox-80.0.1/gfx/skia/skia/src/gpu/mtl/GrMtlCaps.mm
+--- firefox-80.0.1.orig/gfx/skia/skia/src/gpu/mtl/GrMtlCaps.mm	2020-08-31 16:04:09.000000000 +0200
++++ firefox-80.0.1/gfx/skia/skia/src/gpu/mtl/GrMtlCaps.mm	2020-09-05 17:27:20.846948832 +0200
+@@ -506,6 +506,7 @@ size_t GrMtlCaps::GetFormatIndex(MTLPixe
+         }
+     }
+     SK_ABORT("Invalid MTLPixelFormat");
++    SkUNREACHABLE;
+ }
+ 
+ void GrMtlCaps::initFormatTable() {
+@@ -1011,6 +1012,7 @@ GrBackendFormat GrMtlCaps::getBackendFor
+ #endif
+     }
+     SK_ABORT("Invalid compression type");
++    SkUNREACHABLE;
+ }
+ 
+ GrSwizzle GrMtlCaps::getTextureSwizzle(const GrBackendFormat& format, GrColorType colorType) const {
+diff -rup firefox-80.0.1.orig/gfx/skia/skia/src/gpu/mtl/GrMtlPipelineStateBuilder.mm firefox-80.0.1/gfx/skia/skia/src/gpu/mtl/GrMtlPipelineStateBuilder.mm
+--- firefox-80.0.1.orig/gfx/skia/skia/src/gpu/mtl/GrMtlPipelineStateBuilder.mm	2020-08-31 16:04:09.000000000 +0200
++++ firefox-80.0.1/gfx/skia/skia/src/gpu/mtl/GrMtlPipelineStateBuilder.mm	2020-09-05 17:26:49.110812019 +0200
+@@ -155,6 +155,7 @@ static inline MTLVertexFormat attribute_
+             return MTLVertexFormatUShort4Normalized;
+     }
+     SK_ABORT("Unknown vertex attribute type");
++    SkUNREACHABLE;
+ }
+ 
+ static MTLVertexDescriptor* create_vertex_descriptor(const GrPrimitiveProcessor& primProc) {
+@@ -276,6 +277,7 @@ static MTLBlendFactor blend_coeff_to_mtl
+     }
+ 
+     SK_ABORT("Unknown blend coefficient");
++    SkUNREACHABLE;
+ }
+ 
+ static MTLBlendOperation blend_equation_to_mtl_blend_op(GrBlendEquation equation) {
+diff -rup firefox-80.0.1.orig/gfx/skia/skia/src/gpu/mtl/GrMtlSampler.mm firefox-80.0.1/gfx/skia/skia/src/gpu/mtl/GrMtlSampler.mm
+--- firefox-80.0.1.orig/gfx/skia/skia/src/gpu/mtl/GrMtlSampler.mm	2020-08-31 16:04:09.000000000 +0200
++++ firefox-80.0.1/gfx/skia/skia/src/gpu/mtl/GrMtlSampler.mm	2020-09-05 17:26:53.606831401 +0200
+@@ -38,6 +38,7 @@ static inline MTLSamplerAddressMode wrap
+             }
+     }
+     SK_ABORT("Unknown wrap mode.");
++    SkUNREACHABLE;
+ }
+ 
+ GrMtlSampler* GrMtlSampler::Create(const GrMtlGpu* gpu, const GrSamplerState& samplerState) {
+diff -rup firefox-80.0.1.orig/gfx/skia/skia/src/gpu/mtl/GrMtlUniformHandler.mm firefox-80.0.1/gfx/skia/skia/src/gpu/mtl/GrMtlUniformHandler.mm
+--- firefox-80.0.1.orig/gfx/skia/skia/src/gpu/mtl/GrMtlUniformHandler.mm	2020-08-31 16:04:09.000000000 +0200
++++ firefox-80.0.1/gfx/skia/skia/src/gpu/mtl/GrMtlUniformHandler.mm	2020-09-05 17:27:08.118893961 +0200
+@@ -90,6 +90,7 @@ static uint32_t grsltype_to_alignment_ma
+             break;
+     }
+     SK_ABORT("Unexpected type");
++    SkUNREACHABLE;
+ }
+ 
+ /** Returns the size in bytes taken up in Metal buffers for GrSLTypes. */
+@@ -172,6 +173,7 @@ static inline uint32_t grsltype_to_mtl_s
+             break;
+     }
+     SK_ABORT("Unexpected type");
++    SkUNREACHABLE;
+ }
+ 
+ // Given the current offset into the ubo, calculate the offset for the uniform we're trying to add
+diff -rup firefox-80.0.1.orig/gfx/skia/skia/src/gpu/mtl/GrMtlUtil.mm firefox-80.0.1/gfx/skia/skia/src/gpu/mtl/GrMtlUtil.mm
+--- firefox-80.0.1.orig/gfx/skia/skia/src/gpu/mtl/GrMtlUtil.mm	2020-08-31 16:04:09.000000000 +0200
++++ firefox-80.0.1/gfx/skia/skia/src/gpu/mtl/GrMtlUtil.mm	2020-09-05 17:27:01.606865888 +0200
+@@ -112,6 +112,7 @@ bool GrPixelConfigToMTLFormat(GrPixelCon
+             return true;
+     }
+     SK_ABORT("Unexpected config");
++    SkUNREACHABLE;
+ }
+ 
+ MTLTextureDescriptor* GrGetMTLTextureDescriptor(id<MTLTexture> mtlTexture) {
+diff -rup firefox-80.0.1.orig/gfx/skia/skia/src/gpu/ops/GrDrawVerticesOp.cpp firefox-80.0.1/gfx/skia/skia/src/gpu/ops/GrDrawVerticesOp.cpp
+--- firefox-80.0.1.orig/gfx/skia/skia/src/gpu/ops/GrDrawVerticesOp.cpp	2020-08-31 16:04:09.000000000 +0200
++++ firefox-80.0.1/gfx/skia/skia/src/gpu/ops/GrDrawVerticesOp.cpp	2020-09-05 17:27:56.087100762 +0200
+@@ -610,6 +610,7 @@ static uint32_t seed_vertices(GrPrimitiv
+             return 0;
+     }
+     SK_ABORT("Incomplete switch\n");
++    SkUNREACHABLE;
+ }
+ 
+ static uint32_t primitive_vertices(GrPrimitiveType type) {
+@@ -627,6 +628,7 @@ static uint32_t primitive_vertices(GrPri
+             return 0;
+     }
+     SK_ABORT("Incomplete switch\n");
++    SkUNREACHABLE;
+ }
+ 
+ static SkPoint random_point(SkRandom* random, SkScalar min, SkScalar max) {
+diff -rup firefox-80.0.1.orig/gfx/skia/skia/src/gpu/ops/GrFillRRectOp.cpp firefox-80.0.1/gfx/skia/skia/src/gpu/ops/GrFillRRectOp.cpp
+--- firefox-80.0.1.orig/gfx/skia/skia/src/gpu/ops/GrFillRRectOp.cpp	2020-08-31 16:04:09.000000000 +0200
++++ firefox-80.0.1/gfx/skia/skia/src/gpu/ops/GrFillRRectOp.cpp	2020-09-05 17:27:40.111031883 +0200
+@@ -823,4 +823,5 @@ static bool can_use_hw_derivatives_with_
+         }
+     }
+     SK_ABORT("Invalid round rect type.");
++    SkUNREACHABLE;
+ }
+diff -rup firefox-80.0.1.orig/gfx/skia/skia/src/gpu/ops/GrOvalOpFactory.cpp firefox-80.0.1/gfx/skia/skia/src/gpu/ops/GrOvalOpFactory.cpp
+--- firefox-80.0.1.orig/gfx/skia/skia/src/gpu/ops/GrOvalOpFactory.cpp	2020-08-31 16:04:09.000000000 +0200
++++ firefox-80.0.1/gfx/skia/skia/src/gpu/ops/GrOvalOpFactory.cpp	2020-09-05 17:28:03.935134598 +0200
+@@ -2283,6 +2283,7 @@ static int rrect_type_to_vert_count(RRec
+             return kVertsPerOverstrokeRRect;
+     }
+     SK_ABORT("Invalid type");
++    SkUNREACHABLE;
+ }
+ 
+ static int rrect_type_to_index_count(RRectType type) {
+@@ -2295,6 +2296,7 @@ static int rrect_type_to_index_count(RRe
+             return kIndicesPerOverstrokeRRect;
+     }
+     SK_ABORT("Invalid type");
++    SkUNREACHABLE;
+ }
+ 
+ static const uint16_t* rrect_type_to_indices(RRectType type) {
+@@ -2306,6 +2308,7 @@ static const uint16_t* rrect_type_to_ind
+             return gOverstrokeRRectIndices;
+     }
+     SK_ABORT("Invalid type");
++    SkUNREACHABLE;
+ }
+ 
+ ///////////////////////////////////////////////////////////////////////////////////////////////////
+diff -rup firefox-80.0.1.orig/gfx/skia/skia/src/gpu/ops/GrShadowRRectOp.cpp firefox-80.0.1/gfx/skia/skia/src/gpu/ops/GrShadowRRectOp.cpp
+--- firefox-80.0.1.orig/gfx/skia/skia/src/gpu/ops/GrShadowRRectOp.cpp	2020-08-31 16:04:09.000000000 +0200
++++ firefox-80.0.1/gfx/skia/skia/src/gpu/ops/GrShadowRRectOp.cpp	2020-09-05 17:27:49.879073997 +0200
+@@ -155,6 +155,7 @@ static int rrect_type_to_vert_count(RRec
+             return kVertsPerOverstrokeRRect;
+     }
+     SK_ABORT("Invalid type");
++    SkUNREACHABLE;
+ }
+ 
+ static int rrect_type_to_index_count(RRectType type) {
+@@ -167,6 +168,7 @@ static int rrect_type_to_index_count(RRe
+             return kIndicesPerOverstrokeRRect;
+     }
+     SK_ABORT("Invalid type");
++    SkUNREACHABLE;
+ }
+ 
+ static const uint16_t* rrect_type_to_indices(RRectType type) {
+@@ -178,6 +180,7 @@ static const uint16_t* rrect_type_to_ind
+             return gRRectIndices;
+     }
+     SK_ABORT("Invalid type");
++    SkUNREACHABLE;
+ }
+ 
+ ///////////////////////////////////////////////////////////////////////////////
+diff -rup firefox-80.0.1.orig/gfx/skia/skia/src/gpu/text/GrTextBlob.h firefox-80.0.1/gfx/skia/skia/src/gpu/text/GrTextBlob.h
+--- firefox-80.0.1.orig/gfx/skia/skia/src/gpu/text/GrTextBlob.h	2020-08-31 16:04:09.000000000 +0200
++++ firefox-80.0.1/gfx/skia/skia/src/gpu/text/GrTextBlob.h	2020-09-05 17:30:30.791767867 +0200
+@@ -125,6 +125,7 @@ public:
+ 
+     void* operator new(size_t) {
+         SK_ABORT("All blobs are created by placement new.");
++	SkUNREACHABLE;
+     }
+ 
+     void* operator new(size_t, void* p) { return p; }
+diff -rup firefox-80.0.1.orig/gfx/skia/skia/src/gpu/text/GrTextBlobVertexRegenerator.cpp firefox-80.0.1/gfx/skia/skia/src/gpu/text/GrTextBlobVertexRegenerator.cpp
+--- firefox-80.0.1.orig/gfx/skia/skia/src/gpu/text/GrTextBlobVertexRegenerator.cpp	2020-08-31 16:04:09.000000000 +0200
++++ firefox-80.0.1/gfx/skia/skia/src/gpu/text/GrTextBlobVertexRegenerator.cpp	2020-09-05 17:30:25.919746855 +0200
+@@ -284,4 +284,5 @@ bool GrTextBlob::VertexRegenerator::rege
+         return true;
+     }
+     SK_ABORT("Should not get here");
++    SkUNREACHABLE;
+ }
+diff -rup firefox-80.0.1.orig/gfx/skia/skia/src/gpu/vk/GrVkCaps.cpp firefox-80.0.1/gfx/skia/skia/src/gpu/vk/GrVkCaps.cpp
+--- firefox-80.0.1.orig/gfx/skia/skia/src/gpu/vk/GrVkCaps.cpp	2020-08-31 16:04:09.000000000 +0200
++++ firefox-80.0.1/gfx/skia/skia/src/gpu/vk/GrVkCaps.cpp	2020-09-05 17:25:38.166506214 +0200
+@@ -108,6 +108,7 @@ static FormatCompatibilityClass format_c
+ 
+         default:
+             SK_ABORT("Unsupported VkFormat");
++	    SkUNREACHABLE;
+     }
+ }
+ 
+@@ -1656,6 +1657,7 @@ GrBackendFormat GrVkCaps::getBackendForm
+             return GrBackendFormat::MakeVk(VK_FORMAT_ETC2_R8G8B8_UNORM_BLOCK);
+     }
+     SK_ABORT("Invalid compression type");
++    SkUNREACHABLE;
+ }
+ 
+ GrSwizzle GrVkCaps::getTextureSwizzle(const GrBackendFormat& format, GrColorType colorType) const {
+diff -rup firefox-80.0.1.orig/gfx/skia/skia/src/gpu/vk/GrVkMemory.cpp firefox-80.0.1/gfx/skia/skia/src/gpu/vk/GrVkMemory.cpp
+--- firefox-80.0.1.orig/gfx/skia/skia/src/gpu/vk/GrVkMemory.cpp	2020-08-31 16:04:09.000000000 +0200
++++ firefox-80.0.1/gfx/skia/skia/src/gpu/vk/GrVkMemory.cpp	2020-09-05 17:25:19.878427391 +0200
+@@ -28,6 +28,7 @@ static BufferUsage get_buffer_usage(GrVk
+             return BufferUsage::kCpuOnly;
+     }
+     SK_ABORT("Invalid GrVkBuffer::Type");
++    SkUNREACHABLE;
+ }
+ 
+ bool GrVkMemory::AllocAndBindBufferMemory(const GrVkGpu* gpu,
+diff -rup firefox-80.0.1.orig/gfx/skia/skia/src/gpu/vk/GrVkPipeline.cpp firefox-80.0.1/gfx/skia/skia/src/gpu/vk/GrVkPipeline.cpp
+--- firefox-80.0.1.orig/gfx/skia/skia/src/gpu/vk/GrVkPipeline.cpp	2020-08-31 16:04:09.000000000 +0200
++++ firefox-80.0.1/gfx/skia/skia/src/gpu/vk/GrVkPipeline.cpp	2020-09-05 17:25:48.238549627 +0200
+@@ -80,6 +80,7 @@ static inline VkFormat attrib_type_to_vk
+             return VK_FORMAT_R16G16B16A16_UNORM;
+     }
+     SK_ABORT("Unknown vertex attrib type");
++    SkUNREACHABLE;
+ }
+ 
+ static void setup_vertex_input_state(const GrPrimitiveProcessor& primProc,
+@@ -162,8 +163,10 @@ static VkPrimitiveTopology gr_primitive_
+             return VK_PRIMITIVE_TOPOLOGY_LINE_STRIP;
+         case GrPrimitiveType::kPath:
+             SK_ABORT("Unsupported primitive type");
++	    SkUNREACHABLE;
+     }
+     SK_ABORT("invalid GrPrimitiveType");
++    SkUNREACHABLE;
+ }
+ 
+ static void setup_input_assembly_state(GrPrimitiveType primitiveType,
+diff -rup firefox-80.0.1.orig/gfx/skia/skia/src/gpu/vk/GrVkSampler.cpp firefox-80.0.1/gfx/skia/skia/src/gpu/vk/GrVkSampler.cpp
+--- firefox-80.0.1.orig/gfx/skia/skia/src/gpu/vk/GrVkSampler.cpp	2020-08-31 16:04:09.000000000 +0200
++++ firefox-80.0.1/gfx/skia/skia/src/gpu/vk/GrVkSampler.cpp	2020-09-05 17:25:24.502447321 +0200
+@@ -23,6 +23,7 @@ static inline VkSamplerAddressMode wrap_
+             return VK_SAMPLER_ADDRESS_MODE_CLAMP_TO_BORDER;
+     }
+     SK_ABORT("Unknown wrap mode.");
++    SkUNREACHABLE;
+ }
+ 
+ GrVkSampler* GrVkSampler::Create(GrVkGpu* gpu, const GrSamplerState& samplerState,
+diff -rup firefox-80.0.1.orig/gfx/skia/skia/src/gpu/vk/GrVkTransferBuffer.h firefox-80.0.1/gfx/skia/skia/src/gpu/vk/GrVkTransferBuffer.h
+--- firefox-80.0.1.orig/gfx/skia/skia/src/gpu/vk/GrVkTransferBuffer.h	2020-08-31 16:04:09.000000000 +0200
++++ firefox-80.0.1/gfx/skia/skia/src/gpu/vk/GrVkTransferBuffer.h	2020-09-05 17:25:55.190579592 +0200
+@@ -34,6 +34,7 @@ private:
+ 
+     bool onUpdateData(const void* src, size_t srcSizeInBytes) override {
+         SK_ABORT("Not implemented for transfer buffers.");
++	SkUNREACHABLE;
+     }
+ 
+     GrVkGpu* getVkGpu() const {
+diff -rup firefox-80.0.1.orig/gfx/skia/skia/src/gpu/vk/GrVkUniformHandler.cpp firefox-80.0.1/gfx/skia/skia/src/gpu/vk/GrVkUniformHandler.cpp
+--- firefox-80.0.1.orig/gfx/skia/skia/src/gpu/vk/GrVkUniformHandler.cpp	2020-08-31 16:04:09.000000000 +0200
++++ firefox-80.0.1/gfx/skia/skia/src/gpu/vk/GrVkUniformHandler.cpp	2020-09-05 17:25:14.854405738 +0200
+@@ -89,6 +89,7 @@ static uint32_t grsltype_to_alignment_ma
+             break;
+     }
+     SK_ABORT("Unexpected type");
++    SkUNREACHABLE;
+ }
+ 
+ /** Returns the size in bytes taken up in vulkanbuffers for GrSLTypes. */
+@@ -172,6 +173,7 @@ static inline uint32_t grsltype_to_vk_si
+             break;
+     }
+     SK_ABORT("Unexpected type");
++    SkUNREACHABLE;
+ }
+ 
+ 
+diff -rup firefox-80.0.1.orig/gfx/skia/skia/src/gpu/vk/GrVkVaryingHandler.cpp firefox-80.0.1/gfx/skia/skia/src/gpu/vk/GrVkVaryingHandler.cpp
+--- firefox-80.0.1.orig/gfx/skia/skia/src/gpu/vk/GrVkVaryingHandler.cpp	2020-08-31 16:04:09.000000000 +0200
++++ firefox-80.0.1/gfx/skia/skia/src/gpu/vk/GrVkVaryingHandler.cpp	2020-09-05 17:25:28.502464561 +0200
+@@ -74,6 +74,7 @@ static inline int grsltype_to_location_s
+              return 1;
+     }
+     SK_ABORT("Unexpected type");
++    SkUNREACHABLE;
+ }
+ 
+ static void finalize_helper(GrVkVaryingHandler::VarArray& vars) {
+diff -rup firefox-80.0.1.orig/gfx/skia/skia/src/pdf/SkPDFTag.cpp firefox-80.0.1/gfx/skia/skia/src/pdf/SkPDFTag.cpp
+--- firefox-80.0.1.orig/gfx/skia/skia/src/pdf/SkPDFTag.cpp	2020-08-31 16:04:09.000000000 +0200
++++ firefox-80.0.1/gfx/skia/skia/src/pdf/SkPDFTag.cpp	2020-09-05 17:35:12.352982524 +0200
+@@ -64,6 +64,7 @@ static const char* tag_name_from_type(Sk
+         #undef M
+     }
+     SK_ABORT("bad tag");
++    SkUNREACHABLE;
+ }
+ 
+ struct SkPDFTagNode {
+diff -rup firefox-80.0.1.orig/gfx/skia/skia/src/ports/SkFontMgr_FontConfigInterface.cpp firefox-80.0.1/gfx/skia/skia/src/ports/SkFontMgr_FontConfigInterface.cpp
+--- firefox-80.0.1.orig/gfx/skia/skia/src/ports/SkFontMgr_FontConfigInterface.cpp	2020-08-31 16:04:09.000000000 +0200
++++ firefox-80.0.1/gfx/skia/skia/src/ports/SkFontMgr_FontConfigInterface.cpp	2020-09-05 17:21:09.173347158 +0200
+@@ -173,18 +173,22 @@ public:
+ protected:
+     int onCountFamilies() const override {
+         SK_ABORT("Not implemented.");
++	SkUNREACHABLE;
+     }
+ 
+     void onGetFamilyName(int index, SkString* familyName) const override {
+         SK_ABORT("Not implemented.");
++	SkUNREACHABLE;
+     }
+ 
+     SkFontStyleSet* onCreateStyleSet(int index) const override {
+         SK_ABORT("Not implemented.");
++	SkUNREACHABLE;
+     }
+ 
+     SkFontStyleSet* onMatchFamily(const char familyName[]) const override {
+         SK_ABORT("Not implemented.");
++	SkUNREACHABLE;
+     }
+ 
+     SkTypeface* onMatchFamilyStyle(const char requestedFamilyName[],
+@@ -215,10 +219,12 @@ protected:
+                                             const char* bcp47[], int bcp47Count,
+                                             SkUnichar character) const override {
+         SK_ABORT("Not implemented.");
++	SkUNREACHABLE;
+     }
+ 
+     SkTypeface* onMatchFaceStyle(const SkTypeface*, const SkFontStyle&) const override {
+         SK_ABORT("Not implemented.");
++	SkUNREACHABLE;
+     }
+ 
+     sk_sp<SkTypeface> onMakeFromData(sk_sp<SkData> data, int ttcIndex) const override {
+diff -rup firefox-80.0.1.orig/gfx/skia/skia/src/shaders/SkImageShader.cpp firefox-80.0.1/gfx/skia/skia/src/shaders/SkImageShader.cpp
+--- firefox-80.0.1.orig/gfx/skia/skia/src/shaders/SkImageShader.cpp	2020-08-31 16:04:09.000000000 +0200
++++ firefox-80.0.1/gfx/skia/skia/src/shaders/SkImageShader.cpp	2020-09-05 17:21:18.005385203 +0200
+@@ -183,6 +183,7 @@ static GrSamplerState::WrapMode tile_mod
+             return GrSamplerState::WrapMode::kClampToBorder;
+     }
+     SK_ABORT("Unknown tile mode.");
++    SkUNREACHABLE;
+ }
+ 
+ std::unique_ptr<GrFragmentProcessor> SkImageShader::asFragmentProcessor(
+diff -rup firefox-80.0.1.orig/gfx/skia/skia/src/utils/SkShadowUtils.cpp firefox-80.0.1/gfx/skia/skia/src/utils/SkShadowUtils.cpp
+--- firefox-80.0.1.orig/gfx/skia/skia/src/utils/SkShadowUtils.cpp	2020-09-05 13:23:03.590763363 +0200
++++ firefox-80.0.1/gfx/skia/skia/src/utils/SkShadowUtils.cpp	2020-09-05 17:32:47.792358805 +0200
+@@ -149,6 +149,7 @@ struct SpotVerticesFactory {
+                 return false;
+         }
+         SK_ABORT("Uninitialized occluder type?");
++	SkUNREACHABLE;
+     }
+ 
+     sk_sp<SkVertices> makeVertices(const SkPath& path, const SkMatrix& ctm,
--- a/series	Tue Aug 25 21:31:17 2020 +0200
+++ b/series	Thu Sep 17 14:32:09 2020 +0200
@@ -26,6 +26,8 @@
 mozilla-s390x-skia-gradient.patch
 mozilla-libavcodec58_91.patch
 mozilla-system-nspr.patch
+mozilla-silence-no-return-type.patch
+mozilla-bmo1661715.patch
 
 # Firefox patches
 firefox-kde.patch