GithubHelp home page GithubHelp logo

gexgd0419 / edgewindowtabmanagerblock Goto Github PK

View Code? Open in Web Editor NEW
41.0 7.0 2.0 80 KB

A program that blocks the WindowTabManager feature of Microsoft Edge.

License: MIT License

C++ 94.39% C 5.61%
edge microsoft-edge microsoft-edge-browser

edgewindowtabmanagerblock's Introduction

EdgeWindowTabManagerBlock

A program that blocks the WindowTabManager feature of Microsoft Edge, when you launch Edge through this program.

This WindowTabManager feature, supposedly, enables Microsoft Edge to show its tabs in Alt-Tab view. However, it has a bug that can slow down Explorer and make Explorer unstable when you have enough Edge tabs open.

My Reddit post about this issue: https://www.reddit.com/r/edge/comments/1090h93/having_too_many_1000_microsoft_edge_tabs_open_can/

There was an experimental flag #edge-window-tab-manager that you could disable to disable this feature. However, the flag has been removed. This program is an alternative way to disable this feature and get around its issue.

How to use

First, download the zip file that matches the bitness (32-bit or 64-bit) of the Microsoft Edge on your system, in the Releases section. Next, extract it and put the two files in the same directory.

There's two ways to use this program.

1. Register as a debugger for Edge (version 0.4)

This program supports registering itself as the IFEO (Image File Execution Options) debugger for Microsoft Edge. This allows the program to intercept every attempt to run Microsoft Edge, so it can patch the Edge processes properly.

This program will ask you if you want it to register as a debugger. You can choose to register, or to use it manually without registration. You can make this dialog show again by holding CTRL when starting the program.

After registration, you can just use Microsoft Edge in the usual way.

Note the following:

  • Registering IFEO debuggers requires adminstrator's permission. This will also affect all users on the system. If you have other user accounts, put this program in a folder that every user can access.
  • It's recommended to exit Edge before registration.
  • Modifying IFEO is seemed as a dangerous action by some antivirus/HIPS software. In fact, this program patches Edge by injecting a third-party DLL into Edge processes, which can already be seen as a dangerous action.
  • Do not move, rename, or delete the program after registration. Edge won't be able to run if the registered debugger does not exist.
  • If you want to unregister, go to Control Panel > Programs and Features, or Settings > Apps, then choose to "uninstall" EdgeWindowTabManagerBlock. This won't delete the program, this will just unregister it.

2. Start this program manually, when you want to start Edge

This program works by injecting code that prevents object creation of the Windows Runtime class Windows.UI.Shell.WindowTabManager into the first Edge process, which must happen before the Edge process get a chance to run its code.

So, to make this program work, you need to run this program, and let it start the first Edge process for you, so that this program can have full control over the Edge process.

If you launch Edge by any other method, either through task bar, the Start menu, the desktop icon, or by opening a link when Edge is the default browser, or by opening a file associated with Edge, this program will not work. If there are other Edge processes running already, this program will also not work.

If you choose to register the program as an IFEO debugger, those will be taken care of by the operating system: this program will always be started before Edge. But the manual way is still possible.

edgewindowtabmanagerblock's People

Contributors

gexgd0419 avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar

edgewindowtabmanagerblock's Issues

[Q] Possible adding support to prevent Explorer multi-tabs Alt-Tab support?

The Windows 11 Insider version 22635.3858 (Beta Channel) released today introduces support for displaying Explorer tab thumbnails in Alt-Tab UI, which could lead to concerns similar to those experienced with Edge, exacerbating the already unstable state of the current Explorer architecture.
Given the inherent instability of Explorer itself, I hope to extend support for the EdgeWindowTabManagerBlock to Explorer using IFEO injection.

Version 123.0.2420.53 is fucking me again

The flag is gone AGAIN. I truly suspect this is caused by their version control, some branches have it and some branches don't.

I try to use this program to start edge, but it hangs for 10 min+, it is still hanging. 20 mins.
I guess latest edge breaks something again.

Update:
Using command line flag --disable-features=msWindowTabManagerPublic in the shortcut do the same thing as the old flag.

Bad news, maybe Windows 11 doesn’t have this problem.

When using Edge on Windows 11 to open the same number of tabs on Windows 10, Explorer‘s GDI will not overflow like Windows 10. It seems that Windows 11 has fixed this problem, but Windows 10 has not yet received a patch?

It might be possible to use the Image File Execution Options to start this program when Edge is launched.

我在《Windows Sysinternals 实战指南》中看到了这种方式:

Image File Execution Options (IFEO) 该注册表位置的子键(及64位版本Windows中对应的子键)主要用于实现大量内部的非公开用途。IFEO子键的公开用途之一是用于设置在运行某一特定应用程序时自动运行另一个备用程序。通过以原始程序的文件名为名创建子键,并在该键中通过“Debugger”值指定备用程序的可执行文件路径,即可以备用程序取代原始程序,并通过自己的命令行环境接受原始程序的路径和命令行参数。这一机制原本是用于以备用程序作为调试器,对调试器启动的新进程进行调试,而非在原程序已经开始运行并加载了所有相关代码之后将调试器附加至进程。然而该机制并不强制要求备用程序必须是调试器,也不会对传递的命令行参数进行检查。实际上Process Explorer(本书第3章介绍过)正是通过这种方式替换任务管理器的。

VSCode cannot launch msedge

configuration:
image

{
      "name": "Launch Edge",
      "request": "launch",
      "type": "msedge",
      "url": "https://localhost:4000",
      "webRoot": "${workspaceFolder}"
}

error message:
image

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.