Questão Google Chrome adicionando automaticamente sites à minha lista de mecanismos de busca?


Percebi que determinados websites (por exemplo, sites do Stack Exchange, Dell etc.) são adicionados automaticamente à minha lista de mecanismos de pesquisa no Google Chrome.

Eles até adicionam um atalho de teclado à sua entrada. aqui estão alguns exemplos:

  • Dell: Teclado -> Dell.com
  • Masters do Stack Exchange Web: Teclado -> webmasters.stackexchange.com
  • Reuters: Teclado -> reuters.com

Q1: Este é o comportamento padrão no Chrome? (para permitir que os sites se adicionem à lista de mecanismos de pesquisa?)

Q2: É possível desativar esse comportamento no Chrome?

Observação: estou executando a versão mais recente do Chrome: 11.0.696.57 no Windows 7 64 e tenho apenas uma extensão instalada: o encurtador de URL do Google.


100


origem


@ Sathya, por quê? Eu quero ter a flexibilidade para desativá-lo. Se a sua pergunta é por que eu iria desativar algo como isto: a interface para editar mecanismos de busca não é particularmente boa, e à medida que a lista cresce, é difícil dizer quais mecanismos de pesquisa adicionei manualmente e quais foram adicionados automaticamente. Também é mais difícil encontrar uma entrada específica em uma lista grande. - Amelio Vazquez-Reina
@Sathya - Muitas razões: * Conveniência: Às vezes você quer pesquisar sobre um site, em vez de ON naquele site. * Consistência: adicionar aleatoriamente e silenciosamente novos "mecanismos de pesquisa" causa um comportamento inesperado na omnibox. * Privacidade: o Chrome não informa quando decide adicionar novos "mecanismos de pesquisa" e não desaparece quando você limpa seu histórico de navegação. * Cortesia comum: não devo ser capaz de escolher se habilitar este "recurso" está habilitado, ou - na falta disso - pelo menos optar por ser informado quando o Chrome decide adicionar um site, para que eu possa contrariar esta decisão? - phenry
Duplicação possível de Google Chrome: remover todos os 'outros mecanismos de pesquisa' - Rod Boev


Respostas:


Graças ao código do @ 10basetom e inspirado pelo @shthed, eu lancei o Não adicione mecanismos de pesquisa personalizados Extensão do Chrome que faz exatamente isso.

Você encontrará o código fonte Aqui.

Diz-me o que pensas!


24



@ O'Rooney Obrigado! Eu vejo alguns sites escorregar pela extensão de vez em quando, mas é muito melhor limpar alguns motores de busca em um mês do que ter que fazer uma "purga" semanal quase completa ... Felicidades! - Greg Sadetsky
Não funciona mais: muitos mecanismos de pesquisa personalizados ainda são adicionados. - onnodb
@onnodb obrigado pela nota, infelizmente não tive tempo suficiente para atualizar a extensão. - Greg Sadetsky
@onnodb, Greg, você (ou qualquer outro interessado) por favor experimente este garfo? Confira e carregue .../src como uma extensão descompactada. Deixe-me saber como vai. Obrigado! - cxw
De notar que a extensão acaba de ser atualizada com um algoritmo de detecção / bloqueio muito melhorado, graças a muitos esforços de vários contribuidores! Dê um tempo atrás se não estivesse funcionando bem para você antes. Felicidades - Greg Sadetsky


Isso estava me deixando absolutamente insano, então eu encontrei uma solução hackiana, mas eficaz para a questão.

O Chrome armazena seus mecanismos de pesquisa em um banco de dados sqlite3 simples. Descobri que você pode criar um acionador quando o Chrome for adicionar o mecanismo de pesquisa que faz com que a instrução de inserção do banco de dados seja ignorada.
Note que os mecanismos de busca ainda são mantidos na memória, eles ainda aparecerão na lista até que o navegador seja reiniciado. No entanto, você não terá que apagá-los o tempo todo e, portanto, se quiser adicionar seus próprios mecanismos de pesquisa, não precisará se preocupar em excluí-los acidentalmente (sim, a adição manual dos mecanismos de pesquisa ainda funcionará).

