mirror of
https://gitlab.winehq.org/wine/wine-gecko.git
synced 2024-09-13 09:24:08 -07:00
Bug 675397 - Add syncing priority to be able to reshuffle the default syncing order. r=rnewman
This commit is contained in:
parent
6a5defd4d0
commit
8fc86e01c4
@ -483,7 +483,9 @@ EngineManager.prototype = {
|
||||
* N.B., does not pay attention to the declined list.
|
||||
*/
|
||||
getEnabled: function () {
|
||||
return this.getAll().filter(function(engine) engine.enabled);
|
||||
return this.getAll()
|
||||
.filter((engine) => engine.enabled)
|
||||
.sort((a, b) => a.syncPriority - b.syncPriority);
|
||||
},
|
||||
|
||||
get enabledEngineNames() {
|
||||
@ -700,6 +702,13 @@ SyncEngine.prototype = {
|
||||
_recordObj: CryptoWrapper,
|
||||
version: 1,
|
||||
|
||||
// A relative priority to use when computing an order
|
||||
// for engines to be synced. Higher-priority engines
|
||||
// (lower numbers) are synced first.
|
||||
// It is recommended that a unique value be used for each engine,
|
||||
// in order to guarantee a stable sequence.
|
||||
syncPriority: 0,
|
||||
|
||||
// How many records to pull in a single sync. This is primarily to avoid very
|
||||
// long first syncs against profiles with many history records.
|
||||
downloadLimit: null,
|
||||
|
@ -119,6 +119,8 @@ AddonsEngine.prototype = {
|
||||
_recordObj: AddonRecord,
|
||||
version: 1,
|
||||
|
||||
syncPriority: 5,
|
||||
|
||||
_reconciler: null,
|
||||
|
||||
/**
|
||||
|
@ -203,6 +203,8 @@ BookmarksEngine.prototype = {
|
||||
_trackerObj: BookmarksTracker,
|
||||
version: 2,
|
||||
|
||||
syncPriority: 4,
|
||||
|
||||
_sync: function _sync() {
|
||||
let engine = this;
|
||||
let batchEx = null;
|
||||
|
@ -107,6 +107,8 @@ FormEngine.prototype = {
|
||||
_recordObj: FormRec,
|
||||
applyIncomingBatchSize: FORMS_STORE_BATCH_SIZE,
|
||||
|
||||
syncPriority: 6,
|
||||
|
||||
get prefName() "history",
|
||||
|
||||
_findDupe: function _findDupe(item) {
|
||||
|
@ -41,7 +41,9 @@ HistoryEngine.prototype = {
|
||||
_storeObj: HistoryStore,
|
||||
_trackerObj: HistoryTracker,
|
||||
downloadLimit: MAX_HISTORY_DOWNLOAD,
|
||||
applyIncomingBatchSize: HISTORY_STORE_BATCH_SIZE
|
||||
applyIncomingBatchSize: HISTORY_STORE_BATCH_SIZE,
|
||||
|
||||
syncPriority: 7,
|
||||
};
|
||||
|
||||
function HistoryStore(name, engine) {
|
||||
|
@ -36,6 +36,8 @@ PasswordEngine.prototype = {
|
||||
_recordObj: LoginRec,
|
||||
applyIncomingBatchSize: PASSWORDS_STORE_BATCH_SIZE,
|
||||
|
||||
syncPriority: 2,
|
||||
|
||||
_syncFinish: function _syncFinish() {
|
||||
SyncEngine.prototype._syncFinish.call(this);
|
||||
|
||||
|
@ -41,6 +41,8 @@ PrefsEngine.prototype = {
|
||||
_recordObj: PrefRec,
|
||||
version: 2,
|
||||
|
||||
syncPriority: 1,
|
||||
|
||||
getChangedIDs: function getChangedIDs() {
|
||||
// No need for a proper timestamp (no conflict resolution needed).
|
||||
let changedIDs = {};
|
||||
|
@ -45,6 +45,8 @@ TabEngine.prototype = {
|
||||
_trackerObj: TabTracker,
|
||||
_recordObj: TabSetRecord,
|
||||
|
||||
syncPriority: 3,
|
||||
|
||||
getChangedIDs: function getChangedIDs() {
|
||||
// No need for a proper timestamp (no conflict resolution needed).
|
||||
let changedIDs = {};
|
||||
|
@ -192,3 +192,11 @@ function mockGetWindowEnumerator(url, numWindows, numTabs) {
|
||||
},
|
||||
};
|
||||
}
|
||||
|
||||
// Helper that allows checking array equality.
|
||||
function do_check_array_eq(a1, a2) {
|
||||
do_check_eq(a1.length, a2.length);
|
||||
for (let i = 0; i < a1.length; ++i) {
|
||||
do_check_eq(a1[i], a2[i]);
|
||||
}
|
||||
}
|
||||
|
@ -75,6 +75,23 @@ add_test(function test_basics() {
|
||||
engines = manager.getEnabled();
|
||||
do_check_eq(engines.length, 3);
|
||||
|
||||
_("getEnabled() returns enabled engines in sorted order");
|
||||
petrol.syncPriority = 1;
|
||||
dummy.syncPriority = 2;
|
||||
diesel.syncPriority = 3;
|
||||
|
||||
engines = manager.getEnabled();
|
||||
|
||||
do_check_array_eq(engines, [petrol, dummy, diesel]);
|
||||
|
||||
_("Changing the priorities should change the order in getEnabled()");
|
||||
|
||||
dummy.syncPriority = 4;
|
||||
|
||||
engines = manager.getEnabled();
|
||||
|
||||
do_check_array_eq(engines, [petrol, diesel, dummy]);
|
||||
|
||||
_("Unregister an engine by name");
|
||||
manager.unregister('dummy');
|
||||
do_check_eq(manager.get('dummy'), undefined);
|
||||
|
@ -14,13 +14,6 @@ function sha256HMAC(message, key) {
|
||||
return Utils.digestBytes(message, h);
|
||||
}
|
||||
|
||||
function do_check_array_eq(a1, a2) {
|
||||
do_check_eq(a1.length, a2.length);
|
||||
for (let i = 0; i < a1.length; ++i) {
|
||||
do_check_eq(a1[i], a2[i]);
|
||||
}
|
||||
}
|
||||
|
||||
function do_check_keypair_eq(a, b) {
|
||||
do_check_eq(2, a.length);
|
||||
do_check_eq(2, b.length);
|
||||
|
Loading…
Reference in New Issue
Block a user