Commit Graph
82 Commits
Author SHA1 Message Date
Emilio Cobos Álvarez dfb3d67fae Bug 2007841 - GC the stylesheet cache. r=firefox-style-system-reviewers,dshin
I made it a global thing rather than something more subtle like
nsExpirationTracker, because nsExpirationTracker doesn't deal super-well
with the nested hashtable structure and different kinds of entries, and
this seems like it should be good enough (idle runnable + delay).

Much like the atom table GC:

  https://searchfox.org/firefox-main/source/xpcom/ds/nsAtomTable.cpp#456

Differential Revision: https://phabricator.services.mozilla.com/D302781
2026-05-28 03:21:05 +00:00
Sylvestre Ledru 55481ac4b5 Bug 2023419 - Remove Emacs/Vim modelines from layout/ r=emilio,firefox-style-system-reviewers,layout-reviewers
replaced by .editorconfig

Differential Revision: https://phabricator.services.mozilla.com/D287852
2026-03-17 12:05:43 +00:00
Tooru Fujisawa e67d277ab2 Bug 2014418 - Part 2: Clear SharedScriptCache and SharedStyleSheetCache on memory pressure. r=nbp,emilio,firefox-style-system-reviewers
Differential Revision: https://phabricator.services.mozilla.com/D281957
2026-02-12 04:31:56 +00:00
simon0302010 0136d30919 Bug 1973209 - Remove aEntryLoaderPrincipal argument from ShouldClearEntry r=manuel
Differential Revision: https://phabricator.services.mozilla.com/D281331
2026-01-31 22:53:45 +00:00
serge-sans-paille 7662b3abdc Bug 1994397 - Remove obsolete Unused.h header r=emilio,tschuster,geckoview-reviewers,extension-reviewers,application-update-reviewers,media-playback-reviewers,webrtc-reviewers,cookie-reviewers,places-reviewers,profiler-reviewers,win-reviewers,dom-storage-reviewers,permissions-reviewers,profiles-reviewers,toolkit-telemetry-reviewers,firefox-style-system-reviewers,firefox-svg-reviewers,layout-reviewers,timhuang,gstoll,TravisLong,bytesized,mstange,karlt,robwu,pehrsons,m_kato,jari,jhirsch
It is replaced by a standard-conforming cast to (void) which is
understood the same by the compiler.

In some cases this could be replaced by `[[maybe_unused]]` but for
expression whose value is ignored, this requires storing to a temporary
variable first, so not going that way.

One notable change is that marking an object of type already_AddRefed as
unused used to implicitly leak memory. This is now made explicit.

Most of the heavy lifting was done through:

    $ git grep -l '\<Unused\> <<' | xargs sed -i -e 's/Unused << /(void)/g'
    $ git grep -l mozilla/Unused.h | xargs sed -i -e '/mozilla\/Unused.h/ d'

Differential Revision: https://phabricator.services.mozilla.com/D268706
2025-10-21 19:36:01 +00:00
Cristina Horotan 8a1b1970b7 Revert "Bug 1994397 - Remove obsolete Unused.h header r=emilio,tschuster,geckoview-reviewers,extension-reviewers,application-update-reviewers,media-playback-reviewers,webrtc-reviewers,cookie-reviewers,places-reviewers,profiler-reviewers,win-reviewers,dom-storage-reviewers,permissions-reviewers,profiles-reviewers,toolkit-telemetry-reviewers,firefox-style-system-reviewers,firefox-svg-reviewers,layout-reviewers,timhuang,gstoll,TravisLong,bytesized,mstange,karlt,robwu,pehrsons,m_kato,jari,jhirsch" for causing Gtest failures on AlreadyAddRefed.h
This reverts commit e98adca292.
2025-10-21 16:16:29 +00:00
serge-sans-paille e98adca292 Bug 1994397 - Remove obsolete Unused.h header r=emilio,tschuster,geckoview-reviewers,extension-reviewers,application-update-reviewers,media-playback-reviewers,webrtc-reviewers,cookie-reviewers,places-reviewers,profiler-reviewers,win-reviewers,dom-storage-reviewers,permissions-reviewers,profiles-reviewers,toolkit-telemetry-reviewers,firefox-style-system-reviewers,firefox-svg-reviewers,layout-reviewers,timhuang,gstoll,TravisLong,bytesized,mstange,karlt,robwu,pehrsons,m_kato,jari,jhirsch
It is replaced by a standard-conforming cast to (void) which is
understood the same by the compiler.

