Commit Graph
146 Commits
Author SHA1 Message Date
Sylvestre Ledru 9eb1a31a98 Bug 2023419 - Remove Emacs/Vim modelines from dom/ r=emilio,media-playback-reviewers,webidl,padenot
replaced by .editorconfig
# ignore-this-changeset

Differential Revision: https://phabricator.services.mozilla.com/D287843
2026-03-16 21:02:32 +00:00
Emilio Cobos Álvarez 791917d8af Bug 1976665 - Sort headers in dom/. r=dom-core,media-playback-reviewers,webrtc-reviewers,dom-storage-reviewers,padenot,janv,smaug,jesup,jib
Most changes are automated. Relevant bit is dom/.clang-format. I had to
manually disable clang-format in a few places where importing external
files and so on that aren't self-contained, and fix a couple includes /
forward declarations.

Differential Revision: https://phabricator.services.mozilla.com/D256800
2025-08-05 11:47:34 +00:00
Jan Varga d5cca7bb2d Bug 1957367 - QM: Convert OpenClientDirectory and its callers to use ClientDirectoryLockHandle; r=dom-storage-reviewers,jstutte
Converts OpenClientDirectory to return ClientDirectoryLockHandle instead of
RefPtr<ClientDirectoryLock>, and updates all its callers accordingly.

ClientDirectoryLockHandle is a move-only RAII wrapper that ensures the lock
is automatically dropped when the handle goes out of scope. This simplifies
ownership semantics and aligns with diagnostic assertions that verify proper
lock dropping.

This patch finalizes the transition for quota clients to use
ClientDirectoryLockHandle instead of client directory locks directly.

Differential Revision: https://phabricator.services.mozilla.com/D243665
2025-04-15 12:25:49 +00:00
Jan Varga 48a999da72 Bug 1904562 - Change DirectoryLockImpl to be topmost class; r=dom-storage-reviewers,asuth
Differential Revision: https://phabricator.services.mozilla.com/D214857
2024-10-21 09:31:27 +00:00
Jan Varga 739a9047a6 Bug 1904562 - Convert CacheAPI to use concrete directory lock type; r=dom-storage-reviewers,asuth
Differential Revision: https://phabricator.services.mozilla.com/D214854
2024-10-21 09:31:25 +00:00
Jan Varga e3dea7bd08 Bug 1904562 - Move ClientDirectoryLock to separate files and make it inherit from DirectoryLockImpl; r=dom-storage-reviewers,aiunusov
Differential Revision: https://phabricator.services.mozilla.com/D214849
2024-10-21 09:31:23 +00:00
Jan Varga 8cdc63b5d9 Bug 1867997 - Move nsIPrincipal/PrincipalInfo helpers to separate files; r=dom-storage-reviewers,jari
Differential Revision: https://phabricator.services.mozilla.com/D223992
2024-10-18 01:32:36 +00:00
Jan Varga dbc9573884 Bug 1867997 - Change QuotaManager::GetInfoFromValidatedPrincipalInfo to be a stacic method; r=dom-storage-reviewers,jari
This is a preparation for moving all nsIPrincipal and PrincipalInfo helpers to separate source files.

Differential Revision: https://phabricator.services.mozilla.com/D223950
2024-10-18 01:32:35 +00:00
Jan Varga beb966a005 Bug 1866402 - Replace most of QuotaManager::EnsurePersistentOriginIsInitializedInternal and QuotaManager::EnsureTemporaryOriginIsInitializedInternal calls; r=dom-storage-reviewers,jari
QuotaManager::OpenClientDirectory already makes sure that corresponding origin
is initialized so all places where a client directory lock is obtained in such
way can start using QuotaManager::GetOriginDirectory instead of
QuotaManager::EnsurePersistentOriginIsInitializedInternal and
QuotaManager::GetOrCreateTemporaryOriginDirectory instead of
QuotaManager::EnsureTemporaryOriginIsInitializedInternal.

Differential Revision: https://phabricator.services.mozilla.com/D195589
2024-10-13 23:05:25 +00:00
Jan Varga 7783acd7c8 Bug 1866402 - Make it possible to initialize temporary origins without ensuring origin directories; r=dom-storage-reviewers,jari
LSNG already uses some QuotaManager APIs to achieve that origin directories are
not created if they don't exist during datastore preparation, but the feature
is not easy to use and it's also not generalized enough for use in other quota
clients. Besides that, the way how it's currently done in LSNG complicates
removal of QuotaManager::EnsureTemporaryOriginIsInitializedInternal calls from
LSNG. This patch is about generalizing of the feature, making it available to
all quota clients.