Primeiro você deve localizar o Web data Arquivo.

  • 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

Em seguida, abra-o com um editor sqlite3.

O Chrome deve ser encerrado neste momento.

O site oficial sqlite tem um página de download com um utilitário de linha de comando pré-compilado para os vários sistemas operacionais. Embora qualquer editor capaz de trabalhar com bancos de dados sqlite3 funcione.

Para o utilitário de linha de comando, use um comando como o seguinte (não esqueça de escapar ou citar o espaço no nome do arquivo):

sqlite3 /path/to/Web\ Data

Adicione o gatilho.

CREATE TRIGGER no_auto_keywords ANTES DE INSERIR EM PALAVRAS-CHAVE WHEN (NEW.originating_url NÃO É NULL E NEW.originating_url! = '') BEGIN SELECT RAISE (IGNORE); FIM;

Você está feito. Feche o editor e inicie o backup do Chrome.


A maneira como funciona é que, quando o cromo vai adicionar auto-adicionar um motor de busca para o keywords mesa, cromo define o originating_url campo para o site de onde veio. O gatilho basicamente procura por inserções com um espaço não vazio. originating_url campo e emite um RAISE(IGNORE) que faz com que a declaração seja ignorada silenciosamente.
Os mecanismos de pesquisa adicionados manualmente não têm originating_urle, assim, o gatilho permite que eles sejam adicionados.


58



Depois de tentar alguns editores, SQLiteStudio meu favorito. De jeito nenhum eu estou relacionado a este produto. Apenas uma ferramenta útil que encontrei após algumas pesquisas. - mateuscb
Isso é ótimo e funciona. No entanto, para mim, o Google Chrome ainda adicionava mecanismos de pesquisa, não no banco de dados, mas em outra pasta, "Sincronizar backup de dados". Desative as permissões de gravação para essa pasta no Windows / Linux e ela será perdida para sempre. - Martin Hansen
Isso parece não funcionar mais, pelo menos no Chrome v47beta. Depois de reiniciar o Chrome, o mecanismo de pesquisa de adição automática ainda está na lista, embora a digitação da palavra-chave não a acione mais. - thdoan
FYI: 1 / fazer uma cópia deste arquivo primeiro no caso de você estragar tudo :) 2 / no Mac 10.11.4 (El Capitan) Eu não conseguia abrir o arquivo / banco de dados com sqlitebrowser.app ("Error: unable to open database "~/Library/Application Support/Google/Chrome/Default/Web Data": unable to open database file). 3 / se você tentar e executar o CREATE TRIGGER comando enquanto o Chrome está aberto, você obtém Error: database is locked então saia do Chrome primeiro. 4 / uma vez que o Chrome foi fechado, isso abriu o banco de dados trabalhado com sucesso: /Volumes/Macintosh\ HD/Applications/sqlite3 ./Web\ Data (dentro Terminal, quando no diretório especificado) HTH - sming
Tentei excluir de palavras-chave onde id> 2; e google apenas os sincroniza de volta do servidor. Acho que é tarde demais depois de já ter milhares de motores de busca instalados. - Qi Fan


Existem duas maneiras de fazer isso:

  1. Adicione este userscript a Macaco da calcadeira:

    var elOpenSearch = document.querySelector('[type="application/opensearchdescription+xml"]');
    if (elOpenSearch) elOpenSearch.remove();
    
  2. Se você não é um usuário normal do Tamper Monkey e não sente o desperdício de 15-20 MB de RAM apenas para carregar a extensão do Tamper Monkey para essa finalidade, então você pode rolar sua própria extensão super leve que não consumirá nenhuma memória. . As instruções são fornecidas abaixo.

Como criar sua própria extensão para remover o OpenSearch <link> Marcar e impedir que o Google Chrome adicione mecanismos de pesquisa automaticamente:

  1. Crie uma pasta onde você colocará os arquivos de extensão.

  2. Dentro desta pasta, crie dois arquivos de texto chamados manifest.json e content.js contendo o código fornecido abaixo.

    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. No Chrome, vá para chrome://extensions/ (insira isso na barra de URL).

  4. Ativar o modo de desenvolvedor.

  5. Clique em 'Load unpacked extension', selecione a pasta criada no passo 1 e clique em 'OK'.

Parabéns! Agora o Google Chrome deve ser um pouco menos chato de usar :-).

