Question Google Chrome ajoute-t-il automatiquement des sites Web à ma liste de moteurs de recherche?


J'ai remarqué que certains sites Web (par exemple, les sites Stack Exchange, Dell, etc.) sont automatiquement ajoutés à ma liste de moteurs de recherche dans Google Chrome.

Ils ajoutent même un raccourci clavier à leur entrée. Voici quelques exemples:

  • Dell: Clavier -> Dell.com
  • Stack Exchange Web Master: Clavier -> webmasters.stackexchange.com
  • Reuters: Clavier -> reuters.com

Q1: Est-ce le comportement par défaut dans Chrome? (pour permettre aux sites Web de s’ajouter à la liste des moteurs de recherche?)

Q2: Est-il possible de désactiver ce comportement dans Chrome?

Remarque: j'exécute la dernière version de Chrome: 11.0.696.57 sous Windows 7 64 et je n'ai qu'une seule extension installée: raccourcisseur d'URL de Google.


100
2018-04-27 15:44


origine


@ Sathya, pourquoi? Je veux avoir la flexibilité de le désactiver. Si votre question est pourquoi devrais-je désactiver quelque chose comme ça: l'interface pour éditer les moteurs de recherche n'est pas particulièrement bonne, et à mesure que la liste grandit, il est difficile de déterminer quels moteurs de recherche j'ai ajoutés manuellement et lesquels ont été ajoutés automatiquement. Il est également plus difficile de trouver une entrée particulière dans une grande liste. - Amelio Vazquez-Reina
@Sathya - Plusieurs raisons: * Commodité: Parfois, vous souhaitez effectuer une recherche sur un site plutôt que sur ce site. * Cohérence: L'ajout de nouveaux "moteurs de recherche" de manière aléatoire et silencieuse provoque un comportement inattendu dans l'omnibox. * Confidentialité: Chrome ne vous informe pas lorsqu'il décide d'ajouter de nouveaux "moteurs de recherche" et qu'il ne disparaît pas lorsque vous effacez votre historique de navigation. * Courtoisie habituelle: Est-ce que je ne peux pas choisir d'activer cette fonctionnalité ou, à défaut, de choisir d'être informé lorsque Chrome décide d'ajouter un site, pour que je puisse annuler cette décision? - phenry
Duplicata possible de Google Chrome: Supprimer tous les autres moteurs de recherche - Rod Boev


Réponses:


Grâce au code de @ 10basetom et inspiré par @shthed, j'ai sorti le N'ajoutez pas de moteurs de recherche personnalisés Extension Chrome qui fait exactement cela.

Vous trouverez le code source ici.

Laissez-moi savoir ce que vous pensez!


24
2017-07-12 14:08



@ O'Rooney Merci! Je vois de temps en temps certains sites se dérober par l’extension, mais il est beaucoup plus efficace de nettoyer quelques moteurs de recherche en un mois que de devoir faire une "purge" hebdomadaire presque complète ... À la vôtre! - Greg Sadetsky
Ne fonctionne plus vraiment: beaucoup de moteurs de recherche personnalisés finissent toujours par être ajoutés. - onnodb
@onnodb merci pour la note, je n'ai malheureusement pas eu le temps de mettre à jour l'extension. - Greg Sadetsky
@ododb, Greg, voulez-vous essayer cette fourchette? Vérifiez, puis chargez .../src comme une extension déballée. Faites-moi savoir comment ça se passe. Merci! - cxw
Petite remarque que l'extension vient d'être mise à jour avec un algorithme de détection / blocage beaucoup amélioré, grâce aux nombreux efforts de nombreux contributeurs! Donnez-le il y a un moment si cela ne fonctionnait pas bien pour vous plus tôt. À votre santé - Greg Sadetsky


Cela me rendait absolument fou, alors j'ai trouvé une solution hackish, mais efficace à la question.

