Firefox // Manifest V3 //

Compliqués rapports entre firefox et le ManifestV3. Maintenant que le support est là (v109) et même dans les versions ESR, il restait pour moi le problème lié au permissions d’accéder à tous les sites. Dans le Manifest.json, cela ne suffit pas:

"host_permissions": ["<all_urls>"],

Grosse prise de tête donc je mets ici le résultat de mes explorations:

  1. Mettre dans le popup un bandeau pour avoir un point d’entrée, par exemple:
    <center id="perm" style="color: yellow; background: #840; clear: both; font-weight: 404; padding: .5em; margin,: .5em; cursor: pointer;">Finaliser</center>
  2. Dans le javascript du popup, mettre ce bout de code dans handler de l’event DOMContentLoaded avec pour objectif de cacher le bandeau défini précédemment si les permissions d’hôte sont bonnes, et sinon de les obtenir grâce à un clic sur le bandeau (action de l’utilisateur nécessaire):
    chrome.permissions.contains({
    origins: ['<all_urls>']
    }, (result) => {
    if (result) {
    document.getElementById('perm').style.display = 'none';
    } else {
    document.getElementById('perm').addEventListener('click',function() {
    chrome.permissions.request({
    origins: ['<all_urls>']
    }, (granted) => {
    if(!granted) {
    browser.permissions.request({
    origins: ['<all_urls>']
    });
    }
    });
    });
    }
    });

  3. Fonctionne aujourd’hui avec Firefox 119. Transparent pour browser moins regardants, type Chromium/Chrome.

Cheers

2 réflexions au sujet de « Firefox // Manifest V3 //  »

  1. Pour une raison que j’ignore, cela ne fonctionne pas avec Safari. J’ai mis un branchement qui l’exclu en tapant sur navigator.userAgent en l’attente d’une meilleure solution. D’un autre côté, il est assez simple dans sa gestion directe des permissions avec l’utilisateur.

Laisser un commentaire

Votre adresse e-mail ne sera pas publiée. Les champs obligatoires sont indiqués avec *