Closed Bug 1815339 Opened 2 years ago Closed 11 months ago

Use a single-process model for the translations engine

Categories

(Firefox :: Translations, enhancement, P1)

enhancement

Tracking

()

RESOLVED FIXED
121 Branch
Tracking Status
firefox121 --- fixed

People

(Reporter: gregtatum, Assigned: gregtatum)

References

(Blocks 1 open bug, Regressed 2 open bugs)

Details

Attachments

(21 files, 6 obsolete files)

48 bytes, text/x-phabricator-request
Details | Review
48 bytes, text/x-phabricator-request
Details | Review
48 bytes, text/x-phabricator-request
Details | Review
48 bytes, text/x-phabricator-request
Details | Review
48 bytes, text/x-phabricator-request
Details | Review
48 bytes, text/x-phabricator-request
Details | Review
48 bytes, text/x-phabricator-request
Details | Review
48 bytes, text/x-phabricator-request
Details | Review
48 bytes, text/x-phabricator-request
Details | Review
48 bytes, text/x-phabricator-request
Details | Review
48 bytes, text/x-phabricator-request
Details | Review
48 bytes, text/x-phabricator-request
Details | Review
48 bytes, text/x-phabricator-request
Details | Review
48 bytes, text/x-phabricator-request
Details | Review
48 bytes, text/x-phabricator-request
Details | Review
48 bytes, text/x-phabricator-request
Details | Review
48 bytes, text/x-phabricator-request
Details | Review
48 bytes, text/x-phabricator-request
Details | Review
48 bytes, text/x-phabricator-request
Details | Review
48 bytes, text/x-phabricator-request
Details | Review
48 bytes, text/x-phabricator-request
Details | Review

The initial prototype is implemented using a translations engine per-process. This means that multiple pages will each load a translations engine when needed, and can potentially hold on to the memory. This can be a significant amount of memory, at 50mb per tab.

:bholley mentioned in the architecture review

I think we should strongly consider the dedicated process approach. For the use case of a non-english-language speaker trying to browse the english web, the alternative model involves an extra 50MB of memory overhead for each tab, which is enormous.

I think the content-mixing concerns are addressable if we're careful to harden the interface. We already do content mixing with the RDD.

This bug tracks that exploration. It should block shipping to do the investigation, but I'm marking as P3 for now since it's not immediately needed for some of the initial exploration work.

I would like to see what the behavior is like with the current model when we implement the in-page translation so we can measure the impact, so I am making this depend on Bug 1813793

Blocks: 1815343

We should prioritize this decision now that we have a full page implementation that is using a per-tab model, not a centralized translations process.

Blocks: 1820214
Priority: P3 → P2
Blocks: 1820240
No longer blocks: 1820240

This is more work to do than we have time for the Desktop MVP. I'm moving it to the general backlog.

Priority: P2 → P3
No longer blocks: 1820214
No longer blocks: fx-translation

Do you think this should be a blocker for Android support?

Flags: needinfo?(gtatum)

I think this needs some investigating in how Android manages memory. If it's possible to have 2 copies of the engine at once on Android, then yes I would say this is a blocker.

Flags: needinfo?(gtatum)
See Also: → 1844518
Blocks: 1844518
See Also: 1844518

This was removed in Bug 1580907, but the translations feature needs it
restored in order to transfer MessageChannel ports.

Depends on D188828

Priority: P3 → P1
Summary: Investigate using a single-process model for the translations engine → Use a single-process model for the translations engine
Type: task → enhancement
Attachment #9354341 - Attachment is obsolete: true
Attachment #9354340 - Attachment is obsolete: true

This was removed in Bug 1580907, but the translations feature needs it
restored in order to transfer MessageChannel ports.

Assignee: nobody → gtatum
Status: NEW → ASSIGNED

This was causing an error when transferring MessagePorts.

Depends on D190723

This is a drive-by fix for a behavior I was seeing while testing this
patch stack.

Depends on D190724

This is another drive-by that I noticed while working on this patch
stack. It was causing additional errors in tests.

Depends on D190725

This is the "draw the rest of the owl" for this patch stack. This commit
on its own does not complete the work, as it needs the following
about:translations patch to fully complete the work.

I plan on following up after this patch to rename the Translation files
to be more consistent. I found the about:translation files confusing.

Depends on D190726

This is a minor cleanup when I was auditing the message passing.

Depends on D190727

This applies the single process model to about:translations. It should
complete the work for doing the architecture migration.

Depends on D190728

The biggest change is in the TranslationsDocument tests, as it needs a
mocked translator and port.

Depends on D190729

The previous behavior was triggering an assertion in the
StructuredCloneHolder destructor. In this particular case, the dangling
MessagePorts can safely ignored.

Depends on D190730

There is a trade off in automation between being to assert deterministic
behavior, and to have realistic behavior. Here I am going for
determinstic timing of the engine destrucion, by having tests control
when and how engines are destroyed, rather than the timers. The
following test will add an explicit engine destruction test.

Depends on D191472

Pushed by gtatum@mozilla.com: https://hg.mozilla.org/integration/autoland/rev/89cb8b7f9d10 Restore the transfer attribute in JSWindowActor; r=ipc-reviewers,nika https://hg.mozilla.org/integration/autoland/rev/445b93a1c632 Add missing member to the StructuredCloneData move assignment operator; r=asuth https://hg.mozilla.org/integration/autoland/rev/eeccc2c9bede Ensure dangling MessagePorts are cleaned up in JSActorManager; r=asuth https://hg.mozilla.org/integration/autoland/rev/02124d176581 Fix auto-translate errors showing uninitialized screen; r=nordzilla https://hg.mozilla.org/integration/autoland/rev/b06cbb9addb2 Handle a missed promise rejection; r=nordzilla

I'm only pushing the half of the changes that touch the platform. I still have intermittents to fix in the rest of the implementation.

Keywords: leave-open

Depends on D192249

Depends on D192250

This is useful to run locally, but I'm a little nervous to run it in CI
at this time while landing the single process re-architecture.

Depends on D192252

Attachment #9361034 - Attachment is obsolete: true

Depends on D192474

Attachment #9361438 - Attachment is obsolete: true
Pushed by gtatum@mozilla.com: https://hg.mozilla.org/integration/autoland/rev/db47d3031b0b Create a single process translations engine; r=nordzilla https://hg.mozilla.org/integration/autoland/rev/8963fd7f4c0d Remove some dead code in the TranslationsParent; r=nordzilla https://hg.mozilla.org/integration/autoland/rev/b9aef7af3ea3 Teach about:translations how to use the single process engine; r=nordzilla https://hg.mozilla.org/integration/autoland/rev/c8a22c78f5ab Adapt the tests for the single process architecture; r=nordzilla https://hg.mozilla.org/integration/autoland/rev/a6f16f042f1a Disable idle engine destruction in automation; r=nordzilla https://hg.mozilla.org/integration/autoland/rev/610e0ccff562 Add a way to test engine destruction in tests; r=nordzilla https://hg.mozilla.org/integration/autoland/rev/6c60fb698b5a Teach translations engine about forced shutdowns; r=nordzilla https://hg.mozilla.org/integration/autoland/rev/5759e61a5c43 Fix a race condition in the LanguageState event handler; r=nordzilla https://hg.mozilla.org/integration/autoland/rev/31cd841d7a66 Fix a race condition in the engine creation where a null engine was returned; r=nordzilla https://hg.mozilla.org/integration/autoland/rev/af10e19b7c50 Re-work the queued translator; r=nordzilla https://hg.mozilla.org/integration/autoland/rev/7b4dc542f18d Add a pending translations test; r=nordzilla https://hg.mozilla.org/integration/autoland/rev/4cf56d5423e9 Add a fuzzing test for the translations panel; r=nordzilla https://hg.mozilla.org/integration/autoland/rev/7043e0fc92b6 Chain together translations handleEvent and use the same actor; r=nordzilla https://hg.mozilla.org/integration/autoland/rev/2fb9c8c82905 Change the switchTab implementation because of intermittents; r=nordzilla https://hg.mozilla.org/integration/autoland/rev/fcf0140fc734 Change the method for knowing when the engine process is ready; r=nordzilla
Pushed by gtatum@mozilla.com: https://hg.mozilla.org/integration/autoland/rev/523f1fb14f95 Create a single process translations engine; r=nordzilla https://hg.mozilla.org/integration/autoland/rev/e7b365fde37e Remove some dead code in the TranslationsParent; r=nordzilla https://hg.mozilla.org/integration/autoland/rev/141ebb4a1c40 Teach about:translations how to use the single process engine; r=nordzilla https://hg.mozilla.org/integration/autoland/rev/5842315448f4 Adapt the tests for the single process architecture; r=nordzilla https://hg.mozilla.org/integration/autoland/rev/47278ab3a9b4 Disable idle engine destruction in automation; r=nordzilla https://hg.mozilla.org/integration/autoland/rev/a5027d586796 Add a way to test engine destruction in tests; r=nordzilla https://hg.mozilla.org/integration/autoland/rev/460e45bcdb0f Teach translations engine about forced shutdowns; r=nordzilla https://hg.mozilla.org/integration/autoland/rev/8bdd71cb54fa Fix a race condition in the LanguageState event handler; r=nordzilla https://hg.mozilla.org/integration/autoland/rev/8f471e6f3cdc Fix a race condition in the engine creation where a null engine was returned; r=nordzilla https://hg.mozilla.org/integration/autoland/rev/995bef8c941c Re-work the queued translator; r=nordzilla https://hg.mozilla.org/integration/autoland/rev/19171ccc5a2b Add a pending translations test; r=nordzilla https://hg.mozilla.org/integration/autoland/rev/b82dcc8c6363 Add a fuzzing test for the translations panel; r=nordzilla https://hg.mozilla.org/integration/autoland/rev/4d2fc29d11d1 Chain together translations handleEvent and use the same actor; r=nordzilla https://hg.mozilla.org/integration/autoland/rev/14b89d173722 Change the switchTab implementation because of intermittents; r=nordzilla https://hg.mozilla.org/integration/autoland/rev/ea0ffa3e957e Change the method for knowing when the engine process is ready; r=nordzilla https://hg.mozilla.org/integration/autoland/rev/8249287377cd Flip the assertion for the GeckoView translation test; r=geckoview-reviewers,ohall

