¿Google Chrome agrega automáticamente sitios web a mi lista de motores de búsqueda?

121

He notado que ciertos sitios web (por ejemplo, sitios de Stack Exchange, Dell, etc.) se agregan automáticamente a mi lista de motores de búsqueda en Google Chrome.

Incluso agregan un atajo de teclado a su entrada. Aquí hay unos ejemplos:

  • Dell: Teclado -> Dell.com
  • Maestros web de Stack Exchange: Teclado -> webmasters.stackexchange.com
  • Reuters: Teclado -> reuters.com

P1: ¿Es este el comportamiento predeterminado en Chrome? (¿permitir que los sitios web se agreguen a la lista de motores de búsqueda?)

P2: ¿Es posible deshabilitar este comportamiento en Chrome?

Nota: estoy ejecutando la última versión de Chrome: 11.0.696.57 en Windows 7 64, y solo tengo una extensión instalada: acortador de URL de Google.

Amelio Vazquez-Reina
fuente
33
@ Sathya, ¿por qué? Quiero tener la flexibilidad para deshabilitarlo. Si su pregunta es por qué deshabilitaría algo como esto : la interfaz para editar motores de búsqueda no es particularmente buena y, a medida que la lista crece, es difícil saber qué motores de búsqueda agregué manualmente y cuáles se agregaron automáticamente. También es más difícil encontrar una entrada en particular dentro de una lista grande.
Amelio Vazquez-Reina
16
@Sathya: muchas razones: * Conveniencia: a veces desea buscar ACERCA de un sitio, en lugar de EN ese sitio. * Consistencia: Agregar nuevos "motores de búsqueda" de forma aleatoria y silenciosa provoca un comportamiento inesperado en el omnibox. * Privacidad: Chrome no le informa cuándo decide agregar nuevos "motores de búsqueda", y no desaparecen cuando borra su historial de navegación. * Cortesía común: ¿no debería poder elegir si habilitar esta "función" o, en su defecto, al menos elegir ser informado cuando Chrome decida agregar un sitio, para que pueda revocar esta decisión?
fenry
1
Parece que no soy digno de decidirme de qué motores de búsqueda debería tener en cuenta mi navegador.
Anders Lindén

Respuestas:

34

Gracias al código de @ 10basetom e inspirado en @shthed, he lanzado la extensión de Chrome No agregar motores de búsqueda personalizados que hace exactamente eso.

Encontrarás el código fuente aquí .

¡Déjame saber lo que piensas!

Greg Sadetsky
fuente
1
@ O'Rooney ¡Gracias! Veo que algunos sitios pasan por la extensión de vez en cuando, pero es mucho mejor limpiar algunos motores de búsqueda en un mes que tener que hacer una "purga" semanal casi completa ... ¡Salud!
Greg Sadetsky
44
En realidad ya no funciona: todavía se agregan muchos motores de búsqueda personalizados.
onnodb
1
@onnodb gracias por la nota, desafortunadamente no tuve suficiente tiempo para actualizar la extensión.
Greg Sadetsky
1
@onnodb, Greg, ¿podrías (o cualquier otro interesado) probar este tenedor ? Echa un vistazo, luego carga .../srccomo una extensión desempaquetada. Déjame saber como va. ¡Gracias!
cxw
3
Pequeña nota de que la extensión acaba de actualizarse con un algoritmo de detección / bloqueo mejorado, ¡gracias a muchos esfuerzos de varios colaboradores! Dale hace un tiempo si no te funcionaba bien antes. Saludos
Greg Sadetsky
61

Esto me estaba volviendo completamente loco, así que encontré una solución hackista pero efectiva para el problema.

Chrome almacena sus motores de búsqueda en una simple base de datos sqlite3. Descubrí que puede crear un desencadenador cuando Chrome agrega el motor de búsqueda que hace que se ignore la instrucción de inserción de la base de datos.
Tenga en cuenta que los motores de búsqueda todavía se mantienen en la memoria, por lo que seguirán apareciendo en la lista hasta que se reinicie el navegador . Sin embargo, no tendrá que borrarlos todo el tiempo, por lo que si desea agregar sus propios motores de búsqueda, no tendrá que preocuparse por eliminarlos accidentalmente (sí, agregar motores de búsqueda manualmente seguirá funcionando).

