NotHereToPlayGames Posted October 5, 2021 Share Posted October 5, 2021 What I am seeing, based solely on your information, is that Humming Owl's releases broke some javascript and then displayed it as text instead of performing the "function" that the javascript was intended to perform. But that mine did not break the javascript so the broken code was not displayed as text. Or, the broken javascript code is simply "dropped" / "ignored" by my builds but Humming Owl's doesn't know what to do with it so it displays it as text. Not sure what you think needs "fixed" here. If it sets your mind at ease, I opened that link and clicked the gigantic YOU in Dixel's v13 360Chrome, Humming Owl's v13 360Chrome, and my v12 360Chrome both in XP x64 SP2 and in Win7 x86 and all three gave me the EXACT results, letter for letter. So then I installed Chrome v94.0.4606.71 in Win7 and it too gave me the same EXACT results. Mozilla-based browser will give an entirely different view. Maybe that "test page" is intentionally 'coded' to only work on Firefox and not on Chrome - who knows. 1 Link to comment Share on other sites More sharing options...
kwisomialbert Posted October 6, 2021 Share Posted October 6, 2021 last update of v9 modified not opening some sites,,blank page. the previous update works. Link to comment Share on other sites More sharing options...
msfntor Posted October 6, 2021 Share Posted October 6, 2021 (edited) In the latest v12 M build, under Settings/Basics/Manage search engines/Other search engines - have many search engines and other websites (12, with Time.is, DuckDuckGo, Gigablast.com, google.com, frogfind.com, Infinity Search, Okeano, oscobo.com, Swisscows..), which came in here by themselves, without me doing this myself... All other 360Chrome v11, v12 and v13 builds by @Humming Owl and @ArcticFoxie present this same behavior here. - tested with Time.is website. Edited October 6, 2021 by msfntor Time.is added, and other searches Link to comment Share on other sites More sharing options...
NotHereToPlayGames Posted October 6, 2021 Share Posted October 6, 2021 (edited) Those search engines are being added by a Chrome/Chromium "feature" called OpenSearch (Firefox, Safari, and Edge all do this also) -- https://en.wikipedia.org/wiki/OpenSearch Previously discussed here on MSFN -- https://msfn.org/board/topic/182876-360-extreme-explorer-modified-version/?do=findComment&comment=1203764 I personally disable this "feature" through the use of a Tampermonkey userscript -- https://greasyfork.org/en/scripts/37186-disable-opensearch/code Edited October 6, 2021 by ArcticFoxie Link to comment Share on other sites More sharing options...
NotHereToPlayGames Posted October 6, 2021 Share Posted October 6, 2021 The userscript I was using did not block Time.is. Investigating... Link to comment Share on other sites More sharing options...
NotHereToPlayGames Posted October 6, 2021 Share Posted October 6, 2021 (edited) This userscript now replaces my old and it will block Time.is -- https://greasyfork.org/en/scripts/375216-block-opensearch-descriptions/code But does not block Infinity Search, Okeano, and Swisscows. Edited October 6, 2021 by ArcticFoxie Link to comment Share on other sites More sharing options...
msfntor Posted October 6, 2021 Share Posted October 6, 2021 (edited) Very interesting @ArcticFoxie, this highjacking settings story, I look forward to the results of your (open) research! ...too another (google everywhere) story: sometimes, google creates the tab with its search page, with the sentence I've written here on MSFN... weird?.. ...too this: I've started 360Chrome build, clicked on the search window...and accounts.google.com gmail login popup in the first tab... weird - I don't use gmail... And another: I've written in one of my precedent posts, about behavior of 360Chrome v9.5 M: "If STYLES are off, then all results are on the left...see WAVE web accessibility evaluation tool (with WHOER.net report): https://wave.webaim.org/report#/whoer.net " Searched for "no style information on some websites"... in Firefox - fix is easy: click View/Page Style/ then notch: "Basic Page Style". But in chrome NO option to Enable/Disable Stylesheets ... if no styles are showing, the browser might not be handling the Stylesheets from some websites properly... Found these links: A website looks weird: https://www.whatismybrowser.com/guides/troubleshooting/website/website-looks-weird W3C Feed Validation Service: https://validator.w3.org/feed/ Edited October 7, 2021 by msfntor links added Link to comment Share on other sites More sharing options...
NotHereToPlayGames Posted October 6, 2021 Share Posted October 6, 2021 I'm not finding anything that will block Infinity Search, Okeano, and Swisscows. I'm sticking with this for now -- https://greasyfork.org/en/scripts/375216-block-opensearch-descriptions/code 1 Link to comment Share on other sites More sharing options...
NotHereToPlayGames Posted October 6, 2021 Share Posted October 6, 2021 (edited) Okay, this works to block all of the search engines that you cited. // ==UserScript== // @name Block OpenSearch Descriptions // @author // @description Block sites from adding search engines to Chrome. // @downloadURL // @grant // @icon // @include http*://* // @require // @run-at document-start // @updateURL // @version 2.0 // @namespace https://greasyfork.org/users/218540 // ==/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 by ArcticFoxie 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(); })(); Edited October 6, 2021 by ArcticFoxie 1 Link to comment Share on other sites More sharing options...
msfntor Posted October 6, 2021 Share Posted October 6, 2021 4 hours ago, ArcticFoxie said: Okay, this works to block all of the search engines that you cited. Reveal hidden contents // ==UserScript== // @name Block OpenSearch Descriptions // @author // @description Block sites from adding search engines to Chrome. // @downloadURL // @grant // @icon // @include http*://* // @require // @run-at document-start // @updateURL // @version 2.0 // @namespace https://greasyfork.org/users/218540 // ==/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 by ArcticFoxie 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(); })(); So could you put this code in all your 360Chrome builds, please? Link to comment Share on other sites More sharing options...
NotHereToPlayGames Posted October 6, 2021 Share Posted October 6, 2021 Can't. End users will have to install Tampermonkey then install that userscript. Link to comment Share on other sites More sharing options...
Humming Owl Posted October 7, 2021 Author Share Posted October 7, 2021 On 10/6/2021 at 8:15 AM, kwisomialbert said: last update of v9 modified not opening some sites,,blank page. the previous update works. Starting with a clean profile might do the trick. Errors with certificates change when starting a new profile sometimes. @msfntor This is the New Tab you want? (replace this one with the original) --> https://www.mediafire.com/file/mc0poj7m7y0na9p/newtab.zip/file Cheers. Link to comment Share on other sites More sharing options...
msfntor Posted October 7, 2021 Share Posted October 7, 2021 23 hours ago, ArcticFoxie said: Can't. End users will have to install Tampermonkey then install that userscript. Actually, it's not very important, this OpenSearch thing, unless a website with bad intentions gets into it - then in that case someone should definitely not make it default ..but delete it. @ArcticFoxie, and @Humming Owl - we look forward to your new 360Chrome builds! good luck Link to comment Share on other sites More sharing options...
msfntor Posted October 7, 2021 Share Posted October 7, 2021 3 hours ago, Humming Owl said: @msfntor This is the New Tab you want? (replace this one with the original) --> https://www.mediafire.com/file/mc0poj7m7y0na9p/newtab.zip/file Thank you, but I prefer default one, with the colored icons...the more color in life the better... Link to comment Share on other sites More sharing options...
NotHereToPlayGames Posted October 7, 2021 Share Posted October 7, 2021 1 hour ago, msfntor said: Actually, it's not very important, this OpenSearch thing, unless a website with bad intentions gets into it - then in that case someone should definitely not make it default ..but delete it. The user has to USE the search engine in order for it to be added to the "other" list. You can VISIT the search engine and it won't be added to the list, but if you USE the search engine then you basically "opted in" for it to be added. I personally dislike this so I use Tampermonkey to prevent it. Link to comment Share on other sites More sharing options...
Recommended Posts
Create an account or sign in to comment
You need to be a member in order to leave a comment
Create an account
Sign up for a new account in our community. It's easy!
Register a new accountSign in
Already have an account? Sign in here.
Sign In Now