The changes here also cause a spike in failure rate for Bug 1775815 with this failure log: https://treeherder.mozilla.org/logviewer?job_id=434738253&repo=autoland
Please have a look over it before relanding. Thank you.

[task 2023-11-02T19:23:53.121Z] 19:23:53     INFO - TEST-PASS | browser/components/urlbar/tests/browser/browser_searchMode_switchTabs.js | Expected placeholder l10n when search mode is inactive - {"args":{"name":"Google"},"id":"urlbar-placeholder-with-name"} deepEqual {"id":"urlbar-placeholder-with-name","args":{"name":"Google"}} - 
[task 2023-11-02T19:23:53.122Z] 19:23:53     INFO - Waiting for the urlbar view to open
[task 2023-11-02T19:23:53.122Z] 19:23:53     INFO - Urlbar view opened
[task 2023-11-02T19:23:53.123Z] 19:23:53     INFO - Buffered messages finished
[task 2023-11-02T19:23:53.123Z] 19:23:53     INFO - TEST-UNEXPECTED-FAIL | browser/components/urlbar/tests/browser/browser_searchMode_switchTabs.js | Test timed out - 
[task 2023-11-02T19:23:53.123Z] 19:23:53     INFO - Closing the view directly
[task 2023-11-02T19:23:53.124Z] 19:23:53     INFO - Waiting for the view to close
[task 2023-11-02T19:23:53.124Z] 19:23:53     INFO - Urlbar view closed
[task 2023-11-02T19:23:53.352Z] 19:23:53     INFO - GECKO(20353) | MEMORY STAT | vsize 4291MB | residentFast 805MB | heapAllocated 551MB
[task 2023-11-02T19:23:53.353Z] 19:23:53     INFO - TEST-OK | browser/components/urlbar/tests/browser/browser_searchMode_switchTabs.js | took 45580ms
[task 2023-11-02T19:23:53.355Z] 19:23:53     INFO - Not taking screenshot here: see the one that was previously logged
[task 2023-11-02T19:23:53.355Z] 19:23:53     INFO - TEST-UNEXPECTED-FAIL | browser/components/urlbar/tests/browser/browser_searchMode_switchTabs.js | Found a tab after previous test timed out: http://example.com/2 - 
[task 2023-11-02T19:23:53.370Z] 19:23:53     INFO - Not taking screenshot here: see the one that was previously logged
[task 2023-11-02T19:23:53.372Z] 19:23:53     INFO - TEST-UNEXPECTED-FAIL | browser/components/urlbar/tests/browser/browser_searchMode_switchTabs.js | Found a tab after previous test timed out: http://example.com/1 - 
[task 2023-11-02T19:23:53.386Z] 19:23:53     INFO - Not taking screenshot here: see the one that was previously logged
[task 2023-11-02T19:23:53.387Z] 19:23:53     INFO - TEST-UNEXPECTED-FAIL | browser/components/urlbar/tests/browser/browser_searchMode_switchTabs.js | Found a tab after previous test timed out: http://example.com/0 - 
[task 2023-11-02T19:23:53.416Z] 19:23:53     INFO - checking window state
[task 2023-11-02T19:23:53.443Z] 19:23:53     INFO - TEST-START | browser/components/urlbar/tests/browser/browser_searchSettings.js
[task 2023-11-02T19:23:53.794Z] 19:23:53     INFO - Not taking screenshot here: see the one that was previously logged
[task 2023-11-02T19:23:53.795Z] 19:23:53     INFO - Buffered messages logged at 19:23:53
[task 2023-11-02T19:23:53.796Z] 19:23:53     INFO - Entering test bound 
[task 2023-11-02T19:23:53.796Z] 19:23:53     INFO - Buffered messages finished
[task 2023-11-02T19:23:53.796Z] 19:23:53     INFO - TEST-UNEXPECTED-FAIL | browser/components/urlbar/tests/browser/browser_searchMode_switchTabs.js | Uncaught exception received from previously timed out test bound switchTabs - at chrome://mochitests/content/browser/browser/components/urlbar/tests/browser/browser_searchMode_switchTabs.js:98 - ReferenceError: UrlbarTestUtils is not defined
[task 2023-11-02T19:23:53.796Z] 19:23:53     INFO - Stack trace:
[task 2023-11-02T19:23:53.796Z] 19:23:53     INFO - switchTabs@chrome://mochitests/content/browser/browser/components/urlbar/tests/browser/browser_searchMode_switchTabs.js:98:3
[task 2023-11-02T19:23:53.796Z] 19:23:53     INFO - async*handleTask@chrome://mochikit/content/browser-test.js:1134:26
[task 2023-11-02T19:23:53.796Z] 19:23:53     INFO - _runTaskBasedTest@chrome://mochikit/content/browser-test.js:1206:18
[task 2023-11-02T19:23:53.797Z] 19:23:53     INFO - Tester_execTest@chrome://mochikit/content/browser-test.js:1348:14
[task 2023-11-02T19:23:53.797Z] 19:23:53     INFO - nextTest/<@chrome://mochikit/content/browser-test.js:1123:14
[task 2023-11-02T19:23:53.797Z] 19:23:53     INFO - SimpleTest.waitForFocus/<@chrome://mochikit/content/tests/SimpleTest/SimpleTest.js:1058:13
[task 2023-11-02T19:23:53.802Z] 19:23:53     INFO - Waiting for the urlbar view to open
[task 2023-11-02T19:23:53.813Z] 19:23:53     INFO - GECKO(20353) | JavaScript error: chrome://mochikit/content/browser-test.js, line 1197: TypeError: can't access property "shift", currentScope.__tasks is null
[task 2023-11-02T19:23:53.818Z] 19:23:53     INFO - Console message: [JavaScript Error: "TypeError: can't access property "shift", currentScope.__tasks is null" {file: "chrome://mochikit/content/browser-test.js" line: 1197}]
[task 2023-11-02T19:23:53.818Z] 19:23:53     INFO - _runTaskBasedTest@chrome://mochikit/content/browser-test.js:1209:3
[task 2023-11-02T19:23:53.818Z] 19:23:53     INFO - async*Tester_execTest@chrome://mochikit/content/browser-test.js:1348:14
[task 2023-11-02T19:23:53.818Z] 19:23:53     INFO - nextTest/<@chrome://mochikit/content/browser-test.js:1123:14
[task 2023-11-02T19:23:53.818Z] 19:23:53     INFO - SimpleTest.waitForFocus/<@chrome://mochikit/content/tests/SimpleTest/SimpleTest.js:1058:13
[task 2023-11-02T19:23:53.818Z] 19:23:53     INFO - 
[task 2023-11-02T19:23:53.870Z] 19:23:53     INFO - Urlbar view opened
[task 2023-11-02T19:23:53.955Z] 19:23:53     INFO - Awaiting custom close function
[task 2023-11-02T19:23:53.966Z] 19:23:53     INFO - Done awaiting custom close function
[task 2023-11-02T19:23:53.967Z] 19:23:53     INFO - Waiting for the view to close
[task 2023-11-02T19:23:53.967Z] 19:23:53     INFO - Urlbar view closed
[task 2023-11-02T19:23:54.279Z] 19:23:54     INFO - TEST-PASS | browser/components/urlbar/tests/browser/browser_searchSettings.js | Should have loaded the right page - 
[task 2023-11-02T19:23:54.350Z] 19:23:54     INFO - Not taking screenshot here: see the one that was previously logged
[task 2023-11-02T19:23:54.352Z] 19:23:54     INFO - TEST-UNEXPECTED-FAIL | browser/components/urlbar/tests/browser/browser_searchSettings.js | A promise chain failed to handle a rejection: can't access property "shift", currentScope.__tasks is null - stack: _runTaskBasedTest@chrome://mochikit/content/browser-test.js:1197:13
[task 2023-11-02T19:23:54.352Z] 19:23:54     INFO - async*Tester_execTest@chrome://mochikit/content/browser-test.js:1348:14
[task 2023-11-02T19:23:54.353Z] 19:23:54     INFO - nextTest/<@chrome://mochikit/content/browser-test.js:1123:14
[task 2023-11-02T19:23:54.353Z] 19:23:54     INFO - SimpleTest.waitForFocus/<@chrome://mochikit/content/tests/SimpleTest/SimpleTest.js:1058:13
[task 2023-11-02T19:23:54.354Z] 19:23:54     INFO - Rejection date: Thu Nov 02 2023 19:23:53 GMT+0000 (Coordinated Universal Time) - false == true - {"filename":"resource://testing-common/PromiseTestUtils.sys.mjs","name":"assertNoUncaughtRejections","sourceId":589,"lineNumber":266,"columnNumber":14,"sourceLine":"","asyncCause":null,"asyncCaller":null,"caller":{"filename":"chrome://mochikit/content/browser-test.js","name":"handleTask","sourceId":553,"lineNumber":1162,"columnNumber":22,"sourceLine":"","asyncCause":null,"asyncCaller":{"filename":"chrome://mochikit/content/browser-test.js","name":"_runTaskBasedTest","sourceId":553,"lineNumber":1206,"columnNumber":18,"sourceLine":"","asyncCause":null,"asyncCaller":null,"caller":{"filename":"chrome://mochikit/content/browser-test.js","name":"Tester_execTest","sourceId":553,"lineNumber":1348,"columnNumber":14,"sourceLine":"","asyncCause":null,"asyncCaller":null,"caller":{"filename":"chrome://mochikit/content/browser-test.js","name":"nextTest/<","sourceId":553,"lineNumber":1123,"columnNumber":14,"sourceLine":"","asyncCause":null,"asyncCaller":null,"caller":{"filename":"chrome://mochikit/content/tests/SimpleTest/SimpleTest.js","name":"SimpleTest.waitForFocus/<","sourceId":580,"lineNumber":1058,"columnNumber":13,"sourceLine":"","asyncCause":null,"asyncCaller":null,"caller":null,"formattedStack":"SimpleTest.waitForFocus/<@chrome://mochikit/content/tests/SimpleTest/SimpleTest.js:1058:13\n","nativeSavedFrame":{}},"formattedStack":"nextTest/<@chrome://mochikit/content/browser-test.js:1123:14\nSimpleTest.waitForFocus/<@chrome://mochikit/content/tests/SimpleTest/SimpleTest.js:1058:13\n","nativeSavedFrame":{}},"formattedStack":"Tester_execTest@chrome://mochikit/content/browser-test.js:1348:14\nnextTest/<@chrome://mochikit/content/browser-test.js:1123:14\nSimpleTest.waitForFocus/<@chrome://mochikit/content/tests/SimpleTest/SimpleTest.js:1058:13\n","nativeSavedFrame":{}},"formattedStack":"async*_runTaskBasedTest@chrome://mochikit/content/browser-test.js:1206:18\nTester_execTest@chrome://mochikit/content/browser-test.js:1348:14\nnextTest/<@chrome://mochikit/content/browser-test.js:1123:14\nSimpleTest.waitForFocus/<@chrome://mochikit/content/tests/SimpleTest/SimpleTest.js:1058:13\n","nativeSavedFrame":{}},"caller":null,"formattedStack":"handleTask@chrome://mochikit/content/browser-test.js:1162:22\nasync*_runTaskBasedTest@chrome://mochikit/content/browser-test.js:1206:18\nTester_execTest@chrome://mochikit/content/browser-test.js:1348:14\nnextTest/<@chrome://mochikit/content/browser-test.js:1123:14\nSimpleTest.waitForFocus/<@chrome://mochikit/content/tests/SimpleTest/SimpleTest.js:1058:13\n","nativeSavedFrame":{}},"formattedStack":"assertNoUncaughtRejections@resource://testing-common/PromiseTestUtils.sys.mjs:266:14\nhandleTask@chrome://mochikit/content/browser-test.js:1162:22\nasync*_runTaskBasedTest@chrome://mochikit/content/browser-test.js:1206:18\nTester_execTest@chrome://mochikit/content/browser-test.js:1348:14\nnextTest/<@chrome://mochikit/content/browser-test.js:1123:14\nSimpleTest.waitForFocus/<@chrome://mochikit/content/tests/SimpleTest/SimpleTest.js:1058:13\n","nativeSavedFrame":{}}
[task 2023-11-02T19:23:54.354Z] 19:23:54     INFO - Stack trace:
[task 2023-11-02T19:23:54.354Z] 19:23:54     INFO - resource://testing-common/PromiseTestUtils.sys.mjs:assertNoUncaughtRejections:266
[task 2023-11-02T19:23:54.354Z] 19:23:54     INFO - chrome://mochikit/content/browser-test.js:handleTask:1162
[task 2023-11-02T19:23:54.355Z] 19:23:54     INFO - chrome://mochikit/content/browser-test.js:_runTaskBasedTest:1206
[task 2023-11-02T19:23:54.355Z] 19:23:54     INFO - chrome://mochikit/content/browser-test.js:Tester_execTest:1348
[task 2023-11-02T19:23:54.355Z] 19:23:54     INFO - chrome://mochikit/content/browser-test.js:nextTest/<:1123
[task 2023-11-02T19:23:54.355Z] 19:23:54     INFO - chrome://mochikit/content/tests/SimpleTest/SimpleTest.js:SimpleTest.waitForFocus/<:1058
[task 2023-11-02T19:23:54.356Z] 19:23:54     INFO - Leaving test bound 
[task 2023-11-02T19:23:54.356Z] 19:23:54     INFO - Closing the view directly
[task 2023-11-02T19:23:54.356Z] 19:23:54     INFO - Waiting for the view to close
[task 2023-11-02T19:23:54.357Z] 19:23:54     INFO - Urlbar view closed
[task 2023-11-02T19:23:54.862Z] 19:23:54     INFO - GECKO(20353) | MEMORY STAT | vsize 12478MB | residentFast 803MB | heapAllocated 551MB

Also a spike in this new frequent intermittent - https://treeherder.mozilla.org/logviewer?job_id=434743590&repo=autoland

TEST-UNEXPECTED-FAIL | toolkit/components/shopping/test/browser/browser_shopping_ads_test.js | We haven't seend the ad yet - false == true - {"filename":"chrome://mochitests/content/browser/toolkit/components/shopping/test/browser/browser_shopping_ads_test.js","name":"test_ad_attribution/<","sourceId":621,"lineNumber":183,"columnNumber":12,"sourceLine":"","asyncCause":null,"asyncCaller":{"filename":"resource://testing-common/BrowserTestUtils.s - backfills

toolkit/components/shopping/test/browser/browser_shopping_ads_test.js

This one is relying on an arbitrary timeout, so it spiking in failing is due to the design of the test. I did a bunch of profiling and tried to mitigate any code running during the test, but it may fail arbitrarily due to timing changes.

Flags: needinfo?(gtatum)

Depends on D192594

Depends on D192700

Attachment #9361868 - Attachment is obsolete: true
Pushed by gtatum@mozilla.com: https://hg.mozilla.org/integration/autoland/rev/17d955b79499 Create a single process translations engine; r=nordzilla https://hg.mozilla.org/integration/autoland/rev/adce50eab2af Remove some dead code in the TranslationsParent; r=nordzilla https://hg.mozilla.org/integration/autoland/rev/26d476f207e3 Teach about:translations how to use the single process engine; r=nordzilla https://hg.mozilla.org/integration/autoland/rev/57907292004b Adapt the tests for the single process architecture; r=nordzilla https://hg.mozilla.org/integration/autoland/rev/df4dd62aadd9 Disable idle engine destruction in automation; r=nordzilla https://hg.mozilla.org/integration/autoland/rev/759d1245402c Add a way to test engine destruction in tests; r=nordzilla https://hg.mozilla.org/integration/autoland/rev/5883881cd644 Teach translations engine about forced shutdowns; r=nordzilla https://hg.mozilla.org/integration/autoland/rev/1d9ac11f231a Fix a race condition in the LanguageState event handler; r=nordzilla https://hg.mozilla.org/integration/autoland/rev/f101892bd4ee Fix a race condition in the engine creation where a null engine was returned; r=nordzilla https://hg.mozilla.org/integration/autoland/rev/8f5c078bacd0 Re-work the queued translator; r=nordzilla https://hg.mozilla.org/integration/autoland/rev/423ef0a9e06e Add a pending translations test; r=nordzilla https://hg.mozilla.org/integration/autoland/rev/324096d2a767 Add a fuzzing test for the translations panel; r=nordzilla https://hg.mozilla.org/integration/autoland/rev/1927a985ea90 Chain together translations handleEvent and use the same actor; r=nordzilla https://hg.mozilla.org/integration/autoland/rev/9f1278cda6c5 Change the switchTab implementation because of intermittents; r=nordzilla https://hg.mozilla.org/integration/autoland/rev/e34da5159ec7 Change the method for knowing when the engine process is ready; r=nordzilla https://hg.mozilla.org/integration/autoland/rev/e70c088bf41e Flip the assertion for the GeckoView translation test; r=geckoview-reviewers,ohall https://hg.mozilla.org/integration/autoland/rev/90f5a1a99e4a Make the simd detection synchronous; r=nordzilla