Differential Revision: https://phabricator.services.mozilla.com/D195551
2024-10-12 20:58:36 +00:00
Sebastian Hengst 1a2fdf5653 Backed out 7 changesets (bug 1866402) for causing crashes (bug 1762908). a=backout
Backed out changeset 6180f2e753bd (bug 1866402)
Backed out changeset f25dfc157ef7 (bug 1866402)
Backed out changeset d63dac1ee4d4 (bug 1866402)
Backed out changeset 2ab08c49f2b1 (bug 1866402)
Backed out changeset 48781c71d287 (bug 1866402)
Backed out changeset a649d075c9b3 (bug 1866402)
Backed out changeset cc03e4975743 (bug 1866402)
2024-10-11 12:47:35 +02:00
Jan Varga a426b86e42 Bug 1866402 - Make it possible to initialize temporary origins without ensuring origin directories; r=dom-storage-reviewers,jari
LSNG already uses some QuotaManager APIs to achieve that origin directories are
not created if they don't exist during datastore preparation, but the feature
is not easy to use and it's also not generalized enough for use in other quota
clients. Besides that, the way how it's currently done in LSNG complicates
removal of QuotaManager::EnsureTemporaryOriginIsInitializedInternal calls from
LSNG. This patch is about generalizing of the feature, making it available to
all quota clients.

Differential Revision: https://phabricator.services.mozilla.com/D195551
2024-10-10 12:22:55 +00:00
Jan Varga fc0786849f Bug 1913561 - Remove QuotaManager::EnsureTemporaryStorageIsInitializedInternal calls from places where a directory lock is obtained via QuotaManager::OpenClientDirectory; r=dom-storage-reviewers,jari
QuotaManager::OpenClientDirectory already makes sure that temporary storage
is initialized so all these calls are now redundant.

Differential Revision: https://phabricator.services.mozilla.com/D195391
2024-10-06 02:01:00 +00:00
Jan Varga 961fede4de Bug 1919507 - Cache: Add an extra check for invalidated directory locks to Context::OnQuotaInit; r=dom-storage-reviewers,asuth
Cache implementation already handles directory locks invalidated during
database initialization by canceling corresponding QuotaInitRunnable, this
patch adds an extra check for that to Context::OnQuotaInit.

Differential Revision: https://phabricator.services.mozilla.com/D220451
2024-10-02 10:34:28 +00:00
Jan Varga 23db1bccc7 Bug 1919507 - Cache: Complete pending actions in Context::OnQuotaInit with correct error code when the context was canceled; r=dom-storage-reviewers,asuth
Differential Revision: https://phabricator.services.mozilla.com/D220405
2024-10-02 10:34:27 +00:00
Jan Varga 34dd53e84c Bug 1919507 - Cache: Allow completion of pending actions in Context::OnQuotaInit when the context was canceled; r=dom-storage-reviewers,asuth
Cache implementation already handles directory locks invalidated during
database initialization, but test_slowDatabaseInitialization.js still hangs.
The issue is that Context::CancelAll currently just clears all pending actions
if the state is STATE_CONTEXT_INIT (the promise for caches.open is never
resolved or rejected). Instead of just clearing pending actions, the pending
actions need to be completed first when QuotaInitRunnable is done and only then
cleared.

Differential Revision: https://phabricator.services.mozilla.com/D220263
2024-10-02 10:34:27 +00:00
Jan Varga ff90933b7a Bug 1919507 - Cache: Add support for pausing QM IO thread after finishing database initialization; r=dom-storage-reviewers,asuth
Differential Revision: https://phabricator.services.mozilla.com/D220261
2024-10-02 10:34:26 +00:00
Jan Varga ad672752b7 Bug 1919507 - Cache: Add a new testing only notification for database work starting; r=dom-storage-reviewers,asuth
Differential Revision: https://phabricator.services.mozilla.com/D220260
2024-10-02 10:34:26 +00:00
Jan Varga b90cee3d1f Bug 1917466 - Cache: Add handling for invalidated directory locks; r=dom-storage-reviewers,asuth
Differential Revision: https://phabricator.services.mozilla.com/D219737
2024-09-17 11:11:34 +00:00
Jan Varga 0d373bc154 Bug 1906041 - Rename Ensure(Persistent|Temporary)OriginIsInitialized to Ensure(Persistent|Temporary)OriginIsInitializedInternal; r=dom-storage-reviewers,jari
One of the goals of the asynchronous temporary storage initialization is to
call Ensure(Persistent|Temporary)OriginIsInitialized only from
Initialize(Persistent|Temporary)OriginOp. Calling from other places including
quota clients will be disallowed by changing the method to a private method.
The private nature of the method should be emphasized by adding the Internal
suffix.

Differential Revision: https://phabricator.services.mozilla.com/D192150
2024-07-16 10:43:40 +00:00
Jan Varga 0de36a844f Bug 1906041 - Simplify signature of QuotaManager::EnsureTemporaryOriginIsInitialized; r=dom-storage-reviewers,jari
EnsureTemporaryOriginIsInitialized currently takes two separate arguments which
can be expressed as just one argument.

Differential Revision: https://phabricator.services.mozilla.com/D192149
2024-07-16 10:43:39 +00:00
Jan Varga e87e849e0f Bug 1883353 - Require to always drop directory locks explicitly; r=dom-storage-reviewers,jari
Until now, directory locks were dropped when the last strong reference was
removed or after calling Drop explicitly. The dependency on ref-counting makes
it less obvious when directory locks are dropped for real and it's also
difficult to release them asynchronously eventually. This patch removes the
directory lock unregistration from the destructor, so from now on, directory
locks must be always dropped explicitly.

Differential Revision: https://phabricator.services.mozilla.com/D197294
2024-06-14 07:21:24 +00:00
hsingh c294efd51a Bug 1871409: Moved back mInitRunnable clearing in Context::OnQuotaInit to its prior position.r=janv
Differential Revision: https://phabricator.services.mozilla.com/D197155
2023-12-22 16:18:13 +00:00
hsingh 33a724513a Bug 1869087: Properly handle QuotaInitRunnable failure in Context::OnQuotaInit.r=dom-storage-reviewers,janv
QuotaInitRunnable is invoked by Context to set up cache directory. This is not always successful as it could be
interrupted by shutdown or other filesystem issues. By the time in ran into error, it's possible that some objects
needed by Context are not yet initialized in QuotaInitRunnable::Run. Since QuotaInitRunnable internal state machine
will always transition to 'COMPLETING' and Context::OnQuotaInit would always be called; it's possible that some objects
like mDirectoryLock, mCipherKeyManager and mDirectoryMetadata didn't get initialized yet. As an effect, we should
only assert these objects being non-null in Context::OnQuotaInit if the QuotaInitRunnable was successful.

Differential Revision: https://phabricator.services.mozilla.com/D196113
2023-12-14 16:31:23 +00:00
Norisz Fay a2413a9e0c Backed out changeset 04b0ed50a187 (bug 1869087) for causing multiple Quota related failures 2023-12-14 01:00:28 +02:00
hsingh ec4cbf2fc7 Bug 1869087: Properly handle QuotaInitRunnable failure in Context::OnQuotaInit.r=dom-storage-reviewers,janv
QuotaInitRunnable is invoked by Context to set up cache directory. This is not always successful as it could be
interrupted by shutdown or other filesystem issues. By the time in ran into error, it's possible that some objects
needed by Context are not yet initialized in QuotaInitRunnable::Run. Since QuotaInitRunnable internal state machine
will always transition to 'COMPLETING' and Context::OnQuotaInit would always be called; it's possible that some objects
like mDirectoryLock, mCipherKeyManager and mDirectoryMetadata didn't get initialized yet. As an effect, we should
only assert these objects being non-null in Context::OnQuotaInit if the QuotaInitRunnable was successful.

Differential Revision: https://phabricator.services.mozilla.com/D196113
2023-12-13 18:24:33 +00:00
Noemi Erli c670ce0ba6 Backed out changeset f47f48be162a (bug 1869087) for causing crashes in StorageControllerTest CLOSED TREE 2023-12-13 05:46:07 +02:00
hsingh 08b837e173 Bug 1869087: Properly handle QuotaInitRunnable failure in Context::OnQuotaInit.r=dom-storage-reviewers,janv
QuotaInitRunnable is invoked by Context to set up cache directory. This is not always successful as it could be
interrupted by shutdown or other filesystem issues. By the time in ran into error, it's possible that some objects
needed by Context are not yet initialized in QuotaInitRunnable::Run. Since QuotaInitRunnable internal state machine
will always transition to 'COMPLETING' and Context::OnQuotaInit would always be called; it's possible that some objects
like mDirectoryLock, mCipherKeyManager and mDirectoryMetadata didn't get initialized yet. As an effect, we should
only assert these objects being non-null in Context::OnQuotaInit if the QuotaInitRunnable was successful.

Differential Revision: https://phabricator.services.mozilla.com/D196113
2023-12-13 00:57:19 +00:00
Jens Stutte 09e51b5d0e Bug 1727526 - Add more details to Context::Stringify. r=dom-storage-reviewers,janv
Depends on D191082

Differential Revision: https://phabricator.services.mozilla.com/D191084
2023-12-11 15:17:12 +00:00
Jens Stutte 349c746a19 Bug 1727526 - Have a Stringifyable base class. r=dom-storage-reviewers,janv
Differential Revision: https://phabricator.services.mozilla.com/D191082
2023-12-11 15:17:12 +00:00
Jan Varga c3f18dd105 Bug 1808294 - Rename EnsureTemporaryStorageIsInitialized to EnsureTemporaryStorageIsInitializedInternal; r=dom-storage-reviewers,asuth
One of the goals of the asynchronous temporary storage initialization is to
call EnsureTemporaryStorageIsInitialized only from InitTemporaryStorageOp.
Calling from other places including quota clients will be disallowed by
changing the method to a private method. The private nature of the method
should be emphasized by adding the Internal suffix.

Differential Revision: https://phabricator.services.mozilla.com/D188332
2023-12-08 05:55:04 +00:00
hsingh c80ea97d51 Bug 1835298: Encrypt CacheAPI data on disk in PBM.r=dom-storage-reviewers,janv
Depends on D180296

Differential Revision: https://phabricator.services.mozilla.com/D180297
2023-10-27 14:10:08 +00:00
Jens Stutte b888688e6f Bug 1727526 - Add more information to cache manager shutdown hang annotations. r=dom-storage-reviewers,janv
Differential Revision: https://phabricator.services.mozilla.com/D190795
2023-10-13 12:16:26 +00:00
Jan Varga 6d794d3895 Bug 1749504 - Convert Cache API to use the new way to access a client directory; r=dom-storage-reviewers,jstutte
Cache API  currently creates a client directory lock first and then when the
client directorylock is acquired, it bounces to the QuotaManager I/O thread
where it ensures that storage is initialized. This can be now replaced by just
calling QuotaManager::OpenClientDirectory.

Changes done in this patch:
- replaced QuotaManager::CreateDirectoryLock call with
  QuotaManager::OpenClientDirectory
- removed EnsureStorageIsInitializedInternal call from
  Context::QuotaInitRunnable::Run
- changed Context::QuotaInitRunnable to not inherit from OpenDirectoryListener

Differential Revision: https://phabricator.services.mozilla.com/D186119
2023-09-16 12:45:41 +00:00
Jan Varga 7a036fc598 Bug 1749504 - Simplify signature of QuotaManager::CreateDirectoryLock; r=dom-storage-reviewers,jstutte
CreateDirectoryLock currently takes three separate arguments which can be
expressed as just one argument.

Changes done in this patch:
- QuotaManager::CreateDirectoryLock changed to take just client metadata
- all call sites updated to reflect the changed signature

Differential Revision: https://phabricator.services.mozilla.com/D185568
2023-09-12 12:40:41 +00:00
Jan Varga 6555388d94 Bug 1749504 - Rename EnsureStorageIsInitialized to EnsureStorageIsInitializedInternal; r=dom-storage-reviewers,jstutte
One of the goals of bug 1749504 is to call EnsureStorageIsInitialized only from
InitOp. Calling from other places including quota clients will be disallowed
by changing the method to a private method. The private nature of the method
should be emphasized by adding the Internal suffix.

Changes done in this patch:
- IsStorageInitialized renamed to IsStorageInitializedInternal
- AssertStorageIsInitialized renamed to AssertStorageIsInitializedInternal
- EnsureStorageIsInitialized renamed to EnsureStorageIsInitializedInternal

Differential Revision: https://phabricator.services.mozilla.com/D185547
2023-09-12 12:40:41 +00:00
Jan Varga dc926465ba Bug 1781201 - Change GetInfoFromValidatedPrincipalInfo to be fallible; r=hsingh
The generation of unique anonynmous origins can fail, so the method needs to be
fallible as well, otherwise the failures couldn't be propagated.

Differential Revision: https://phabricator.services.mozilla.com/D176874
2023-05-03 08:22:56 +00:00
Jan Varga 8cfc1d53bc Bug 1781201 - Convert GetInfoFromValidatedPrincipalInfo to a non-static method; r=hsingh
The method will need to access members of the QuotaManager class, so it can't
be static anymore.

Differential Revision: https://phabricator.services.mozilla.com/D176872
2023-05-03 08:22:55 +00:00
Jan Varga 55ef85416c Bug 1781201 - Stop using GetInfoFromPrincipal in the parent; r=hsingh
Quota clients should use GetInfoFromValidatedPrinciplaInfo in the parent
because that method will eventually generate unique anonymous origins for
private browsing.
This patch also moves some calls from the main thread to the PBackground thread
because GetInfoFromValidatedPrinciplaInfo can run on any thread.

