O Google Chrome adiciona automaticamente sites à minha lista de mecanismos de pesquisa?


121

Percebi que certos sites (por exemplo, sites Stack Exchange, Dell etc.) são automaticamente adicionados à 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
  • Mestres da Web do Exchange da pilha: Teclado -> webmasters.stackexchange.com
  • Reuters: Teclado -> reuters.com

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

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

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


33
@ Sathya, por quê? Eu quero ter a flexibilidade para desativá-lo. Se sua pergunta é por que eu desativaria algo assim : a interface para editar os mecanismos de pesquisa 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 grande lista.
Amelio Vazquez-Reina

16
@Sathya - Muitos motivos: * Conveniência: Às vezes, você deseja pesquisar sobre um site, e não nesse site. * Consistência: A adição aleatória e silenciosa de novos "mecanismos de pesquisa" causa um comportamento inesperado na omnibox. * Privacidade: o Chrome não informa quando você decide adicionar novos "mecanismos de pesquisa" e eles não desaparecem quando você limpa o seu histórico de navegação. * Cortesia comum: não posso escolher se deseja ativar esse "recurso" ou, na sua falta, pelo menos optar por ser informado quando o Chrome decidir adicionar um site, para que eu possa contrariar essa decisão?
phenry

1
Parece que não sou digno de me decidir de quais mecanismos de pesquisa meu navegador deve estar ciente.
Anders Lindén

Respostas:


34

Graças ao código do @ 10basetom e inspirado no @shthed, lancei a extensão Não adicionar mecanismos de pesquisa personalizados do Chrome, que faz exatamente isso.

Você encontrará o código fonte aqui .

Diz-me o que pensas!


1
@ O'Rooney Obrigado! Vejo alguns sites deslizarem pela extensão de tempos em tempos, mas é muito melhor limpar alguns mecanismos de pesquisa em um mês do que ter que fazer uma "limpeza" semanal quase completa ... Saúde!
22816 Greg Sadetsky

4
Na verdade, não funciona mais: muitos mecanismos de pesquisa personalizados ainda acabam sendo adicionados.
Onnodb

1
@onnodb obrigado pela observação, infelizmente não tive tempo suficiente para atualizar a extensão.
Greg Sadetsky

1
@onnodb, Greg, você (ou qualquer outro interessado) pode experimentar este garfo ? Faça check-out e carregue .../srccomo uma extensão descompactada. Deixe-me saber como vai. Obrigado!
CXW

3
Observe que a extensão acabou de ser atualizada com um algoritmo de detecção / bloqueio muito aprimorado, graças a muitos esforços de vários colaboradores! Dê um tempo atrás se não estava funcionando bem para você anteriormente. Cheers #
Greg Sadetsky #: 19318

61

Isso estava me deixando absolutamente louco, então eu encontrei uma solução idiota, mas eficaz para o problema.

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

Primeiro você deve localizar o Web dataarquivo.

  • 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

Em seguida, abra-o com um editor sqlite3.

O Chrome deve estar desligado neste momento.

O site oficial do sqlite possui uma 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 AS PALAVRAS-CHAVE QUANDO (NEW.originating_url NÃO É NULL E NEW.originating_url! = '') COMEÇAR SELECT RAISE (IGNORE); FIM;

Você Terminou. Feche o editor e inicie o backup do chrome.


A maneira como funciona é que, quando o chrome adiciona automaticamente um mecanismo de pesquisa à keywordstabela, o chrome define o originating_urlcampo para o site de origem. O gatilho basicamente procura por inserções com um originating_urlcampo não vazio e emite uma RAISE(IGNORE)que faz com que a instrução seja ignorada silenciosamente.
Os mecanismos de pesquisa adicionados manualmente não possuem um originating_url, e, portanto, o gatilho permite que eles sejam adicionados.


2
Depois de experimentar alguns editores, o SQLiteStudio é o meu favorito. De maneira alguma estou relacionado a este produto. Apenas uma ferramenta útil que encontrei após algumas pesquisas.
mateuscb

1
Isso é ótimo e funciona. No entanto, para mim, o Chrome ainda adicionou mecanismos de pesquisa, não no banco de dados, mas em outra pasta, "Sync Data Backup". Desative as permissões de gravação para essa pasta no Windows / Linux e ela desaparecerá definitivamente.
Martin Hansen