In some cases this could be replaced by `[[maybe_unused]]` but for
expression whose value is ignored, this requires storing to a temporary
variable first, so not going that way.

One notable change is that marking an object of type already_AddRefed as
unused used to implicitly leak memory. This is now made explicit.

Most of the heavy lifting was done through:

    $ git grep -l '\<Unused\> <<' | xargs sed -i -e 's/Unused << /(void)/g'
    $ git grep -l mozilla/Unused.h | xargs sed -i -e '/mozilla\/Unused.h/ d'

Differential Revision: https://phabricator.services.mozilla.com/D268706
2025-10-21 15:05:17 +00:00
Cristina Horotan aab924e90d Revert "Bug 1994397 - Remove obsolete Unused.h header r=emilio,tschuster,geckoview-reviewers,extension-reviewers,application-update-reviewers,media-playback-reviewers,webrtc-reviewers,cookie-reviewers,places-reviewers,profiler-reviewers,win-reviewers,dom-storage-reviewers,permissions-reviewers,profiles-reviewers,toolkit-telemetry-reviewers,firefox-style-system-reviewers,firefox-svg-reviewers,layout-reviewers,timhuang,gstoll,TravisLong,bytesized,mstange,karlt,robwu,pehrsons,m_kato,jari,jhirsch" for causing build bustage at nsBrowserApp.cpp
This reverts commit fd0ffa193c.
2025-10-21 10:44:13 +00:00
serge-sans-paille fd0ffa193c Bug 1994397 - Remove obsolete Unused.h header r=emilio,tschuster,geckoview-reviewers,extension-reviewers,application-update-reviewers,media-playback-reviewers,webrtc-reviewers,cookie-reviewers,places-reviewers,profiler-reviewers,win-reviewers,dom-storage-reviewers,permissions-reviewers,profiles-reviewers,toolkit-telemetry-reviewers,firefox-style-system-reviewers,firefox-svg-reviewers,layout-reviewers,timhuang,gstoll,TravisLong,bytesized,mstange,karlt,robwu,pehrsons,m_kato,jari,jhirsch
It is replaced by a standard-conforming cast to (void) which is
understood the same by the compiler.

In some cases this could be replaced by `[[maybe_unused]]` but for
expression whose value is ignored, this requires storing to a temporary
variable first, so not going that way.

One notable change is that marking an object of type already_AddRefed as
unused used to implicitly leak memory. This is now made explicit.

Most of the heavy lifting was done through:

    $ git grep -l '\<Unused\> <<' | xargs sed -i -e 's/Unused << /(void)/g'
    $ git grep -l mozilla/Unused.h | xargs sed -i -e '/mozilla\/Unused.h/ d'

Differential Revision: https://phabricator.services.mozilla.com/D268706
2025-10-21 09:44:11 +00:00
Narcis Beleuzu e1e6bbb1c9 Revert "Bug 1994397 - Remove obsolete Unused.h header r=emilio,tschuster,geckoview-reviewers,extension-reviewers,application-update-reviewers,media-playback-reviewers,webrtc-reviewers,cookie-reviewers,places-reviewers,profiler-reviewers,win-reviewers,dom-storage-reviewers,permissions-reviewers,profiles-reviewers,toolkit-telemetry-reviewers,firefox-style-system-reviewers,firefox-svg-reviewers,layout-reviewers,timhuang,gstoll,TravisLong,bytesized,mstange,karlt,robwu,pehrsons,m_kato,jari,jhirsch" for causing bustages on Document.cpp
This reverts commit b23c15e927.
2025-10-21 06:34:58 +00:00
serge-sans-paille b23c15e927 Bug 1994397 - Remove obsolete Unused.h header r=emilio,tschuster,geckoview-reviewers,extension-reviewers,application-update-reviewers,media-playback-reviewers,webrtc-reviewers,cookie-reviewers,places-reviewers,profiler-reviewers,win-reviewers,dom-storage-reviewers,permissions-reviewers,profiles-reviewers,toolkit-telemetry-reviewers,firefox-style-system-reviewers,firefox-svg-reviewers,layout-reviewers,timhuang,gstoll,TravisLong,bytesized,mstange,karlt,robwu,pehrsons,m_kato,jari,jhirsch
It is replaced by a standard-conforming cast to (void) which is
understood the same by the compiler.

In some cases this could be replaced by `[[maybe_unused]]` but for
expression whose value is ignored, this requires storing to a temporary
variable first, so not going that way.

One notable change is that marking an object of type already_AddRefed as
unused used to implicitly leak memory. This is now made explicit.

Most of the heavy lifting was done through:

    $ git grep -l '\<Unused\> <<' | xargs sed -i -e 's/Unused << /(void)/g'
    $ git grep -l mozilla/Unused.h | xargs sed -i -e '/mozilla\/Unused.h/ d'

Differential Revision: https://phabricator.services.mozilla.com/D268706
2025-10-21 06:01:36 +00:00
Emilio Cobos Álvarez 1440de652f Bug 1988195 - Clear style cache on layout.css.* pref changes. r=dholbert
Differential Revision: https://phabricator.services.mozilla.com/D264671
2025-09-12 07:48:27 +00:00
Emilio Cobos Álvarez fd86eb6aa2 Bug 1982344 - Account for all non-local URIs for caching inline sheets across image and non-image documents. r=firefox-style-system-reviewers,dshin
Differential Revision: https://phabricator.services.mozilla.com/D261356
2025-08-19 01:02:11 +00:00
Emilio Cobos Álvarez a8a2311474 Bug 1976457 - Sort includes in layout/. r=janv,dshin
Interesting bit is layout/.clang-format, the rest is all automated.

