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

Closed

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.

Activity

  1. samuelhwilliams commented on Jul 9, 2020

    @samuelhwilliams
    Collaborator

    Hey @ncotrb - this looks great. Thanks for sharing it with us. I'm going to keep this open as it looks like a useful feature to add. Sorry it's taken so long. Hopefully we can get it in soon 🤞

  2. tobikuch commented on Oct 25, 2021

    @tobikuch

    The Code of @ncotrb is working for me, too. Is there any update on adding this feature? Would be very helpful for us.

  3. EricSamsonG2 commented on Feb 8, 2023

    @EricSamsonG2

    This works great for me as well. This would be a great thing to implement.

  4. samuelhwilliams commented on Feb 9, 2023

    @samuelhwilliams
    Collaborator

    Thanks for reviving - I had lost track of this one. I'll try to get it in a state to merge, though I don't have much time with Windows development these days. If anyone wants to put up a PR before I do, that would be welcomed 👍

  5. aqasemi commented on Dec 2, 2023

    @aqasemi

    Hey, any idea why this hasn't been merged yet?

  6. unpinned this issue on Nov 19, 2024
  7. samuelhwilliams commented on Nov 20, 2024

    @samuelhwilliams
    Collaborator

    This has been fixed now - apologies for the broadly-unacceptable delays in getting it in.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Metadata

Metadata

Type

No type

Projects

No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions