Google Chrome secara otomatis menambahkan situs web ke daftar mesin pencari saya?

121

Saya perhatikan bahwa situs web tertentu (misalnya situs Stack Exchange, Dell, dll.) Secara otomatis ditambahkan ke daftar mesin pencari saya di Google Chrome.

Mereka bahkan menambahkan pintasan keyboard ke entri mereka. Berikut ini beberapa contohnya:

  • Dell: Keyboard -> Dell.com
  • Master Web Stack Exchange: Keyboard -> webmasters.stackexchange.com
  • Reuters: Keyboard -> reuters.com

T1: Apakah ini perilaku default di Chrome? (untuk membiarkan situs web menambahkan diri mereka sendiri ke daftar mesin pencari?)

T2: Apakah mungkin untuk menonaktifkan perilaku ini di Chrome?

Catatan: Saya menjalankan versi terbaru Chrome: 11.0.696.57 pada Windows 7 64, dan saya hanya menginstal satu ekstensi: pemendek URL Google.

Amelio Vazquez-Reina
sumber
33
@ Sathya, Kenapa? Saya ingin memiliki fleksibilitas untuk menonaktifkannya. Jika pertanyaan Anda adalah mengapa saya menonaktifkan sesuatu seperti ini : antarmuka untuk mengedit mesin pencari tidak terlalu bagus, dan seiring bertambahnya daftar, sulit untuk mengetahui mesin pencari mana yang saya tambahkan secara manual dan mana yang ditambahkan secara otomatis. Juga lebih sulit untuk menemukan entri tertentu dalam daftar besar.
Amelio Vazquez-Reina
16
@Sathya - Banyak alasan: * Kemudahan: Terkadang Anda ingin mencari TENTANG sebuah situs, daripada DI situs itu. * Konsistensi: Secara acak dan diam-diam menambahkan "mesin pencari" baru menyebabkan perilaku tak terduga di mahakotak. * Privasi: Chrome tidak memberi tahu Anda saat memutuskan untuk menambahkan "mesin pencari" baru, dan mereka tidak hilang ketika Anda menghapus riwayat penjelajahan Anda. * Kesopanan umum: Tidakkah saya bisa memilih apakah akan mengaktifkan "fitur" ini diaktifkan, atau — gagal — setidaknya memilih untuk diberi tahu ketika Chrome memutuskan untuk menambahkan situs, sehingga saya dapat membatalkan keputusan ini?
phenry
1
Sepertinya saya tidak layak memutuskan sendiri mesin pencari mana yang harus diperhatikan oleh browser saya.
Anders Lindén

Jawaban:

34

Berkat kode @ 10basetom dan terinspirasi oleh @shthed, saya telah merilis Jangan tambahkan ekstensi Chrome mesin pencari khusus yang melakukan hal itu.

Anda akan menemukan kode sumber di sini .

Biarkan aku tahu apa yang kau pikirkan!

Greg Sadetsky
sumber
1
@ O'Rooney Terima kasih! Saya melihat beberapa situs tergelincir oleh ekstensi dari waktu ke waktu, tetapi jauh lebih baik membersihkan beberapa mesin pencari dalam sebulan daripada harus melakukan "pembersihan" mingguan yang hampir lengkap ... Ceria!
Greg Sadetsky
4
Tidak benar-benar berfungsi lagi: banyak mesin pencari kustom yang akhirnya ditambahkan.
onnodb
1
@onnodb terima kasih atas catatannya, sayangnya saya tidak punya cukup waktu untuk memperbarui ekstensi.
Greg Sadetsky
1
@onnodb, Greg, maukah Anda (atau yang lain tertarik) mencoba garpu ini ? Lihat, lalu muat .../srcsebagai ekstensi yang belum dibongkar. Biarkan saya tahu bagaimana kelanjutannya. Terima kasih!
cxw
3
Catatan kecil bahwa ekstensi baru saja diperbarui dengan algoritma deteksi / pemblokiran yang jauh lebih baik, berkat banyak upaya dari sejumlah kontributor! Berikan waktu yang lalu jika itu tidak bekerja dengan baik untuk Anda sebelumnya. Cheers
Greg Sadetsky
61

