Files
sousa-gecko/storage/moz.build
T
Benjamin Beurdouche 7bb44f99f5 Bug 1996558 - Replace security/keystore with security/lockstore (LocalKey). r=gcp,simonf
Delete the bespoke security/keystore module introduced by the parent
revision and route per-database obfsvfs keys through security/lockstore
using KekType::LocalKey. The lockstore collection name for each SQLite
database is the SHA-256 of the database's path relative to the active
profile directory; the underlying DEK is created extractable so that
obfsvfs can consume the raw 32-byte key via the `?key=...` URI.

- New storage/SQLiteEncryption.{h,cpp} exposes
  mozilla::storage::GetEncryptionKey and ShutdownEncryptionKeystore
  on top of lockstore_ffi.
- Three consumers rewired: mozStorageService::Init drops the explicit
  key::Init() call; mozStorageService::Observe(xpcom-shutdown-threads)
  calls ShutdownEncryptionKeystore(); mozStorageConnection and
  toolkit/components/places/Database.cpp call GetEncryptionKey.
- security/keystore/ deleted and dropped from security/moz.build.
- Browser-chrome tests moved to storage/test/browser/encryption/ with
  the keystore.db existence assertion removed (lockstore manages its
  own DB).

Differential Revision: https://phabricator.services.mozilla.com/D301076
2026-06-16 13:00:22 +00:00

122 lines
3.3 KiB
INI

# This Source Code Form is subject to the terms of the Mozilla Public
# License, v. 2.0. If a copy of the MPL was not distributed with this
# file, You can obtain one at http://mozilla.org/MPL/2.0/.
with Files("**"):
BUG_COMPONENT = ("Core", "SQLite and Embedded Database Bindings")
DIRS += ["build"]
TEST_DIRS += ["test"]
XPIDL_SOURCES += [
"mozIStorageAsyncConnection.idl",
"mozIStorageAsyncStatement.idl",
"mozIStorageBaseStatement.idl",
"mozIStorageBindingParams.idl",
"mozIStorageBindingParamsArray.idl",
"mozIStorageCompletionCallback.idl",
"mozIStorageConnection.idl",
"mozIStorageError.idl",
"mozIStorageFunction.idl",
"mozIStoragePendingStatement.idl",
"mozIStorageProgressHandler.idl",
"mozIStorageResultSet.idl",
"mozIStorageRow.idl",
"mozIStorageService.idl",
"mozIStorageStatement.idl",
"mozIStorageStatementCallback.idl",
"mozIStorageVacuumParticipant.idl",
"mozIStorageValueArray.idl",
]
XPIDL_MODULE = "storage"
EXPORTS += [
"mozStorageHelper.h",
]
EXPORTS.mozilla += [
"storage.h",
]
# NOTE When adding something to this list, you probably need to add it to the
# storage.h file too.
EXPORTS.mozilla.storage += [
"mozStorageAsyncStatementParams.h",
"mozStorageStatementParams.h",
"mozStorageStatementRow.h",
"SQLiteEncryption.h",
"SQLiteMutex.h",
"StatementCache.h",
"StoragePathUtil.h",
"Variant.h",
"Variant_inl.h",
]
# SEE ABOVE NOTE!
UNIFIED_SOURCES += [
"BaseVFS.cpp",
"FileSystemModule.cpp",
"mozStorageArgValueArray.cpp",
"mozStorageAsyncStatement.cpp",
"mozStorageAsyncStatementExecution.cpp",
"mozStorageAsyncStatementJSHelper.cpp",
"mozStorageAsyncStatementParams.cpp",
"mozStorageBindingParamsArray.cpp",
"mozStorageError.cpp",
"mozStoragePrivateHelpers.cpp",
"mozStorageResultSet.cpp",
"mozStorageRow.cpp",
"mozStorageService.cpp",
"mozStorageSQLFunctions.cpp",
"mozStorageStatement.cpp",
"mozStorageStatementJSHelper.cpp",
"mozStorageStatementParams.cpp",
"mozStorageStatementRow.cpp",
"ObfuscatingVFS.cpp",
"QuotaVFS.cpp",
"ReadOnlyNoLockVFS.cpp",
"SQLiteEncryption.cpp",
"StorageBaseStatementInternal.cpp",
"StoragePathUtil.cpp",
"VacuumManager.cpp",
"Variant.cpp",
]
# These files need to be built separately because they #include variantToSQLiteT_impl.h.
SOURCES += [
"mozStorageBindingParams.cpp",
"mozStorageConnection.cpp",
]
include("/ipc/chromium/chromium-config.mozbuild")
FINAL_LIBRARY = "xul"
# Thunderbird needs the 2-argument version of fts3_tokenizer()
if CONFIG["MOZ_THUNDERBIRD"] or CONFIG["MOZ_SUITE"]:
DEFINES["MOZ_SQLITE_FTS3_TOKENIZER"] = 1
# Disable auxiliary files persistence if requested.
if not CONFIG["MOZ_AVOID_DISK_REMNANT_ON_CLOSE"]:
DEFINES["MOZ_SQLITE_PERSIST_AUXILIARY_FILES"] = 1
# The vector extension is enabled only for Firefox, it could be opened up
# to other products in the future.
if CONFIG["MOZ_BUILD_APP"] == "browser":
DEFINES["MOZ_SQLITE_VEC0_EXT"] = 1
LOCAL_INCLUDES += [
"/dom/base",
"/third_party/sqlite3/ext",
"/third_party/sqlite3/src",
]
if CONFIG["MOZ_FOLD_LIBS"]:
DEFINES["MOZ_FOLD_LIBS"] = True
CXXFLAGS += CONFIG["SQLITE_CFLAGS"]
SPHINX_TREES["/storage"] = "docs"