Primero debes localizar el Web dataarchivo.

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

Luego ábralo con un editor sqlite3.

Chrome debe cerrarse en este punto.

El sitio web oficial de sqlite tiene una página de descarga con una utilidad de línea de comandos precompilada para los diversos sistemas operativos. Aunque cualquier editor capaz de trabajar con bases de datos sqlite3 funcionará.

Para la utilidad de línea de comandos, use un comando como el siguiente (no olvide escapar o citar el espacio en el nombre del archivo):

sqlite3 /path/to/Web\ Data

Agrega el gatillo.

CREAR GATILLO no_auto_keywords ANTES DE INSERTAR EN palabras clave CUANDO (NEW.originating_url NO ES NULO Y NUEVO.originating_url! = '') COMIENCE SELECCIONE AUMENTAR (IGNORE); FIN;

Ya terminaste Cierre el editor e inicie una copia de seguridad de Chrome.


La forma en que funciona es que cuando Chrome agrega automáticamente un motor de búsqueda a la keywordstabla, establece el originating_urlcampo en el sitio web del que proviene. El disparador básicamente busca cualquier inserción con un originating_urlcampo no vacío y emite un RAISE(IGNORE)mensaje que hace que la instrucción se omita silenciosamente.
Los motores de búsqueda agregados manualmente no tienen un originating_url, por lo que el disparador les permite agregarlos.

Patricio
fuente
2
Después de probar algunos editores, SQLiteStudio es mi favorito. De ninguna manera estoy relacionado con este producto. Solo una herramienta útil que encontré después de algunas búsquedas.
mateuscb
1
Esto es genial y funciona. Sin embargo, para mí, Chrome todavía agregó motores de búsqueda, no en la base de datos, sino en otra carpeta, "Sync Data Backup". Deshabilite los permisos de escritura para esa carpeta en Windows / Linux y desaparecerá para siempre.
Martin Hansen el
Esto ya no parece funcionar, al menos en Chrome v47beta. Después de reiniciar Chrome, el motor de búsqueda agregado automáticamente sigue en la lista, aunque escribir la palabra clave ya no lo activa.
Thdoan
FYI: 1 / haga una copia de este archivo primero en caso de que lo estropee :) 2 / en Mac 10.11.4 (El Capitan) No pude abrir el archivo / base de datos con sqlitebrowser.app ( "Error: unable to open database "~/Library/Application Support/Google/Chrome/Default/Web Data": unable to open database file). 3 / si intenta ejecutar el CREATE TRIGGERcomando mientras Chrome está abierto, Error: database is lockedsalga primero de Chrome. 4 / una vez que Chrome se cerró, esto abrió la base de datos que funcionó con éxito: /Volumes/Macintosh\ HD/Applications/sqlite3 ./Web\ Data(en Terminal, cuando se encuentra en el directorio especificado) HTH
envío el
Intenté eliminar de las palabras clave donde id> 2; y google simplemente los sincroniza desde el servidor. Supongo que es demasiado tarde después de que ya tengo miles de motores de búsqueda instalados.
Qi Fan
34

Hay dos maneras de hacer esto:

  1. Agregue este script de usuario a Tamper Monkey :

    var elOpenSearch = document.querySelector('[type="application/opensearchdescription+xml"]');
    if (elOpenSearch) elOpenSearch.remove();
  2. Si no eres un usuario habitual de Tamper Monkey y no tienes ganas de desperdiciar 15-20 MB de RAM solo para cargar la extensión de Tamper Monkey para este propósito, entonces puedes rodar tu propia extensión súper ligera que no consumirá ninguna memoria . Las instrucciones se proporcionan a continuación.

Cómo crear su propia extensión para eliminar la <link>etiqueta OpenSearch y evitar que Chrome agregue automáticamente motores de búsqueda:

  1. Cree una carpeta donde colocará los archivos de extensión.

  2. Dentro de esta carpeta, cree dos archivos de texto con el nombre manifest.jsony content.jsel código que se proporcionan a continuación.

    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. En Chrome, vaya a chrome://extensions/(ingrese esto en la barra de URL).

  4. Habilitar el modo de desarrollador.

  5. Haga clic en 'Cargar extensión desempaquetada', seleccione la carpeta que creó en el paso 1 y haga clic en 'Aceptar'.

¡Felicidades! Ahora Google Chrome debería ser un poco menos molesto de usar :-).