Ini membuat saya benar-benar gila, jadi saya menemukan solusi yang retas, tetapi efektif untuk masalah ini.

Chrome menyimpan mesin pencari itu dalam database sqlite3 sederhana. Saya menemukan bahwa Anda dapat membuat pemicu ketika chrome menambahkan mesin pencari yang menyebabkan pernyataan penyisipan basis data diabaikan.
Perhatikan bahwa mesin pencari masih disimpan dalam memori, sehingga mereka akan tetap muncul dalam daftar sampai browser dihidupkan ulang . Namun Anda tidak perlu menghapusnya sepanjang waktu, dan jika Anda ingin menambahkan mesin pencari Anda sendiri, Anda tidak perlu khawatir tentang menghapusnya secara tidak sengaja (ya, menambahkan mesin pencari secara manual masih akan bekerja).

Pertama, Anda harus menemukan Web datafile.

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

Kemudian buka dengan editor sqlite3.

Chrome harus dimatikan pada saat ini.

Situs web resmi sqlite memiliki halaman pengunduhan dengan utilitas baris perintah yang telah dikompilasi sebelumnya untuk berbagai sistem operasi. Meskipun setiap editor yang mampu bekerja dengan database sqlite3 akan berfungsi.

Untuk utilitas baris perintah, gunakan perintah seperti berikut (jangan lupa untuk keluar atau mengutip spasi dalam nama file):

sqlite3 /path/to/Web\ Data

Tambahkan pemicunya.

BUAT TRIGGER no_auto_keywords SEBELUM MASUKKAN PADA kata kunci SAAT (BARU.originating_url BUKAN NULL DAN BARU.originating_url! = '') BEGIN SELECT RAISE (IGNORE); AKHIR;

Kamu sudah selesai. Tutup editor dan mulai kembali chrome.


Cara kerjanya adalah bahwa ketika chrome menambahkan otomatis menambahkan mesin pencari ke keywordstabel, chrome menetapkan originating_urlbidang ke situs web asalnya. Pemicu pada dasarnya mencari setiap sisipan dengan bidang yang tidak kosong originating_url, dan mengeluarkan apa RAISE(IGNORE)yang menyebabkan pernyataan dilewati secara diam-diam.
Mesin pencari yang ditambahkan secara manual tidak memiliki originating_url, sehingga pemicunya memungkinkan untuk ditambahkan.

