Using the mobile user agent should work.
I’ve just tested it in one of my projects using following (very old) typescript code and it works:
browser.webRequest.onBeforeSendHeaders.addListener(function (details: browser.webRequest._OnBeforeSendHeadersDetails) {
console.log('header', details);
const headers = details.requestHeaders!;
for (let i = headers.length - 1; i >= 0; --i) {
const header = headers[i];
const headerName = header.name.toLowerCase();
if (headerName === 'user-agent') {
header.value = 'Mozilla/5.0 (iPhone; CPU iPhone OS 12_0 like Mac OS X) AppleWebKit/604.1.38 (KHTML, like Gecko) Version/12.0 Mobile/15A372 Safari/604.1';
// header.value = 'Mozilla/5.0 (Linux; Android 7.0; SM-G892A Build/NRD90M; wv) AppleWebKit/537.36 (KHTML, like Gecko) Version/4.0 Chrome/67.0.3396.87 Mobile Safari/537.36';
}
}
return {requestHeaders: headers};
}, {
urls: ['<all_urls>'],
tabId: targetTabId || undefined, // block only target tab (or pop-up)
types: ['sub_frame'], // block only "iframe" requests
}, ['blocking', 'requestHeaders']);
PS:
do I see that you are using “Search Result Previews” addon? That’s my addon!