AveYo / fox

Firefox stuff

Geek Repo:Geek Repo

Github PK Tool:Github PK Tool

Prevent IFEO from infinitely looping

rcmaehl opened this issue · comments

Warn and cancel ChrEdgeFckOff from installing if the default browser is set to Edge

Check HKCU\Software\Microsoft\Windows\Shell\Associations\UrlAssociations\http\UserChoice is set to MSEdgeHTM

commented

But why would you use the script if you actually use Edge? ;)
I could do something better - escape IFEO if the link is normal html, and only deal with the special ones

commented

Oh, you're the author of MSEdgeRedirect!
I've skimmed through that when you posted on reddit and I think it's a great alternative with a lot of work put into!
Just seen the comparison table - so there are more solutions now - and that's great as well!

Mine is usually deployed by people that totally nuked Edge / ChrEdge from their install image, where is no issue.
But I will add IFEO escaping to the script since it's trivial to adapt from one of my other scripts

I am having same issue with NoMoreEdge. Installing something to redirect edge when edge is default browser is not great idea I guess.

But I managed add browser check at start so that user can't install when edge is default browser. But User can install and then change default browser to edge and then it will loop.

commented

@rcmaehl, @HarshalKudale
I overstated the simplicity of the issue.
While I can adapt my IFEO escape code, it hurts performance (due to multi-process) and defender might not like it.

So I've implemented another workaround in v1.3 where the redirect script itself will ask to delete the IFEO key.

Switched IFEO handling for standard Edge to 'UseFilter' just like microsoft did with notepad.exe in 11,
so having Edge in another path, or Beta / Dev / Canary will not get redirected.
It's obviously less granular than MSEdgeRedirect

Also made the Edge icon usable - it will open the default browser ;)

commented

@rcmaehl, @HarshalKudale
scratch that
v2.0 because the issue was actually simple, I just needed to use a better trick ;)

only redirects microsoft-edge: links, no longer blocks msedge.exe (with my junction trick)
so edge remains usable for browsing, opening pdf's etc.
simplified url filter to take any http(s)

Keeps Edge Available to User ☑
Prevents IFEO Infinite Looping ☑
Fully plain text script, no external tools or update checks ☑

I won't be adding search engine replacing.
That's a path that might aggravate microsoft, and I don't mind bing / msn per-se.
I'm content with ClearURLs and similar addons in Firefox for filtering out unwanted tracking.
If users need that stuff or more granular options, again I recommend MSEdgeRedirect project instead.

@rcmaehl @AveYo
Well I took another approach to that in NoMoreEdge. my app basically checks last argument for Microsoft-edge:?/ protocol as this is where msedge receives the links . So if the link has protocol then I format the link accordingly and opens it in default browser. In case last argument does not content protocol link for eg. pdf file argument or just opening edge or a web app like twitter it will forward all the arguments to msedge_backup.exe in edge path. This also makes sure argument gets passed to correct edge variant (currently stable Beta and Dev) . This prevents looping and makes edge available to user.

And about search engine I prefer to have choice over using Bing. because I am forwarding non protocol links to msedge_backup.exe changing engine with setting edge as default will open result in edge with search engine preferences.

I personally prefer MSEdgeRedirect in active mode as I don't like app staying background when not needed.

commented

@HarshalKudale can you believe that I did not find your alternative first time I checked your github? but now it's there.
Sure, your C# NoMoreEdge solution works too.
You're adding your redirecting binary to the same path as Edge, right? That simplifies things (one less path to deal with).

Mine creates a junction to Edge folder.
And also only redirects the protocol links, everything else being passed as-is to the edge behind the junction folder.

So now, I guess all three solutions are on par with the main job of redirecting startmenu/widgets links ;)
Everything else is extra features, up to user preference. Great to have choices!

I have exact same opinion. As long as it forwards microsoft-edge:// to default browser its good to go. Search engine and other extra features will change from app to app.
I intent to stop the development on my app as soon as it can forward all known microsoft-edge :// urls or edge deflector gets updated.

commented

I'm pretty sure we haven't seen the last of microsoft pushing ChrEdge.
Having alternatives with different approaches is healthy.
And so is having more authors to address stuff quickly when the need arrives, or implement features that users ask for.
This being a script is limited in that regard, but yours and rcmaehl's are not, so don't be quick to put the mantle down ;)

Thank you for motivation.

I want all Micro$$$oft web browsers removed from my computers - IE, classic Edge, Edge chrome, or anything else they might come up with. All of them.
I set Firefox as my default browser, Thunderbird as my e-mail program and Adobe Reader as my .pdf reader. I don't ever want any Micro$$$$oft browser to be even capable of running on any of my computers.
The more Micro$$$$$oft tries to cram Edge down our throats, the more that tells me that they're up to no good. Something is definitely very rotten in the state of Washington. I'm not sure exactly what, but Micro$$$$$$oft wouldn't be that insistent if there weren't something sneaky going on "under the table". Likewise for OneDrive and signing in with a Micro$$$$$$$oft account. Why are they so insistent on getting ahold of all my private data?
The biggest problem I'm facing is that if I get too aggressive in my removal script, Window Update, SFC and DISM complain.

commented

@SamHills, complete removal breaks many unrelated things - entangled by (asshole) design!
So we have to adapt.
Start from Manage connections
Then see what does not obeys policies, and what are the stuff that ms lies by omission.
Neuter those without removal or file deny - IFEO and other registry. <-- I'm at this step atm.
Will share when I have something reliable.