Differential Revision: https://phabricator.services.mozilla.com/D176871
2023-05-03 02:05:11 +00:00
Nika Layzell ccbdb42273 Bug 1809753 - Part 3: Replace all callers of GetCurrentEventTarget with GetCurrentSerialEventTarget, r=mccr8,necko-reviewers,valentin
This only changes the behaviour when called with a TaskQueue or other type
using SerialEventTargetGuard on the stack. They are being switched over as the
existing GetCurrentEventTarget method is being removed, as it is somewhat
confusing, and poorly documented.

Callers which need to get the current thread even when on a threadpool or
behind a TaskQueue were switched to GetCurrentEventTarget in the previous part.

Differential Revision: https://phabricator.services.mozilla.com/D166607
2023-01-16 23:14:11 +00:00
Sandor Molnar f236c54e45 Backed out 6 changesets (bug 1809752, bug 1809753) for causing perma failures in browser/components/firefoxview/tests/browser/browser_feature_callout_position.js
Backed out changeset ea05784d74c4 (bug 1809753)
Backed out changeset 7c9b20eebcc8 (bug 1809753)
Backed out changeset d0267ac2256d (bug 1809753)
Backed out changeset aa9f2971bd6f (bug 1809753)
Backed out changeset f0d9fcfaa6f8 (bug 1809752)
Backed out changeset 6d58c799cffe (bug 1809752)
2023-01-17 03:19:24 +02:00
Nika Layzell 21081c63fa Bug 1809753 - Part 3: Replace all callers of GetCurrentEventTarget with GetCurrentSerialEventTarget, r=mccr8,necko-reviewers,valentin
This only changes the behaviour when called with a TaskQueue or other type
using SerialEventTargetGuard on the stack. They are being switched over as the
existing GetCurrentEventTarget method is being removed, as it is somewhat
confusing, and poorly documented.

Callers which need to get the current thread even when on a threadpool or
behind a TaskQueue were switched to GetCurrentEventTarget in the previous part.

Differential Revision: https://phabricator.services.mozilla.com/D166607
2023-01-16 23:14:11 +00:00
Jan Varga 190a2c3969 Bug 1791755 - Extract OriginInfo, GroupInfo, GroupInfoPair and QuotaObject into separate source files; r=dom-storage-reviewers,jesup
Differential Revision: https://phabricator.services.mozilla.com/D157815
2022-10-28 08:22:49 +00:00
Jan Varga 3e73e7ce93 Bug 1731960 - Move all Result extensions from QMResult.h to a dedicated file; r=dom-storage-reviewers,jari
Differential Revision: https://phabricator.services.mozilla.com/D126324
2021-11-30 05:05:51 +00:00
Haiyang Xu 2609a9be23 Bug 1726809 - Simplify QuotaManager::GetOrCreate and intermediate state of opening QuotaManager; r=dom-storage-reviewers,janv
Differential Revision: https://phabricator.services.mozilla.com/D131592
2021-11-28 00:09:56 +00:00
Butkovits Atila 2dd947aa8c Backed out changeset b4b0ae95055b (bug 1726809) for causing build bustages at ActorsParent.cpp. CLOSED TREE 2021-11-26 12:02:18 +02:00
Haiyang Xu b52b5893f5 Bug 1726809 - Simplify QuotaManager::GetOrCreate and intermediate state of opening QuotaManager; r=dom-storage-reviewers,janv
Differential Revision: https://phabricator.services.mozilla.com/D131592
2021-11-26 09:20:57 +00:00
Haiyang Xu 79af612655 Bug 1672140 - Rename cache::ClientMetadata to cache::CacheDirectoryMetadata; r=dom-storage-reviewers,janv
Differential Revision: https://phabricator.services.mozilla.com/D131590
2021-11-24 20:50:37 +00:00
hxu d2301973ac Bug 1672140 - Change cache::ClientMetadata's base class from quota::OriginMetadata to quota::ClientMetadata; r=dom-storage-reviewers,janv
Depends on D125583

Differential Revision: https://phabricator.services.mozilla.com/D126056
2021-11-24 20:50:37 +00:00
hxu 6940518aa5 Bug 1672140 - Rename cache::QuotaInfo to cache::ClientMetadata and rename corresponding functions; r=dom-storage-reviewers,janv
Differential Revision: https://phabricator.services.mozilla.com/D125583
2021-11-24 20:50:36 +00:00