Bug 1967507 - Make CSS loader not count privileged sheets for testing.
authorEmilio Cobos Álvarez <emilio@crisal.io>
Thu, 22 May 2025 18:24:32 +0200 (7 weeks ago)
changeset 788539 a6a294ae1d18eed38ee2ddce88c2947cd92a178b
parent 788538 d47bfd306f0dc5558bab21b7ec0fc7e994f695d2
child 788540 e64c2ede12ae54dd3b85b29eaec7d91ec6f82db0
push id42814
push userctuns@mozilla.com
push dateThu, 22 May 2025 21:39:39 +0000 (7 weeks ago)
treeherdermozilla-central@68577999ef6b [default view] [failures only]
perfherder[talos] [build metrics] [platform microbench] (compared to previous push)
git commit3556d63bd9c8dd38b20057573b804064e8c40a77
bugs1967507
milestone140.0a1
first release with
nightly linux32
nightly linux64
nightly mac
nightly win32
nightly win64
last release without
nightly linux32
nightly linux64
nightly mac
nightly win32
nightly win64
Bug 1967507 - Make CSS loader not count privileged sheets for testing. This prevents browser_css_cache from spuriously failing on ASAN builds after the last patch, since now creating the accessiblecaret doesn't force a flush (and thus might not force accessiblecaret.css to be parsed).
layout/style/Loader.cpp
toolkit/components/cleardata/tests/browser/browser_css_cache.js
--- a/layout/style/Loader.cpp
+++ b/layout/style/Loader.cpp
@@ -1505,17 +1505,20 @@ Loader::Completed Loader::ParseSheet(
   SheetLoadData* loadData = aLoadData->get();
   MOZ_ASSERT(loadData);
 
   if (loadData->mURI) {
     LOG_URI("  Load succeeded for URI: '%s', parsing", loadData->mURI);
   }
   AUTO_PROFILER_LABEL_CATEGORY_PAIR_RELEVANT_FOR_JS(LAYOUT_CSSParsing);
 
-  ++mParsedSheetCount;
+  // TODO(emilio): fix browser_css_cache.js to deal with accessiblecaret.css.
+  if (!loadData->mURI || !IsPrivilegedURI(loadData->mURI)) {
+    ++mParsedSheetCount;
+  }
 
   loadData->mIsBeingParsed = true;
 
   StyleSheet* sheet = loadData->mSheet;
   MOZ_ASSERT(sheet);
 
   // Some cases, like inline style and UA stylesheets, need to be parsed
   // synchronously. The former may trigger child loads, the latter must not.
--- a/toolkit/components/cleardata/tests/browser/browser_css_cache.js
+++ b/toolkit/components/cleardata/tests/browser/browser_css_cache.js
@@ -62,16 +62,17 @@ async function testCached(origin, isCach
     tab.linkedBrowser.reload();
   }
   await loadedPromise;
 
   numParsed = await SpecialPowers.spawn(tab.linkedBrowser, [], () => {
     return SpecialPowers.getDOMWindowUtils(content).parsedStyleSheets;
   });
 
+  ok(numParsed == 0 || numParsed == 1, `Where did that stylesheet come from expected 0 or 1, got ${numParsed}`);
   // Stylesheets is cached if numParsed is 0.
   is(!numParsed, isCached, `${origin} is${isCached ? " " : " not "}cached`);
 }
 
 async function addTestTabs() {
   await testCached(ORIGIN_A, false);
   await testCached(ORIGIN_A_SUB, false);
   await testCached(ORIGIN_A_HTTP, false);