Chrome stocke ses moteurs de recherche dans une simple base de données sqlite3. J'ai constaté que vous pouvez créer un déclencheur lorsque chrome va ajouter le moteur de recherche qui entraîne que l'instruction d'insertion de base de données soit ignorée.
Notez que les moteurs de recherche sont toujours conservés en mémoire, donc ils apparaîtront toujours dans la liste jusqu'à ce que le navigateur soit redémarré. Cependant, vous n'aurez pas à les effacer tout le temps, et si vous souhaitez ajouter vos propres moteurs de recherche, vous n'aurez pas à vous soucier de les supprimer accidentellement (oui, l'ajout manuel de moteurs de recherche fonctionnera toujours).

Vous devez d'abord localiser le Web data fichier.

  • Mac OS X: ~/Library/Application Support/Google/Chrome/Default/Web Data

  • XP: C:\Documents and Settings\<username>\Local Settings\Application Data\Google\Chrome\User Data\Default\Web Data

  • Vista / 7: C:\Users\<username>\AppData\Local\Google\Chrome\User Data\Default\Web Data

  • Linux: ~/.config/google-chrome/Default/Web Data ou ~/.config/chromium/Default/Web Data

Ensuite, ouvrez-le avec un éditeur sqlite3.

Chrome doit être arrêté à ce stade.

Le site officiel de sqlite a un page de téléchargement avec un utilitaire de ligne de commande pré-compilé pour les différents systèmes d'exploitation. Bien que tout éditeur capable de travailler avec des bases de données sqlite3 fonctionnera.

Pour l'utilitaire de ligne de commande, utilisez une commande telle que la suivante (n'oubliez pas d'échapper ou de citer l'espace dans le nom du fichier):

sqlite3 /path/to/Web\ Data

Ajouter le déclencheur

