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

121

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
  • Styles Exchange Stack Exchange: Clavier -> webmasters.stackexchange.com
  • Reuters: Clavier -> reuters.fr

Q1: Est-ce le comportement par défaut dans Chrome? (pour que les sites Web s'ajoutent à la liste des moteurs de recherche?)

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

Remarque: J'utilise la dernière version de Chrome: 11.0.696.57 sur Windows 7 64 et je n'ai qu'une seule extension installée: le raccourcisseur d'URL de Google.

Amelio Vazquez-Reina
la source
33
@ Sathya, pourquoi? Je veux avoir la possibilité de le désactiver. Si votre question est la suivante: pourquoi devrais-je désactiver quelque chose comme ceci : l'interface pour éditer les moteurs de recherche n'est pas particulièrement performante, et à mesure que la liste s'allonge, il est difficile de dire 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 le
16
@Sathya - Plusieurs raisons: * Commodité: vous souhaitez parfois effectuer une recherche sur un site plutôt que sur ce site. * Cohérence: l'ajout aléatoire et silencieux de nouveaux "moteurs de recherche" provoque un comportement inattendu dans la boîte polyvalente. * Confidentialité: Chrome ne vous informe pas lorsqu'il décide d'ajouter de nouveaux "moteurs de recherche". Ils ne disparaissent pas lorsque vous effacez l'historique de navigation. * Courtoisie courante: ne devrais-je pas être en mesure de choisir d'activer cette "fonctionnalité" ou, à défaut, de choisir au moins d'être informé lorsque Chrome décide d'ajouter un site afin de pouvoir contredire cette décision?
phenry
1
Il semble que je ne sois pas digne de décider moi-même des moteurs de recherche que mon navigateur devrait connaître.
Anders Lindén

Réponses:

34

Grâce au code de @ 10basetom et inspiré de @shthed, j'ai publié l' extension Chrome qui ne permet pas d'ajouter des moteurs de recherche personnalisés .

Vous trouverez le code source ici .

Laissez-moi savoir ce que vous pensez!

Greg Sadetsky
la source
1
@ O'Rooney Merci! Je vois que certains sites glissent de temps en temps dans l'extension, mais il vaut mieux nettoyer quelques moteurs de recherche en un mois plutôt que de devoir effectuer une "purge" hebdomadaire presque complète ... À la vôtre!
Greg Sadetsky
4
Ne fonctionne plus réellement: de nombreux moteurs de recherche personnalisés finissent toujours par être ajoutés.
Onnodb
1
@onnodb merci pour la note, je n'ai malheureusement pas eu le temps de mettre à jour l'extension.
Greg Sadetsky
1
@onnodb, Greg, voudriez-vous (ou toute autre personne intéressée) s'il vous plaît essayer cette fourchette ? Check out, puis chargez en .../srctant qu’extension décompressée. Dites-moi comment ça se passe. Merci!
cxw
3
Notez bien que l'extension vient d'être mise à jour avec un algorithme de détection / blocage nettement amélioré, grâce aux efforts de nombreux contributeurs! Donnez-lui un précédent si cela ne fonctionnait pas bien pour vous plus tôt. À la vôtre
Greg Sadetsky
61

Cela me rendait complètement fou, alors j'ai trouvé une solution efficace, mais efficace.

Chrome enregistre 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 ajoute le moteur de recherche, ce qui entraîne l'ignorance de l'instruction d'insertion de base de données.
Notez que les moteurs de recherche sont toujours conservés en mémoire. Ils apparaîtront donc dans la liste jusqu'au redémarrage du navigateur . Cependant, vous n'aurez pas à les effacer tout le temps, donc si vous voulez ajouter vos propres moteurs de recherche, vous n'aurez pas à vous soucier de les supprimer accidentellement (oui, l'ajout manuel des moteurs de recherche fonctionnera toujours).

Vous devez d’abord localiser le Web datafichier.

  • 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 Dataou~/.config/chromium/Default/Web Data

Puis ouvrez-le avec un éditeur sqlite3.

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

Le site Web officiel de sqlite comporte une 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 fonctionne.

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

Ajoutez le déclencheur.

CREATE TRIGGER no_auto_keywords AVANT D'INSERER SUR les mots-clés WHEN (NEW.originating_url N'EST PAS NUL ET NEW.originating_url! = '') BEGIN SELECT RAISE (IGNORE); FIN;

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


La façon dont cela fonctionne est que lorsque chrome ajoute automatiquement un moteur de recherche à la keywordstable, il définit le originating_urlchamp sur le site Web à partir duquel il est créé. Le déclencheur recherche en principe les insertions avec un originating_urlchamp non vide et émet un RAISE(IGNORE)qui provoque l'ignorance silencieuse de l'instruction.
Les moteurs de recherche ajoutés manuellement n'ont pas de originating_url, et le déclencheur leur permet donc d'être ajoutés.

Patrick
la source
2
Après avoir essayé quelques éditeurs, SQLiteStudio est mon préféré. Aucune façon je suis lié à ce produit. Juste un outil utile que j'ai trouvé après quelques recherches.
Mateuscb
1
C'est génial et ça marche. Toutefois, pour moi, Chrome a tout de même ajouté des moteurs de recherche, pas dans la base de données, mais dans un autre dossier, "Sync Data Backup". Désactivez les autorisations d’écriture pour ce dossier sous Windows / Linux, qui 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 la frappe du mot clé ne le déclenche plus.
thdoan
Pour votre information: 1 / faites d'abord une copie de ce fichier au cas où vous le gâchiez :) 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 la CREATE TRIGGERcommande alors que Chrome est ouvert, vous devez d' Error: database is lockedabord quitter Chrome. 4 / une fois que Chrome a été fermé, la base de données a été ouverte avec succès: /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 du serveur. Je suppose qu'il est trop tard après avoir déjà installé des milliers de moteurs de recherche.
Fan Qi
34

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 n'avez pas envie de perdre 15-20 Mo de RAM uniquement pour charger l'extension Tamper Monkey à cette fin, vous pouvez lancer votre propre extension super légère qui ne consomme aucune mémoire. . Les instructions sont fournies ci-dessous.

Comment créer votre propre extension pour supprimer la <link>balise OpenSearch et empêcher Chrome d'ajouter automatiquement des moteurs de recherche:

  1. Créez un dossier dans lequel vous allez placer les fichiers d’extension.

  2. Dans ce dossier, créez deux fichiers texte nommés manifest.jsonet content.jscontenant 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 créé à l'étape 1 et 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 ), un moteur de recherche personnalisé sera toujours ajouté dans de rares cas. Je suppose que cela est dû au fait que Chrome peut analyser la <link>balise OpenSearch avant que le script utilisateur ou son extension ne puisse le supprimer du DOM.

thdoan
la source
2
Je suis surpris que personne n'ait posté ceci en tant qu'extension officielle du magasin, cela semble être populaire. Idéalement, j'aimerais avoir une extension à me demander avant 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
7
Merci pour le code génial et @shthed 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 cela comme une réponse et nous pourrions voter pour elle :)
O'Rooney
24
  1. Oui, c'est par conception .
  2. Non , il n'y a aucun moyen de désactiver ceci.
Sathyajith Bhat
la source
2
J'aime cette réponse. C'est simple mais instructif
nXqd
8
Pourtant, il existe des moyens de le désactiver, comme l'expliquent d'autres réponses :)
Enrico
6
"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. Des sites Web malveillants pourraient facilement en tirer parti. "Non, il n'y a aucun moyen de désactiver ceci." Évidemment, quand il s'agit d'un logiciel, il y a toujours un moyen. Être paresseux et dire qu'il n'y en a pas, n'est pas une solution. Cette réponse devrait être supprimée et l'auteur a été averti.
Alex Summers
Mon moteur de recherche personnalisé a perdu après l'effacement de la mémoire cache. J'ai ouvert des sites pendant des heures mais ces moteurs ne sont pas revenus. Savez-vous comment les récupérer (je ne veux pas les ajouter manuellement, trop)
Mithril
cette mauvaise réponse est votée. Ne devrait-il pas être supprimé ou modifié pour le corriger?
Santropedro
10

