Skip to content
This repository was archived by the owner on Jun 22, 2025. It is now read-only.
This repository was archived by the owner on Jun 22, 2025. It is now read-only.

Microsoft Edge (Chromium) app mode #251

@ncotrb

Description

@ncotrb

Dear EEL team, thank you for this incredibly useful module! It is a successful lightweight alternative to Electron. I'm currently building a simple app with EEL. =)

Feature request description
The Microsoft Edge Browser (from version 79.0.309 on) is based on Chromium, which opens up completely new possibilities. Microsoft is currently shipping an update (KB 4541302), which automatically updates Edge to this new base in almost every Win10 installation.

I noticed that you can now use APP MODE with Edge (Chromium) just like Google Chrome. This results in much better app windows even for users who don't have Gooogle Chrome installed.

To use the app mode, 'edge.py' has to be adjusted as follows:

import sys, subprocess as sps, os

name = 'Edge'

def run(path, options, start_urls):
    if path != 'edge_legacy':
        if options['app_mode']:
            for url in start_urls:
                sps.Popen([path, '--app=%s' % url] + options['cmdline_args'], 
                        stdout=sps.PIPE, stderr=sps.PIPE, stdin=sps.PIPE)
        else:
            args = options['cmdline_args'] + start_urls
            sps.Popen([path, '--new-window'] + args,
                    stdout=sps.PIPE, stderr=sys.stderr, stdin=sps.PIPE)
    else:
        cmd = 'start microsoft-edge:{}'.format(start_urls[0])
        sps.Popen(cmd, stdout=sys.stdout, stderr=sys.stderr, stdin=sps.PIPE, shell=True)

def find_path():
    if sys.platform in ['win32', 'win64']:
        return _find_edge_win()
    else:
        return None

def _find_edge_win():
    import winreg as reg
    reg_path = r'SOFTWARE\Microsoft\Windows\CurrentVersion\App Paths\msedge.exe'

    for install_type in reg.HKEY_CURRENT_USER, reg.HKEY_LOCAL_MACHINE:
        try:
            reg_key = reg.OpenKey(install_type, reg_path, 0, reg.KEY_READ)
            edge_path = reg.QueryValue(reg_key, None)
            reg_key.Close()
            if not os.path.isfile(edge_path):
                continue
        except WindowsError:
            edge_path = 'edge_legacy'
        else:
            break

    return edge_path

If the new Edge (Chromium) Browser is not found in the system there is a fallback to the old Edge Browser.

Metadata

Metadata

Type

No type

Projects

No projects

Milestone

No milestone

Relationships

None yet

Development

No branches or pull requests

Issue actions