CREATE TRIGGER no_auto_keywords AVANT INSERT ON mots-clés QUAND (NEW.originating_url N'EST PAS NULL ET NEW.originating_url! = '') BEGIN SELECT RAISE (IGNORE); FIN;

Vous avez terminé. Fermez l'éditeur et lancez la sauvegarde chrome.


La façon dont cela fonctionne est que lorsque chrome va ajouter auto-ajouter un moteur de recherche à la keywords table, chrome définit le originating_url champ au site Web dont il provient. Le déclencheur recherche fondamentalement des insertions avec un non-vide originating_url domaine, et émet un RAISE(IGNORE) ce qui fait que l'instruction est ignorée en silence.
Les moteurs de recherche ajoutés manuellement n'ont pas de originating_url, et ainsi le déclencheur leur permet d'être ajouté.


58
2017-12-14 06:00



Après avoir essayé quelques éditeurs, SQLiteStudio mon préféré. Je n'ai aucun lien avec ce produit. Juste un outil utile que j'ai trouvé après quelques recherches. - mateuscb
C'est génial et ça marche. Cependant, pour moi, Chrome a encore ajouté des moteurs de recherche, non pas dans la base de données, mais dans un autre dossier, "Sync Data Backup". Désactivez les droits d'écriture pour ce dossier sous Windows / Linux et cela disparaîtra définitivement. - Martin Hansen
Cela ne semble plus fonctionner, du moins dans Chrome v47beta. Après le redémarrage de Chrome, le moteur de recherche ajouté automatiquement est toujours dans la liste, bien que le mot-clé ne le déclenche plus. - thdoan
FYI: 1 / faites d'abord une copie de ce fichier au cas où vous ne le feriez pas :) 2 / sur Mac 10.11.4 (El Capitan) Je n'ai pas pu ouvrir le fichier / la base de données avec sqlitebrowser.app ("Error: unable to open database "~/Library/Application Support/Google/Chrome/Default/Web Data": unable to open database file). 3 / si vous essayez d'exécuter le CREATE TRIGGER commande lorsque Chrome est ouvert, vous obtenez Error: database is locked alors quittez Chrome en premier. 4 / une fois que Chrome était fermé, la base de données a bien fonctionné: /Volumes/Macintosh\ HD/Applications/sqlite3 ./Web\ Data (dans Terminal, dans le répertoire spécifié) HTH - sming
J'ai essayé de supprimer des mots-clés où id> 2; et Google les synchronise simplement à partir du serveur. Je suppose que c'est trop tard après avoir déjà installé des milliers de moteurs de recherche. - Qi Fan


Il y a deux façons de faire ça:

  1. Ajoutez ce script à Tamper Monkey:

    var elOpenSearch = document.querySelector('[type="application/opensearchdescription+xml"]');
    if (elOpenSearch) elOpenSearch.remove();
    
  2. Si vous n'êtes pas un utilisateur habituel de Tamper Monkey et que vous ne voulez pas gaspiller 15-20 Mo de RAM juste pour charger l'extension Tamper Monkey à cette fin, vous pouvez lancer votre propre extension super légère qui ne consommera aucune mémoire. . Les instructions sont fournies ci-dessous.

Comment créer votre propre extension pour supprimer OpenSearch <link> tag et empêcher Chrome de l'ajout automatique de moteurs de recherche:

  1. Créez un dossier dans lequel vous placerez les fichiers d'extension.

  2. Dans ce dossier, créez deux fichiers texte nommés manifest.json et content.js contenant le code fourni ci-dessous.

    manifest.json

    {
      "manifest_version": 2,
      "name": "Disable OpenSearch",
      "version": "1.0.0",
      "description": "Remove the OpenSearch <link> tag to prevent Google Chrome from auto-adding custom search engines.",
      "content_scripts": [
        {
          "matches": ["<all_urls>"],
          "js": ["content.js"]
        }
      ],
      "permissions": [
        "http://*/*",
        "https://*/*"
      ]
    }
    

    content.js

    var elOpenSearch = document.querySelector('[type="application/opensearchdescription+xml"]');
    if (elOpenSearch) elOpenSearch.remove();
    
  3. Dans Chrome, accédez à chrome://extensions/ (entrez ceci dans la barre d'URL).

  4. Activer le mode développeur

  5. Cliquez sur "Charger l'extension non compressée", sélectionnez le dossier que vous avez créé à l'étape 1, puis cliquez sur "OK".

Toutes nos félicitations! Maintenant, Google Chrome devrait être un peu moins ennuyeux à utiliser :-).

Limitation: Cette solution n'est pas fiable à 100%. Si vous accédez à une URL contenant un paramètre de recherche (par exemple, https://cdnjs.com/#q=fastclick), alors dans de rares cas, un moteur de recherche personnalisé sera toujours ajouté. Je soupçonne que c'est parce que Chrome peut analyser l'OpenSearch <link> tag avant que le script utilisateur ou l'extension ait une chance de le supprimer du DOM.


27
2017-11-06 06:10



Je suis surpris que personne n'ait posté cela comme une extension officielle du magasin, il semble que ce serait populaire. Idéalement, je voudrais une extension pour me demander d’ajouter un moteur de recherche ou une icône dans la barre d’adresse qui me permette de l’ajouter, tout comme les flux RSS. - ryanmonk
Merci pour l'excellent code et @shthed merci pour l'inspiration! Je viens de publier une extension Google Chrome qui fait exactement cela. Vous pouvez le trouver ici. Code source ici. Laissez-moi savoir ce que vous pensez! :-) - Greg Sadetsky
@GregSadetsky Postez ceci comme une réponse et nous pourrions voter pour elle :) - O'Rooney
@ O'Rooney merci, juste fait :-) - Greg Sadetsky


  1. Oui, c'est par conception.
  2. Non, il y a non le moyen de désactiver ce.

21
2018-04-27 16:30



