If i clone (or rename) profile, default search engine always reset to google. How to fix this issue?
I use multiple profiles with "- p %profile% --no-remote". Sometimes I make a copy of my profile under a different name and use it. I also actively use the search from the address bar with the keywords of search engines and so on. I have been using Quantum since version 60, hence my profiles have been updated from 60 to the current 63. I recently discovered that after copying (or renaming) my profile all my search plugins disappear and default ones are restored. If I added them manually, after a while they disappeared again. I searched the Internet, found several similar problems and came to the conclusion that this is a bug, and in 63 it is already fixed. Then I recreated the profile in 63 and moved my plugins, bookmarks, passwords and settings from the old one. The problem disappeared, but now I found that when copying or renaming a profile, the search is always assigned to Google. But i need DuckDuckGo.
I using Firefox 63.0.3 x64 on Windows 7 SP1 x64. No antivirus software, no anti-malware, etc. I try this issue with clear FF installation and clear profile with no addons and it's remaining. I have no viruses on my PC, and i create VM on VirtualBox with clear OS and issue still remaining. It not so critical, but i spent a lot of time migrating to new profile, and want all required features working as expected.
I found out that if you want search engines were normally transferred to another profile, you should: 1. NOT to remove unneeded default search engines, just uncheck them to make invisible. 2. Check this options in about:config are set: browser.search.useDBForOrder = true browser.search.hiddenOneOffs = Google,Bing,Amazon.com,eBay,Twitter 3. Simply copy file %profile%\search.json.mozlz4
Keywords and order will be successfully migrated, but this option (default engine) from search.json.mozlz4:
"metaData": { "current": "DuckDuckGo", "hash": "WHKd/qB/liV4mcI7lV1brZuHOGWIgWQcrhdVXcXfCJs=" },
will be reset. Hash, i suppose, is calculated simular to loadPathHash parameter in the same file. As you can read at https://blog.onee3.org ... function getVerificationHash(aName) { ...
let salt = OS.Path.basename(OS.Constants.Path.profileDir) + aName + disclaimer.replace(/\$appName/g, Services.appinfo.name);
... Hash is associated with the profile folder name. If it is not match, the default search engine will be set.
SO, i have 2 questions. 1. How can i work around this issue? 2. What the f**k was that? Why hash checking for simple option?