J'ai remarqué que certains sites Web (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:
Q1: S'agit-il du comportement par défaut de 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: raccourcisseur d'URL Google.
Grâce au code de @ 10basetom et inspiré de @shthed, j'ai publié l'extension Chrome . N'ajoutez pas de moteurs de recherche personnalisés .
Vous trouverez le code source ici .
Laissez-moi savoir ce que vous pensez!
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. Par conséquent , ils apparaîtront toujours 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, ajouter manuellement des moteurs de recherche fonctionnera toujours).
Web data
.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
Chrome doit être arrêté à ce stade.
Le site web officiel de sqlite a 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
CREATE TRIGGER no_auto_keywords AVANT D'INSERER SUR les mots-clés WHEN (NEW.originating_url IS NON NULL 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 table keywords
, chrome définit le champ originating_url
sur le site Web à partir duquel il a été créé. Le déclencheur recherche en principe toutes les insertions avec un champ originating_url
non vide et émet une RAISE(IGNORE)
qui permet d'ignorer silencieusement 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.
Il y a deux façons de faire ça:
Ajoutez ce script à Tamper Monkey :
var elOpenSearch = document.querySelector('[type="application/opensearchdescription+xml"]');
if (elOpenSearch) elOpenSearch.remove();
Si vous n'êtes pas un utilisateur régulier de Tamper Monkey et que vous n'avez pas envie de perdre 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 consomme aucune mémoire. Les instructions sont fournies ci-dessous.
Comment créer votre propre extension pour supprimer la balise OpenSearch <link>
et empêcher Google Chrome d'ajouter automatiquement des moteurs de recherche:
Créez un dossier dans lequel vous allez placer les fichiers d’extension.
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();
Dans Chrome, accédez à chrome://extensions/
(entrez-le dans la barre d'adresse).
Activer le mode développeur.
Cliquez sur 'Charger l'extension non compressée', sélectionnez le dossier que vous avez 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 ), dans de rares cas un moteur de recherche personnalisé sera toujours ajouté. Je suppose que cela est dû au fait que Chrome peut analyser la balise OpenSearch <link>
avant que le script utilisateur ou son extension ne puisse le supprimer du DOM.
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 tel que "§ $%!/() & /" . 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.
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]);
}
}
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 et 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.
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 espace), Chrome effectuera une recherche Google sur Splunk median
.
Si je comprends bien ce que vous décrivez correctement, alors ce ne sont pas les sites Web qui font quoi que ce soit. 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.
R2: 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'il ne faut pas ajouter de nouveau lorsque vous le supprimez. Je ne sais pas trop - j'aime bien cette fonctionnalité, je ne vais donc pas essayer de la supprimer.
<- 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 pour éviter le fardeau d'une extension complète pour une seule fonctionnalité (dans le pire des cas), aussi cette solution fonctionne-t-elle 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 éléments <link>
, qui sont utilisés pour la découverte automatique des descriptions OpenSearch (OSD), les fichiers XML qui contiennent les informations permettant l'ajout automatique de moteurs de recherche et nous cause ces maux de tête. Je dis "permis" parce que ce n’est guère obligatoire, car, dans la mesure où mes recherches l’ont montré, Firefox lit simplement ces informations et les rend disponibles pour un ajout facile dans la liste déroulante 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 (ignorez le sous-titre spécifique de cette section pour les besoins de notre juste un exemple en usage)
<- 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 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 pour utilisateur expérimenté 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 Nice et gérable.
Bonne chance! Si quelqu'un d'autre essaye cela, laissez-nous/moi savoir comment cela fonctionne!