J'aime cette réponse. C'est simple mais informatif - nXqd
Pourtant, il existe des moyens de le désactiver, comme l'expliquent d'autres réponses :) - Enrico
"Oui, c'est par conception." C'est une conception médiocre et inappropriée d'ajouter automatiquement des éléments à un système sans la participation des utilisateurs en la matière. Les sites Web malveillants pourraient facilement en profiter. "Non, il n'y a aucun moyen de désactiver cela." Évidemment, il y a toujours un moyen quand il s'agit de logiciel. Être paresseux et dire qu'il n'y en a pas n'est pas une solution. Cette réponse doit être supprimée et l'auteur a averti. - Alex Summers


Essayez d'utiliser ce simple script utilisateur:

// ==UserScript==
// @name       Block Opensearch XML specs
// @namespace  *
// @version    0.3
// @description  Block opensearch xml links
// @match      *
// @copyright  2012+, Christian Huang
// ==/UserScript==

var i;
var val;
var len;
var opensearches;

opensearches = document.getElementsByTagName('link');
len = opensearches.length;
for (i = 0; i < len;i++) {
    val = opensearches[i].type;
    if ( val == "application/opensearchdescription+xml") {
        opensearches[i].parentNode.removeChild(opensearches[i]);
    }
}

8
2017-09-21 21:41



