Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Edge: Roadmap to making edge the default browser on Windows #1466

Closed
sratz opened this issue Sep 12, 2024 · 5 comments
Closed

Edge: Roadmap to making edge the default browser on Windows #1466

sratz opened this issue Sep 12, 2024 · 5 comments
Labels
edge Edge Browser

Comments

@sratz
Copy link
Member

sratz commented Sep 12, 2024

Background

The Internet Explorer engine on Windows is still the default engine to date.
This engine however is heavily out-of-date and does not support the latest HTML/JS features imperative for modern developments.

The Edge implementation is available via SWT.EDGE flag or via -Dorg.eclipse.swt.browser.DefaultType=edge vm arg.

Goal

The goal should be to make the Edge implementation the default browser engine on Windows.

Proposal

  • Use this (umbrella) issue to keep track of open issues and to categorize them by severity
  • Once we have a stable enough state with no blockers, test-drive the Edge implementation by temporarily making it the default in the Platform I-Builds.
  • Based on this test drive:
    • Collect more bugs and issues
    • Revert back to IE, if critical

Issues

  • Edge related Issues / PRs: edge Edge Browser

Blocker / Major

Minor

Uncategorized

PDE

Out-of-scope (e.g. Edge-specific API)

Browser-agnostic feature requests

@sratz sratz added the edge Edge Browser label Sep 12, 2024
@HeikoKlare HeikoKlare pinned this issue Oct 30, 2024
HeikoKlare added a commit to HeikoKlare/eclipse.platform.swt that referenced this issue Dec 6, 2024
…1466

- Introduce SWT flag SWT.IE to be used for Browser to create an Internet
Explorer instance
- Adapt mapping of existing VM argument for default browser to map "ie"
to new Internet Explorer flag and use Edge as default
- Make SWT Browser instantiate Edge on Windows by default, i.e., unless
the flag SWT.IE is specified
- Adapt the SWT ControlExample to represent the SWT.IE flag and properly
switch between Edge, Internet Explorer and default
- Adapt Browser tests to consider to new default configuration

Contributes to
eclipse-platform#1466
HeikoKlare added a commit to HeikoKlare/eclipse.platform.swt that referenced this issue Dec 6, 2024
…1466

- Introduce SWT flag SWT.IE to be used for Browser to create an Internet
Explorer instance
- Adapt mapping of existing VM argument for default browser to map "ie"
to new Internet Explorer flag and use Edge as default
- Make SWT Browser instantiate Edge on Windows by default, i.e., unless
the flag SWT.IE is specified
- Adapt the SWT ControlExample to represent the SWT.IE flag and properly
switch between Edge, Internet Explorer and default
- Adapt Browser tests to consider to new default configuration

Contributes to
eclipse-platform#1466
HeikoKlare added a commit to HeikoKlare/eclipse.platform.swt that referenced this issue Dec 6, 2024
…1466

- Introduce SWT flag SWT.IE to be used for Browser to create an Internet
Explorer instance
- Adapt mapping of existing VM argument for default browser to map "ie"
to new Internet Explorer flag and use Edge as default
- Make SWT Browser instantiate Edge on Windows by default, i.e., unless
the flag SWT.IE is specified
- Adapt the SWT ControlExample to represent the SWT.IE flag and properly
switch between Edge, Internet Explorer and default
- Adapt Browser tests to consider to new default configuration

Contributes to
eclipse-platform#1466
HeikoKlare added a commit to HeikoKlare/eclipse.platform.swt that referenced this issue Dec 6, 2024
…1466

- Introduce SWT flag SWT.IE to be used for Browser to create an Internet
Explorer instance
- Adapt mapping of existing VM argument for default browser to map "ie"
to new Internet Explorer flag and use Edge as default
- Make SWT Browser instantiate Edge on Windows by default, i.e., unless
the flag SWT.IE is specified
- Adapt the SWT ControlExample to represent the SWT.IE flag and properly
switch between Edge, Internet Explorer and default
- Adapt Browser tests to consider to new default configuration

Contributes to
eclipse-platform#1466
HeikoKlare added a commit to HeikoKlare/eclipse.platform.swt that referenced this issue Dec 9, 2024
…1466

- Introduce SWT flag SWT.IE to be used for Browser to create an Internet
  Explorer instance
- Adapt mapping of existing VM argument for default browser to map "ie"
  to new Internet Explorer flag and use Edge as default
- Make SWT Browser instantiate Edge on Windows by default, i.e., unless
  the flag SWT.IE is specified
