When you see the update notifier in Edge (a green or red arrow on the … button):
… this means an update is ready for use and you simply need to restart the browser to have it applied.
While you’re in this state, if you open Edge’s application folder, you’ll see the new version sitting side-by-side with the currently-running version:
When you choose to restart:
…either via the prompt or manually, Edge will rename and restart with the new binaries and remove the old ones:
The new instance restarts using Chromium’s session restoration feature, so all of your tabs, windows, cookies, etc, are right where you left them before the update (akin to typing
edge://restart in the omnibox).
This design means that the new version is ready to go immediately, without the need to wait for any downloads or other steps that could take a while or go wrong along the way. This is important, because users who don’t restart the browser will continue running the outdated version (even for new tabs or windows) until they restart, and this could expose them to security vulnerabilities.
Three Group Policies give administrators control of the relaunch process, including the ability to force a restart.
Chromium’s code for renaming the
new_browser.exe binary can be seen here. When Chrome is installed at the machine-wide level, Chromium’s
setup.exe is passed the
--rename-chrome-exe command line switch, and its code performs the actual rename.
4 thoughts on “How Microsoft Edge Updates”
So in this case Edge is running with cache built by 113.0.1165.0 on a 113.0.1170.0 exe? Menus will show the updated behavior immediately? Tabs will use the old cache until refreshed? When the pre-release 113.0.1170.0 test suites are run, they run with a fresh 113.0.1170.0 cache?
You didn’t mention when the ‘What’s new’ tab gets launched.
I’m mostly concerned about my personal Windows 10 platform. I assume the same applies to Chrome. The new..exe swap is the same in Chrome.
BTW: Thanks for all the great posts. It keeps us all jogging along. Enjoy your run.
No, these aren’t caches. This is the App folder when 1165 is running and 1170 is staged pending restart. On restart, 1165 is deleted. The Renderer and Browser processes are always the same version– there’s periodic discussions of “couldn’t you just make new tabs run the new version” and the answer is “it wouldn’t be worth the complexity.”
This is interesting. Which component does the actual rename? This is not obvious from your description. A process cannot rename itself while running. There must be some external component involved there, which has not been mentioned in the post. It cannot be msedge.exe because this is the one, which is actually running.
See https://source.chromium.org/chromium/chromium/src/+/main:chrome/browser/first_run/upgrade_util_win.cc;l=157 for the code.