Où ajouter ce script? ou l'exécuter? - mateuscb
@mateuscb Vous pouvez l'obtenir de ici. Ensuite, déposez le script dans la page des paramètres des extensions dans chrome, chrome: // extensions /. - Victor Häggqvist
Ce. Est. Impressionnant. Je devais créer un mannequin manifest.json (selon le cette réponse SO et installez-le via le mode dev (en tant qu'extension décompressée), mais à part cela, cela a fonctionné comme un régal. - womble
Ou, vous pouvez l'utiliser dans Tamper Monkey. Si vous avez l'habitude d'apporter des modifications aux sites Web, TM devrait être un ajout indispensable. - JasonXA
Vous pouvez également utiliser ce one-liner: document.querySelector('[type="application/opensearchdescription+xml"]').remove(); (voir ma réponse ci-dessous). - thdoan


Ici, une solution de contournement un peu piratée qui me convient parfaitement. Il suffit de renommer l'alias de recherche en quelque chose de cryptique comme "§ $%! / () & /". Tant que le moteur de recherche est toujours là, vous ne le verrez plus jamais. Assez ennuyeux si vous ne pouvez pas google pour "jenkins" car le chrome vous oblige à chercher dans jenkins.


7
2018-05-09 13:49



Sérieusement - folle ennuyeuse. Merci pour le conseil. - TJ Biddle
Il me le fait pour jenkins, jira, et confluence - Cela me rend absolument fou de ne pas pouvoir lancer de recherche générale à partir de ma barre d’adresse pour tout ce qui concerne ces trois éléments. Ceci est de loin la meilleure solution de contournement que j'ai jamais vue. À votre santé. - Matt Clark
@MattClark jira exactement! Je veux faire des recherches sur Jira, pas sur elle! - ErikE
Comment se comporte-t-il dans votre cas? Pour moi, déclencher la recherche sur place, Je dois taper son mot-clé dans omnibar a presse Languette. Puis il change dans le recherche sur site et je peux continuer à taper la chaîne de recherche. Si je veux rechercher uniquement le mot-clé ou une chaîne contenant le mot-clé, je tape le mot-clé, Espace, reste de la chaîne de recherche et Entrer et je recherche en utilisant le moteur de recherche par défaut. Donc, cela n'interfère pas les uns avec les autres. Il suffit d'utiliser le Espace après le mot-clé pour rechercher en utilisant le moteur de recherche par défaut et le Languette pour rechercher sur le site. - Dawid Ferenczy
@ DawidFerenczy: Ce n'est pas comme ça que ça marche pour nous. Un espace utilise toujours ce moteur de recherche. Je tape dans git, puis un espace et il change instantanément pour utiliser le moteur de recherche de git (que j'ai supprimé d'innombrables fois). - Gerrat


Si je comprends bien ce que vous décrivez correctement, ce ne sont pas les sites Web qui font quoi que ce soit. Chrome lui-même identifie plutôt les champs de recherche sur les sites Web, puis ajoute lui-même ceux-ci à sa liste d'options de recherche dans l'omnibar.

R1: Oui, il s'agit d'un comportement par défaut, mais ce ne sont pas les sites Web qui s'ajoutent, c'est Chrome qui ajoute les sites Web.

A2: Je ne pense pas que vous pouvez désactiver ce comportement, mais vous pouvez supprimer les moteurs de recherche en allant dans le menu Outils -> Options -> Gérer les moteurs de recherche; elles apparaîtront sous "Autres moteurs de recherche". Vous pourrez peut-être spécifier qu’il ne faut pas en rajouter quand vous le supprimez, je ne suis pas sûr - j’aime cette fonctionnalité, donc je ne vais pas essayer de les supprimer.


6
2018-04-27 16:30



Merci @Kromey, c'est un bon point. Je viens de mettre à jour la question pour refléter votre commentaire. - Amelio Vazquez-Reina
Cette réponse est incorrecte, les sites Web s’ajoutent effectivement à Chrome car ils utilisent ce qu’on appelle un Document de description OpenSearch pour permettre à Chrome d'ajouter le moteur de recherche de leur site Web à la liste des moteurs de recherche de Chrome avec lesquels votre navigateur peut s'interfacer. - Marcel
@Marcel OpenSearch laisse simplement les sites décrire leur fonction de recherche. Il faut toujours que le navigateur agisse sur cela. Par conséquent, ce n'est pas inexact, je n'ai tout simplement pas inclus les spécifications techniques utilisées pour "... identifier les champs de recherche sur les sites Web ..." dans ma réponse, car j'estimais que cela aurait compliqué une simple affaire. - le mécanisme exact de la façon dont le navigateur trouve un champ de recherche n’est pas pertinent pour l’utilisateur moyen, mais uniquement pour les webmasters qui souhaitent que le leur soit ajouté. - Kromey


Une solution de contournement que j'ai trouvée pour cela est d'acquérir l'habitude de lancer toutes mes recherches avec un espace. Si vous tapez ・Splunk median (où  représente le caractère d'espace), Chrome effectuera une recherche Google sur Splunk median.


6
2018-05-04 14:18



Lancer la recherche avec un point d'interrogation (?) Utilisera également votre moteur de recherche par défaut. - Ari
Agréable! J'aime ça mieux que l'espace. - Jun-Dai Bates-Kobashigawa
Pour moi, cela n'a pas fonctionné. Sur Chrome 39, Win 7, taper spacekeyword n’a pas fait apparaître l’interface de recherche. Cependant, votre solution était utile ailleurs, en nommant. Si je veux que mes recherches définies apparaissent par-dessus les automatisées, un espace devant le nom et presto. Tous les moteurs de recherche automatisés vont ci-dessous et maintenant il est plus facile de les gérer / supprimer. - JasonXA
appuyez simplement sur ctrl + k pour obtenir ce comportement. - jiggunjer


<- Contexte ->

J'ai une idée alternative, moins intrusive pour vous ici (du moins si vous utilisez un bloqueur de publicité, car beaucoup d'entre nous sont pour notre propre santé mentale / sécurité). J'aime utiliser autant que possible les extensions / scripts existants pour éviter le gonflement de toute une extension pour une seule fonctionnalité (scénario le plus défavorable). Cette solution fonctionne donc sous ce principe.

Adblock, et ses variantes / successeurs (uBlock est mon arme de prédilection), ont la capacité de bloquer les éléments de la page Web, y compris <link> elements, utilisé pour la découverte automatique des descriptions OpenSearch (OSD), les fichiers XML contenant les informations permettant l'ajout automatique de moteurs de recherche et provoquant ces problèmes. Je dis "autorise" parce que ce n'est guère obligatoire, car, pour autant que mes recherches aient montré, Firefox lit simplement ces informations et les rend faciles à ajouter dans la liste déroulante des moteurs de recherche.

L'utilisation de la fonctionnalité est décrite dans les spécifications Opensearch à plusieurs endroits:

http://www.opensearch.org/Specifications/OpenSearch/1.1#Autodiscovery_in_RSS.2FAtom  (ignorez le sous-titre spécifique de cette section pour nos besoins car il ne s'agit que d'un exemple d'utilisation)


<- La solution ->

Comme il est indiqué que les descriptions OpenSearch (OSD) ont un type unique, nous pouvons les filtrer avec la règle AdblockPlus / uBlock suivante:

##link[type="application/opensearchdescription+xml"]

J'ai testé cela et la règle montre la correspondance correcte sur mes sites de test (filehippo.com etc) et les moteurs de recherche ne sont plus ajoutés automatiquement, donc je pense que c'est une solution complète.


Une note rapide sur l’historique que j’ai trouvé derrière cela: les ingénieurs de Chromium l’ont qualifié de «WontFix» plusieurs fois au cours des années (une option / un indicateur de désactivation des utilisateurs puissants a été demandée plusieurs fois). fonctionnalité est "généralement utile", leur position est que les problèmes de niche devraient être résolus par des extensions ou des scripts tiers plutôt que par les développeurs ajoutant d'innombrables drapeaux et similaires pour répondre à tous les caprices, donc fondamentalement ce que nous faisons ici est juste en ligne avec leur préférence et le garde gentil et gérable.

Bonne chance! Si quelqu'un d'autre essaie cela, laissez-nous / moi savoir comment ça marche!


5
2017-09-20 23:13



Cela n'a pas fonctionné pour moi (essayez de chercher sur cdnjs.com). J'en arrive à la conclusion qu'il n'y a pas de solution 100% fiable :( - thdoan
Cela ne fonctionne pas pour moi non plus - si je recherche sur 4inkjets.com il est ajouté comme moteur de recherche (étrangement, je ne peux pas trouver un application/opensearchdescription+xml lien sur la page.) - Ivan Kozik


Pour supprimer rapidement un grand nombre de moteurs de recherche, accédez à chrome: // settings / searchEngines, appuyez sur Ctrl-Shift-J (Opt-Cmd-J sur OSX) pour accéder à la console Javascript, puis collez-le:

settings
    .SearchEnginesBrowserProxyImpl
    .prototype
    .getSearchEnginesList()
    .then(function (val) {
        val.others.sort(function (a, b) { return b.modelIndex - a.modelIndex; });
        val.others.forEach(function (engine) {
            settings
                .SearchEnginesBrowserProxyImpl
                .prototype
                .removeSearchEngine(engine.modelIndex);
        });
    });

Vous devrez peut-être coller et exécuter ceci plusieurs fois pour tout effacer.


5
2018-06-15 13:28



J'ai dû copier / coller ceci environ 10 fois dans la dev-console pour supprimer les 100 entrées que j'avais. J'aimerais savoir comment le transformer en un bookmarklet en un clic. - jiggunjer
Je l'ai modifié pour trier la liste en premier (en fonction de modelIndex), car sa valeur est réinitialisée chaque fois qu'une entrée est supprimée (vous supprimez généralement environ la moitié de la liste actuelle) lorsque vous travaillez de haut en bas. Lorsque vous travaillez de bas en haut, ce problème ne se produit pas. - alcohol
Le premier que j'ai vu qui peut le faire en un seul passage! Gloire. - bnieland
Travaillé en une seule fois sur mon installation de Windows 10 version 1709 de Chrome Version 64.0.3282.186 (version officielle) (64 bits). - JosephHarriott