- Adapt the SWT ControlExample to represent the SWT.IE flag and properly
  switch between Edge, Internet Explorer and default
- Adapt Browser tests to consider to new default configuration

Contributes to
eclipse-platform#1466
HeikoKlare added a commit to HeikoKlare/eclipse.platform.swt that referenced this issue Dec 9, 2024
…1466

- Introduce SWT flag SWT.IE to be used for Browser to create an Internet
  Explorer instance
- Adapt mapping of existing VM argument for default browser to map "ie"
  to new Internet Explorer flag and use Edge as default
- Make SWT Browser instantiate Edge on Windows by default, i.e., unless
  the flag SWT.IE is specified
- Adapt the SWT ControlExample to represent the SWT.IE flag and properly
  switch between Edge, Internet Explorer and default
- Adapt Browser tests to consider to new default configuration

Contributes to
eclipse-platform#1466
HeikoKlare added a commit to HeikoKlare/eclipse.platform.swt that referenced this issue Dec 9, 2024
…1466

- Introduce SWT flag SWT.IE to be used for Browser to create an Internet
  Explorer instance
- Adapt mapping of existing VM argument for default browser to map "ie"
  to new Internet Explorer flag and use Edge as default
- Make SWT Browser instantiate Edge on Windows by default, i.e., unless
  the flag SWT.IE is specified
- Adapt the SWT ControlExample to represent the SWT.IE flag and properly
  switch between Edge, Internet Explorer and default
- Adapt Browser tests to consider to new default configuration

Contributes to
eclipse-platform#1466
HeikoKlare added a commit to HeikoKlare/eclipse.platform.swt that referenced this issue Dec 9, 2024
…1466

- Introduce SWT flag SWT.IE to be used for Browser to create an Internet
  Explorer instance
- Adapt mapping of existing VM argument for default browser to map "ie"
  to new Internet Explorer flag and use Edge as default
- Make SWT Browser instantiate Edge on Windows by default, i.e., unless
  the flag SWT.IE is specified
- Adapt the SWT ControlExample to represent the SWT.IE flag and properly
  switch between Edge, Internet Explorer and default
- Adapt Browser tests to consider to new default configuration

Contributes to
eclipse-platform#1466
HeikoKlare added a commit to HeikoKlare/eclipse.platform.swt that referenced this issue Dec 10, 2024
…1466

- Introduce SWT flag SWT.IE to be used for Browser to create an Internet
  Explorer instance
- Adapt mapping of existing VM argument for default browser to map "ie"
  to new Internet Explorer flag and use Edge as default
- Make SWT Browser instantiate Edge on Windows by default, i.e., unless
  the flag SWT.IE is specified
- Adapt the SWT ControlExample to represent the SWT.IE flag and properly
  switch between Edge, Internet Explorer and default
- Adapt Browser tests to consider to new default configuration

Contributes to
eclipse-platform#1466
HeikoKlare added a commit that referenced this issue Dec 10, 2024
- Introduce SWT flag SWT.IE to be used for Browser to create an Internet
  Explorer instance
- Adapt mapping of existing VM argument for default browser to map "ie"
  to new Internet Explorer flag and use Edge as default
- Make SWT Browser instantiate Edge on Windows by default, i.e., unless
  the flag SWT.IE is specified
- Adapt the SWT ControlExample to represent the SWT.IE flag and properly
  switch between Edge, Internet Explorer and default
- Adapt Browser tests to consider to new default configuration

Contributes to
#1466
@fedejeanne fedejeanne unpinned this issue Dec 20, 2024
amartya4256 added a commit to amartya4256/eclipse.platform.swt that referenced this issue Feb 3, 2025
This commit encapsulates the ICoreWeICoreWebView2*::Release call for all
the ICoreWebView2* instances in WebViewWrapper into a
method WebViewWrapper::releaseWebViews for a better encapsulation which
can be used to dispose off the created ICoreWebView2* resources.

contributes to eclipse-platform#1466
amartya4256 added a commit to amartya4256/eclipse.platform.swt that referenced this issue Feb 3, 2025
This commit conributes to handle how webViewWrapperFuture should exceptionally complete if there happens an edge operation timeout in processOSMessagesUntil method

contributes to eclipse-platform#1466 and eclipse.platform.ui/#2734
amartya4256 added a commit to amartya4256/eclipse.platform.swt that referenced this issue Feb 3, 2025
This commit conributes to handle how webViewWrapperFuture should exceptionally complete if there happens an edge operation timeout in processOSMessagesUntil method

