web-dev-qa-db-fra.com

Comment désactiver les extensions Chrome sans les désactiver sur plusieurs appareils synchronisés

J'utilise Chrome sur 4 postes de travail différents et toutes mes extensions sont synchronisées.

Le problème que j'ai, c’est que l’une des extensions ( Gestures for Chrome ) fonctionne très bien si vous avez une souris réelle, mais sur un trackpad sous Ubuntu, elle gêne tout simplement.

Si je le désactive sur la machine Ubuntu, il est désactivé sur toutes les installations de Chrome en raison de son mécanisme de synchronisation interne .

Q: Puis-je désactiver de manière sélective un poste sur une seule machine?

127
growse

En raison du problème de sécurité, Chrome ne synchronise aucune extension contenant un plug-in NPAPI.

La source

Qu'est-ce qu'un plugin NPAPI?

Le code exécuté dans un plug-in NPAPI dispose de toutes les autorisations de l'utilisateur actuel et n'est pas protégé en sandbox ou protégé contre les entrées malveillantes de Google Chrome. Vous devez être particulièrement prudent lorsque vous traitez des entrées provenant de sources non fiables, par exemple lorsque vous utilisez des scripts de contenu ou XMLHttpRequest.

La source

Théorie

Si nous modifions votre extension de manière à ce que Chrome la reconnaisse à l'aide de NPAPI, tout va bien.

Comment

  1. Tout d’abord, vous avez besoin d’un fichier .dll factice de toute extension NPAPI comme Capture d’écran (par Google) . L'extension a été supprimée de Google Play Store entre-temps, car Google a décidé de supprimer le support NPAPI . Mais cela n'a pas d'importance pour notre scénario. Heureusement, le wiki officiel Screen Capture contient toujours le code source. Nous n'avons pas besoin de l'extension complète, seulement du NPAPI .dll screen_capture.dll. Téléchargez le directement

  2. Deuxièmement, accédez au dossier d'extensions qui ne doit pas être synchronisé. Dans votre cas Gestures for Chrome .
    ..\profile\Default\Extensions\jpkfjicglakibpenojifdiepckckakgk\1.12.1_0

  3. Modifiez le fichier manifest.json et ajoutez le plug-in NPAPI en tant que décrit sur Stackoverflow ou même mieux sur developer.chrome.com .

    {
      "name": "My extension",
      ...
      "plugins": [
        { "path": "screen_capture.dll" }
      ],
      ...
    }
    
  4. Modifiez le fichier background.html de votre extension que vous ne souhaitez pas synchroniser, également décrit dans la réponse Stackoverflow ci-dessus.

    <embed type="application/x-my-extension" id="pluginId">
    <script>
      var plugin = document.getElementById("pluginId");
      var result = plugin.myPluginMethod();  // call a method in your plugin
      console.log("my plugin returned: " + result);
    </script>
    
  5. Il peut être nécessaire pour réactiver le support NPAPI à l'avenir via chrome://flags/#enable-npapi

De là, vous êtes seul. Je ne sais pas assez sur le codage d'extension.
C'est pourquoi c'est une théorie :)

28
nixda

Peut-être que ce n’est pas ce que vous cherchez, mais vous pouvez l’essayer. Ouvrez le menu settings dans Chrome en cliquant sur l’icône tri-ligne/clé située dans le coin droit. Ouvrez maintenant le Paramètres de synchronisation avancés ..

enter image description here

enter image description here

Sélectionnez maintenant l'option choisissez les éléments à synchroniser puis décochez l'option Extensions . Maintenant, votre extension ne sera pas synchronisée avec d'autres PC.

78
avirk

Vous pouvez installer l'extension de votre choix en tant qu'extension locale.

  1. Recherchez l'ID de l'extension souhaitée à partir de chrome://extensions avec le mode développeur activé .

  2. Accédez à votre répertoire d'installation Google. Windows: %localappdata%\Google\Chrome\User Data\Default\Extensions\ {Extension_ID} \ {Numéro de version}

  3. Enregistrez-le quelque part .. Répertoire utilisateur peut-être?

  4. Retournez à chrome://extensions avec mode développeur activé et appuyez sur Load unpacked extension. Et accédez à la nouvelle copie de l'extension.

  5. Vous devriez voir que vous avez l'extension deux fois maintenant .. Désactiver le vrai.

Je dis Désactiver parce que cette approche comporte un mauvais côté: vous perdez les mises à jour automatiques et vous devrez répéter les étapes ci-dessus à chaque fois.

Si vous ne savez pas quelle est la copie réelle et quelle est votre nouvelle copie, recherchez la balise ID sous Chargé depuis: {Path_To_Your_Copy}

49
WORMSS

Une chose qui fonctionne pour moi est de supprimer manuellement le processus du plug-in chaque fois que Chrome commence à utiliser le gestionnaire de tâches de Chrome. Ceci peut être réalisé comme suit:

  • (sur Mac) Menu> Plus d'outils> Gestionnaire de tâches
  • (sur PC) Cliquez avec le bouton droit de la souris sur la barre de menu> Gestionnaire des tâches ou Shift + Esc

Ensuite, cliquez simplement sur l'extension que vous ne voulez pas exécuter et cliquez sur "Terminer le processus".

Au travail, j'ai deux ordinateurs et je ne veux pas que les hangouts Google apparaissent sur les deux. Le seul inconvénient est que vous devez le faire chaque fois que vous démarrez Chrome.

7
wd4ever

Il ne s’agit pas d’une réponse résolue, mais d’une autre possibilité pour examiner le problème.

Le système de synchronisation Chrome ne permet en aucun cas de personnaliser les évaluations sur un seul ordinateur. Et toute solution avec des extensions supplémentaires fonctionnant avec le drapeau disable/enable dans votre extension sera un échec!

