# Changelog
# 3.7
Released 04/11/2022
# ⚡ Features
- [All] New
window.moved
event. Thanks @irtimir
# 🚀 Improvements
- [EdgeChromium] Remove
The system cannot find the file specified - Microsoft Edge WebView2 Runtime Registry path: Computer\HKEY_CURRENT_USER\Microsoft\EdgeUpdate\Clients{F3017226-FE2A-4295-8BDF-00C3A9A7E4C5}
error message displayed in debug mode. - [CEF] error.log is no longer deleted when in debug mode.
# 🐞 Bug fixes
- [All] Fix
evaluate_js_async
crash and program termination prevention. Thanks @detritophage. - [WinForms] Fix form initialization for pythonnet 3. Thanks @irtimir
- [CEF] Fix errorous script execution in
evaluate_js
, so that further script do not get stuck. Thanks @irtimir - [CEF] Fix
master uid not found
error on startup. - [QT] Remove 'Empty key passed' messages. Thanks @TomFryers
- [QT] PySide6 backend not working. Thanks @sbbosco
- [QT] Prevent 'Release of profile requested but WebEnginePage still not deleted. Expect troubles !' message on close. Thanks @sbbosco
# 3.6.3
Released 05/04/2022
# 🐞 Bug fixes
- [Winforms] Support for Edge Chromium v100. Thanks @greper.
# 3.6.2
Released 05/03/2022
# 🐞 Bug fixes
- [Cocoa] Fix closing window
# 3.6.1
Released 16/02/2022
Fix
[CEF] Exception on start
# 3.6
Released 15/02/2022
New
[All] Python 3.6 is the minimum supported version from now on.New
[All]minimized
,maximized
,restored
,resized
events. Thanks @BillBridge for sponsorship.New
[All]evaluate_js
async support.evaluate_js(code, callback)
can evaluate promises via an optional callback parameter.New
[All] Events moved to its ownwindow.events
namespace (e.g.window.loaded
→window.events.loaded
). Old events are supported throughout 3.x and will be removed in 4.0.New
[All]window.resize(width, height, fix_point)
has now an optional parameter fix_point that controls in respect to which point the window is resized.New
[All] MSHTML and EdgeHTML are deprecated. No further development will be done on these renderers.New
[Winforms] Focus webview on start or window activate events.New
[EdgeChromium] Custom user agent support.New
[EdgeChromium] Window transparency support. Mouse and keyboards events are not supported in transparent. Thanks @odtian.New
[CEF] Ability to pass custom CEF browser settings. Thanks @Rolf-MP.Improvement
[EdgeChromium] Support non-elevated installations of WebView2. Thanks @ultrararetoad.Improvement
[EdgeChromium] Better support for Edge Chromium runtime detectiom. Thanks @r-muthu-saravanan.Improvement
[EdgeChromium] WebView2 runtime updated toImprovement
[QT] Pyside support via PyQT wrapper. Thanks @tshemeng.Fix
[Cocoa] Make Ctrl-C (SIGINT) work on Cocoa when running from the command lineFix
[EdgeChromium] Fix `load_html. Thanks @sbbosco.Fix
[Cocoa] Fix cancelling of closing the window in the closing event Thanks @fizzadar.Fix
[QT] Fix simultaneous calls to JS API.Fix
[GTK] Fix concurrency issues with get_size, get_position and get_current_url.
# 3.5
Released 02/08/2021
New
[All] Get information about available screens via newwebview.screens
property.New
[All] Per window localization. Thanks @fizzadar.New
[All] Window closing can be cancelled by returning False from a closing event handler. #744.Fix
[All] Debug mode cannot be set under certain conditions. #628Improvement
[All] Selected web renderer printed in Python console in debug mode.Improvement
[All] JS API serialization logic. Thanks @peter23Improvement
[EdgeChromium] Chromium runtime updated to version 1.0.774.44. Thanks @sbbosco.Improvement
[EdgeChromium] Custom user agent support.Fix
[WinForms] Icon handling logic to make pywebview compatible with pystray. #720. Thanks @simonrobFix
[EdgeChromium] Change webview component to transparent. Thanks @ODtianFix
[CEF] Fix exception when destroying windowFix
[Cocoa] cmd+w bypasses exit confirmation dialogue. #698. Thanks @fizzadarFix
[Cocoa] Fix window coordinate calculation logic when moving a window.Fix
[MSHTML] Fix drag_regionFix
[MSHTML] Fix window.alert
# 3.4: Second wave
Released 04/12/2020
New
[Windows] WebView2 Chromium support. Thanks sbbosco (opens new window). #521 (opens new window).Fix
[All] Exception with HTML checkboxes andget_elements
. #622 (opens new window).Fix
[All] pystray compatibility. Thanks AlexCovizzi (opens new window). #486 (opens new window).Fix
[All] expose methods instead of all callables for JS API objects. Thanks jgentil (opens new window). #629 (opens new window).Fix
[EdgeHTML] Make returning results ofevaluate_js
more robust. Thanks sbbosco (opens new window).Fix
[QT] KDE_FULL_SESSION not being used. Thanks Maltzur (opens new window).Fix
[Cocoa] Unicode filenames for input files.Improvement
[Cocoa] Only install the specificpyobjc
packages required. Thanks Fizzadar (opens new window).Improvement
[Cocoa] Add support for default document navigation and window handling shortcut keys . Thanks ikhmyz (opens new window) and Fizzadar (opens new window)
# 3.3.5
Released 26/09/2020
Fix
[EdgeHTML] Server middleware handlingFix
[EdgeHTML] file:// url handling
# 3.3.4
Released 18/09/2020
Fix
[EdgeHTML] Fix content not displaying with local URLs or local HTTP serverFix
[Cocoa] Fixes arrow keys not responding in text input fields. Thanks awesomo4000 (opens new window)
# 3.3.3
Released 08/08/2020
Fix
[Cocoa] Save dialog not working #578 (opens new window).Fix
[Cocoa] Error sound being played when pressing keys on macOS #566 (opens new window).
# 3.3.2
Released 28/07/2020
Fix
[All] Load html triggers error - resolve_url() missing 1 required positional argument: 'should_serve' #562 (opens new window).Fix
[Cocoa/GTK] Access window size on closing #573 (opens new window).Fix
[GTK] Save file dialog now returns a string instead of a tuple.
# 3.3.1
Released 01/07/2020
Fix
[WinForms] TypeError : 'str' value cannot be converted to System.Drawing.Color #560 (opens new window).
# 3.3: Detroit Edition
Released 29/06/2020
New
[All] Brand-new WSGI based internal HTTP server. Thanks @astronouth7303 (opens new window).New
[All] Transparent window. Not available on Windows.New
[All] Allow pywebview window to be on top of other windows.New
[All] Custom window drag region using CSS classes. Thanks @Fizzadar (opens new window).New
[All] Custom user-agent support. Thanks @tognee (opens new window).Fix
[All] Python function not triggered using JS #458 (opens new window).Fix
[All] window methods do not work inloaded
event #528 (opens new window).Fix
[Cocoa] Caption bar and window control buttons are now hidden in frameless mode.Fix
[CEF] CEF window resize hang #484 (opens new window).Fix
[MSHTML] Fix easy drag in frameless mode.Fix
[EdgeHTML] Do not show admin prompt for non-local URLs.Fix
[GTK] Fix threading issues with recentish versions of PyGObjectFix
[QT] Fix opening web inspecting in debug mode
# 3.2: Humate Edition
Released 24/01/2020
New
[All] Window x, y, width and height properties to retrieve coordinates and dimensions of the window. Thanks @Fizzadar (opens new window)New
[All]window.expose(func)
an ability to expose an arbitrary function to the JS realm, also during the runtime.Improvement
[All] JS API methods can now accept an arbitrary number of argumentsImprovement
[All] Exceptions thrown in a JS API method is now raised in Javascript via its promise.Improvement
[All] Exceptions thrown in window event handlers are now caught and logged.Improvement
[All] Random port assigned by the built-in HTTP server can be retrieved viawebview.http_server.port
Improvement
[QT] Microphone/webcam are enabled by default. Thanks @dtcooper (opens new window)Improvement
[QT] Default debugger port is changed to 8228. Thanks @melvinkcx (opens new window)Improvement
[CEF] Ability to pass custom CEF settings viawebview.platforms.cef.settings
. See example for details.Fix
[All] Built-in HTTP server is properly restarted when usingwindow.load_url
Fix
[Cocoa] New window position is correctly calculated when usingwindow.move
Fix
[EdgeHTML]window.alert
fix
# 3.1: Windows Edition
Released 04/11/2019
New
[All] Window minimize/restore functionality. Ability to show window minimized on startup.New
[All] Window hide/show functionality. Ability to show window hidden on startup.New
[All] Window move functionality. Ability to set window coordinates on startup. Thanks @adbenitez.New
[All] Newwindow.pywebviewready
DOM event that is thrown whenwindow.pywebview
is available.New
[All] Links opened viawindow.open
are opened in a new browser window.Fix
[All] Fix concurrent invocations of JS API functions.Fix
[All] Fix unescaped single quote in JS API calls.Fix
[All] Built-in HTTP server is now multi-threaded. This fixes stalling HTTP requests in some cases.Improvement
[All]window.set_window_size
is deprecated in favour towindow.resize
.Improvement
[All] Exceptions are now handled in JS API functions and rerouted to the function promise catch method.Improvement
[All] Suppress built-in HTTP server logging. Logging is active only in the debug mode.Fix
[CEF] Fix deadlock occurring when trying to accesswindow.pywebview
object right after the window is created.Fix
[CEF] High DPI fix resulting in a small window appearing inside the main window,Fix
[EdgeHTML] Unicode error when loading HTML.Fix
[MSHTML]get_elements
failing.Fix
[MSHTML]console.log
not writing to Python console in debug mode.Fix
[MSHTML] Forcing MSHTML viagui=mshtml
is now possible. ¯\_(ツ)_/¯
# 3.0.2
Released 17/08/2019
Fix
[All] Prevent JSON like strings being converted to JSON objects when returning JS API calls. #352Fix
[Windows] HTTP server is now used by default for local URLs and HTML for EdgeHTML. This fixes a PermissionDenied error, when the directory the executable is in is not writable.Fix
[Tests] Tests now fail on an exception occurring in a thread.
# 3.0.1
Released 25/07/2019
Fix
[All] Don't escape line breaks in result of js_bridge_call. Thanks @kvasserman.Fix
[Windows] Support for Pyinstaller noconsole modeFix
[Windows] Fix Windows version detection with frozen executables.Fix
[Windows] Open folder dialog now supportsdirectory
argument.Fix
[QT] Workaround for segmentation fault on closing the main window. Thanks @kvasserman.Fix
[Pytest] Fix for pytest warning about invalid escape sequence
# 3.0
Released 11/07/2019
New
[All] New API. The API is not compatible with older versions of pywebview. See https://pywebview.flowrl.com for usage details. #272New
[All] Built-in HTTP server. #260New
[All] Autogenerated CSRF token exposed aswindow.pywebview.token
. #316New
[All]get_elements
function to retrieve DOM nodes. #292New
[All] New events system that lets you to subscribe to events.loaded
andshown
events are implemented. #201New
[Windows] EdgeHTML support. Thanks @heavenvolkoff. #243Fix
[Windows] Fullscreen mode. #338Fix
[GTK] Better Javascript support for recent version of WebKit2Fix
[CEF] Support for PyInstaller in onefile mode
# 2.4
Released 17/02/2019
New
[All] Support for frameless windows.Fix
[Windows] Fix broken installation of v2.3
# 2.3
Released 12/02/2019
New
[All] Ability to resize window after creationwebview.set_window_size(width, height)
. Thanks @aprowe #274New
[Windows] Chrome Embedded Framework (CEF) support #15Improvement
[All] pywebview does not interfer with Python's logger configuration #295Fix
[All] Empty DOM issues when window is created without a URL #285Improvement
[macOS] Web renderer upgraded to WKWebViewImprovement
[macOS] Add support for Mojave dark modeFix
[macOS] Problem with handling paths containing spaces #283Fix
[QT] Better support for QTWebKit and QTWebChannel #304Improvement
[QT] Remove support for QT4Fix
[GTK] Thrown exception not Python 2 compatible #277
# 2.2.1
Released 24/10/2018
Fix
Dependency installationNew
Reintroduce [qt] extra require switch
# 2.2
Released 23/10/2018
New
Brand new documentation at https://pywebview.flowrl.comImprovement
Simplify installation. Now pywebview can be installed bypip install pywebview
. Dependencies will be resolved and installed automaticallyImprovement
[GTK] Update to WebKit2
# 2.1
Released 16/09/2018
New
[All] IntroducePYWEBVIEW_GUI
environment variable andwebview.config.gui
property. Acceptable values are areqt
,gtk
andwin32
.USE_QT
andUSE_WIN32
is deprecated.Fix
[Cocoa] Closing main window does not result in program terminationFix
[All] New main window re-creation after closing. #229Fix
[QT] Debug mode #233Fix
[Cocoa/Windows] Preserve JS API on page reloadFix
[Windows]toggle_fullscreen()
function #232. Thanks @lt94Fix
[Windows]load_css()
function. Thanks @wormius.
# 2.0.3
Released 16/05/2018
Fix
[QT] Fix a deadlock preventing QT implementation from startingFix
[QT] QT is set to default on QT-based systems
# 2.0.1/2.0.2
Released 08/05/2018
Fix
[Winforms] Fix installation of dlls
# 2.0
Released 28/04/2018
New
[All] Multi-window supportNew
[All] Ability to call Python code from Javascript viawindow.pywebview.api
New
[All] Debug mode. Web inspector for Cocoa/GTK/QT and basic debug information for WinForms.New
[All] File filter support increate_file_dialog
New
[All]target='_blank'
links are now opened in an external browserNew
[All] Change window title via aset_title
function #159New
[All]load_css
functionNew
[All] Support for relative local URLs increate_window
/load_html
. Linked local resources are resolved as well. #186New
[All]todos
example app demonstrating js api and relative local URLs.New
[All] Text select in the webview window is disabled by default. Addedtext_select
argument tocreate_window
function.New
[QT] OpenBSD 6.x support #213. Thanks @hucste.Fix
[All]base_uri
parameter ofload_html
defaults to the directory of the entry scriptFix
[All] Consistent return types withevaluate_js
across different platforms #175Fix
[All] Various concurrency issues and deadlocksFix
[Winforms] HideMessage from webpage
when usingalert
Javascript function #150Fix
[Winforms] Support for high DPI #179Fix
[QT] Support for QT 5.10 #171. Thanks @adbenitezFix
[QT] Deprecate QT4. Starting from this version new features won't be tested on QT4 and support will be removed in the future.
# 1.8
Released 29/10/2017
- pywebview has the official logo
- @shivaprsdv is now an official maintainer of the project
New
[All] Add an ability to run Javascript code usingevaluate_js
functionFix
[Cocoa] Implement missing webview components (file input dialog, alert()/confirm() JS functions)Fix
[Winforms] Fix issue with non-responsive UI when a loading screen background color is usedFix
[Winforms] Add support for Del and Ctrl+A keys in input elements.New
[QT] QT5 is now prefererred over QT4Fix
[QT] Fix return parameters ofcreate_file_dialog
to have the same format as on other platformsFix
[GTK] Better threading model. Thanks to @jorants #121
# 1.7
Released 08/06/2017
New
[All] Add a basic test suite and continuous integration. #88New
[All] Add a background_color parameter to create_window, which specifies the default color of the webview window. Refer to examples/loading_indicator.py for example use. Thanks to @shivaprsdv. #90New
[Cocoa] Disable backspace navigation. Thanks to @shivaprsdv. #102New
[Cocoa] Implementation of window.print() and window.confirm method. Thanks to @shivaprsdv. #97Fix
[Cocoa] Fix non-existing localization string in save file dialogNew
[Winforms] Disable all the shortcut keys of web navigationFix
[Winforms] Fix load_html failing sometimes due thread violationFix
[GTK] Implement fall-through to QT, when GTK is present, but not GTK.WebKit.
# 1.6
Released 29/03/2017
New
[All] Quit confirmation dialog #31New
[All] webview.config can be used using the dot notation (ie. webview.config.use_win32 = True)New
[Winforms] Disable context menuFix
[Winforms] Application icon is now visible in the application window when frozen with PyInstaller #91Fix
[Mac] load_html() is invoked as soon as the webview is ready #93Fix
[QT] get_current_url() not working due a typo. Thanks @maroc81. #85Fix
[GTK] Better exception handling when GTK is not found #94Fix
[GTK] destroy_window() #95
# 1.5
Released 09/02/2017
New
[All] toggle_fullscreen function #52New
[All] get_current_url function #76New
[Winforms] Javascript errors are now suppressedFix
[Winforms] Fixed resizable=False not being enforced #73
# 1.4
Released 14/01/2017
New
[All] pip installation now supports choosing what dependencies to install. See README for more information. Thanks @josePhoenixNew
[All] Localization support. Refer toexamples/localization.py
for an example useNew
[Mac] QT5 supportFix
[Windows] File dialogs are now attached to the main windowFix
[Windows] Pyinstaller crash issue with an icon in Windows Forms
# 1.3
Released 31/10/2016
New
[Cocoa] Added View -> Fullscreen standard menu item. Thanks to @bastula.New
[Cocoa] Added About menu item #45. Thanks to @bastula.New
[Windows] An application icon for Windows FormsFix
[Windows] Removed unnecessary pywin32 dependencies from Windows Forms #60Fix
[Linux] Thread violation in load_url in GTK implementation #59
# 1.2.2
Released 10/10/2016
Fix
[All] Python 2 compatibility issue in Flask Example (#52). Thanks to @bastula.Fix
[Windows] Python 3 compatibility issue in Windows Forms implementation (#51)Fix
[Linux] Resizing width/height: 100% problem on GTK (#53). Thanks to @klausweiss.
# 1.2.1
Released 29/09/2016
Fix
[Linux] GTK window failing to open. Thanks to @lchish. #50
# 1.2
Released 27/09/2016
New
[All] Introducedload_html
function that allows dynamic loading of HTML code, instead of a URL. Implemented for all platforms except Win32 (use Windows Forms). Thanks to @ysobolev #39New
[All] Added an example of a Flask-based application skeleton. The example can be found inexamples/flask_app
New
[Windows] Windows Forms based implementation of webview window. Requires pythonnet.New
[Windows] Introduced config["USE_WIN32"] variable that lets you choose between Win32 and Windows Forms. Default to True (Windows Forms will be made as default in the future)Fix
[Windows/Linux] Got rid of installation dependencies on Windows and Linux. The dependencies now have to be installed by hand and the choice of dependencies is left to userFix
[Linux] Compatibility with Qt 5.5. Thanks to @danidee10. #48
# 1.1
Released 08/06/2016
New
[OSX] Add a default application menu #35. Thanks @cuibonoboNew
[Linux] GTK is made as default and pypi dependency added. USE_GTK environment variable is also deprecated. To use QT, setwebview.config["USE_QT"] = True
Fix
[Windows] Open folder of create_file_dialog now returns Unicode, instead of byte encoding.
# 1.0.2
Released 19/05/2016
Fix
[Windows] Fix a dead-lock that sometimes occurs on a window creation, when used with a HTTP server running in a separate thread.
# 1.0.1
Released 17/05/2016
Fix
[Windows] PyInstaller: Icon not found #29
# 1.0
Released 12/02/2016
New
[All] Add an ability to programmatically destroy a webview windowFix
[Windows] Fullscreen modeFix
[Windows] Change setup.py to use pypiwin32 #22Fix
[Windows] Relative import of win32_gen fixed on Python 3 #20. Thanks to @yoavram for the contributionFix
[Windows] FileNotFound exception on Windows 2003. Thanks to @jicho for the contributionFix
[OSX] Non-SSL URLs are allowed by default on El Capitan. Thanks to @cr0hn for the contribution
# 0.9
Released 27/11/2015
New
[All] Right click context menu is disabled #12New
[All] Window minimum size constraints #13New
[All] Save file dialogNew
[All] Addeddirectory
andsave_filename
parameters tocreate_file_dialog
New
[All] An option to set a default directory in a file dialogNew
[GTK] Introduced USE_GTK environment variable. When set, GTK is preferred over QT.Fix
[Windows] Webview scrollbar sizing with a non-resizable windowFix
[Windows] Add support for application icon #9Fix
[Windows] Disable logging spam for comtypes
# 0.8.4
Fix
[Windows] Invisible scrollbarsFix
[Windows] Fullscreen mode
# 0.8.3
Fixed
#10 Underlying browser does not resize with window under windows
# 0.8.2
Released on 08/10/2015
Fixed
Pressing close window button terminates the whole program on OSX
# 0.8
Released on 06/10/2015
New
Support for native open file / open folder dialogsFixed
#6 FEATURE_BROWSER_EMULATION not in winreg.HKEY_CURRENT_USER. Thanks to @frip for the fix.
# 0.7
Released on 08/04/2015
Fixed
Python 3 compatibility in Win32 module (thanks @Firnagzen) #3Fixed
Floating values for window dimensions causing issues on Windows XP (thanks @Firnagzen) #4Fixed
Correct IE version registry key on Windows XP (thanks @Firnagzen) #5
# 0.6
Released on 11/02/2015
Fixed
A problem preventing from creating a window on Windows
# 0.5
Released on 30/11/2014
New
Windows supportNew
GTK3 supportNew
pip installationNew
Fullscreen mode
# 0.1
Released on 20/11/2014
- First release
- Linux and OSX support