contributes to eclipse-platform#1466 and eclipse.platform.ui/#2734
amartya4256 added a commit to amartya4256/eclipse.platform.swt that referenced this issue Feb 3, 2025
This commit encapsulates the ICoreWeICoreWebView2*::Release call for all
the ICoreWebView2* instances in WebViewWrapper into a
method WebViewWrapper::releaseWebViews for a better encapsulation which
can be used to dispose off the created ICoreWebView2* resources.

contributes to eclipse-platform#1466
amartya4256 added a commit to amartya4256/eclipse.platform.swt that referenced this issue Feb 3, 2025
This commit conributes to handle how webViewWrapperFuture should exceptionally complete if there happens an edge operation timeout in processOSMessagesUntil method

contributes to eclipse-platform#1466 and eclipse.platform.ui/#2734

# Conflicts:
#	bundles/org.eclipse.swt/Eclipse SWT Browser/win32/org/eclipse/swt/browser/Edge.java
amartya4256 added a commit to amartya4256/eclipse.platform.swt that referenced this issue Feb 3, 2025
This commit encapsulates the ICoreWeICoreWebView2*::Release call for all
the ICoreWebView2* instances in WebViewWrapper into a
method WebViewWrapper::releaseWebViews for a better encapsulation which
can be used to dispose off the created ICoreWebView2* resources.

contributes to eclipse-platform#1466
amartya4256 added a commit to amartya4256/eclipse.platform.swt that referenced this issue Feb 3, 2025
This commit conributes to handle how webViewWrapperFuture should exceptionally complete if there happens an edge operation timeout in processOSMessagesUntil method

contributes to eclipse-platform#1466 and eclipse.platform.ui/#2734
amartya4256 added a commit to amartya4256/eclipse.platform.swt that referenced this issue Feb 3, 2025
This commit conributes to handle how webViewWrapperFuture should exceptionally complete if there happens an edge operation timeout in processOSMessagesUntil method

contributes to eclipse-platform#1466 and eclipse.platform.ui/#2734
amartya4256 added a commit to amartya4256/eclipse.platform.swt that referenced this issue Feb 3, 2025
This commit conributes to handle how webViewWrapperFuture should exceptionally complete if there happens an edge operation timeout in processOSMessagesUntil method

contributes to eclipse-platform#1466 and eclipse.platform.ui/#2734
amartya4256 added a commit to amartya4256/eclipse.platform.swt that referenced this issue Feb 3, 2025
This commit conributes to handle how webViewWrapperFuture should exceptionally complete if there happens an edge operation timeout in processOSMessagesUntil method

contributes to eclipse-platform#1466 and eclipse.platform.ui/#2734
amartya4256 added a commit to amartya4256/eclipse.platform.swt that referenced this issue Feb 4, 2025
This commit conributes to handle how webViewWrapperFuture should exceptionally complete if there happens an edge operation timeout in processOSMessagesUntil method

contributes to eclipse-platform#1466 and eclipse.platform.ui/#2734
HeikoKlare pushed a commit that referenced this issue Feb 4, 2025
This commit conributes to handle how webViewWrapperFuture should
exceptionally complete if there happens an Edge operation timeout in
processOSMessagesUntil method.

Contributes to
#1466 and
eclipse-platform/eclipse.platform.ui#2734
HeikoKlare added a commit to vi-eclipse/www.eclipse.org-eclipse that referenced this issue Feb 4, 2025
This contributes an N&N for the default browser on Windows being changed
from Internet Explorer to IE, as documented in
eclipse-platform/eclipse.platform.swt#1466
HeikoKlare added a commit to vi-eclipse/www.eclipse.org-eclipse that referenced this issue Feb 7, 2025
This contributes an N&N for the default browser on Windows being changed
from Internet Explorer to IE, as documented in
eclipse-platform/eclipse.platform.swt#1466
HeikoKlare added a commit to vi-eclipse/www.eclipse.org-eclipse that referenced this issue Feb 11, 2025
This contributes an N&N for the default browser on Windows being changed
from Internet Explorer to IE, as documented in
eclipse-platform/eclipse.platform.swt#1466
HeikoKlare added a commit to eclipse-platform/www.eclipse.org-eclipse that referenced this issue Feb 11, 2025
This contributes an N&N for the default browser on Windows being changed
from Internet Explorer to IE, as documented in
eclipse-platform/eclipse.platform.swt#1466
@konczdev
Copy link

Can #1834 be added to the scope of this issue? Without this sites behind Azure AD authentication (typically in enterprise environment) cannot be loaded with the current Edge implementation.

@sratz
Copy link
Member Author

