rcmaehl / MSEdgeRedirect

A Tool to Redirect News, Search, Widgets, Weather and More to Your Default Browser
https://MSEdgeRedirect.com
GNU Lesser General Public License v3.0
3.96k stars 92 forks source link

Edge may think it's unable to update when 0.7.3.0 is installed. #239

Closed RealityRipple closed 1 year ago

RealityRipple commented 1 year ago

Preflight Checklist

Install Type

New Install

Install Mode

Active Mode

Steps to reproduce

This problem seems to occur on both New Installs and Updates, and requires a repair of Edge after uninstalling MSEdgeRedirect to fix.

✔️ Expected Behavior

Edge should check for updates.

❌ Actual Behavior

An error message occurs: "An error occurred while checking for updates: We couldn't create that component (error code 1: 0x80004005 -- system level)."

Microsoft Windows version

22H2 Build 19045.2486

Other Software

No response

rcmaehl commented 1 year ago

Yeah, I see that. Did it actually prevent any updates on your end? I installed Edge 108 with MSEdgeRedirect installed and it still prompted for an update despite the error.

image

rcmaehl commented 1 year ago

Regardless, I'll look into mitigating this error message from popping up.

RealityRipple commented 1 year ago

I will check that when the next update is available and report back.

Remzi1993 commented 1 year ago

I got the same error! Therefore also occurring on an update. This is a major show stopper and needs to be given priority over anything else!

See my error below: Screenshot_20230118_133222

rcmaehl commented 1 year ago

I've confirmed this is occurring with @MarcGuiselin's wedge as well.

rcmaehl commented 1 year ago

I've got it manually running the updater in the meantime.

MarcGuiselin commented 1 year ago

I've got it manually running the updater in the meantime.

That's probably not necessary.

So far this error message hasn't been an issue for me personally. Edge has no issues updating. I've been keeping tabs on my Edge install version ever since getting the latest release of Wedge working and it has updated twice. Wrote a logger for flags being sent to the Edge executable, errors, exit codes, etc but there doesn't seem to be any issues. Nothing being logged in system events either.

Error seems to be caused only by executing Edge through the junction point. If you remove ifeo and execute Edge directly from its file path, the error disappears...

I did some digging into chromium source, tracing back from the error message. Whenever you open the help page, the VersionUpdaterWin component runs a check to see if it can install an update (regardless of if one actually exists) to show relevant prompts. Among other things, it checks that the browser's execution path matches expected user or machine install path values. If they don't match this cascades to an E_FAIL (0x80004005) error here.

Since we aren't directly launching Edge from its install directory, the help page thinks Edge is installed in an invalid location and shows that error. It doesn't cause any issues anywhere else I think.

Edge might possibly never prompt for an update if it's left open a while. Testing this right now in a vm. But Edge periodically receives updates automatically via Windows anyway, so I don't think this is an issue.

RealityRipple commented 1 year ago

New Edge Update today according to the release notes site; still no option in the menu. I'll keep an eye on the version number and see if it updates in the background at some point.

MarcGuiselin commented 1 year ago

I can confirm edge has no issues downloading a new version (without closing edge or restarting my vm) and will prompt for an install once one is available. As soon as I closed edge it updated immediately.

2023-02-04 17_32_36 - Remote Desktop Connection

This confirms what I found digging through the code. The directory check is only really ever made by the UI and pretty much serves no purpose. I suggest this issue be set to low priority.

rcmaehl commented 1 year ago

I can confirm edge has no issues downloading a new version (without closing edge or restarting my vm) and will prompt for an install once one is available. As soon as I closed edge it updated immediately.

This confirms what I found digging through the code. The directory check is only really ever made by the UI and pretty much serves no purpose. I suggest this issue be set to low priority.

Maybe I should make a pull request on Chromium to fix this for IFEO and Chrome Portable users. Although I don't think they'll be entirely convinced.

RealityRipple commented 1 year ago

Update just showed up here as well. Just took an extra day or two.

MarcGuiselin commented 1 year ago

Maybe I should make a pull request on Chromium to fix this for IFEO and Chrome Portable users. Although I don't think they'll be entirely convinced.

I was thinking that too. Even if that check is only there for legacy reasons, without a reproducible bug (outside our use-case) I don't think they'll be inclined to fix it.

I did some more digging and I found that a symlink works just as fine as a junction point. Except now, we can symlink directly to msedge rather than its directory. This method also does away with the install error if the symlink used to launch edge is placed in the same install directory. So we should look into that for a solution.

Basically this would bring us back to what MSEdgeRedirect was doing before, except using a symlink in place of msedge_no_ifeo.

rcmaehl commented 1 year ago

How were you executing the symlink? ShellExecute? I was just getting an infinite loop.

MarcGuiselin commented 1 year ago

Via rust's Command::new, which is just CreateProcess under the hood.

purevertigo commented 1 year ago

Is this going to be fixed soon?

rcmaehl commented 1 year ago

Is this going to be fixed soon?

Yep

woodspire commented 1 year ago

What is your definition of "soon" ? In a lifetime, 3 years can be considered "soon". But in the current context, I thought, since there doesn't seem to be any further development needed, that "soon" would mean: in the coming month (singular) ...

MarcGuiselin commented 1 year ago

What is your definition of "soon" ?

"Soon" is whenever he can get to it. Unless you'd want to contribute to the software to fix this issue yourself in the coming month (instead of being unconstructive). This work is done pro bono. No one owes you anything. As I've discovered, and what has been thoroughly discussed in this thread, is that the priority for fixing this bug is low. It's just a visual bug in edge with zero consequence for actually receiving software updates.

rcmaehl commented 1 year ago

What is your definition of "soon" ? In a lifetime, 3 years can be considered "soon". But in the current context, I thought, since there doesn't seem to be any further development needed, that "soon" would mean: in the coming month (singular) ...

Should already be fixed in the latest dev build. As Marc said it's a low priority visual bug from Edge being confused. My rough update outline from the latest release is as follows:

0.8.0.0 (Spring):

Per User Active Mode Option Installer and Updater Logic Overhaul Service Mode Quality of Life Improvements

0.9.0.0 (Summer):

UI Overhaul Code Freeze Wiki and other documentation updated

1.0.0.0 (End of Summer):

Code Refactor/Rewrite PortableApps.com Version Release

1.0.1.0 (Probably the next day due to bugs):

Bug fixes