Parce qu'une autre machine utilisant simultanément le même compte d'utilisateur reflétera le changement.

Un moyen d'éviter cet échange d'informations est la manière dont il a proposé @avirk de désactiver les extensions de synchronisation, mais il semble que cette solution ne convient pas à votre environnement.

Ensuite, je proposerai deux autres idées pouvant être adoptées pour obtenir le résultat souhaité:

  • Créer un deuxième compte vous permettrait de personnaliser votre propre groupe d'extensions (cette solution que j'utilise personnellement pour avoir un profil différent de ScriptSafe sur différentes machines).

L'autre proposition est un peu moins conventionnelle et pourrait être considérée comme un mauvais bidouillage , mais je vais la décrire de toutes les manières, de sorte que vous ayez un choix plus large.

  • Accédez au dossier du plug-in en question: .config/google-chrome/Default/Extensions/jpkfjicglakibpenojifdiepckckakgk/versionfolder et efface le contenu dans le fichier "background_page.html".
    "Cet exemple ne peut être appliqué qu'au plug-in: Gestures for Chrome (TM)"

Cela génère une exception lors du chargement d'une page, qui ne permettra pas au code d'événement de votre extension de s'exécuter correctement. Nous aurons donc la désactivation locale pour cette extension.

N'oubliez pas que chaque fois que vous recevez une nouvelle mise à jour pour votre extension, vous devez rétablir cette opération dans le dossier de la nouvelle version.

4
RTOSkit

C'est une question un peu ancienne, mais c'est quand même quelque chose qui m'embête. Alors voici mes deux centimes.

Vous pourrez peut-être utiliser une autre extension pour le faire. J'ai moi-même basculé entre ces deux plugins: " Extensions Manager (aka Switcher) "

Extensions pratiques, gestionnaire d'applications et de thèmes. Light popup manager pour activer, désactiver, désinstaller des extensions et des applications rapidement et facilement.

ou " SimpleExtManager "

Un menu simple pour activer, désactiver et accéder aux options des extensions. Un autre ajout à la série «Simple». Cette fois, c'est un gestionnaire d'extensions.

Les fonctionnalités incluent:

  • fonction de base pour activer/désactiver, accéder aux options et désinstaller les extensions via une fenêtre contextuelle
  • personnaliser le popup
  • possibilité de créer des groupes de postes
  • activer/désactiver les groupes de postes via un menu contextuel et un menu contextuel
  • page d'événement activée

J'aime les deux extensions, mais je ne suis pas arrivé à un point où je peux dire laquelle j'aime le plus. Les deux ont beaucoup de développement et sont mis à jour fréquemment.

4
Squazz

Voici une solution simple (considérant que vous avez 19 extensions et que vous n’avez qu’un problème avec une ou deux): après la première installation sur chaque ordinateur individuel:

  1. Autoriser Google Chrome à effectuer la synchronisation initiale.
  2. Une fois l’installation terminée, accédez aux paramètres et désactivez la synchronisation des extensions.
  3. Supprimez l'extension que vous souhaitez.

Cela conserve essentiellement toutes les extensions de votre utilisateur et vous pouvez les modifier manuellement pour chaque ordinateur.

Même si je dois admettre que les réponses précédentes étaient plus intéressantes, cela résout votre problème sans trop de connaissances en matière de technologie.

À votre santé!

3
TVDN

Une autre solution que j'ai trouvée consiste à utiliser le mécanisme de stratégie inclus dans Chrome. Google donne la possibilité de gérer les extensions via des stratégies de groupe. En mettant l'extension indésirable sur la liste noire, nous avons efficacement supprimé la synchronisation pour ce PC. Nous pouvons exploiter cette connaissance en définissant ces options manuellement.

Voici une brève description pour les PC Windows:

  1. Ouvrez votre éditeur de registre (regedit)
  2. Accédez à HKEY_LOCAL_MACHINE\SOFTWARE\Policies\Google\Chrome - créez-le s'il n'existe pas.
  3. Créez une nouvelle clé appelée "ExtensionInstallBlacklist"
  4. Ajoutez une nouvelle valeur (REG_SZ) et nommez-le "1" - s'il existe déjà, nommez-le "2", etc.
  5. Définissez les données de cette valeur sur l'ID de l'extension que vous souhaitez supprimer.

En faisant cela, l'extension sera supprimée la prochaine fois que vous lancerez votre Chrome. Cela ne concerne que le PC sur lequel vous vous trouvez. J'ai vérifié cela en ayant une installation propre de Chrome. Après la connexion, toutes les extensions ont été chargées, en particulier celle que nous avons ajoutée à la liste noire de l’autre PC.

La documentation de ce paramètre de stratégie est disponible ici. Elle contient également les paramètres de différents systèmes d'exploitation:

http://dev.chromium.org/administrators/policy-list-3#ExtensionInstallBlacklist

3
Harry_Pootha

Eh bien, probablement une extension pratique qui répertorie les extensions installées ( https://github.com/rbrahul/chrome-extension-manager ) et vous permet de choisir celle que vous souhaitez désactiver et de la conserver dans le navigateur. le stockage fonctionnerait. Oui, il sera désactivé globalement, mais à un autre endroit, la même extension utilisera une liste différente, permettant ainsi des extensions différentes.

Eh bien, si vous utilisez le chrome en même temps sur une machine différente (disons sur votre bureau, vous avez un Mac, un ordinateur portable, un ordinateur de bureau avec peut-être une machine virtuelle en cours d'exécution), cela pourrait être un gâchis ...

Peut-être au lieu de désactiver la suppression des processus, mais je ne suis pas sûr qu'il soit même possible de le faire par programme.

0
emaV