Differential Revision: https://phabricator.services.mozilla.com/D256616
2025-07-09 13:24:00 +00:00
Emilio Cobos Álvarez bcb83f59f5 Bug 1956486 - Teach SharedStyleSheetCache to share inline styles. r=jwatt
Differential Revision: https://phabricator.services.mozilla.com/D243120
2025-04-28 15:28:37 +00:00
Tooru Fujisawa 8fa3cc1097 Bug 1947158 - Add url option to ChromeUtils.clearResourceCache. r=emilio
Differential Revision: https://phabricator.services.mozilla.com/D238357
2025-03-18 09:57:57 +00:00
Tooru Fujisawa a3f1629b8f Bug 1948808 - Part 2: Add chrome optional parameter to control the target of clear in-memory cache. r=emilio
Differential Revision: https://phabricator.services.mozilla.com/D238581
2025-02-20 10:16:46 +00:00
Sandor Molnar 61d8ddba5a Backed out 5 changesets (bug 1948814, bug 1948808) for causing build bustages @ gfxWindowsPlatform.cpp & imgLoader.cpp CLOSED TREE
Backed out changeset 9dad8866deac (bug 1948808)
Backed out changeset 7d15850e1871 (bug 1948808)
Backed out changeset 94a8ed4703ac (bug 1948808)
Backed out changeset 1249b7246565 (bug 1948814)
Backed out changeset 67a316ead440 (bug 1948814)
2025-02-20 10:19:27 +02:00
Tooru Fujisawa 6cb4f15fea Bug 1948808 - Part 2: Add chrome optional parameter to control the target of clear in-memory cache. r=emilio
Differential Revision: https://phabricator.services.mozilla.com/D238581
2025-02-20 07:04:55 +00:00
Tooru Fujisawa 3db5a5e79f Bug 1899734 - Part 7: Carry SubResourceNetworkMetadataHolder with SheetLoadData for complete and incomplete load, and propagate through dependencies. r=emilio
Differential Revision: https://phabricator.services.mozilla.com/D223353
2024-10-01 12:17:23 +00:00
Paul Zuehlcke 6b444aace4 Bug 1915419 - CSSCacheCleaner, JSCacheCleaner support for OriginAttributesPattern. r=emilio,anti-tracking-reviewers,timhuang
Differential Revision: https://phabricator.services.mozilla.com/D220713
2024-09-24 09:17:59 +00:00
Butkovits Atila d779b4bd81 Backed out 12 changesets (bug 1915419) for causing failures at test_bouncetracking_purge.js. CLOSED TREE
Backed out changeset e5c32a502e0f (bug 1915419)
Backed out changeset 8cbcbb25fc99 (bug 1915419)
Backed out changeset 947379a2f167 (bug 1915419)
Backed out changeset 4cfe3a954ade (bug 1915419)
Backed out changeset 94fba1a2786b (bug 1915419)
Backed out changeset 477b4f7c2760 (bug 1915419)
Backed out changeset ed6c8d9d39d4 (bug 1915419)
Backed out changeset e534c390101c (bug 1915419)
Backed out changeset bc3fe74a8b03 (bug 1915419)
Backed out changeset afefdce605f9 (bug 1915419)
Backed out changeset e58887b90d39 (bug 1915419)
Backed out changeset 114298b7b855 (bug 1915419)
2024-09-18 17:49:45 +03:00
Paul Zuehlcke 8e4cb9c9fe Bug 1915419 - CSSCacheCleaner, JSCacheCleaner support for OriginAttributesPattern. r=emilio,anti-tracking-reviewers,timhuang
Differential Revision: https://phabricator.services.mozilla.com/D220713
2024-09-18 12:50:45 +00:00
Norisz Fay d2360aaab4 Backed out 12 changesets (bug 1915419) for causing clearDataFromBaseDomain related gv-junit failures CLOSED TREE
Backed out changeset 6baf34e653ef (bug 1915419)
Backed out changeset 3015863afd5d (bug 1915419)
Backed out changeset 90558f317a75 (bug 1915419)
Backed out changeset 5f07cb9268dd (bug 1915419)
Backed out changeset aedba16d4af7 (bug 1915419)
Backed out changeset d9a2d5c2ba53 (bug 1915419)
Backed out changeset 4a250c451004 (bug 1915419)
Backed out changeset c6da2e632da6 (bug 1915419)
Backed out changeset 9256540ed21a (bug 1915419)
Backed out changeset 7621d766d6a4 (bug 1915419)
Backed out changeset 16d6589ba330 (bug 1915419)
Backed out changeset b3eebd764439 (bug 1915419)
2024-09-16 18:29:55 +03:00
Paul Zuehlcke 2ac59307af Bug 1915419 - CSSCacheCleaner, JSCacheCleaner support for OriginAttributesPattern. r=emilio,anti-tracking-reviewers,timhuang
Differential Revision: https://phabricator.services.mozilla.com/D220713
2024-09-16 13:25:32 +00:00
Tooru Fujisawa cc80cf2368 Bug 1907014 - Make SharedSubResourceCache subclass instance a per-process singleton. r=emilio
Differential Revision: https://phabricator.services.mozilla.com/D217709
2024-07-25 14:02:25 +00:00
Emilio Cobos Álvarez 488a396e1b Bug 1855861 - Make stylesheet load events only fire if the sheet has an owner node. r=smaug
This matches the behavior of other browsers, and avoids having to keep
alive the link element and thus associated document etc for too long.

Differential Revision: https://phabricator.services.mozilla.com/D192834
2023-11-06 17:05:10 +00:00
Emilio Cobos Álvarez a4d1d401d3 Bug 1839580 - For async-parsed stylesheets, fire the load event sooner. r=smaug
This avoids one extra task hop when we finish parsing the stylesheet.

Differential Revision: https://phabricator.services.mozilla.com/D181613
2023-06-21 20:36:58 +00:00
Norisz Fay 0d2751bb99 Backed out changeset dfcc0494fe8d (bug 1839580) for causing wpt and mochitest failures CLOSED TREE 2023-06-21 21:23:18 +03:00
Emilio Cobos Álvarez 773b5291c4 Bug 1839580 - For async-parsed stylesheets, fire the load event sooner. r=smaug
This avoids one extra task hop when we finish parsing the stylesheet.

