1

Je développe une extension chrome qui est également compatible avec Firefox/Edge/Opera.Comment savoir si une extension chromée est téléchargée depuis le magasin?

L'extension repose sur une API REST accessible sur le Web. Au cours du développement Web, je préfère pointer vers un point de terminaison de développement où il n'affecte pas le locataire de production et n'affecte qu'une instance de développement et une base de données.

Ma question est alors je assez simple, comme faire similaire à ce pseudo-code:

if (extension.downloaded_from_store == true) 
    endpoint = "https://api-dev.example.com" 
else 
    // The extension has been installed from a local directory 
    endpoint = "https://api-prod.example.com" 

Avez-vous une idée de comment je pouvais faire une telle chose (de préférence de la page background.js) ?

Si la solution peut être compatible avec tous les navigateurs, ce serait parfait!

Répondre

2

J'ai trouvé la réponse dans la documentation de chrome dans le module de gestion :

Lien: https://developer.chrome.com/extensions/management#type-ExtensionInstallType

ExtensionInstallType

Comment l'extension a été installée. L'un des:

  • admin: L'extension a été installé en raison d'une politique administrative
  • développement
  • : L'extension a été chargé décompressé en mode développeur
  • normal: L'extension a été installée normalement via un fichier .crx
  • sideload: l'extension a été installé par un autre logiciel sur la machine
  • autre: l'extension a été installé par d'autres moyens Enum "admin", "développement", "normal", "sideload", ou "autre"

Cela me permet de faire ce qui suit:

chrome.management.get(chrome.runtime.id, function(app_info){ 
    if (app_info.installType == "development"){ 
     endpoint = "https://api-dev.example.com"; 
    } 
    else { 
     endpoint = "https://api-prod.example.com"; 
    } 
}); 
2

La plupart des extensions google chrome sur le magasin ont un ID d'extension permanent. Si vous avez empaqueté votre extension afin qu'elle utilise le même ID d'extension avec chaque mise à jour, vous pouvez simplement coder en dur cet ID et le vérifier à l'intérieur de ce premier si.

Je recommande la lecture plus sur packaging chrome extensions here.

Plus précisément this part.

+0

Il pourrait être une idée. Cependant, j'utilise le Chrome Store donc j'espère que l'extension est fixe et ne change pas avec les mises à jour. Je dois ensuite trouver comment faire de même pour les extensions Firefox, Opera et Edge. –