Limitação: Esta solução não é 100% confiável. Se você acessar um URL que contenha um parâmetro de pesquisa (por exemplo, https://cdnjs.com/#q=fastclick), em casos raros, um mecanismo de pesquisa personalizado ainda será adicionado. Eu suspeito que isso é porque o Chrome pode analisar o OpenSearch <link> tag antes que o userscript ou extensão tenha a chance de removê-lo do DOM.


27



Estou surpreso que ninguém tenha postado isso como uma extensão oficial para a loja, parece que seria popular. Idealmente, gostaria que uma extensão perguntasse antes de adicionar um mecanismo de pesquisa ou um ícone na barra de endereço que me permitisse adicioná-lo, assim como os feeds RSS. - ryanmonk
Obrigado pelo ótimo código e @shthed obrigado pela inspiração! Acabei de lançar uma extensão do Google Chrome que faz exatamente isso. Você pode encontrá-lo aqui. Código fonte Aqui. Diz-me o que pensas! :-) - Greg Sadetsky
@GregSadetsky Poste isso como uma resposta e nós poderíamos votar nele :) - O'Rooney
@ O'Rooney obrigado, acabou de fazer :-) - Greg Sadetsky


  1. Sim, isso é por design.
  2. Não, há não forma de desativar esta.

21



Eu amo essa resposta. Isso é simples, mas informativo - nXqd
No entanto, existem maneiras de desativá-lo, como outras respostas explicam :) - Enrico
"Sim, isso é por design." É um design inadequado e inadequado para incluir automaticamente as coisas em um sistema sem que os usuários digam sobre o assunto. Sites maliciosos podem facilmente aproveitar isso. "Não, não há como desabilitar isso." Obviamente, existe, quando é software, sempre há um caminho. Ser preguiçoso e dizer que não existe, não é uma solução. Essa resposta deve ser removida e o autor alertou. - Alex Summers


Tente usar este simple userscript:

// ==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