Differential Revision: https://phabricator.services.mozilla.com/D181613
2023-06-21 16:01:43 +00:00
Emilio Cobos Álvarez 90c0207ad5 Bug 1838045 - Fix load event on cached inline style sheets. r=mstange
Turns out we do fire load events on these (I thought they were only for
sheets with imports).

Simplify a bit some related code for links. Callers / observers need to
deal with SheetComplete being called sync anyways because of this:

  https://searchfox.org/mozilla-central/rev/962a843f6d96283c45162c788dc72bf217fca7df/layout/style/Loader.cpp#1873

So this removes the need for SheetLoadData to be a runnable etc.

Differential Revision: https://phabricator.services.mozilla.com/D180840
2023-06-14 21:42:31 +00:00
Kershaw Chang 39a82566cb Bug 1807879 - Remove MOZ_DIAGNOSTIC_ASSERT_ENABLED for mSheetCompleteCalled and mIntentionallyDropped, r=emilio DONTBUILD
Differential Revision: https://phabricator.services.mozilla.com/D165658
2022-12-29 10:44:54 +00:00
Nicolas B. Pierron fbc47d281d Bug 1797312 - SharedSubResourceCacheLoadingValueBase use on accessors. r=emilio
`SharedSubResourceCacheLoadingValueBase` define the `mIsCancelled` field which
is overloaded by `SheetLoadData`. This patch moves all fields including
`mIsLoading` to `SheetLoadData` and add accessors to access these fields.

Differential Revision: https://phabricator.services.mozilla.com/D160226
2022-10-26 16:36:03 +00:00
Emilio Cobos Álvarez ec998346f7 Bug 1780650 - Fix assert in SharedStyleSheetCache. r=boris
The document might be gone already if unlinking / cc has happened.

Differential Revision: https://phabricator.services.mozilla.com/D154918
2022-08-17 18:40:08 +00:00
Emilio Cobos Álvarez d9d1bb5bf0 Bug 1729488 - Refactor shared sheet cache into something more reusable. r=jwatt
This moves the style-specific bits of the shared style sheet cache into
a super-class, and leaves the generic "sub-resource management" bits
inside a base class. In order to implement it you need to provide some
types, mainly:

  * Loader, which implements LoaderPrincipal() and allows you to key per
    principal. The idea is that this would be the
    {CSS,Script,Image}Loader object.

  * Key (self explanatory). We might want to introduce a common key to
    share the cache partitioning logic.

  * Value, which represents the final cached value. This is expected to
    be a StyleSheet / Stencil / imgRequestProxy.

  * LoadingValue, which must inherit from
    SharedSubResourceCacheLoadingValueBase (which contains the linked
    list and the state that the cache manages). It also must provide a
    ValueForCache() and ExpirationTime() members. For style, this is the
    SheetLoadData. For script this will probably be the
    ScriptLoadRequest. For images it might be enough with the
    imgRequestProxy, but we might need something else, haven't looked
    into it too deeply yet.

We move the use counters into the stylesheet since that's both more
similar to how we treat StyleSheetContents and easier (that way we don't
need to add some sort of "extra data" thing to the cache).

Differential Revision: https://phabricator.services.mozilla.com/D124820
2021-10-05 15:15:22 +00:00
Emilio Cobos Álvarez a3cb442543 Bug 1730669 - Simplify requesting node set up in the CSS loader. r=smaug
Differential Revision: https://phabricator.services.mozilla.com/D125527
2021-09-15 16:43:30 +00:00
criss 13e5622eea Backed out changeset 80a164c1054e (bug 1730669) for causing bustages on css::SheetLoadData 2021-09-15 15:07:06 +03:00
Emilio Cobos Álvarez 9f1546518d Bug 1730669 - Simplify requesting node set up in the CSS loader. r=smaug
Differential Revision: https://phabricator.services.mozilla.com/D125527
2021-09-15 11:02:57 +00:00
Emilio Cobos Álvarez 5a847bf6b4 Bug 1729477 - Remove nsXULPrototypeCache::mStyleSheetTable. r=smaug
With a very simple tweak to SheetLoadDataHashKey::KeyEquals we should
get the same kind of caching but in a much simpler way.