sratz commented Feb 18, 2025

Can #1834 be added to the scope of this issue? Without this sites behind Azure AD authentication (typically in enterprise environment) cannot be loaded with the current Edge implementation.

Azure AD auth never worked in IE, did it?

Then I don't consider it as part of the scope or replacing IE with Edge, but as additional functional requirement to be tracked separately.

@selundqma
Copy link

selundqma commented Mar 20, 2025

Using Eclipse 4.35 with the Edge implementation as default, I see a delay between my dialog showing with the Browser component and the text appearing. Also a very short text shows the same delay.. like "HELLO". If I use the SWT.IE flag, the delay is gone. Can something be done to remove that delay?

@HeikoKlare
Copy link
Contributor

I see a delay between my dialog showing with the Browser component and the text appearing. Also a very short text shows the same delay.. like "HELLO". If I use the SWT.IE flag, the delay is gone. Can something be done to remove that delay?

Can you say something about how long/severe that delay is? I can actually not reproduce it.
Anyway, I don't think this is something that can easily be avoided. With Edge, everything happens asynchronously (even the instantiation), including the navigation for which you experience the delay. Avoiding that would probably require a synchronous execution of this without any UI refresh, which in turn would/could lead to bad UI responsiveness.

@selundqma
Copy link

Hi @HeikoKlare ! Thank you for your response! I tried to measure the delay in VLC, but it just won´t show a good enough time resolution. I will try to attach a small video clip here (very minimal) which shows the appearance of the dialog frame and then the text in the browser.. maybe you can get a feeling of the delay then.

recording.mp4

amartya4256 added a commit to vi-eclipse/eclipse.platform.swt that referenced this issue Mar 31, 2025
This commit makes sure while calling Edge::getWebViewWrapper with
waitForLastPEndingLast set to true that the method also checks for the
completion of the webViewWrapperFuture before calling a join() on it,
which can some time lead to deadlock as we allow forced execptional
completion of lastWebViewTask on timeout.

contributes to eclipse-platform#1466
amartya4256 added a commit to vi-eclipse/eclipse.platform.swt that referenced this issue Mar 31, 2025
This commit makes sure while calling Edge::getWebViewWrapper with
waitForLastPEndingLast set to true that the method also checks for the
completion of the webViewWrapperFuture before calling a join() on it,
which can some time lead to deadlock as we allow forced execptional
completion of lastWebViewTask on timeout.

contributes to eclipse-platform#1466
HeikoKlare pushed a commit to vi-eclipse/eclipse.platform.swt that referenced this issue Mar 31, 2025
This commit makes sure while calling Edge::getWebViewWrapper with
waitForLastPEndingLast set to true that the method also checks for the
completion of the webViewWrapperFuture before calling a join() on it,
which can some time lead to deadlock as we allow forced execptional
completion of lastWebViewTask on timeout.

contributes to eclipse-platform#1466
amartya4256 added a commit to vi-eclipse/eclipse.platform.swt that referenced this issue Mar 31, 2025
This commit makes sure while calling Edge::getWebViewWrapper with
waitForPendingWebviewTasksToFinish set to true that the method also checks for the
completion of the webViewWrapperFuture before calling a join() on it,
which can some time lead to deadlock as we allow forced execptional
completion of lastWebViewTask on timeout.

contributes to eclipse-platform#1466
amartya4256 added a commit to vi-eclipse/eclipse.platform.swt that referenced this issue Apr 1, 2025
This commit cotributes to executing the registered listeners of Edge
browser on Browser callbacks in a asynchronous fashion making sure no
WebView related task is executed while a WebView callback is
already executing making sure there's no deadlock.

contributes to
eclipse-platform#1771 and
eclipse-platform#1919
amartya4256 added a commit to vi-eclipse/eclipse.platform.swt that referenced this issue Apr 1, 2025
This commit cotributes to executing the registered listeners of Edge
browser on Browser callbacks in a asynchronous fashion making sure no
WebView related task is executed while a WebView callback is
already executing making sure there's no deadlock.

contributes to
eclipse-platform#1771 and
eclipse-platform#1919
fedejeanne pushed a commit that referenced this issue Apr 2, 2025
This commit makes sure while calling Edge::getWebViewWrapper with
waitForPendingWebviewTasksToFinish set to true that the method also checks for the
completion of the webViewWrapperFuture before calling a join() on it,
which can some time lead to deadlock as we allow forced execptional
completion of lastWebViewTask on timeout.