Limitación: esta solución no es 100% confiable. Si va a una URL que contiene un parámetro de búsqueda (por ejemplo, https://cdnjs.com/#q=fastclick ), en casos excepcionales se seguirá agregando un motor de búsqueda personalizado. Sospecho que esto se debe a que Chrome puede analizar la <link>etiqueta OpenSearch antes de que el script de usuario o la extensión tengan la oportunidad de eliminarla del DOM.

Thdoan
fuente
2
Me sorprende que nadie haya publicado esto como una extensión oficial de la tienda, parece que sería popular. Idealmente, me gustaría que una extensión me pregunte antes de agregar un motor de búsqueda, o que tenga un ícono en la barra de direcciones que me permita agregarlo, al igual que los canales RSS.
ryanmonk
77
¡Gracias por el gran código y @shthed gracias por la inspiración! Acabo de lanzar una extensión de Google Chrome que hace exactamente eso. Lo puedes encontrar aquí . Código fuente aquí . ¡Déjame saber lo que piensas! :-)
Greg Sadetsky
@GregSadetsky Publique esto como respuesta y podríamos votarlo :)
O'Rooney
24
  1. Sí, esto es por diseño .
  2. No , no hay forma de desactivar esto.
Sathyajith Bhat
fuente
2
Me encanta esta respuesta Esto es simple pero informativo
nXqd
8
Sin embargo, hay formas de desactivarlo, como explican otras respuestas :)
Enrico
66
"Sí, esto es por diseño". Es un diseño pobre e incorrecto para agregar cosas automáticamente a un sistema sin la opinión de los usuarios al respecto. Los sitios web maliciosos podrían aprovechar esto fácilmente. "No, no hay forma de desactivar esto". Obviamente, cuando se trata de software, siempre hay una manera. Ser perezoso y decir que no hay, no es una solución. Esta respuesta debe ser eliminada, y el escritor advirtió.
Alex Summers
Mi motor de búsqueda personalizado perdió después de borrar un caché. He abierto algunos sitios durante horas, pero estos motores no volvieron. ¿Sabes cómo recuperarlos? (No quiero agregarlos manualmente, demasiados)
Mithril
esta respuesta incorrecta es votada. ¿No debería ser eliminado o editado para corregirlo?
Santropedro
10

Aquí una solución un tanto extraña que funciona bien para mí. Simplemente cambie el nombre del alias de búsqueda a algo críptico como "§ $%! / () & /" . Mientras el motor de búsqueda aún esté allí, no lo volverá a ver nunca. Bastante molesto si no puedes buscar en Google "jenkins" porque Chrome te obliga a buscar en jenkins.

atamanroman
fuente
En serio, una locura molesta. Gracias por el consejo.
TJ Biddle
2
Me hace esto por jenkins, jiray confluence- Me vuelve absolutamente loco que no pueda iniciar una búsqueda general desde mi barra de direcciones para nada relacionado con estos tres. Esta es, con mucho, la mejor y única solución que he visto. Salud.
Matt Clark el
1
@MattClark jiraexactamente! ¡Quiero buscar sobre jira, no en él!
ErikE
¿Cómo te va en tu caso? Para mí, para activar la búsqueda en el sitio , tengo que escribir su palabra clave en omnibar y presionar Tab . Luego cambia a la búsqueda en el sitio y puedo seguir escribiendo la cadena de búsqueda. Si quiero buscar solo la palabra clave o una cadena que contenga la palabra clave, escribo la palabra clave, Espacio , resto de la cadena de búsqueda e Intro y estoy buscando usando el motor de búsqueda predeterminado. Por lo tanto, no interfiere entre sí. Simplemente use el espacio después de la palabra clave para buscar usando el motor de búsqueda predeterminado y la pestaña para buscar en el sitio.
Dawid Ferenczy Rogožan
@DawidFerenczy: Así no funciona para el resto de nosotros. Un espacio todavía usa ese motor de búsqueda. Escribo git, luego un espacio y cambia instantáneamente para usar el motor de búsqueda de git (que he eliminado innumerables veces).
Gerrat
9

