mirror of
https://github.com/zotero/zotero.git
synced 2026-10-03 02:21:49 +00:00
Scaffold & RemoteTranslate: Improve defer handling
- Use extracted delay routine - Pass defer into newTest()
This commit is contained in:
parent
5f983d71c1
commit
3a816fad55
3 changed files with 10 additions and 20 deletions
|
|
@ -2113,20 +2113,6 @@ var Scaffold = new function () {
|
|||
requireSuccessfulStatus: true
|
||||
});
|
||||
|
||||
if (test.defer) {
|
||||
_logOutput("Waiting " + (Zotero_TranslatorTester.DEFER_DELAY / 1000)
|
||||
+ " second(s) for page content to settle");
|
||||
await Zotero.Promise.delay(Zotero_TranslatorTester.DEFER_DELAY);
|
||||
}
|
||||
else {
|
||||
// Wait just a bit for things to settle
|
||||
await Zotero.Promise.delay(1000);
|
||||
}
|
||||
|
||||
if (browser.currentURI.spec != test.url) {
|
||||
_logOutput("Page URL differs from test. Will be updated. " + browser.currentURI.spec);
|
||||
}
|
||||
|
||||
let translate = new RemoteTranslate({ disableErrorReporting: true });
|
||||
try {
|
||||
await translate.setBrowser(browser);
|
||||
|
|
@ -2136,10 +2122,11 @@ var Scaffold = new function () {
|
|||
translate.setHandler("error", _error);
|
||||
translate.setHandler("newTestDetectionFailed", _confirmCreateExpectedFailTest);
|
||||
|
||||
let newTest = await translate.newTest();
|
||||
let newTest = await translate.newTest({ defer: test.defer });
|
||||
newTest = _sanitizeItemsInTest(newTest);
|
||||
if (test.defer) {
|
||||
newTest.defer = true;
|
||||
|
||||
if (newTest.url != test.url) {
|
||||
_logOutput("Page URL differs from test. Will be updated. " + newTest.url);
|
||||
}
|
||||
|
||||
this.newTests.push(newTest);
|
||||
|
|
|
|||
|
|
@ -248,11 +248,13 @@ class RemoteTranslate {
|
|||
/**
|
||||
* Create a test on the browser's current page.
|
||||
*
|
||||
* @param {Object} [testInit]
|
||||
* @param {boolean | number} [testInit.defer]
|
||||
* @return {Promise<Object | null>} Resolves to the created test object (null on error)
|
||||
*/
|
||||
newTest() {
|
||||
newTest(testInit) {
|
||||
let actor = this._browser.browsingContext.currentWindowGlobal.getActor("Translation");
|
||||
return actor.sendQuery("newTest", { translator: this._translator, id: this._id });
|
||||
return actor.sendQuery("newTest", { translator: this._translator, testInit, id: this._id });
|
||||
}
|
||||
|
||||
/**
|
||||
|
|
|
|||
|
|
@ -115,7 +115,7 @@ class TranslationChild extends JSWindowActorChild {
|
|||
}
|
||||
}
|
||||
case 'newTest': {
|
||||
let { translator, id } = data;
|
||||
let { translator, testInit, id } = data;
|
||||
let { Zotero_TranslatorTester } = this._sandbox;
|
||||
try {
|
||||
let tester = new Zotero_TranslatorTester(
|
||||
|
|
@ -124,6 +124,7 @@ class TranslationChild extends JSWindowActorChild {
|
|||
(_tester, obj) => this._debug(id, obj),
|
||||
this._makeTranslatorProvider(id),
|
||||
);
|
||||
await tester.waitForDeferDelay(testInit?.defer);
|
||||
return await new Promise((resolve) => {
|
||||
tester.newTest(
|
||||
this.contentWindow.document,
|
||||
|
|
|
|||
Loading…
Add table
Reference in a new issue