contributes to #1466
amartya4256 added a commit to vi-eclipse/eclipse.platform.swt that referenced this issue Apr 2, 2025
This commit cotributes to executing the registered listeners of Edge
browser on Browser callbacks in a asynchronous fashion making sure no
WebView related task is executed while a WebView callback is
already executing making sure there's no deadlock.

contributes to
eclipse-platform#1771 and
eclipse-platform#1919
fedejeanne pushed a commit to vi-eclipse/eclipse.platform.swt that referenced this issue Apr 3, 2025
This commit cotributes to executing the registered listeners of Edge
browser on Browser callbacks in a asynchronous fashion making sure no
WebView related task is executed while a WebView callback is
already executing making sure there's no deadlock.

contributes to
eclipse-platform#1771 and
eclipse-platform#1919
fedejeanne pushed a commit to vi-eclipse/eclipse.platform.swt that referenced this issue Apr 3, 2025
This commit cotributes to executing the registered listeners of Edge
browser on Browser callbacks in a asynchronous fashion making sure no
WebView related task is executed while a WebView callback is
already executing making sure there's no deadlock.

contributes to
eclipse-platform#1771 and
eclipse-platform#1919
amartya4256 added a commit to vi-eclipse/eclipse.platform.swt that referenced this issue Apr 8, 2025
This commit cotributes to executing the registered listeners of Edge
browser on Browser callbacks in a asynchronous fashion making sure no
WebView related task is executed while a WebView callback is
already executing making sure there's no deadlock.

contributes to
eclipse-platform#1771 and eclipse-platform#1919
amartya4256 added a commit to vi-eclipse/eclipse.platform.swt that referenced this issue Apr 8, 2025
This commit cotributes to replicating the behaviour of Edge:evaluate as
it is in WebKit - it must not wait for the execution of script to obtain
the result, in case evaluate is called inside a WebView callback. This
commit also makes sure that OpenWindowListeners are execute
synchronously or asynchronously depending on if the
handleNewWindowRequested is called from the evaluate script. Moreover,
this enables all the tests which were failing because of Edge:evaluate
limitations.

contributes to
eclipse-platform#1771 and eclipse-platform#1919
fedejeanne pushed a commit to vi-eclipse/eclipse.platform.swt that referenced this issue Apr 9, 2025
This commit cotributes to replicating the behaviour of Edge:evaluate as
it is in WebKit - it must not wait for the execution of script to obtain
the result, in case evaluate is called inside a WebView callback. This
commit also makes sure that OpenWindowListeners are execute
synchronously or asynchronously depending on if the
handleNewWindowRequested is called from the evaluate script. Moreover,
this enables all the tests which were failing because of Edge:evaluate
limitations.

contributes to
eclipse-platform#1771 and
eclipse-platform#1919
amartya4256 added a commit to vi-eclipse/eclipse.platform.swt that referenced this issue Apr 9, 2025
This commit cotributes to replicating the behaviour of Edge:evaluate as
it is in WebKit - it must not wait for the execution of script to obtain
the result, in case evaluate is called inside a WebView callback. This
commit also makes sure that OpenWindowListeners are execute
synchronously or asynchronously depending on if the
handleNewWindowRequested is called from the evaluate script. Moreover,
this enables all the tests which were failing because of Edge:evaluate
limitations.

contributes to
eclipse-platform#1771 and eclipse-platform#1919
amartya4256 added a commit to amartya4256/eclipse.platform.swt that referenced this issue Apr 9, 2025
This commit cotributes to replicating the behaviour of Edge:evaluate as
it is in WebKit - it must not wait for the execution of script to obtain
the result, in case evaluate is called inside a WebView callback. This
commit also makes sure that OpenWindowListeners are execute
synchronously or asynchronously depending on if the
handleNewWindowRequested is called from the evaluate script. Moreover,
this enables all the tests which were failing because of Edge:evaluate
limitations.

contributes to
eclipse-platform#1771 and eclipse-platform#1919
amartya4256 added a commit to vi-eclipse/eclipse.platform.swt that referenced this issue Apr 9, 2025
This commit cotributes to replicating the behaviour of Edge:evaluate as
it is in WebKit - it must not wait for the execution of script to obtain
the result, in case evaluate is called inside a WebView callback. This
commit also makes sure that OpenWindowListeners are execute
synchronously or asynchronously depending on if the
handleNewWindowRequested is called from the evaluate script. Moreover,
this enables all the tests which were failing because of Edge:evaluate
limitations.

contributes to
eclipse-platform#1771 and eclipse-platform#1919
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
edge Edge Browser
Projects
None yet
Development

No branches or pull requests

4 participants