Skip to content
View in the app

A better way to browse. Learn more.

MSFN

A full-screen app on your home screen with push notifications, badges and more.

To install this app on iOS and iPadOS
  1. Tap the Share icon in Safari
  2. Scroll the menu and tap Add to Home Screen.
  3. Tap Add in the top-right corner.
To install this app on Android
  1. Tap the 3-dot menu (⋮) in the top-right corner of the browser.
  2. Tap Add to Home screen or Install app.
  3. Confirm by tapping Install.

Don't add custom search engines to browsers Chrome-based

Featured Replies

  • 1 year later...

I would prefer an updated extension that prevents bookmarks/history/folders from being added to my browser:

1.jpg

  • 2 weeks later...

On Chrome Web Store, under this extension User Reviews, I've found this user review:

"Lee Hodsdon May 6, 2019

... Alas, in a new PC build, I lost the user-defined rules that I had in uBlock Origin. I remember figuring out a rule that would kill sites from adding their searches to Chrome. There was a directive in the page to perform the auto-add, and it was that element that I had blocked in uBO. I'll add another reply if I figure it out again. With that rule in uBO, I monitored the search engine list in Chrome and none got auto-added after several months."

- so search for this uBlock rule...

On 4/21/2023 at 9:39 AM, msfntor said:

On Chrome Web Store, under this extension User Reviews, I've found this user review:

"Lee Hodsdon May 6, 2019

... Alas, in a new PC build, I lost the user-defined rules that I had in uBlock Origin. I remember figuring out a rule that would kill sites from adding their searches to Chrome. There was a directive in the page to perform the auto-add, and it was that element that I had blocked in uBO. I'll add another reply if I figure it out again. With that rule in uBO, I monitored the search engine list in Chrome and none got auto-added after several months."

- so search for this uBlock rule...

The rules I have,some time ago,added to uBlock Origin did not prevent the automatic addition of some search engines,so I went back to the extension.

I probably don't have the expertise to do this work.

Certainly mr. Hill himself could do it (but I know his grumpy nature so he wouldn't).
Another candidate who might succeed would be Yuki2718.

On 4/21/2023 at 9:51 AM, msfntor said:

I use sometimes Safer Redirects extension: https://chrome.google.com/webstore/detail/safer-redirects/ecejaaoknpcjfheoejampbickooodnna

- you could find another similar one (or Domain Whitelist?..), and post here your findings... 

This question is OT.
And I would not usually answer it.

I recently returned from a trip to Sicily (3 hours from the city where Giorgio Maone resides) so I will make an exception for you.;)

I would use (but do not use) this extension:

 

https://chrome.google.com/webstore/detail/skip-redirect/jaoafjdoijdconemdmodhbfpianehlon

 

:hello:

  • 3 months later...

In old 360chrome 13.x, it suffices to save and copy over the profile the extensionless Preferences AND Webv Data files (which you should save once all settings, including search engines, are done).

On 3/27/2022 at 7:14 AM, Sampei.Nihira said:

But is there another valid method without using any extension?:dubbio:

Since this thread has been revived and I missed it the first time around.

I use the below to prevent custom search engines from being added -

// ==UserScript==
// @name - Disable OpenSearch
// @version 2.0.1
// @include http*://*
// @run-at document-start
// ==/UserScript==

//document.querySelector('[type="application/opensearchdescription+xml"]').remove();
//////////////////////////////////////////////////////////////////////////////
// Code from https://github.com/gregsadetsky/chrome-dont-add-custom-search-engines/blob/master/src/content.js
// OpenSearch - e.g., https://martin-thoma.com/search-engine-autodiscovery/
// Uses CSS4 selectors, Chrome 49+
const DEBUG=false;
let numseen=0, numspoiled=0;
let unspoiled=[];

// called when the user clicks an element of the form (any field or button).
// The parameter passed is the event object.
function clickApply(e) {
    if(DEBUG) console.info({'form onclick':e});
    // remove onclick. One fix only
    e.srcElement.form.removeEventListener("click", clickApply);
    applyFix(e.srcElement.form);
} //clickApply

// add a new <textarea> element
function applyFix(elem) {
  var newelem = document.createElement('textarea');
  newelem.name = '';
  newelem.style.display='none';
  elem.appendChild(newelem);
} //applyFix

// Add an extra child input to any form that only has one
function spoilFormGet(elem) {
    if(DEBUG) {
        ++numseen;
        unspoiled.push(elem);
    }

    // Check whether the form submits to a HTTP(S) URL.
    // A missing or relative action will be resolved against the page URL
    // so it must have the same URI scheme which is all we care about
    var action = elem.getAttribute('action');
    if(!(action && action.indexOf('://') >= 0)) action = location.href;
    if(!/^https?:\/\//i.test(action)) return;

    // Autodetection requires exactly one input of type text or search
    // If the type attribute is missing, it defaults to `text`
    // Readonly inputs do not count against this total
    if(elem.querySelectorAll(':scope input:-webkit-any([type="text" i],[type="search" i],[type*="search" i],[type=""],:not([type])):not([readonly])[name]:not([name=""])').length !== 1) return;

    // Autodetection also requires no password, file, or textarea elements
    if(elem.querySelector(':scope :-webkit-any(input[type="password" i],input[type="file" i],textarea)')) return;

    // Add a <textarea> - unlike <input>, it doesn't block implicit submission
    // per https://www.tjvantoll.com/2013/01/01/enter-should-submit-forms-stop-messing-with-that/

    // apply the fix now, or place it in onclick.  "this" is a parameter passed by foreach(). see below
    if (this.now === true) {
        // remove onclick placed during first pass
        elem.removeEventListener("click", clickApply);
        // and instead do it now;
        applyFix(elem);
    } else {
        elem.addEventListener('click', clickApply);
    }

    if(DEBUG) {
        console.info({Spoiled: elem});
        ++numspoiled;
        unspoiled.pop();
    }
} //spoilFormGet

var debugAutoDetect=0;

// move this part of the code here, since it's called multiple times
function autoDetect(now, when_called) {
    if(DEBUG) console.log('autoDetect: '+(++debugAutoDetect)+' ('+when_called+')');
    document.querySelectorAll('form:-webkit-any([method="get" i],:not([method]))').forEach(spoilFormGet,{now});
    if(DEBUG) {
        console.log(`Spoiled ${numspoiled}/${numseen}.`+(unspoiled.length?'  Unspoiled were:':'') );
        if (unspoiled.length) console.log(unspoiled);
    }

    // we reset spoil vars for next call
    numseen=0;
    numspoiled=0;
    unspoiled=[];
} //autoDetect

function catchOpenSearch() {
    if(DEBUG) console.info('catchOpenSearch called');
    // OpenSearch - e.g., https://martin-thoma.com/search-engine-autodiscovery/
    // Uses CSS4 selectors, Chrome 49+
    document.querySelectorAll('[type="application/opensearchdescription+xml" i]').forEach(
        function (it) {
            it.removeAttribute('type');
            if(DEBUG) console.info({"Spoiled by type removal": it});
        }
    );

    // Suggestion service, https://www.chromium.org/tab-to-search
    document.querySelectorAll('url[rel="suggestions" i]').forEach(
        function (it) {
            it.removeAttribute('rel');
            if(DEBUG) console.info({"Spoiled by rel removal": it});
        }
    );

  // added
    document.querySelectorAll('url[rel="search" i]').forEach(
        function (it) {
            it.removeAttribute('rel');
            if(DEBUG) console.info({"Spoiled by rel removal": it});
        }
    );
} //catchOpenSearch

function onDOMContentLoaded() {
    if(DEBUG) console.log('onDOMContentLoaded');

    catchOpenSearch();

    // #1 call it now (i.e., DOMContentLoaded) without applying the fix
    // #2 call it in 1500 ms and apply the fix
    // #3 call when document loaded, and apply the fix.

    // if <form> is added/modified // dynamically before the document
    // is fully loaded, #1 could miss it, but not #2 & #3. Note that #2
    // could fire after #3 if the page is fast to load.  Once the fix
    // is applied, the <form> can't be found by subsequent execution
    // of autoDetect, so the fix can only be applied once (#1 is not
    // applied but delayed until #2 or #3 fires, or if the user
    // clicks).

    window.addEventListener('load', function() {
        if(DEBUG) console.log('onload');
        catchOpenSearch();
        autoDetect(true,'Load');
    } );  // #3
    setTimeout(function() { autoDetect(true,'Timer'); } ,1500);     // #2
    autoDetect(false,'onClick');                                    // #1

} //onDOMContentLoaded

(function() {
    document.addEventListener('DOMContentLoaded', onDOMContentLoaded);
    onDOMContentLoaded();
})();

Thank you for your answers.
Please try your methods with twitter which is very stubborn in adding search engines.

 

@NotHereToPlayGames

Can you explain how to perform a test with Edge?

TH.

Twitter and Facebook are blocked at the router-leve here.  I have no use for them and I block them completely.

Not sure what you mean by "perform a test".

I use Proxomitron and view web pages source code via Proxomitron "debug".

If the word "opensearch" exists in the web pages source code, then my above userscript will prevent that "opensearch" from adding a search engine to your custum search engine list.

image.thumb.png.e8e1f878f9dfbc311e73af40419e44e8.png

image.thumb.png.dc7d6826efd93615251afee8f15efee6.png

  • 2 months later...

Ungoogled Chromium has a flag for this (chrome://flags/#disable-search-engine-collection).

Edited by UCyborg

  • 6 months later...

Over the past 2 days I have successfully used a policy in Edge to eliminate the automatic addition of the other search engines that I unwanted in the list.
I then made my only search engine default.
The search engine “BING” was removed from the list.
Of course, I uninstalled the extension.

3 minutes ago, Sampei.Nihira said:

Burger Chrome & Google user here, AI overviews enabled. No ads thus far (desktop Chrome, have disabled UO & refreshed to check). AI results are pretty good -- exactly what i'm looking for ~95% of the time, hallucination-free thus far (not even once), info's no more outdated than all search results. OTOH, not searching for politics/current events, those might be right-think du jour. 

Don't miss out! ♫ I hope someday you'll join us/And the world will live as one♫

Create an account or sign in to comment

Recently Browsing 0

  • No registered users viewing this page.

Account

Navigation

Configure browser push notifications

Chrome (Android)
  1. Tap the lock icon next to the address bar.
  2. Tap Permissions → Notifications.
  3. Adjust your preference.
Chrome (Desktop)
  1. Click the padlock icon in the address bar.
  2. Select Site settings.
  3. Find Notifications and adjust your preference.