Patrick
sumber
2
Setelah mencoba beberapa editor, SQLiteStudio favorit saya. Tidak mungkin saya terkait dengan produk ini. Hanya alat yang berguna yang saya temukan setelah beberapa pencarian.
mateuscb
1
Ini bagus dan berhasil. Namun, bagi saya, Chrome masih menambahkan mesin pencari, bukan di basis data, tetapi di folder lain, "Sinkronkan Cadangan Data". Nonaktifkan izin menulis untuk folder itu di Windows / Linux dan itu akan hilang untuk selamanya.
Martin Hansen
Tampaknya ini tidak berfungsi lagi, setidaknya di Chrome v47beta. Setelah memulai ulang Chrome, mesin pencari yang ditambahkan secara otomatis masih ada dalam daftar, walaupun mengetikkan kata kunci tidak memicu lagi.
thdoan
FYI: 1 / buat salinan file ini pertama-tama jika Anda mengacaukannya :) 2 / pada Mac 10.11.4 (El Capitan) Saya tidak dapat membuka file / database dengan sqlitebrowser.app ( "Error: unable to open database "~/Library/Application Support/Google/Chrome/Default/Web Data": unable to open database file). 3 / jika Anda mencoba dan menjalankan CREATE TRIGGERperintah ketika Chrome terbuka, Anda Error: database is lockedkeluar dari Chrome terlebih dahulu. 4 / begitu Chrome ditutup, ini membuka basis data yang berhasil: /Volumes/Macintosh\ HD/Applications/sqlite3 ./Web\ Data(dalam Terminal, ketika dalam direktori yang ditentukan) HTH
sming
Saya mencoba menghapus dari kata kunci di mana id> 2; dan google hanya menyinkronkannya kembali dari server. Saya kira sudah terlambat setelah saya memiliki ribuan mesin pencari diinstal.
Qi Fan
34

Ada dua cara untuk melakukan ini:

  1. Tambahkan script pengguna ini ke Tamper Monkey :

    var elOpenSearch = document.querySelector('[type="application/opensearchdescription+xml"]');
    if (elOpenSearch) elOpenSearch.remove();
  2. Jika Anda bukan pengguna Monyet Tamper biasa dan tidak ingin menghabiskan 15-20 MB RAM hanya untuk memuat ekstensi Monyet Tamper untuk tujuan ini, maka Anda dapat melempar ekstensi super ringan Anda sendiri yang tidak akan menghabiskan memori apa pun . Instruksi disediakan di bawah ini.

Cara membuat ekstensi Anda sendiri untuk menghapus <link>tag OpenSearch dan mencegah Chrome menambahkan mesin pencari:

  1. Buat folder tempat Anda meletakkan file ekstensi.

  2. Di dalam folder ini, buat dua file teks bernama manifest.jsondan content.jsberisi kode yang disediakan di bawah ini.

    manifes. 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. Di Chrome, buka chrome://extensions/(masukkan ini ke bilah URL).

  4. Aktifkan Mode Pengembang.

  5. Klik 'Muat ekstensi yang belum dibuka', pilih folder yang Anda buat pada langkah 1, dan klik 'OK'.

Selamat! Sekarang Google Chrome seharusnya tidak terlalu mengganggu untuk digunakan :-).

Batasan: Solusi ini tidak dapat diandalkan 100%. Jika Anda membuka URL yang berisi parameter pencarian (mis., Https://cdnjs.com/#q=fastclick ), maka dalam kasus yang jarang terjadi, mesin pencari khusus masih akan ditambahkan. Saya menduga ini karena Chrome dapat mengurai <link>tag OpenSearch sebelum script pengguna atau ekstensi memiliki kesempatan untuk menghapusnya dari DOM.

Terima kasih
sumber
2
Saya terkejut tidak ada yang memposting ini sebagai ekstensi resmi ke toko, sepertinya itu akan populer. Idealnya saya ingin ekstensi untuk bertanya kepada saya sebelum menambahkan mesin pencari, atau memiliki ikon di bilah alamat yang memungkinkan saya menambahkannya, seperti umpan RSS.
ryanmonk
7
Terima kasih untuk kodenya yang luar biasa dan @shthed terima kasih atas ilhamnya! Saya baru saja merilis Ekstensi Google Chrome yang melakukan hal itu. Anda dapat menemukannya di sini . Kode sumber di sini . Biarkan aku tahu apa yang kau pikirkan! :-)
Greg Sadetsky
@GregSadetsky Posting ini sebagai jawaban dan kita bisa memilihnya :)
O'Rooney
24
  1. Ya, ini sesuai desain .
  2. Tidak , tidak ada cara untuk menonaktifkan ini.
Sathyajith Bhat
sumber
2
Saya suka jawaban ini. Ini sederhana namun informatif
nXqd
8
Namun ada beberapa cara untuk menonaktifkannya, seperti yang dijelaskan oleh jawaban lain :)
Enrico
6
"Ya, ini memang desain." Ini adalah desain yang buruk dan tidak tepat untuk secara otomatis menambahkan hal-hal ke sistem tanpa input pengguna tentang masalah tersebut. Situs web berbahaya dapat dengan mudah memanfaatkan ini. "Tidak, tidak ada cara untuk menonaktifkan ini." Jelas ada, ketika itu perangkat lunak, selalu ada jalan. Menjadi malas dan mengatakan tidak ada, bukanlah solusi. Jawaban ini harus dihapus, dan penulis memperingatkan.
Alex Summers
Mesin pencari khusus saya hilang setelah cache bersih. Saya telah membuka beberapa situs selama berjam-jam tetapi mesin ini tidak kembali. Apakah Anda tahu cara mendapatkannya kembali (saya tidak ingin menambahkannya secara manual, terlalu banyak)
Mithril
jawaban yang salah ini terangkat. Bukankah seharusnya dihapus, atau diedit untuk memperbaikinya?
Santropedro
10

Di sini solusi yang agak aneh yang bekerja dengan baik untuk saya. Ubah nama alias pencarian menjadi sesuatu yang samar seperti "§ $%! / () & /" . Sementara mesin pencari masih ada Anda tidak akan melihatnya lagi. Cukup menyebalkan jika Anda tidak dapat mencari "jenkins" di google karena chrome memaksa Anda untuk mencari di jenkins.

atamanroman
sumber
Serius - gila menjengkelkan. Terima kasih atas tipnya.
TJ Biddle
2
Ini melakukan ini untuk saya untuk jenkins,, jiradan confluence- Ini membuat saya benar-benar gila karena saya tidak dapat memulai pencarian umum dari bilah alamat saya untuk apa pun yang terkait dengan ketiganya. Sejauh ini, ini adalah solusi bekerja terbaik dan satu-satunya yang saya lihat. Tepuk tangan.
Matt Clark
1
@MattClark jiratepatnya! Saya ingin mencari tentang jira, bukan di dalamnya!
ErikE
Bagaimana perilakunya dalam kasus Anda? Bagi saya, untuk memicu pencarian di situs , saya harus mengetikkan kata kunci ke omnibar, tekan Tab . Kemudian itu berubah menjadi pencarian di situs dan saya dapat terus mengetik string pencarian. Jika saya ingin mencari hanya kata kunci atau string yang mengandung kata kunci, saya ketik kata kunci, Spasi , sisa dari string pencarian dan Enter dan saya mencari menggunakan mesin pencari default. Jadi tidak saling mengganggu. Cukup gunakan Spasi setelah kata kunci untuk mencari menggunakan mesin pencari default dan Tab untuk mencari di situs.
Dawid Ferenczy Rogožan
@ DawidFerenczy: Itu bukan cara kerjanya untuk kita semua. Ruang masih menggunakan mesin pencari itu. Saya mengetik git, lalu spasi dan langsung berubah untuk menggunakan mesin pencarian git (yang saya hapus berkali-kali).
Gerrat
9

Coba gunakan skrip pengguna yang sederhana ini:

