On my “arkenfox” VM, /usr/lib/firefox-esr is a directory, it’s not a link. But inside it is a link distribution->…/…/share/firefox-esr/distribution, which is to say /usr/lib/firefox-esr/distribution/ links to /usr/share/firefox-esr/distribution/. The only other link in that directory is firefox-bin->firefox-esr.
The same is true on the split-browser VM.
Differences between split and arkenfox
arkenfox
OK, so your guide mentions, basically, four files. The first is (1) user.js, Arkenfox’s file with my relatively minor changes to it, which is full of “user_pref()” calls. This for me lives on dom0. It gets converted into (2) firefox.cfg, which is basically the same content except the calls are pref() calls (the conversion also strips away comments).
Firefox.cfg gets installed to /usr/lib/firefox-esr/firefox.cfg. There is no such file on split browser.
(3) autoconfig.js of course references (2)firefox.cfg; it goes to /usr/share/firefox-esr/browser/defaults/preferences/autoconfig.js. there is no such file on split browser but it contains other files like firefox.js, vendor.js, firefox-branding.js, and debugger.js
Finally (4)policies.json goes to /usr/lib/firefox-esr/distribution…which, remember is also a link to /usr/share/firefox-esr/distribution. (Distribution, with policies.json in it, is a sibling to browser, buried in which is autoconfig.js). there is no such file on split browser, the only thing in that directory there is a subdirectory named searchplugins.
split browser
/usr/share/split-browser-disp/firefox contains sb.js and sb-load.js. sb-load.js looks a lot like your autoconfig.json file with a reference to general.config.filename (sb.js), and obscure-value. It also sets sandbox_enabled to false. sb.js contains, among other things, his keyboard mappings (so that alt-B opens his bookmark list on his bookmark vm). To this I appended my (2)firefox.cfg file. I didn’t realize until just now that I should have appended the .js file, not the firefox.cfg file. However, it seemed to work anyway even though the calls are to pref rather than user_pref!
/usr/lib/tmpfiles.d contains something called split-browser-disp.conf which looks like it contains a command to run /run/split-browser-disp. I’m not sure exactly what that’s about, honestly, I’m just guessing here.
/etc/split-browser-disp contains a couple of bash files to set environment variables (one for tor and one for firefox).
/etc/qubes-rpc contains split-browser-disp which I assume is the service handler for calls from the bookmark machine.
I tried putting the arkenfox policies.json in /user/share/split-browser-disp/firefox/distribution. That didn’t work. I’m now thinking I should have tried /usr/lib/firefox-esr/distribution (i.e. the identical location to on the arkenfox system). EDIT TO ADD: No, that didn’t work either.
If I can just figure out where split-browser looks for its policies.json file; I can probably create the Grand Unified Browser; split-arkenfox if you will.
EDIT YET AGAIN. I found out I put that file on the arkenfox template, not the split browser template.
Once placed on the split browser template, in /usr/lib/firefox-esr/distribution…it DOES seem to work! HALLELUJAH!!!