Isso parece não funcionar mais, pelo menos no Chrome v47beta. Após reiniciar o Chrome, o mecanismo de pesquisa adicionado automaticamente ainda está na lista, embora a digitação da palavra-chave não a acione mais.
thdoan

FYI: 1 / faça uma cópia deste arquivo primeiro, caso você estrague tudo :) 2 / no Mac 10.11.4 (El Capitan) Não foi possível 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 executar o CREATE TRIGGERcomando enquanto o Chrome estiver aberto, Error: database is lockedsaia do Chrome primeiro. 4 / uma vez Chrome foi fechada, este abriu o banco de dados trabalhado com sucesso: /Volumes/Macintosh\ HD/Applications/sqlite3 ./Web\ Data(in Terminal, quando no diretório especificado) HTH
sming

Eu tentei excluir de palavras-chave em que id> 2; e o Google apenas os sincroniza de volta do servidor. Acho que é tarde demais depois que eu já tenho milhares de mecanismos de pesquisa instalados.
Qi Fan

34

Existem duas maneiras de fazer isso:

  1. Adicione este script de usuário ao Tamper Monkey :

    var elOpenSearch = document.querySelector('[type="application/opensearchdescription+xml"]');
    if (elOpenSearch) elOpenSearch.remove();
  2. Se você não é um usuário comum do Tamper Monkey e não está desperdiçando 15 a 20 MB de RAM apenas para carregar a extensão do Tamper Monkey para esse fim, então você pode lançar sua própria extensão super leve que não consumirá memória . As instruções são fornecidas abaixo.

Como criar sua própria extensão para remover a <link>tag OpenSearch e impedir o Chrome de adicionar automaticamente mecanismos de pesquisa:

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

  2. Dentro desta pasta, crie dois arquivos de texto nomeados manifest.jsone content.jscontendo 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, acesse chrome://extensions/(insira isso na barra de URL).

  4. Ative o modo de desenvolvedor.

  5. Clique em 'Carregar extensão descompactada', selecione a pasta que você criou na etapa 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 <link>ocorra porque o Chrome pode analisar a tag OpenSearch antes que o script ou a extensão do usuário possa removê-la do DOM.


2
Estou surpreso que ninguém tenha postado isso como uma extensão oficial da loja, parece que seria popular. Idealmente, eu gostaria que uma extensão me perguntasse antes de adicionar um mecanismo de pesquisa ou tivesse um ícone na barra de endereços que me permita adicioná-lo, assim como os feeds RSS.
Ryanmonk

7
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 31/03

@GregSadetsky Publicar isso como uma resposta e nós poderíamos votar a favor :)
O'Rooney

24

2
Eu amo essa resposta. Isto é simples, mas informativo
nXqd

8
No entanto, existem maneiras de desativá-lo, como outras respostas explicar :)
Enrico

6
"Sim, isso é por design." É um design ruim e inadequado adicionar coisas automaticamente a um sistema sem que os usuários entrem no assunto. Sites maliciosos podem facilmente tirar proveito disso. "Não, não há como desativar isso." Obviamente, quando existe software, sempre existe um caminho. Ser preguiçoso e dizer que não há, não é uma solução. Esta resposta deve ser removida, e o escritor alertou.
Alex Summers

Meu mecanismo de pesquisa personalizado perdeu após a limpeza do cache. Abri alguns sites por horas, mas esses mecanismos não voltaram. Você sabe como recuperá-los? (Eu não quero adicioná-los manualmente, muitos) #
222 Mithril

essa resposta errada é votada. Não deve ser excluído ou editado para corrigi-lo?
Santropedro 10/03

10

Aqui está uma solução um tanto hacky que funciona muito bem para mim. Apenas renomeie o alias de pesquisa para algo enigmático como "§ $%! / () & /" . Enquanto o mecanismo de pesquisa ainda estiver lá, você nunca mais o verá. Muito chato se você não pode procurar no google por "jenkins" porque o chrome obriga você a pesquisar no jenkins.


Sério - louco irritante. Obrigado pela dica.
TJ Biddle

2
Faz isso comigo por jenkins, jirae confluence- me deixa absolutamente louco por não conseguir iniciar uma pesquisa geral na barra de endereços por algo relacionado a esses três. Essa é de longe a melhor e única solução alternativa que já vi. Felicidades.
Matt Clark

1
@MattClark jiraexatamente! Quero pesquisar sobre jira, não nele!
ErikE 23/09

Como está se comportando no seu caso? Para mim, para acionar a pesquisa no site , preciso digitar sua palavra-chave em omnibar e pressionar Tab . Em seguida, ele muda para a pesquisa no site e posso continuar digitando a sequência de pesquisa. Se eu quiser pesquisar apenas a palavra-chave ou uma string que contenha a palavra-chave, digite a palavra-chave Space , restante da string de pesquisa e Enter e estou pesquisando usando o mecanismo de pesquisa padrão. Portanto, 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 a guia para pesquisar no site.
Dawid Ferenczy Rogožan

@DawidFerenczy: Não é assim que funciona para o resto de nós. Um espaço ainda usa esse mecanismo de pesquisa. Eu digito git, então um espaço e ele muda instantaneamente para usar o mecanismo de pesquisa do git (que removi inúmeras vezes).
Gerrat 24/04/19

9

Tente usar este simples script de usuário:

// ==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]);
    }
}

1
onde adiciona esse script? ou executá-lo?
mateuscb

2
@mateuscb Você pode obtê-lo aqui . Em seguida, basta soltar o script na página de configurações de extensões no chrome, chrome: // extensions /.
Victor Häggqvist

Este. É. Impressionante. Eu precisava criar um manequim manifest.json(conforme este SO responder e instalá-lo através do modo dev (como uma extensão descompactado), mas fora isso funcionou como um deleite.
womble

1
Ou, você pode usá-lo no Tamper Monkey. Se você está acostumado a fazer modificações em sites, a TM deve ser um complemento obrigatório.
JasonXA

Você também pode usar esta linha: document.querySelector('[type="application/opensearchdescription+xml"]').remove();(veja minha resposta abaixo).
thdoan

9

Para remover rapidamente um grande número de mecanismos de pesquisa, navegue até o chrome: // settings / searchEngines, pressione Ctrl-Shift-J (Opt-Cmd-J no OSX) para entrar no console Javascript e cole-o:

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

Pode ser necessário colar e executar isso algumas vezes para limpar tudo.


Eu tive que copiar / colar isso cerca de 10 vezes no dev-console para remover as mais de 100 entradas que eu tinha. Gostaria de saber como transformá-lo em um bookmarklet de clique único.
Jggunjer # 7/17

1
Modifiquei-a para classificar a lista ao contrário primeiro (com base no modelIndex), pois seu valor é redefinido toda vez que uma entrada é excluída (portanto, você geralmente acaba excluindo apenas metade da lista atual) ao trabalhar de cima para baixo. Ao trabalhar de baixo para cima, esse problema não ocorre.
álcool

Vi pela primeira vez que pode fazer isso de uma só vez! Parabéns.
bnieland

Trabalhei em uma execução na instalação do Windows 10, versão 1709, da versão 64.0.3282.186 do Chrome (Compilação Oficial) (64 bits).
21978 JosephHarriott #

7

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

A1: Sim, esse é o comportamento padrão, mas não são os sites que estão se adicionando, mas o Chrome está adicionando os sites.

A2: Não acredito que você possa desativar esse comportamento; no entanto, você pode remover os mecanismos de pesquisa acessando o menu da ferramenta -> Opções -> Gerenciar mecanismos de pesquisa; eles aparecerão em "Outros mecanismos de pesquisa". Você pode especificar que um não deve ser adicionado novamente ao removê-lo, não tenho certeza - gosto deste recurso, por isso não vou tentar removê-lo.


Obrigado @ Kromey, esse é um bom argumento. Acabei de atualizar a pergunta para refletir seu comentário.
Amelio Vazquez-Reina

1
Esta resposta está incorreta. Os sites se adicionam efetivamente ao Chrome, pois usam o que é chamado de documento de descrição do OpenSearch para permitir que o Chrome adicione o mecanismo de pesquisa do site à lista de mecanismos de pesquisa do Chrome com os quais seu navegador pode interagir.
Marcel

O @Marcel OpenSearch apenas permite que os sites descrevam seus recursos de pesquisa. Ele ainda exige que o navegador atue sobre isso. Portanto, isso não está incorreto, apenas não incluí as especificações técnicas que estão sendo usadas para "... [identificar] caixas de pesquisa em sites ..." na minha resposta, pois achei que teria complicado um assunto simples. - o mecanismo exato de como o navegador encontra uma caixa de pesquisa não é relevante para o usuário médio, apenas para os webmasters que desejam que os seus sejam adicionados.
Kromey

7

Uma solução alternativa que 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.


2
Iniciar a pesquisa com um ponto de interrogação (?) Também usará seu mecanismo de pesquisa padrão.
Ari

Agradável! Eu gosto disso melhor que o espaço.
Jun-Dai Bates-Kobashigawa

1
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 outro lugar, na nomeação. Se eu quiser que minhas pesquisas definidas apareçam sobre as automatizadas, um espaço na frente do nome e pronto. Todos os mecanismos de pesquisa automatizados estão abaixo e agora é mais fácil gerenciá-los / removê-los.
JasonXA

basta pressionar ctrl + k para obter esse comportamento.
Jggunjer # 7/17

6

<- Histórico ->

Tenho uma idéia alternativa e menos intrusiva para você aqui (pelo menos se você estiver executando um bloqueador de anúncios, como muitos de nós somos para nossa própria sanidade / segurança). Gosto de usar as extensões / scripts existentes o máximo possível para evitar o inchaço de uma extensão inteira para apenas um recurso (pior cenário), para que esta solução funcione sob esse princípio.

O Adblock, e suas variantes / sucessores (o uBlock é minha arma de escolha), têm a capacidade de bloquear elementos de páginas da web, incluindo <link>elementos, que são usados ​​para a descoberta automática de OpenSearch Descriptions (OSDs), os arquivos XML que contêm as informações que permitem auto adicionar motores de busca e causar essas dores de cabeça. Eu digo "autorizações" porque é dificilmente obrigatório, pois, até onde minha pesquisa mostrou, o Firefox simplesmente lê essas informações e as disponibiliza para fácil adição na caixa suspensa Mecanismos de pesquisa, em vez de adicioná-las silenciosamente automaticamente, como o Chrome faz.

O uso do recurso é descrito nas especificações do Opensearch em vários locais:

http://www.opensearch.org/Specifications/OpenSearch/1.1#Autodiscovery_in_RSS.2FAtom (ignore o subtítulo específico desta seção para nossos propósitos, pois é apenas um exemplo disso em uso)


<- A solução ->

Como afirma que as OpenSearch Descriptions (OSDs) têm um tipo único, podemos filtrá-las com a seguinte regra AdblockPlus / uBlock:

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

Eu testei isso e a regra mostra a correspondência correta nos meus sites de teste (filehippo.com etc.) e os mecanismos de pesquisa não adicionam mais automaticamente, então acredito que essa é uma solução completa.


Uma observação rápida da história que encontrei por trás disso: os engenheiros da Chromium rotularam esse "WontFix" várias vezes ao longo dos anos (uma opção / sinalizador de desativação de usuário avançado foi solicitada várias vezes), afirmando que isso é considerado um problema de nicho desde o O recurso é "geralmente útil"; a posição deles é que os problemas de nicho devem ser resolvidos por extensões ou scripts de terceiros, e não pelos desenvolvedores que adicionam inúmeras bandeiras e afins para atender a todos os caprichos, então basicamente o que estamos fazendo aqui é apenas de acordo com a preferência deles e o mantém agradável e gerenciável.

Boa sorte! Se alguém tentar, informe-nos como funciona!


1
Isso não funcionou para mim (tente pesquisar no cdnjs.com ). Eu vim à conclusão de que não há nenhuma solução confiável 100% :(
thdoan

Isto não está funcionando para mim também - se eu pesquisar na 4inkjets.com ele é adicionado como um motor de busca (estranhamente, eu não consigo encontrar um application/opensearchdescription+xmllink na página.)
Ivan Kozik
Ao utilizar nosso site, você reconhece que leu e compreendeu nossa Política de Cookies e nossa Política de Privacidade.
Licensed under cc by-sa 3.0 with attribution required.