Voici une solution de contournement quelque peu compliquée qui fonctionne très bien pour moi. 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 chercher "jenkins" sur Google, car chrome vous oblige à chercher dans jenkins.

Atamanroman
la source
Sérieusement - fou agaçant. Merci pour le conseil.
TJ Biddle
2
Cela me fait cela pour jenkins, jiraet confluence- Cela me rend absolument fou de ne pas pouvoir lancer une recherche générale à partir de ma barre d'adresse pour tout ce qui concerne ces trois personnes. C’est de loin la meilleure et la seule solution de contournement que j’ai vue. À votre santé.
Matt Clark
1
@MattClark jiraexactement! Je veux chercher à propos de Jira, pas dedans!
ErikE
Comment se comporte-t-il dans votre cas? Pour moi, pour déclencher la recherche sur le site , je dois taper son mot clé dans omnibar une pression Tab . Ensuite, la recherche sur site est modifiée et je peux continuer à saisir 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 Entrée, et je recherche à l'aide du moteur de recherche par défaut. Donc, cela n'interfère pas les uns avec les autres. Il suffit d'utiliser l' espace après le mot clé pour effectuer une recherche à l'aide du moteur de recherche par défaut et de l' onglet pour effectuer une recherche sur le site.
Dawid Ferenczy Rogožan
@ DawidFerenczy: Ce n'est pas comme ça que ça marche pour le reste d'entre nous. Un espace utilise toujours ce moteur de recherche. Je tape 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 le
9

Essayez d'utiliser ce script utilisateur simple:

// ==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]);
    }
}
Ythuang
la source
1
où ajouter ce script? ou l'exécuter?
Mateuscb
2
@mateuscb Vous pouvez l'obtenir à partir d' ici . Ensuite, déposez simplement le script dans la page de configuration des extensions en chrome, chrome: // extensions /.
Victor Häggqvist
Cette. Est. Impressionnant. J'avais besoin de créer un mannequin manifest.json(conformément à cette réponse SO et de l'installer via le mode dev (en tant qu'extension décompressée)), mais cela mis à part, il a fonctionné comme une gâterie.
womble
1
Ou, vous pouvez l'utiliser dans Tamper Monkey. Si vous avez l'habitude de modifier des sites Web, TM devrait être un complément indispensable.
JasonXA
Vous pouvez également utiliser ce one-liner: document.querySelector('[type="application/opensearchdescription+xml"]').remove();(voir ma réponse ci-dessous).
Thdoan
9

Pour supprimer rapidement un grand nombre de moteurs de recherche, accédez à chrome: // settings / searchEngines, appuyez sur Ctrl-Maj-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.

de l'alcool
la source
J'ai dû copier / coller cela environ 10 fois dans la console de développement pour supprimer les 100 entrées que j'avais. Si seulement je savais comment le transformer en bookmarklet en un seul clic.
Jiggunjer
1
Je l'ai modifiée pour trier la liste à l'envers en premier (en fonction de modelIndex), car sa valeur est réinitialisée à chaque fois qu'une entrée est supprimée (vous finissez donc généralement par supprimer 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.
alcool
Le premier que j'ai vu peut faire cela en une fois! Gloire.
bnieland
A travaillé en une fois sur l’installation de Chrome version 64.0.3282.186 (Build officiel) de Windows 10, version 1709 (64 bits).
JosephHarriott
7

Si je comprends bien ce que vous décrivez correctement, il ne s'agit en aucun cas d'un site Web. Au lieu de cela, Chrome identifie lui-même les champs de recherche sur les sites Web, puis ajoute ceux-ci à sa liste d'options de recherche dans l'omnibar.

A1: Oui, il s’agit du 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 puissiez désactiver ce comportement. Toutefois, vous pouvez supprimer les moteurs de recherche en accédant au menu Outils -> Options -> Gérer les moteurs de recherche. ils apparaîtront sous "Autres moteurs de recherche". Vous pourrez peut-être spécifier qu’une personne ne doit pas être ré-ajoutée lorsque vous la supprimez. Je ne suis pas sûre. J'aime cette fonctionnalité, je ne vais donc pas essayer de la supprimer.

Kromey
la source
Merci @Kromey, c'est un bon point. Je viens de mettre à jour la question pour refléter votre commentaire.
Amelio Vazquez-Reina le
1
Cette réponse est incorrecte, les sites Web s'ajoutent eux-mêmes à Chrome car ils utilisent ce que l'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 que votre navigateur peut interfacer.
Marcel
@Marcel OpenSearch permet simplement aux sites de décrire leur fonctionnalité de recherche. Le navigateur doit toujours agir en conséquence. Par conséquent, ce n’est pas inexact. Je n’ai simplement pas inclus dans ma réponse la spécification technique utilisée pour "... [identifier] les champs de recherche sur les sites Web ...", car j’aurais pensé que cela aurait compliqué une affaire autrement simple. - le mécanisme exact permettant au navigateur de trouver un champ de recherche ne concerne pas l'utilisateur moyen, mais uniquement les webmasters qui souhaitent que le leur soit ajouté.
Kromey
7

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

Jun-Dai Bates-Kobashigawa
la source
2
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
1
Pour moi ça n'a pas marché. Sur Chrome 39, Win 7, la saisie de spacekeyword n’a pas fait apparaître l’interface de recherche. Cependant, votre solution était utile ailleurs, dans le nommage. Si je veux que mes recherches définies apparaissent au-dessus de celles automatisées, un espace devant le nom et hop. Tous les moteurs de recherche automatisés vont au-dessous et il est maintenant plus facile de les gérer / de les supprimer.
JasonXA
appuyez simplement sur ctrl + k pour obtenir ce comportement.
Jiggunjer
6

<- Contexte ->

J'ai une autre idée moins intrusive pour vous ici (du moins si vous utilisez un bloqueur de publicité, comme beaucoup d'entre nous le sommes pour notre propre santé mentale / sécurité). J'aime autant que possible utiliser des extensions / scripts existants afin d'éviter le fardeau d'une extension complète pour une seule fonctionnalité (scénario du pire des scénarios), de sorte que cette solution fonctionne selon ce principe.

Adblock et ses variantes / successeurs (uBlock est mon arme de choix), ont la capacité de bloquer les éléments de page Web, y compris les <link>éléments, qui sont utilisés pour la découverte automatique des descriptions OpenSearch (OSD), les fichiers XML qui contiennent les informations permettant -adding moteurs de recherche et nous cause ces maux de tête. Je dis «permis» car ce n’est guère obligatoire, car, jusqu’à maintenant, mes recherches ont montré que Firefox lisait simplement ces informations et les rendait faciles à ajouter dans le menu déroulant Moteurs de recherche, au lieu de les ajouter discrètement comme le fait Chrome.

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

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


<- La solution ->

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

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

J'ai testé cela et la règle indique la correspondance correcte sur mes sites de test (filehippo.com, etc.) et les moteurs de recherche ne s'ajoutent plus automatiquement. Je pense donc qu'il s'agit d'une solution complète.


Une note rapide sur l’histoire que j’ai trouvée derrière ceci: Les ingénieurs de Chromium ont étiqueté ce "WontFix" à plusieurs reprises au fil des ans (une option / un indicateur de désactivation a été demandé à plusieurs reprises), indiquant que cela était considéré comme un problème de niche depuis le début. 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 en ajoutant d'innombrables drapeaux et autres pour répondre à tous les caprices, donc ce que nous faisons ici est juste en ligne avec leurs préférences et le garde agréable et gérable.

Bonne chance! Si quelqu'un d'autre essaye cela, laissez-nous / moi savoir comment cela fonctionne!

Tour
la source
1
Cela n'a pas fonctionné pour moi (essayez de chercher sur cdnjs.com ). Je suis arrivé à la conclusion qu'il n'y a pas de solution fiable à 100% :(
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 trouve pas de application/opensearchdescription+xmllien sur la page.)
Ivan Kozik