Depends on D125450

Differential Revision: https://phabricator.services.mozilla.com/D124807
2021-09-14 10:43:49 +00:00
Emilio Cobos Álvarez e6d3d86591 Bug 1729477 - Prevent SheetLoadData from creating cycles for too long. r=smaug
This fixes a leak that my previous patch uncovers. See comment 9 for the
diagnostic, I had missed mRequestingNode in comment 10.

The observer change is not technically necessary but since observers can
theoretically keep alive random stuff as well, clean them up as well.

In particular, clear mOwningNode after we've fired load / error events
(which is what we need it for), and mRequestingNode once we call
LoadComplete, where it is no longer useful.

Differential Revision: https://phabricator.services.mozilla.com/D125450
2021-09-14 10:43:48 +00:00
Sandor Molnar d67f868876 Backed out 3 changesets (bug 1729477) for causing devtools failures in browser_webconsole_sidebar_object_expand_when_message_pruned. CLOSED TREE
Backed out changeset 8cbf3101ed8a (bug 1729477)
Backed out changeset 7457834fb7d0 (bug 1729477)
Backed out changeset 1259d2d1f247 (bug 1729477)
2021-09-09 03:55:31 +03:00
Emilio Cobos Álvarez 529ec8ff8c Bug 1729477 - Remove nsXULPrototypeCache::mStyleSheetTable. r=smaug
With a very simple tweak to SheetLoadDataHashKey::KeyEquals we should
get the same kind of caching but in a much simpler way.

Differential Revision: https://phabricator.services.mozilla.com/D124807
2021-09-08 21:03:02 +00:00
Emilio Cobos Álvarez 64c5bc4ff9 Bug 1711437 - Don't EnsureUniqueInner from the cssRules getter. r=layout-reviewers,jfkthame
Instead, fix up the various content data structures when the stylesheet
is mutated. This makes reading a stylesheet not disable style sharing.

Differential Revision: https://phabricator.services.mozilla.com/D115203
2021-07-20 13:17:02 +00:00
Dorel Luca 50c9bd5973 Backed out changeset 0e17878eeb86 (bug 1711437) for causing Bug 1719963. a=backout DONTBUILD 2021-07-14 00:36:05 +03:00
Emilio Cobos Álvarez 0aa7c71572 Bug 1711437 - Don't EnsureUniqueInner from the cssRules getter. r=layout-reviewers,jfkthame
Instead, fix up the various content data structures when the stylesheet
is mutated. This makes reading a stylesheet not disable style sharing.

Differential Revision: https://phabricator.services.mozilla.com/D115203
2021-07-12 16:02:58 +00:00
Alexandru Michis 38af0168b1 Backed out changeset 998af7ced46f (bug 1711437) for causing Bug 1719963. a=backout 2021-07-10 12:44:08 +03:00
Emilio Cobos Álvarez 757fc5dc7e Bug 1711437 - Don't EnsureUniqueInner from the cssRules getter. r=layout-reviewers,jfkthame
Instead, fix up the various content data structures when the stylesheet
is mutated. This makes reading a stylesheet not disable style sharing.

Differential Revision: https://phabricator.services.mozilla.com/D115203
2021-07-09 16:25:54 +00:00
Paul Zuehlcke 10432fde89 Bug 1714608 - Cleaned up partitionKey base domain helpers. r=timhuang
Differential Revision: https://phabricator.services.mozilla.com/D118724
2021-07-07 16:05:06 +00:00
Paul Zuehlcke dcfc07202c Bug 1705032 - Added CSSCacheCleaner deleteByBaseDomain. r=emilio,timhuang
Differential Revision: https://phabricator.services.mozilla.com/D114518
2021-05-27 12:37:03 +00:00
Simon Giesecke 9e995a79e8 Bug 1184468 - Use nsBaseHashtable::Values. r=xpcom-reviewers,nika
Differential Revision: https://phabricator.services.mozilla.com/D108587
2021-03-24 17:56:49 +00:00