mirror of
https://repo.dactyloidae.xyz/Dactyloidae/UXP.git
synced 2026-09-05 23:38:38 +09:00
fix mozilla regression in search service (saving user-defined search engines)
this restores some API that is used by search engine management extensions, and tells "browser-search-engine-modified"/"engine-changed" signal to save user-defined search engines to "%PROFILE%/searchplugins", as it did in Good Old Times.
This commit is contained in:
parent
cab0faa710
commit
59440a335d
1 changed files with 18 additions and 5 deletions
|
|
@ -2237,7 +2237,10 @@ Engine.prototype = {
|
|||
get lazySerializeTask() {
|
||||
if (!this._lazySerializeTask) {
|
||||
let task = function taskCallback() {
|
||||
this._serializeToFile();
|
||||
// This check should be done by caller, but it is better to be safe than sorry.
|
||||
if (!this._readOnly && this._file) {
|
||||
this._serializeToFile();
|
||||
}
|
||||
}.bind(this);
|
||||
this._lazySerializeTask = new DeferredTask(task, LAZY_SERIALIZE_DELAY);
|
||||
}
|
||||
|
|
@ -2245,6 +2248,17 @@ Engine.prototype = {
|
|||
return this._lazySerializeTask;
|
||||
},
|
||||
|
||||
// This API is required by some search engine management extensions, so let's restore it.
|
||||
// Old API was using a timer to do its work, but this can lead us too far. If extension is
|
||||
// rely on such subtle internal details, that extension should be fixed, not browser.
|
||||
_lazySerializeToFile: function SRCH_ENG_lazySerializeToFile() {
|
||||
// This check should be done by caller, but it is better to be safe than sorry.
|
||||
// Besides, we don't have to create a task for r/o or non-file engines.
|
||||
if (!this._readOnly && this._file) {
|
||||
this.lazySerializeTask.arm();
|
||||
}
|
||||
},
|
||||
|
||||
/**
|
||||
* Serializes the engine object to file.
|
||||
*/
|
||||
|
|
@ -3059,10 +3073,9 @@ SearchService.prototype = {
|
|||
}
|
||||
|
||||
// Write out serialized search engine files when rebuilding cache.
|
||||
if (!engine._readOnly && engine._file) {
|
||||
engine._serializeToFile();
|
||||
}
|
||||
|
||||
// Do it lazily, to: 1) reuse existing API; 2) make browser interface more responsive
|
||||
engine._lazySerializeToFile();
|
||||
|
||||
let cacheKey = parent.path;
|
||||
if (!cache.directories[cacheKey]) {
|
||||
let cacheEntry = {};
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue