broken search, TypeError: can't access property "name", engine is null in SearchModeSwitcher.sys.mjs
Categories
(Firefox :: Search, defect)
Tracking
()
| Tracking | Status | |
|---|---|---|
| firefox-esr115 | --- | unaffected |
| firefox-esr128 | --- | unaffected |
| firefox129 | --- | unaffected |
| firefox130 | --- | unaffected |
| firefox131 | blocking | fixed |
People
(Reporter: jcristau, Assigned: mbeier)
References
(Regression)
Details
(Keywords: regression)
Attachments
(1 file)
After updating to the latest nightly (20240822092117), the address bar and new tab won't search; browser console shows TypeErrors:
TypeError: can't access property "name", engine is null at SearchModeSwitcher.sys.mjs:227:16, followed by
TypeError: can't access property "replace", engine.id is undefined
get resource://gre/modules/SearchSettings.sys.mjs:222
ContentSearchParent.sys.mjs:372:17
_currentEventPromise resource:///actors/ContentSearchParent.sys.mjs:372
_processEventQueue resource:///actors/ContentSearchParent.sys.mjs:378
receiveMessage resource:///actors/ContentSearchParent.sys.mjs:676
(Async: JSActor query)
handleEvent resource:///actors/ContentSearchChild.sys.mjs:11
_sendMsg chrome://browser/content/contentSearchHandoffUI.js:150
ContentSearchHandoffUIController chrome://browser/content/contentSearchHandoffUI.js:13
onInputMountHandoff resource://activity-stream/data/content/activity-stream.bundle.js:10123
React 11
Redux 4
messageMiddleware resource://activity-stream/data/content/activity-stream.bundle.js:11634
rehydrationMiddleware resource://activity-stream/data/content/activity-stream.bundle.js:11667
initStore resource://activity-stream/data/content/activity-stream.bundle.js:11708
receiveMessage resource://gre/actors/RemotePageChild.sys.mjs:106
(Async: JSActor query)
send resource://activity-stream/lib/ActivityStreamMessageChannel.sys.mjs:125
middleware resource://activity-stream/lib/ActivityStreamMessageChannel.sys.mjs:74
_middleware resource://activity-stream/lib/Store.sys.mjs:49
method resource://activity-stream/lib/Store.sys.mjs:28
reply resource://activity-stream/lib/NewTabInit.sys.mjs:29
onAction resource://activity-stream/lib/NewTabInit.sys.mjs:41
_middleware resource://activity-stream/lib/Store.sys.mjs:52
method resource://activity-stream/lib/Store.sys.mjs:28
onActionFromContent resource://activity-stream/lib/ActivityStreamMessageChannel.sys.mjs:94
onMessage resource://activity-stream/lib/ActivityStreamMessageChannel.sys.mjs:331
notifyActivityStreamChannel resource:///actors/AboutNewTabParent.sys.mjs:135
receiveMessage resource:///actors/AboutNewTabParent.sys.mjs:103
(Async: JSActor query)
RPMSendAsyncMessage resource://gre/actors/RemotePageChild.sys.mjs:146
accessCheckedFn resource://gre/actors/RemotePageChild.sys.mjs:77
messageMiddleware resource://activity-stream/data/content/activity-stream.bundle.js:11631
rehydrationMiddleware resource://activity-stream/data/content/activity-stream.bundle.js:11662
doRequest resource://activity-stream/data/content/activity-stream.bundle.js:11759
(Async: requestIdleCallback handler)
renderWithoutState resource://activity-stream/data/content/activity-stream.bundle.js:11765
<anonymous> resource://activity-stream/data/content/newtab-render.js:10
handleEvent resource:///actors/AboutNewTabChild.sys.mjs:70
| Reporter | ||
Comment 1•1 year ago
|
||
[Tracking Requested - why for this release]: I've paused nightly updates for this.
Comment 2•1 year ago
|
||
Set release status flags based on info from the regressing bug 1870687
Comment 3•1 year ago
•
|
||
Does this depend on having browser.urlbar.scotchBonnet.enableOverride set to true?
Ah it's likely just the switcher complaining about search engines being broken (Bug 1914390 and Bug 1906541 are tracking those problems)
Updated•1 year ago
|
Updated•1 year ago
|
Comment 4•1 year ago
|
||
I was able to get a search.json.mozlz4 file that reproduces this and discovered this within it:
{
"_name": "Amazon.com",
"_isAppProvided": true,
"_metaData": {
"hideOneOffButton": false
}
}
The rest of the _isAppProvided engines all have an id set.
I think what's happened here is:
- The profile had previously been used in more than one locale or region, meaning that Amazon.com was at some stage in the past displayed.
- When we implemented settings version 7, we added a migration which filled in the engine ids based on searching the installed engines and looking them up by name.
- Where the name doesn't exist, the entry is left alone, and has no id value.
- We've now implemented a migration for the
idvalue itself, which does a replacement within the string - however this fails when there's no string (i.e. no id) available.
| Assignee | ||
Comment 5•1 year ago
|
||
Updated•1 year ago
|
Updated•1 year ago
|
Comment 8•1 year ago
|
||
| bugherder | ||
Comment 9•1 year ago
|
||
| bugherder | ||
Updated•1 year ago
|
Comment 10•1 year ago
|
||
I am attempting to reproduce your issue by running Nightly build 20240822092117 and performing some searching from the new tab and the awesomebar. No issues or errors were observed.
The mentioned features are handled by Adrian Florinescu so I will pass this report along to him. Thank you!
Comment 11•1 year ago
|
||
FYI, couldn't reproduce it reliable with rather exaustive time investment, so setting qe- for now.
Further discussing with :standard8, this is related to with locale switching & upgrading, so it is rather hard to verify/cover over with reccurent manual testing.
Description
•