Intente usar este simple script de usuario:

// ==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
fuente
1
¿Dónde agregar este script? o ejecutarlo?
mateuscb
2
@mateuscb Puedes obtenerlo desde aquí . Luego, simplemente suelte el script en la página de configuración de extensiones en Chrome, Chrome: // extensiones /.
Victor Häggqvist
Esta. Es. Increíble. Necesitaba crear un maniquí manifest.json(según la presente OS responder e instalarlo a través del modo dev (como una extensión sin embalaje), pero aparte de eso, trabajó como un regalo.
womble
1
O bien, puede usarlo en Tamper Monkey. Si está acostumbrado a realizar modificaciones en los sitios web, TM debe ser un complemento imprescindible.
JasonXA
También puede usar esta frase: document.querySelector('[type="application/opensearchdescription+xml"]').remove();(vea mi respuesta a continuación).
Thdoan
9

Para eliminar rápidamente un gran número de motores de búsqueda, navegue hasta chrome: // settings / searchEngines, presione Ctrl-Shift-J (Opt-Cmd-J en OSX) para ingresar a la consola Javascript y pegue esto:

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);
        });
    });

Es posible que deba pegar y ejecutar esto varias veces para borrar todo.

alcohol
fuente
Tuve que copiar / pegar esto unas 10 veces en la consola de desarrollo para eliminar las más de 100 entradas que tenía. Ojalá supiera cómo convertirlo en un bookmarklet de un solo clic.
jiggunjer
1
Lo modifiqué para ordenar primero la lista en reversa (según modelIndex), ya que su valor se restablece cada vez que se elimina una entrada (por lo que generalmente terminas eliminando alrededor de la mitad de la lista actual solamente) cuando trabajas de arriba a abajo. Cuando se trabaja de abajo hacia arriba, este problema no ocurre.
alcohol
¡El primero que vi que puede hacer esto de una vez! Prestigio.
bnieland
Trabajé en una ejecución en mi Windows 10, instalación de la versión 1709 de Chrome Versión 64.0.3282.186 (Versión oficial) (64 bits).
JosephHarriott
7

Si entiendo lo que estás describiendo correctamente, entonces no se trata de que los sitios web estén haciendo nada. Más bien, Chrome mismo identifica cuadros de búsqueda en sitios web y luego los agrega a su lista de opciones de búsqueda en el omnibar.

A1: Sí, este es el comportamiento predeterminado, pero no son los sitios web los que se agregan a sí mismos, es Chrome el que agrega los sitios web.

A2: No creo que pueda deshabilitar este comportamiento, sin embargo, puede eliminar los motores de búsqueda yendo al menú de herramientas -> Opciones -> Administrar motores de búsqueda; aparecerán en "Otros motores de búsqueda". Es posible que pueda especificar que no se debe volver a agregar uno cuando lo elimine, no estoy seguro: me gusta esta característica, por lo que no voy a intentar eliminarla.

Kromey
fuente
Gracias @Kromey, ese es un buen punto. Acabo de actualizar la pregunta para reflejar su comentario.
Amelio Vazquez-Reina
1
Esta respuesta es incorrecta, los sitios web se agregan efectivamente a Chrome ya que usan lo que se llama un documento de descripción de OpenSearch para permitir que Chrome agregue el motor de búsqueda de su sitio web a la lista de motores de búsqueda de Chrome con los que su navegador puede interactuar.
Marcel
@Marcel OpenSearch simplemente permite que los sitios describan su función de búsqueda. Todavía requiere que el navegador actúe sobre eso. Por lo tanto, esto no es incorrecto, simplemente no incluí la especificación técnica que se está utilizando para "... [identificar] cuadros de búsqueda en sitios web ..." en mi respuesta, ya que sentí que habría complicado un asunto que de otra manera sería simple - el mecanismo exacto de cómo el navegador encuentra un cuadro de búsqueda no es relevante para el usuario promedio, solo para los webmasters que desean que se agregue el suyo.
Kromey
7

