2011-07-11 29 views
6

Estoy intentando configurar varias preferencias de Google Chrome a través de un script (tanto en OS X como en Windows). Puedo establecer con éxito un número de preferencias y agregar marcadores, editando los archivos JSON de Preferencias y Marcadores en la carpeta de datos de la aplicación del usuario. Sin embargo, cuando intento establecer un nuevo proveedor de búsqueda predeterminado, el navegador automáticamente vuelve a la búsqueda de Google.Configuración del proveedor de búsqueda predeterminado en Chrome a través de un script

El nodo proveedor de búsqueda predeterminado en el archivo de preferencias tiene el siguiente aspecto:

"default_search_provider": { 
    "enabled": true, 
    "encodings": "UTF-8", 
    "icon_url": "http://www.google.com/favicon.ico", 
    "id": "2", 
    "instant_url": "{google:baseURL}webhp?{google:RLZ}sourceid=chrome-instant&ie={inputEncoding}&ion=1{searchTerms}&nord=1", 
    "keyword": "google.com", 
    "name": "Google", 
    "prepopulate_id": "1", 
    "search_url": "{google:baseURL}search?{google:RLZ}{google:acceptedSuggestion}{google:originalQueryForSuggestion}sourceid=chrome&ie={inputEncoding}&q={searchTerms}", 
    "suggest_url": "{google:baseSuggestURL}search?client=chrome&hl={language}&q={searchTerms}" 
} 

Con el fin de añadir mi proveedor de búsqueda deseada, simplemente he añadido manualmente (a través del menú de herramientas), visto el efecto de esta acción en el archivo json, y luego escribió un script para imitar estos cambios. Sin embargo, cuando lo cambio a través de un script, el proveedor de búsqueda predeterminado se utiliza para la primera búsqueda, pero luego se restablece la próxima vez que se inicie Chrome. que me estoy perdiendo aqui?

+1

¿Has encontrado una solución? Estoy buscando cambiar esto desde una extensión de Chrome. – sorin

Respuesta

2

Si desea cambiar el proveedor de búsqueda predeterminado en Google Chrome, debe modificar el archivo 'Datos web' que es un archivo SQLite.

En mi computadora, la ubicación donde puede encontrar el archivo es C:\Users\daniel\AppData\Local\Google\Chrome\User Data\Default (Windows7).

Vea el contenido del archivo con el navegador de la base de datos SQLite; usted puede encontrar uno here.

+0

¿En qué tabla se encuentra el proveedor de búsqueda predeterminado? ¿Es web_apps? –

4

como se menciona, debe editar el archivo 'Web Data', que es una base de datos sqlite.

Para agregar un motor de búsqueda, agregue una entrada a la tabla 'keywords'.
Para cambiar el motor de búsqueda predeterminado, edite el valor 'Default Search Provider ID 'dentro de la tabla 'meta'.

+0

Esa es una muy buena respuesta. –

+0

Hola, probé lo mismo, pero no pude lograr lo requerido. ¿Podría compartir algún recurso donde pueda obtener una mejor orientación para la implementación de esta solución? También la escritura de archivos de Web Data desde el navegador necesitaría control ActiveX ... esto de nuevo es un territorio en el que no quisiera entrar – zeetit

+0

@ var17 I ' No estoy seguro de qué quiere decir con "... necesitaría control ActiveX ..." Para editar una base de datos sqlite, puede usar una aplicación dedicada (como un [shell de línea de comandos] (http://sqlite.org) /cli.html)) o use una API para su idioma preferido (como [API for C] (http: // www.sqlite.org/capi3ref.html) o [para Python] (https://docs.python.org/2/library/sqlite3.html)) De cualquier forma, Esta pregunta es bastante antigua, entonces estoy no estoy seguro si la solución aún funciona ¡Avísame si te funcionó! – Yuval

0

Una solución que está trabajando para cromo y cromo en Ubuntu se puede encontrar aquí:

https://github.com/andreashuber69/os-setup/blob/master/common/reset-browser-preferences

Además de establecer el proveedor de búsqueda predeterminado, la secuencia de comandos vinculados más personaliza Chromium/Chrome para mi gusto. Para Chrome, la parte correspondiente a la pregunta es la siguiente:

# Modify the preferences relevant to the default search provider 
cat ~/.config/google-chrome/Default/Preferences | jq '.default_search_provider_data.template_url_data={ "keyword": "duckduckgo.com", "short_name": "DuckDuckGo", "suggestions_url": "https://duckduckgo.com/ac/?q={searchTerms}&type=list", "url": "https://duckduckgo.com/?q={searchTerms}&t=canonical" }' >adapted-preferences.json 
mv adapted-preferences.json ~/.config/google-chrome/Default/Preferences 

Esto simplemente añade una nueva entrada a la lista de motores de búsqueda y lo establece como predeterminado. Si desea seleccionar uno existente, las cosas son un poco más complicadas (ver el script para más detalles). Lo anterior requiere el paquete jq, que no está presente de manera predeterminada en Ubuntu.

Contrariamente a otras publicaciones, parece que ya no es posible establecer el valor predeterminado en la tabla meta. Debe hacerse a través del archivo de Preferencias como se muestra arriba.

Cuestiones relacionadas