// ==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
sumber
1
di mana menambahkan skrip ini? atau melaksanakannya?
mateuscb
2
@mateuscb Anda bisa mendapatkannya dari sini . Kemudian cukup letakkan script di halaman pengaturan ekstensi di chrome, chrome: // extensions /.
Victor Häggqvist
Ini. Aku s. Luar biasa. Saya perlu membuat boneka manifest.json(sesuai jawaban SO ini dan menginstalnya melalui mode dev (sebagai ekstensi yang belum dibongkar), tetapi selain itu itu berfungsi seperti suguhan.
womble
1
Atau, Anda bisa menggunakannya di Tamper Monkey. Jika Anda terbiasa melakukan modifikasi pada situs web, TM harus menjadi tambahan yang harus dimiliki.
JasonXA
Anda juga dapat menggunakan one-liner ini: document.querySelector('[type="application/opensearchdescription+xml"]').remove();(lihat jawaban saya di bawah).
thdoan
9

Untuk dengan cepat menghapus sejumlah besar mesin pencari, telusuri ke chrome: // setting / searchEngines, tekan Ctrl-Shift-J (Opt-Cmd-J di OSX) untuk masuk ke konsol Javascript, dan rekatkan ini:

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

Anda mungkin perlu menempel dan menjalankan ini beberapa kali untuk menghapus semuanya.

alkohol
sumber
Saya harus menyalin / menempel ini sekitar 10 kali ke dev-console untuk menghapus 100 entri yang saya punya. Seandainya saya tahu cara mengubahnya menjadi bookmarklet sekali klik.
jiggunjer
1
Saya memodifikasinya untuk mengurutkan daftar secara terbalik terlebih dahulu (berdasarkan modelIndex), karena nilainya akan diatur ulang setiap kali sebuah entri dihapus (jadi Anda biasanya menghapus sekitar setengah dari daftar saat ini saja) ketika bekerja dari atas ke bawah. Saat bekerja dari bawah ke atas, masalah ini tidak terjadi.
alkohol
Yang pertama saya lihat yang bisa melakukan ini dalam sekali jalan! Pujian.
bnieland
Bekerja dalam sekali jalan di Windows 10 saya, pemasangan Chrome Versi 64.0.3282.186 versi 1709 (Pembuatan Resmi) (64-bit).
JosephHarriott
7

Jika saya memahami apa yang Anda gambarkan dengan benar, maka ini bukan situs web yang melakukan apa pun. Sebaliknya, Chrome sendiri mengidentifikasi kotak pencarian di situs web dan kemudian sendiri menambahkannya ke daftar opsi pencarian di omnibar.

A1: Ya, ini adalah perilaku default, tapi itu bukan situs web yang menambahkan sendiri, ini Chrome yang menambahkan situs web.

A2: Saya tidak percaya Anda dapat menonaktifkan perilaku ini, namun Anda dapat menghapus mesin pencari dengan masuk ke menu alat -> Opsi -> Kelola Mesin Pencari; mereka akan muncul di bawah "Mesin Pencari Lain". Anda mungkin dapat menentukan bahwa seseorang tidak boleh ditambahkan kembali ketika Anda menghapusnya, saya tidak yakin - Saya suka fitur ini, jadi saya tidak akan mencoba menghapusnya.

Kromey
sumber
Terima kasih @romey, Itu poin yang bagus. Saya baru saja memperbarui pertanyaan untuk mencerminkan komentar Anda.
Amelio Vazquez-Reina
1
Jawaban ini salah, situs web memang secara efektif menambahkan diri mereka ke Chrome karena mereka menggunakan apa yang disebut dokumen deskripsi OpenSearch untuk memungkinkan Chrome menambahkan mesin pencari situs web mereka ke daftar mesin pencari Chrome yang dapat dihubungi oleh peramban Anda.
Marcel
@Marcel OpenSearch hanya memungkinkan situs menggambarkan fitur pencarian mereka. Masih membutuhkan browser untuk bertindak atas hal itu. Karena itu ini tidak salah, saya hanya tidak memasukkan spesifikasi teknis yang digunakan untuk "... [mengidentifikasi] kotak pencarian di situs web ..." dalam jawaban saya, karena saya merasa itu akan mempersulit masalah yang dinyatakan sederhana. - mekanisme pasti bagaimana browser menemukan kotak pencarian tidak relevan bagi pengguna rata-rata, hanya untuk webmaster yang ingin menambahkannya.
Kromey
7

Satu solusi yang saya temukan untuk ini adalah untuk mendapatkan kebiasaan memulai semua pencarian saya dengan spasi. Jika Anda mengetik ・Splunk median(di mana mewakili karakter spasi), Chrome akan melakukan pencarian Google pada Splunk median.

Jun-Dai Bates-Kobashigawa
sumber
2
Memulai pencarian dengan tanda tanya (?) Juga akan menggunakan mesin pencarian default Anda.
Ari
Bagus! Saya suka itu lebih baik daripada ruang.
Jun-Dai Bates-Kobashigawa
1
Bagi saya itu tidak berhasil. Di Chrome 39, Win 7, mengetik spacekeyword tidak memunculkan antarmuka pencarian. Namun, solusi Anda bermanfaat di tempat lain, dalam penamaan. Jika saya ingin pencarian yang saya buat muncul di atas yang otomatis, satu ruang di depan nama dan presto. Semua mesin pencari otomatis masuk ke bawah dan sekarang lebih mudah untuk mengelola / menghapusnya.
JasonXA
cukup tekan ctrl + k untuk mendapatkan perilaku itu.
jiggunjer
6

<- Latar Belakang ->

Saya punya ide alternatif, yang tidak terlalu mengganggu bagi Anda di sini (setidaknya jika Anda menjalankan pemblokir iklan, karena begitu banyak dari kita yang menggunakan kewarasan / keamanan kita sendiri). Saya suka menggunakan ekstensi / skrip yang ada sebanyak mungkin untuk menghindari mengasapi seluruh ekstensi hanya untuk satu fitur (skenario terburuk) sehingga solusi ini bekerja di bawah prinsip ini.

Adblock, dan variannya / penggantinya (uBlock adalah senjata pilihan saya), memiliki kemampuan untuk memblokir elemen halaman web, termasuk <link>elemen, yang digunakan untuk penemuan otomatis Deskripsi OpenSearch (OSDs), file XML yang berisi informasi yang memungkinkan otomatis -menambahkan mesin pencari dan menyebabkan kita sakit kepala ini. Saya mengatakan "izin" karena ini hampir tidak wajib, seperti, sejauh penelitian saya telah menunjukkan, Firefox hanya membaca informasi ini dan membuatnya tersedia untuk penambahan mudah di bawah kotak dropdown Mesin Pencari, daripada menambahkannya secara diam-diam seperti yang dilakukan Chrome.

Penggunaan fitur ini dijelaskan dalam spesifikasi Opensearch di banyak tempat:

http://www.opensearch.org/Specifications/OpenSearch/1.1#Autodiscovery_in_RSS.2FAtom (abaikan subtltle spesifik bagian ini untuk keperluan kita karena itu hanya contoh yang digunakan)


<- Solusi ->

Karena menyatakan bahwa Deskripsi OpenSearch (OSD) memiliki tipe unik, kami dapat memfilternya dengan aturan AdblockPlus / uBlock berikut:

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

Saya telah menguji ini dan aturannya menunjukkan kecocokan yang benar di situs pengujian saya (filehippo.com dll) dan mesin pencari tidak lagi menambahkan otomatis, jadi saya percaya ini adalah solusi lengkap.


Catatan singkat tentang sejarah yang saya temukan di balik ini: Insinyur Chromium telah memberi label "WontFix" ini beberapa kali selama bertahun-tahun (opsi / bendera penonaktifan pengguna daya diminta beberapa kali) yang menyatakan bahwa ini dianggap sebagai masalah khusus sejak Fitur "umumnya berguna", sikap mereka adalah bahwa masalah niche harus diselesaikan dengan ekstensi atau skrip pihak ketiga daripada oleh devs menambahkan bendera yang tak terhitung jumlahnya dan sejenisnya untuk memenuhi semua keinginan, jadi pada dasarnya apa yang kita lakukan di sini hanya sesuai dengan preferensi mereka dan tetap bagus dan mudah dikelola.

Semoga berhasil! Jika ada yang mencoba ini, beri tahu kami cara kerjanya!

Benteng
sumber
1
Ini tidak berhasil untuk saya (coba cari di cdnjs.com ). Saya sampai pada kesimpulan bahwa tidak ada solusi yang andal 100% :(
thdoan
Ini juga tidak berfungsi untuk saya - jika saya mencari di 4inkjets.com itu akan ditambahkan sebagai mesin pencari (anehnya, saya tidak dapat menemukan application/opensearchdescription+xmltautan di halaman.)
Ivan Kozik