ActorsChild.cpp |
QuotaChild
**************************************************************************** |
5667 |
ActorsChild.h |
|
2669 |
ActorsParent.cpp |
|
309843 |
ActorsParent.h |
|
667 |
ArtificialFailure.cpp |
|
1200 |
ArtificialFailure.h |
Checks if an artificial failure should be triggered based on the specified
category and the configured probability.
This method evaluates if the provided failure category matches the
categories set in the preferences. If a match is found, it then checks
the probability of triggering an artificial failure. A random value is
generated to determine if the failure should occur based on this
probability. If both the category matches and the random value falls within
the defined probability, the method returns an error code indicating the
artificial failure. Otherwise, it returns a successful result.
@param aCategory - The failure category to check against the configured
categories for triggering an artificial failure. It must have only one bit
set.
@returns Result<Ok, nsresult> - An Ok result if no failure occurs; an Err
result containing an error code if an artificial failure is triggered.
Note:
Consider replacing the preferences with a dedicated class with static
methods for entering and leaving artificial failure mode, something like
`ChaosMode`. The class would also implement an interface, for example
`nsIQuotaArtificialFailure` allowing access from scripts.
Example usage:
This example demonstrates the usage of `ArtificialFailure` in conjunction
with the `QM_TRY` macro to handle potential artificial failures gracefully.
The `QM_TRY` macro will return early if an artificial failure occurs, with
the corresponding error code from `ArtificialFailure`.
```cpp
QM_TRY(ArtificialFailure(
nsIQuotaArtificialFailure::CATEGORY_INITIALIZE_ORIGIN));
```
|
2492 |
Assertions.cpp |
|
1210 |
Assertions.h |
|
794 |
AssertionsImpl.h |
|
1413 |
BackgroundThreadObject.cpp |
|
1172 |
BackgroundThreadObject.h |
|
931 |
CachingDatabaseConnection.cpp |
|
5720 |
CachingDatabaseConnection.h |
|
7457 |
CanonicalQuotaObject.cpp |
aTruncate |
10013 |
CanonicalQuotaObject.h |
aIsRemote |
2418 |
CheckedUnsafePtr.h |
|
20349 |
CipherKeyManager.h |
|
3195 |
CipherStrategy.h |
|
1426 |
Client.cpp |
|
6683 |
Client.h |
|
5575 |
ClientDirectoryLock.cpp |
|
2353 |
ClientDirectoryLock.h |
|
2278 |
ClientImpl.h |
|
1088 |
ClientUsageArray.cpp |
|
1605 |
ClientUsageArray.h |
|
1004 |
CommonMetadata.h |
|
3293 |
CommonMetadataArray.h |
|
578 |
CommonMetadataArrayFwd.h |
|
664 |
components.conf |
|
1123 |
Config.h |
|
1047 |
Constants.h |
|
1021 |
DebugOnlyMacro.h |
|
586 |
DecryptingInputStream.cpp |
|
3572 |
DecryptingInputStream.h |
|
6342 |
DecryptingInputStream_impl.h |
aCheckAvailableBytes |
15489 |
DirectoryLock.h |
|
908 |
DirectoryLockCategory.h |
|
625 |
DirectoryLockImpl.cpp |
Automatically log information about a directory lock if acquiring of the
directory lock takes this long. We've chosen a value that is long enough
that it is unlikely for the problem to be falsely triggered by slow system
I/O. We've also chosen a value long enough so that testers can notice the
timeout; we want to know about the timeouts, not hide them. On the other
hand this value is less than 45 seconds which is used by quota manager to
crash a hung quota manager shutdown.
|
13053 |
DirectoryLockImpl.h |
|
7497 |
DirectoryLockInlines.h |
|
1469 |
DummyCipherStrategy.h |
|
1746 |
EncryptedBlock.h |
|
3592 |
EncryptingOutputStream.cpp |
|
2033 |
EncryptingOutputStream.h |
|
3850 |
EncryptingOutputStream_impl.h |
|
8563 |
ErrorHandling.h |
|
1419 |
FileStreams.cpp |
aTruncate |
6864 |
FileStreams.h |
|
6204 |
FileUtils.cpp |
|
1408 |
FileUtils.h |
|
715 |
FirstInitializationAttempts.h |
|
2448 |
FirstInitializationAttemptsImpl.h |
|
1394 |
Flatten.h |
|
3287 |
ForwardDecls.h |
|
3700 |
GroupInfo.cpp |
|
2705 |
GroupInfo.h |
|
1992 |
GroupInfoPair.cpp |
|
928 |
GroupInfoPair.h |
|
2538 |
HashKeys.h |
|
808 |
InitializationTypes.cpp |
|
2506 |
InitializationTypes.h |
|
3431 |
InitializationUtils.h |
aExclusive |
3374 |
IPCQuotaObject.ipdlh |
|
441 |
IPCStreamCipherStrategy.h |
|
575 |
metrics.yaml |
|
3742 |
moz.build |
|
4596 |
MozPromiseUtils.h |
|
2331 |
NormalOriginOperationBase.cpp |
|
1091 |
NormalOriginOperationBase.h |
|
1802 |
NotifyUtils.cpp |
|
1597 |
NotifyUtils.h |
|
749 |
NotifyUtilsCommon.cpp |
|
1424 |
NotifyUtilsCommon.h |
|
738 |
nsIndexedDBProtocolHandler.cpp |
|
1359 |
nsIndexedDBProtocolHandler.h |
|
821 |
nsIQuotaArtificialFailure.idl |
|
649 |
nsIQuotaCallbacks.idl |
|
745 |
nsIQuotaManagerService.idl |
Asynchronously retrieves storage name and returns it as a plain string.
If the dom.quotaManager.testing preference is not true the call will be
a no-op.
|
18311 |
nsIQuotaManagerServiceInternal.idl |
This interface defines internal methods for use within Quota Manager code.
It is intended strictly for internal implementation details and should not
be used outside of Quota Manager internal code.
|
1508 |
nsIQuotaRequests.idl |
|
1404 |
nsIQuotaResults.idl |
|
1957 |
nsIQuotaUtilsService.idl |
This interface provides utility methods for storage and quota management
that require information only available in JavaScript system modules. It
serves as a bridge for accessing such information from C++ code where direct
access is not feasible.
|
970 |
NSSCipherStrategy.cpp |
|
4837 |
NSSCipherStrategy.h |
|
1824 |
OriginDirectoryLock.cpp |
aExclusive |
1560 |
OriginDirectoryLock.h |
|
1792 |
OriginInfo.cpp |
|
6279 |
OriginInfo.h |
In some special cases like the LocalStorage client where it's possible to
create a Quota-using representation but not actually write any data, we
want to be able to track quota for an origin without creating its origin
directory or the per-client files until they are actually needed to store
data. In those cases, the OriginInfo will be created by
InitQuotaForOrigin and the resulting mDirectoryExists will be false until
the origin actually needs to be created. It is possible for mUsage to be
greater than zero while mDirectoryExists is false, representing a state
where a client like LocalStorage has reserved quota for disk writes, but
has not yet flushed the data to disk.
|
4408 |
OriginOperationBase.cpp |
|
4953 |
OriginOperationBase.h |
|
2042 |
OriginOperationCallbacks.h |
|
2206 |
OriginOperations.cpp |
|
122589 |
OriginOperations.h |
|
7583 |
OriginParser.cpp |
|
12395 |
OriginParser.h |
Checks whether the given origin attributes suffix corresponds to a specific
user context, based on the provided `userContextId` value.
This function parses the input suffix into an `OriginAttributes` object
and evaluates the `userContextId` attribute. If the attribute matches the
given `aUserContextId`, the suffix is considered to belong to that user
context. Other attributes in the suffix are ignored.
@param aSuffix The origin attributes suffix to check. This must be a valid
suffix; otherwise, the code will trigger an assertion failure.
@param aUserContextId The `userContextId` value to compare against the
attribute in the suffix.
@return `true` if the `userContextId` attribute matches `aUserContextId`,
`false` otherwise.
@note The input must be a valid suffix. Invalid inputs will cause a
diagnostic assertion failure because of `MOZ_ALWAYS_TRUE`.
|
5035 |
OriginScope.h |
|
11570 |
PersistenceScope.cpp |
|
962 |
PersistenceScope.h |
|
4465 |
PersistenceType.cpp |
|
7150 |
PersistenceType.h |
|
2323 |
PQuota.ipdl |
|
5972 |
PQuotaRequest.ipdl |
|
1091 |
PQuotaUsageRequest.ipdl |
|
459 |
PRemoteQuotaObject.ipdl |
|
730 |
PrincipalUtils.cpp |
|
9306 |
PrincipalUtils.h |
|
1734 |
PromiseUtils.cpp |
|
1124 |
PromiseUtils.h |
|
690 |
QMResult.cpp |
|
670 |
QMResult.h |
Propagate the result.
This is used by GenericErrorResult<QMResult> to create a propagated
result.
|
1622 |
QuotaCommon.cpp |
aStart |
21875 |
QuotaCommon.h |
|
70030 |
QuotaManager.h |
|
36694 |
QuotaManagerImpl.h |
|
1837 |
QuotaManagerService.cpp |
aIID |
51694 |
QuotaManagerService.h |
mozilla_dom_quota_QuotaManagerService_h |
2712 |
QuotaObject.cpp |
|
2507 |
QuotaObject.h |
|
2547 |
QuotaParent.cpp |
|
37094 |
QuotaParent.h |
|
6606 |
QuotaRequestBase.cpp |
|
1152 |
QuotaRequestBase.h |
|
1545 |
QuotaRequests.cpp |
|
6385 |
QuotaRequests.h |
|
2775 |
QuotaResults.cpp |
|
4459 |
QuotaResults.h |
|
1943 |
QuotaUsageRequestChild.cpp |
|
1390 |
QuotaUsageRequestChild.h |
|
1365 |
QuotaUsageRequestParent.cpp |
|
1153 |
QuotaUsageRequestParent.h |
|
1211 |
QuotaUtilsService.sys.mjs |
|
827 |
RemoteQuotaObject.cpp |
aIsRemote |
1623 |
RemoteQuotaObject.h |
|
1385 |
RemoteQuotaObjectChild.cpp |
|
1002 |
RemoteQuotaObjectChild.h |
|
1084 |
RemoteQuotaObjectParent.cpp |
aTruncate |
1995 |
RemoteQuotaObjectParent.h |
|
1363 |
RemoteQuotaObjectParentTracker.h |
|
1526 |
RemoveParen.h |
|
900 |
ResolvableNormalOriginOp.h |
|
1931 |
ResultExtensions.h |
|
5012 |
SanitizationUtils.cpp |
|
1146 |
SanitizationUtils.h |
|
682 |
ScopedLogExtraInfo.cpp |
static |
2665 |
ScopedLogExtraInfo.h |
|
2475 |
scripts |
|
|
SerializationHelpers.h |
|
6432 |
StorageHelpers.cpp |
|
2015 |
StorageHelpers.h |
This class provides a RAII wrap of attaching and detaching database
in a given C++ scope. It is guaranteed that an attached database will
be detached even if you have an exception or return early.
@param aConnection
The connection to attach a database to.
@param aDatabaseFile
The database file to attach.
@param aSchemaName
The schema-name. Can be any string literal which is supported by the
underlying database. For more details about schema-name, see
https://www.sqlite.org/lang_attach.html
|
1779 |
StorageManager.cpp |
PersistentStoragePermissionRequest
**************************************************************************** |
22029 |
StorageManager.h |
|
1769 |
StorageOriginAttributes.cpp |
|
2769 |
StorageOriginAttributes.h |
|
2010 |
StreamUtils.cpp |
|
2731 |
StreamUtils.h |
|
1209 |
StringifyUtils.cpp |
static |
1711 |
StringifyUtils.h |
|
1848 |
TargetPtrHolder.h |
|
1495 |
test |
|
|
ThreadUtils.cpp |
aThread |
2547 |
ThreadUtils.h |
Add a temporary thread observer and listen for the "AfterProcessNextEvent"
notification. Once the notification is received, remove the temporary thread
observer and call aCallback.
In practice, this calls aCallback immediately after the current thread is
done with running and releasing recently popped event from thread's event
queue.
If called multiple times, all the callbacks will be executed, in the
order in which RunAfterProcessingCurrentEvent() was called.
Use this method if you need to dispatch the same or some other runnable to
another thread in a way which prevents any race conditions (for example
unpredictable releases of objects).
This method should be used only in existing code which can't be easily
converted to use MozPromise which doesn't have the problem with
unpredictable releases of objects, see:
https://searchfox.org/mozilla-central/rev/4582d908c17fbf7924f5699609fe4a12c28ddc4a/xpcom/threads/MozPromise.h#866
Note: Calling this method from a thread pool is not supported since thread
pools don't fire the "AfterProcessNextEvent" notification. The method has
a diagnostic assertion for that so any calls like that will be caught
in builds with enabled diagnostic assertions. The callback will never
get executed in other builds, such as release builds. The limitation can
be removed completely when thread pool implementation gets support for firing
the "AfterProcessNextEvent".
|
2577 |
UniversalDirectoryLock.cpp |
aExclusive |
3000 |
UniversalDirectoryLock.h |
/ |
2157 |
UsageInfo.h |
|
2599 |