Backed out for causing geckoview failures in testIsTranslationsEngineSupported

  • Backout link
  • Push with failures
  • Failure Log
  • Failure line: TEST-UNEXPECTED-FAIL | org.mozilla.geckoview.test.TranslationsTest#testIsTranslationsEngineSupported | org.mozilla.geckoview.test.util.UiThreadUtils$TimeoutException: Timed out after 30000ms
Flags: needinfo?(gtatum)
Pushed by gtatum@mozilla.com: https://hg.mozilla.org/integration/autoland/rev/bbd08ae456bc Create a single process translations engine; r=nordzilla https://hg.mozilla.org/integration/autoland/rev/ae5c1a15133d Remove some dead code in the TranslationsParent; r=nordzilla https://hg.mozilla.org/integration/autoland/rev/7f71156528dd Teach about:translations how to use the single process engine; r=nordzilla https://hg.mozilla.org/integration/autoland/rev/dfac8173ef17 Adapt the tests for the single process architecture; r=nordzilla https://hg.mozilla.org/integration/autoland/rev/a1e7b04a1698 Disable idle engine destruction in automation; r=nordzilla https://hg.mozilla.org/integration/autoland/rev/3dd6516f8ab0 Add a way to test engine destruction in tests; r=nordzilla https://hg.mozilla.org/integration/autoland/rev/8647f0b94a36 Teach translations engine about forced shutdowns; r=nordzilla https://hg.mozilla.org/integration/autoland/rev/5b7fe4f10722 Fix a race condition in the LanguageState event handler; r=nordzilla https://hg.mozilla.org/integration/autoland/rev/387c7d2a6d34 Fix a race condition in the engine creation where a null engine was returned; r=nordzilla https://hg.mozilla.org/integration/autoland/rev/cc8bdfa7de33 Re-work the queued translator; r=nordzilla https://hg.mozilla.org/integration/autoland/rev/7f25bbb7965d Add a pending translations test; r=nordzilla https://hg.mozilla.org/integration/autoland/rev/32f9bd1e59af Add a fuzzing test for the translations panel; r=nordzilla https://hg.mozilla.org/integration/autoland/rev/d5b3306f5004 Chain together translations handleEvent and use the same actor; r=nordzilla https://hg.mozilla.org/integration/autoland/rev/c6b8752fc6c1 Change the switchTab implementation because of intermittents; r=nordzilla https://hg.mozilla.org/integration/autoland/rev/2b43242b9ac6 Change the method for knowing when the engine process is ready; r=nordzilla https://hg.mozilla.org/integration/autoland/rev/aa6076096d4f Flip the assertion for the GeckoView translation test; r=geckoview-reviewers,ohall

Backed out for causing failures due to inaccessible property in translationsPanel.js

[task 2023-11-04T23:53:40.120Z] 23:53:40     INFO - TEST-START | toolkit/components/places/tests/browser/browser_bug1601563.js
[task 2023-11-04T23:53:40.457Z] 23:53:40     INFO - TEST-INFO | started process screentopng
[task 2023-11-04T23:53:40.832Z] 23:53:40     INFO - TEST-INFO | screentopng: exit 0
[task 2023-11-04T23:53:40.833Z] 23:53:40     INFO - Buffered messages logged at 23:53:40
[task 2023-11-04T23:53:40.833Z] 23:53:40     INFO - Entering test bound 
[task 2023-11-04T23:53:40.834Z] 23:53:40     INFO - Console message: [JavaScript Warning: "This page is in Quirks Mode. Page layout may be impacted. For Standards Mode use “<!DOCTYPE html>”." {file: "http://example.com/tests/toolkit/components/places/tests/browser/1601563-1.html" line: 9}]
[task 2023-11-04T23:53:40.835Z] 23:53:40     INFO - Buffered messages finished
[task 2023-11-04T23:53:40.837Z] 23:53:40     INFO - TEST-UNEXPECTED-FAIL | toolkit/components/places/tests/browser/browser_bug1601563.js | uncaught exception - TypeError: can't access property "error", this.console is undefined at handleEvent@chrome://browser/content/translations/translationsPanel.js:1485:7
[task 2023-11-04T23:53:40.837Z] 23:53:40     INFO - dispatch@resource://gre/actors/TranslationsParent.sys.mjs:2677:13
[task 2023-11-04T23:53:40.838Z] 23:53:40     INFO - set detectedLanguages@resource://gre/actors/TranslationsParent.sys.mjs:2720:10
[task 2023-11-04T23:53:40.838Z] 23:53:40     INFO - receiveMessage@resource://gre/actors/TranslationsParent.sys.mjs:824:9
[task 2023-11-04T23:53:40.839Z] 23:53:40     INFO - async*handleEvent@resource://gre/actors/TranslationsChild.sys.mjs:29:14
[task 2023-11-04T23:53:40.840Z] 23:53:40     INFO - 
[task 2023-11-04T23:53:40.840Z] 23:53:40     INFO - Stack trace:
[task 2023-11-04T23:53:40.840Z] 23:53:40     INFO - chrome://mochikit/content/tests/SimpleTest/SimpleTest.js:simpletestOnerror:2044
[task 2023-11-04T23:53:40.841Z] 23:53:40     INFO - resource://gre/actors/TranslationsParent.sys.mjs:dispatch:2677
[task 2023-11-04T23:53:40.841Z] 23:53:40     INFO - resource://gre/actors/TranslationsParent.sys.mjs:set detectedLanguages:2720
[task 2023-11-04T23:53:40.842Z] 23:53:40     INFO - resource://gre/actors/TranslationsParent.sys.mjs:receiveMessage:824
[task 2023-11-04T23:53:40.842Z] 23:53:40     INFO - resource://gre/actors/TranslationsChild.sys.mjs:handleEvent:29
[task 2023-11-04T23:53:40.845Z] 23:53:40     INFO - GECKO(2500) | JavaScript error: chrome://browser/content/translations/translationsPanel.js, line 1485: TypeError: can't access property "error", this.console is undefined
[task 2023-11-04T23:53:40.847Z] 23:53:40     INFO - Console message: [JavaScript Error: "TypeError: can't access property "error", this.console is undefined" {file: "chrome://browser/content/translations/translationsPanel.js" line: 1485}]
[task 2023-11-04T23:53:40.849Z] 23:53:40     INFO - handleEvent@chrome://browser/content/translations/translationsPanel.js:1485:7
[task 2023-11-04T23:53:40.849Z] 23:53:40     INFO - dispatch@resource://gre/actors/TranslationsParent.sys.mjs:2677:13
[task 2023-11-04T23:53:40.850Z] 23:53:40     INFO - set detectedLanguages@resource://gre/actors/TranslationsParent.sys.mjs:2720:10
[task 2023-11-04T23:53:40.850Z] 23:53:40     INFO - receiveMessage@resource://gre/actors/TranslationsParent.sys.mjs:824:9
[task 2023-11-04T23:53:40.854Z] 23:53:40     INFO - async*handleEvent@resource://gre/actors/TranslationsChild.sys.mjs:29:14
[task 2023-11-04T23:53:40.855Z] 23:53:40     INFO - 
[task 2023-11-04T23:53:40.856Z] 23:53:40     INFO - TEST-PASS | toolkit/components/places/tests/browser/browser_bug1601563.js | First title should match the page - 
Pushed by gtatum@mozilla.com: https://hg.mozilla.org/integration/autoland/rev/6b9fc1fdc8dc Create a single process translations engine; r=nordzilla https://hg.mozilla.org/integration/autoland/rev/c8dcfc5a190c Remove some dead code in the TranslationsParent; r=nordzilla https://hg.mozilla.org/integration/autoland/rev/a21a1b111960 Teach about:translations how to use the single process engine; r=nordzilla https://hg.mozilla.org/integration/autoland/rev/6b94f330d633 Adapt the tests for the single process architecture; r=nordzilla https://hg.mozilla.org/integration/autoland/rev/aa85de09223d Disable idle engine destruction in automation; r=nordzilla https://hg.mozilla.org/integration/autoland/rev/3a38c5e37c32 Add a way to test engine destruction in tests; r=nordzilla https://hg.mozilla.org/integration/autoland/rev/27d239375e9e Teach translations engine about forced shutdowns; r=nordzilla https://hg.mozilla.org/integration/autoland/rev/57c1fc5db9aa Fix a race condition in the LanguageState event handler; r=nordzilla https://hg.mozilla.org/integration/autoland/rev/0c0438472e17 Fix a race condition in the engine creation where a null engine was returned; r=nordzilla https://hg.mozilla.org/integration/autoland/rev/acbbe51d32b7 Re-work the queued translator; r=nordzilla https://hg.mozilla.org/integration/autoland/rev/598c9e95db0b Add a pending translations test; r=nordzilla https://hg.mozilla.org/integration/autoland/rev/473e6b88bbfc Add a fuzzing test for the translations panel; r=nordzilla https://hg.mozilla.org/integration/autoland/rev/4b7c61230820 Chain together translations handleEvent and use the same actor; r=nordzilla https://hg.mozilla.org/integration/autoland/rev/db0151c1d3f1 Change the switchTab implementation because of intermittents; r=nordzilla https://hg.mozilla.org/integration/autoland/rev/a589b841587f Change the method for knowing when the engine process is ready; r=nordzilla https://hg.mozilla.org/integration/autoland/rev/e4d362eebc14 Flip the assertion for the GeckoView translation test; r=geckoview-reviewers,ohall

Comment on attachment 9361869 [details]
Bug 1815339 - Make the simd detection synchronous; r?nordzilla!

Revision D192701 was moved to bug 1863335. Setting attachment 9361869 [details] to obsolete.

Attachment #9361869 - Attachment is obsolete: true
Flags: needinfo?(gtatum)

Marking as fixed, as I had one outstanding patch that I moved over to another bug this morning.

Status: ASSIGNED → RESOLVED
Closed: 11 months ago
Resolution: --- → FIXED
Regressions: 1863227
Attachment #9361869 - Attachment is obsolete: false
Target Milestone: --- → 121 Branch

Comment on attachment 9361869 [details]
Bug 1815339 - Make the simd detection synchronous; r?nordzilla!

Revision D192701 was moved to bug 1863335. Setting attachment 9361869 [details] to obsolete.

Attachment #9361869 - Attachment is obsolete: true
Regressions: 1871625
You need to log in before you can comment on or make changes to this bug.

Attachment

General

Created:
Updated:
Size: