Take the 2-minute tour ×
Super User is a question and answer site for computer enthusiasts and power users. It's 100% free, no registration required.

I have noticed that certain websites (e.g. Stack Exchange sites, Dell, etc.) are automatically added to my list of search engines in Google Chrome.

They even add a keyboard shortcut to their entry. Here are some examples:

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

Q1: Is this the default behavior in Chrome? (to let websites add themselves to the list of search engines?)

Q2: Is it possible to disable this behavior in Chrome?

Note: I'm running the latest version of Chrome: 11.0.696.57 on Windows 7 64, and I only have one extension installed: Google URL shortener.

share|improve this question
2  
1. Yes. 2. Why? –  Sathya Apr 27 '11 at 16:27
8  
@ Sathya, Why? I want to have the flexibility to disable it. If your question is why would I disable something like this: the interface to edit search engines is not particularly good, and as the list grows it's hard tell which search engines I added manually and which ones were added automatically. It's also harder to find a particular entry within a large list. –  user815423426 Apr 27 '11 at 17:41
4  
@Sathya - Many reasons: * Convenience: Sometimes you want to search ABOUT a site, rather than ON that site. * Consistency: Randomly and silently adding new "search engines" causes unexpected behavior in the omnibox. * Privacy: Chrome does not inform you when it decides to add new "search engines," and they don't go away when you clear your browsing history. * Common courtesy: Shouldn't I be able to choose whether to enable this "feature" is enabled, or—failing that—at least choose to be informed when Chrome decides to add a site, so I can countermand this decision? –  phenry Oct 28 '11 at 17:43
add comment

7 Answers

up vote 7 down vote accepted

If I'm understanding what you're describing correctly, then this isn't the websites doing anything at all. Rather, Chrome itself identifies search boxes on websites and then itself adds those to its list of search options in the omnibar.

A1: Yes, this is default behavior, but it's not the websites adding themselves, it's Chrome adding the websites.

A2: I do not believe you can disable this behavior, however you can remove search engines by going to the tool menu -> Options -> Manage Search Engines; they will appear under "Other Search Engines". You may be able to specify that one should not be re-added when you remove it, I'm not sure -- I happen to like this feature, so I'm not going to try removing them.

share|improve this answer
    
Thanks @Kromey, That's a good point. I just updated the question to reflect your comment. –  user815423426 Apr 27 '11 at 17:49
add comment

This was making me absolutely insane, so I found a hackish, but effective solution to the issue.

Chrome stores it's search engines in a simple sqlite3 database. I found that you can create a trigger when chrome goes to add the search engine that causes the database insert statement to be ignored.
Note that the search engines are still kept in memory, so they will still show up in the list until the browser is restarted. However you wont have to clear them out all the time, and so if you want to add your own search engines, you won't have to worry about accidentally deleting them (yes, manually adding search engines will still work).

First you must locate the Web data file.

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

Then open it with an sqlite3 editor.

Chrome must be shut down at this point.

The official sqlite web site has a download page with a pre-compiled command line utility for the various operating systems. Though any editor capable of working with sqlite3 databases will work.

For the command line utility, use a command such as the following (don't forget to escape or quote the space in the file name):

sqlite3 /path/to/Web\ Data

Add the trigger.

CREATE TRIGGER no_auto_keywords BEFORE INSERT ON keywords WHEN (NEW.originating_url IS NOT NULL AND NEW.originating_url != '') BEGIN SELECT RAISE(IGNORE); END;

You're done. Close the editor and start chrome back up.


The way it works is that when chrome goes to add auto-add a search engine to the keywords table, chrome sets the originating_url field to the web site it came from. The trigger basically looks for any inserts with a non-empty originating_url field, and issues a RAISE(IGNORE) which causes the statement to be silently skipped.
Manually added search engines don't have an originating_url, and so the trigger allows them to be added.

share|improve this answer
    
After trying a few editors out, SQLiteStudio my favorite. No way am I related to this product. Just a useful tool I found after some searching. –  mateuscb Mar 14 at 21:55
add comment
  1. Yes, this is by design.
  2. No, there's no way to disable this.
share|improve this answer
    
I love this answer. This is simple but informative –  nXqd May 9 '12 at 14:03
add comment

Try using this 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]);
    }
}
share|improve this answer
    
where do add this script? or execute it? –  mateuscb Mar 14 at 21:23
1  
@mateuscb You can get it from here. Then just drop the script in the extensions settings page in chrome, chrome://extensions/. –  Victor Häggqvist May 14 at 14:39
    
This. Is. Awesome. I needed to create a dummy manifest.json (as per this SO answer and install it via dev mode (as an unpacked extension), but apart from that it worked like a treat. –  womble Jun 11 at 5:58
add comment

One workaround I've found for this is to acquire the habit of starting all my searches with a space. If you type ・Splunk median (where represents the space character), Chrome will perform a Google search on Splunk median.

share|improve this answer
    
Starting the search with a question mark (?) will also use your default search engine. –  Ari May 30 at 2:07
    
Nice! I like that better than the space. –  Jun-Dai Bates-Kobashigawa May 30 at 14:34
add comment

Here a somewhat hacky workaround which works just fine for me. Just rename the search alias to something cryptic like "§$%!/()&/". While the search engine is still there you won't see it again, ever. Pretty annoying if you can't google for "jenkins" because chrome forces you to search in jenkins.

share|improve this answer
    
Seriously - crazy annoying. Thanks for the tip. –  TJ Biddle Jun 3 '13 at 23:06
add comment

The new Google Chrome (version 21.0.1180.57) has a new behavior for the custom search engines.

The user explicitly needs to press the TAB button in order to use the specific search engine.

And they changed it again in 21.0.1180.79), now space also activates. This is the most annoying feature of Google Chrome :(

share|improve this answer
add comment

Your Answer

 
discard

By posting your answer, you agree to the privacy policy and terms of service.

Not the answer you're looking for? Browse other questions tagged or ask your own question.