onde adicionar esse script? ou executá-lo? - mateuscb
@mateuscb Você pode obtê-lo de Aqui. Em seguida, solte o script na página de configurações de extensões em chrome, chrome: // extensions /. - Victor Häggqvist
Este. É. Impressionante. Eu precisava criar um manequim manifest.json (conforme esta resposta SO e instalá-lo via modo dev (como uma extensão descompactada), mas além disso, funcionava como um tratamento. - womble
Ou você pode usá-lo no Tamper Monkey. Se você está acostumado a fazer modificações em sites, o TM deve ser um complemento obrigatório. - JasonXA
Você também pode usar este one-liner: document.querySelector('[type="application/opensearchdescription+xml"]').remove(); (veja minha resposta abaixo). - thdoan


Aqui uma solução um tanto hacky que funciona muito bem para mim. Basta renomear o alias de pesquisa para algo críptico como "§ $%! / () & /". Embora o mecanismo de pesquisa ainda esteja lá, você nunca mais o verá. Muito irritante se você não pode google por "Jenkins" porque chrome obriga você a procurar em Jenkins.


7



Sério - louco irritante. Obrigado pela dica. - TJ Biddle
Faz isso comigo por jenkins, jirae confluence - Isso me deixa absolutamente louco que eu não posso iniciar uma pesquisa geral na minha barra de endereços para qualquer coisa relacionada a esses três. Esta é, de longe, a melhor e única solução de trabalho que já vi. Felicidades. - Matt Clark
@MattClark jira exatamente! Eu quero pesquisar sobre jira, não nela! - ErikE
Como está se comportando no seu caso? Para mim, acionar a pesquisa no local, Eu tenho que digitar sua palavra-chave em omnibar um pressione Aba. Então muda para o pesquisa no site e posso continuar a digitar a string de pesquisa. Se eu quiser pesquisar apenas a palavra-chave ou uma string contendo a palavra-chave, eu digito a palavra-chave, Espaço, resto da string de pesquisa e Entrar e estou pesquisando usando o mecanismo de pesquisa padrão. Então isso não interfere um no outro. Basta usar o Espaço após a palavra-chave para pesquisar usando o mecanismo de pesquisa padrão e o Aba pesquisar no site. - Dawid Ferenczy
@DawidFerenczy: Não é assim que funciona para o resto de nós. Um espaço ainda usa esse mecanismo de pesquisa. Eu digito git, em seguida, um espaço e instantaneamente muda para usar o mecanismo de busca do git (que eu removi inúmeras vezes). - Gerrat


Se eu estou entendendo o que você está descrevendo corretamente, então este não é o site fazendo nada. Em vez disso, o próprio Chrome identifica caixas de pesquisa em sites e, em seguida, adiciona-as à sua lista de opções de pesquisa no omnibar.

A1: Sim, esse é o comportamento padrão, mas não são os sites que se adicionam, é o Chrome que adiciona os sites.

A2: Eu não acredito que você pode desabilitar esse comportamento, no entanto, você pode remover os motores de busca, indo para o menu de ferramentas -> Opções -> Gerenciar motores de busca; eles aparecerão em "Outros mecanismos de pesquisa". Você pode ser capaz de especificar que um não deve ser adicionado novamente quando você removê-lo, não tenho certeza - por acaso eu gosto desse recurso, então eu não vou tentar removê-los.


6



Obrigado @Kromey, isso é um bom ponto. Acabei de atualizar a pergunta para refletir seu comentário. - Amelio Vazquez-Reina
Esta resposta está incorreta, os websites adicionam-se efetivamente ao Google Chrome quando usam o que é chamado de Documento de descrição do OpenSearch para permitir que o Chrome adicione o mecanismo de pesquisa de seu website à lista de mecanismos de pesquisa do Google Chrome com os quais o navegador pode interagir. - Marcel
@Marcel OpenSearch apenas permite que sites descrever seu recurso de pesquisa. Ainda requer o navegador para agir sobre isso. Portanto, isso não é incorreto, eu apenas não incluí as especificações técnicas que estão sendo usadas para "... identificar caixas de pesquisa em sites ..." em minha resposta, pois eu achava que isso teria complicado uma questão de outra forma simples. - o mecanismo exato de como o navegador encontra uma caixa de pesquisa não é relevante para o usuário comum, apenas para os webmasters que desejam que eles sejam adicionados. - Kromey


Uma solução que eu encontrei para isso é adquirir o hábito de iniciar todas as minhas pesquisas com um espaço. Se você digitar ・Splunk median (Onde  representa o caractere de espaço), o Chrome realizará uma pesquisa no Google Splunk median.


6



Iniciar a pesquisa com um ponto de interrogação (?) Também usará o mecanismo de pesquisa padrão. - Ari
Agradável! Eu gosto disso melhor que o espaço. - Jun-Dai Bates-Kobashigawa
Para mim não funcionou. No Chrome 39, Win 7, digitar spacekeyword não trouxe a interface de pesquisa. No entanto, sua solução foi útil em outros lugares, na nomenclatura. Se eu quiser que minhas buscas definidas apareçam em cima das automatizadas, um espaço na frente do nome e pronto. Todos os mecanismos de pesquisa automatizados seguem abaixo e agora é mais fácil gerenciá-los / removê-los. - JasonXA
basta pressionar ctrl + k para obter esse comportamento. - jiggunjer