mirror of
https://repo.dactyloidae.xyz/Dactyloidae/UXP.git
synced 2026-10-23 15:47:30 +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() {
|
get lazySerializeTask() {
|
||||||
if (!this._lazySerializeTask) {
|
if (!this._lazySerializeTask) {
|
||||||
let task = function taskCallback() {
|
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);
|
}.bind(this);
|
||||||
this._lazySerializeTask = new DeferredTask(task, LAZY_SERIALIZE_DELAY);
|
this._lazySerializeTask = new DeferredTask(task, LAZY_SERIALIZE_DELAY);
|
||||||
}
|
}
|
||||||
|
|
@ -2245,6 +2248,17 @@ Engine.prototype = {
|
||||||
return this._lazySerializeTask;
|
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.
|
* Serializes the engine object to file.
|
||||||
*/
|
*/
|
||||||
|
|
@ -3059,9 +3073,8 @@ SearchService.prototype = {
|
||||||
}
|
}
|
||||||
|
|
||||||
// Write out serialized search engine files when rebuilding cache.
|
// Write out serialized search engine files when rebuilding cache.
|
||||||
if (!engine._readOnly && engine._file) {
|
// Do it lazily, to: 1) reuse existing API; 2) make browser interface more responsive
|
||||||
engine._serializeToFile();
|
engine._lazySerializeToFile();
|
||||||
}
|
|
||||||
|
|
||||||
let cacheKey = parent.path;
|
let cacheKey = parent.path;
|
||||||
if (!cache.directories[cacheKey]) {
|
if (!cache.directories[cacheKey]) {
|
||||||
|
|
|
||||||
Loading…
Add table
Add a link
Reference in a new issue