The same is written in the Pale Moon sources (https://repo.palemoon.org/MoonchildProductions/Pale-Moon/src/branch/master/palemoon/base/content/utilityOverlay.js):where:
- "current" current tab (if there aren't any browser windows, then in a new window instead)
- "tab" new tab (if there aren't any browser windows, then in a new window instead)
- "tabshifted" same as "tab" but in background if default is to select new tabs, and vice versa
"if default is to select new tabs" refers to the value of browser.tabs.loadInBackground parameter in about:config.* |where| can be:
* "current" current tab (if there aren't any browser windows, then in a new window instead)
* "tab" new tab (if there aren't any browser windows, then in a new window instead)
* "tabshifted" same as "tab" but in background if default is to select new tabs, and vice versa
Nevertheless, when I use "tab", Pale Moon always opens URL in a new foreground tab (and in a new background tab, when I use "tabshifted") - regardless of browser.tabs.loadInBackground state.
Pale Moon is not alone here - Basilisk and ancient Firefox 49-53 work in the save way.
At the same time Seamonkey and Iceape-UXP work as documentation prescribes, and take browser.tabs.loadInBackground into account.
(For reproducing you can execute openUILinkIn("https://palemoon.org", "tab"); and openUILinkIn("https://palemoon.org", "tabshifted"); in the browser console.)
If behavior of function contradicts its specification, then this is definitely a bug. But should so long existent bug be fixed? I fear that there is a lot of code that depends on current behavior, so changing it can break something else.
Why am writing this: now I am finishing work on some multi-platform extension which uses this function, and don't know how to handle this issue - analyze the platform and then use corresponding branch of code, or use this function in accordance with documentation for all browsers (in hope that Pale Moon and Basilisk will be fixed somewhen)?

