MAINT Add pytest.mark.xfail_browsers and use it to reduce boilerplate. Use a decorator to indicate which browsers we want to xfail test. This works for `run_in_pyodide` as well as normal tests.
threading.Timer is not yet supported in Pyodide.

diff --git a/lib/matplotlib/font_manager.py b/lib/matplotlib/font_manager.py
index 9d45575eb1..e8fb0ca322 100644
--- a/lib/matplotlib/font_manager.py
+++ b/lib/matplotlib/font_manager.py
@@ -1056,10 +1056,8 @@ class FontManager:
         self.afmlist = []
         self.ttflist = []
 
-        # Delay the warning by 5s.
-        timer = Timer(5, lambda: _log.warning(
-            'Matplotlib is building the font cache; this may take a moment.'))
-        timer.start()
+        _log.warning(
+            'Matplotlib is building the font cache; this may take a moment.')
         try:
             for fontext in ["afm", "ttf"]:
                 for path in [*findSystemFonts(paths, fontext=fontext),
@@ -1072,7 +1070,7 @@ class FontManager:
                         _log.info("Failed to extract font properties from %s: "
                                   "%s", path, exc)
         finally:
-            timer.cancel()
+            pass
 
     def addfont(self, path):
         """
-- 
2.35.1


threading.Timer is not yet supported in Pyodide.

diff --git a/lib/matplotlib/font_manager.py b/lib/matplotlib/font_manager.py
index 9d45575eb1..e8fb0ca322 100644
--- a/lib/matplotlib/font_manager.py
+++ b/lib/matplotlib/font_manager.py
@@ -1056,10 +1056,8 @@ class FontManager:
         self.afmlist = []
         self.ttflist = []
 
-        # Delay the warning by 5s.
-        timer = Timer(5, lambda: _log.warning(
-            'Matplotlib is building the font cache; this may take a moment.'))
-        timer.start()
+        _log.warning(
+            'Matplotlib is building the font cache; this may take a moment.')
         try:
             for fontext in ["afm", "ttf"]:
                 for path in [*findSystemFonts(paths, fontext=fontext),
@@ -1072,7 +1070,7 @@ class FontManager:
                         _log.info("Failed to extract font properties from %s: "
                                   "%s", path, exc)
         finally:
-            timer.cancel()
+            pass
 
     def addfont(self, path):
         """
-- 
2.35.1

