python / cpython

The Python programming language
https://www.python.org
Other
63.5k stars 30.41k forks source link

"This action is restricted" Internet Explorer dialog when opening browser in Windows with no default browser #102520

Open JasonWeill opened 1 year ago

JasonWeill commented 1 year ago

Moved from https://github.com/jupyterlab/jupyterlab/issues/14142, per this comment that suggests that the fault is in this file in CPython.

Description

On a Windows 10 computer with Firefox set as the default browser, running jupyter lab causes a dialog box to appear: "Internet Explorer / This action is restricted. For more information, please contact your system administrator."

ie-popup

After I dismiss the dialog, Microsoft Edge pops up with the JupyterLab URL specified in the terminal.

On this Windows machine, there is no default browser set.

image (4)

Reproduce

  1. Set up a new Windows 10 machine with no default browser.
  2. Install JupyterLab via Conda (conda install jupyterlab).
  3. Run JupyterLab from the terminal (jupyter lab)
  4. See behavior shown above.

Expected behavior

If no default browser is selected, the jupyter executable does not attempt to launch any browser, but instead displays the URL to load with no further action. This would be similar behavior to when the user runs jupyter lab with the --no-browser parameter.

Linked PRs

terryjreedy commented 1 year ago

webbrowser still considers InternetExplorer to be the default Windows browser. I believe that it is mostly gone. Does the code to find IExplorer somehow find Edge instead, or need it be changed?

DBJim commented 1 year ago

On my Windows 10 and 11 installs, the file C:\Program Files\Internet Explorer\IEXPLORE.EXE still exists but opens Microsoft Edge when executed. I assume the file is only there for backwards compatibility as Windows 11 doesn't ship with a functioning IE browser and it was removed from existing Windows 10 installations through updates.

I do not know the cause of the dialog, but I gather the redirection to Edge doesn't work correctly in all scenarios.

All windows versions supported by Python should have Microsoft Edge installed and most (all?) would no longer have Internet Explorer. Would it now make sense for webbrowser.py to point directly to Microsoft Edge as the fallback browser on windows and any references to IE updated?

arhadthedev commented 1 year ago

Should we backport gh-102690 and close this issue as fixed?

DBJim commented 1 year ago

That should fix the dialog, but it doesn't deliver the expected behavior listed in the issue.

It might benefit to document that webbrowser will try to fall back to other browsers if the user hasn't set a default, do you agree?

I'll make a PR with my suggestion.