Una solución que he encontrado para esto es adquirir el hábito de comenzar todas mis búsquedas con un espacio. Si escribe ・Splunk median(donde representa el carácter de espacio), Chrome realizará una búsqueda en Google Splunk median.

Jun-Dai Bates-Kobashigawa
fuente
2
Comenzar la búsqueda con un signo de interrogación (?) También usará su motor de búsqueda predeterminado.
Ari
¡Agradable! Eso me gusta más que el espacio.
Jun-Dai Bates-Kobashigawa
1
Para mí no funcionó. En Chrome 39, Win 7, al escribir spacekeyword no apareció la interfaz de búsqueda. Sin embargo, su solución fue útil en otros lugares, al nombrar. Si quiero que mis búsquedas definidas aparezcan encima de las automatizadas, un espacio delante del nombre y listo. Todos los motores de búsqueda automatizados van a continuación y ahora es más fácil administrarlos / eliminarlos.
JasonXA
simplemente presione ctrl + k para obtener ese comportamiento.
jiggunjer
6

<- Fondo ->

Tengo una idea alternativa y menos intrusiva para usted aquí (al menos si está ejecutando un bloqueador de anuncios, ya que muchos de nosotros somos para nuestra propia cordura / seguridad). Me gusta usar extensiones / scripts existentes tanto como sea posible para evitar la extensión de una extensión completa para una sola característica (el peor de los casos), por lo que esta solución funciona bajo este principio.

Adblock, y sus variantes / sucesores (uBlock es mi arma de elección), tienen la capacidad de bloquear elementos de la página web, incluidos los <link>elementos, que se utilizan para el descubrimiento automático de las descripciones de OpenSearch (OSD), los archivos XML que contienen la información que permite -Agrega motores de búsqueda y nos causa estos dolores de cabeza. Digo "permisos" porque no es obligatorio, ya que, hasta donde mi investigación ha demostrado, Firefox simplemente lee esta información y la pone a disposición para agregarla fácilmente en el cuadro desplegable Motores de búsqueda, en lugar de agregarla automáticamente en silencio como lo hace Chrome.

El uso de la función se describe en las especificaciones de Opensearch en varios lugares:

http://www.opensearch.org/Specifications/OpenSearch/1.1#Autodiscovery_in_RSS.2FAtom (ignore el subtítulo específico de esta sección para nuestros propósitos, ya que es solo un ejemplo de su uso)


<- La solución ->

Como establece que las descripciones de OpenSearch (OSD) tienen un tipo único, podemos filtrarlas con la siguiente regla AdblockPlus / uBlock:

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

He probado esto y la regla muestra la coincidencia correcta en mis sitios de prueba (filehippo.com, etc.) y los motores de búsqueda ya no se agregan automáticamente, por lo que creo que esta es una solución completa.


Una nota rápida sobre la historia que he encontrado detrás de esto: los ingenieros de Chromium han etiquetado este "WontFix" varias veces a lo largo de los años (se solicitó una opción / indicador de desactivación de usuarios avanzados varias veces) indicando que esto se considera un problema de nicho desde el la característica es "generalmente útil", su postura es que los problemas de nicho deben resolverse mediante extensiones o scripts de terceros en lugar de que los desarrolladores agreguen innumerables banderas y similares para satisfacer todos los caprichos, así que básicamente lo que estamos haciendo aquí es solo en línea con su preferencia y lo mantiene agradable y manejable.

¡La mejor de las suertes! Si alguien más lo intenta, háganos saber cómo funciona.

Torre
fuente
1
Esto no funcionó para mí (intente buscar en cdnjs.com ). He llegado a la conclusión de que no hay una solución 100% confiable :(
thdoan
Esto tampoco me funciona: si busco en 4inkjets.com , se agrega como motor de búsqueda (curiosamente, no puedo encontrar un application/opensearchdescription+xmlenlace en la página).
Ivan Kozik