2020-04-09 18:45:37 +03:00
|
|
|
# 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 = ("Firefox", "Sync")
|
|
|
|
|
|
|
|
# Services interfaces are shared with other components (like Places and
|
|
|
|
# WebExtension storage), so we keep them in a separate folder and build them for
|
|
|
|
# all configurations, regardless of whether we build Sync.
|
|
|
|
|
|
|
|
XPIDL_MODULE = "services"
|
|
|
|
|
|
|
|
XPIDL_SOURCES += [
|
2020-06-27 22:15:17 +03:00
|
|
|
"mozIAppServicesLogger.idl",
|
2020-04-09 18:45:37 +03:00
|
|
|
"mozIBridgedSyncEngine.idl",
|
Bug 1634626 - Refactor interruption in Golden Gate. r=markh,tcsc
This commit removes the `nsICancelable` return values from all
`mozIBridgedSyncEngine` methods, and replaces them with a
`mozIInterruptible` interface that can be implemented by store
classes that support interrupting.
The `nsICancelable` pattern was intended to make each operation
interruptible, without affecting the others. But we can't guarantee
that with SQLite, because it only has a way to interrupt all
running statements on a connection, not specific ones. Further,
this pattern doesn't match what we currently do in a-s, where we
create an internal "interrupt scope" for each operation, and hand
out an "interrupt handle" for interrupting all in-progress
operations.
Storage classes like `StorageSyncArea` can opt in to interruption
by implementing `mozIInterruptible`. It's a separate interface to
protect against accidental misuse: because it interrupts all
statements on the connection, it might lose writes if the current
operation is a `set`, for example. But it's useful for testing and
debugging, so we still expose it.
This commit also changes Golden Gate ferries to hold weak references to
the `BridgedEngine`, so that they don't block teardown.
Differential Revision: https://phabricator.services.mozilla.com/D73413
2020-05-05 00:32:29 +03:00
|
|
|
"mozIInterruptible.idl",
|
2020-06-27 22:15:17 +03:00
|
|
|
"mozIServicesLogSink.idl",
|
2020-04-09 18:45:37 +03:00
|
|
|
]
|