# Changelog
# 3.7
Released 04/11/2022
# ⚡ Features
- [All] New
window.movedevent. 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_asynccrash 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 founderror 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,resizedevents. Thanks @BillBridge for sponsorship.New[All]evaluate_jsasync support.evaluate_js(code, callback)can evaluate promises via an optional callback parameter.New[All] Events moved to its ownwindow.eventsnamespace (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.screensproperty.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_jsmore 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 specificpyobjcpackages 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 inloadedevent #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.portImprovement[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_urlFix[Cocoa] New window position is correctly calculated when usingwindow.moveFix[EdgeHTML]window.alertfix
# 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.pywebviewreadyDOM event that is thrown whenwindow.pywebviewis available.New[All] Links opened viawindow.openare 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_sizeis 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.pywebviewobject 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_elementsfailing.Fix[MSHTML]console.lognot writing to Python console in debug mode.Fix[MSHTML] Forcing MSHTML viagui=mshtmlis 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 supportsdirectoryargument.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_elementsfunction to retrieve DOM nodes. #292New[All] New events system that lets you to subscribe to events.loadedandshownevents 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
FixDependency installationNewReintroduce [qt] extra require switch
# 2.2
Released 23/10/2018
NewBrand new documentation at https://pywebview.flowrl.comImprovementSimplify 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_GUIenvironment variable andwebview.config.guiproperty. Acceptable values are areqt,gtkandwin32.USE_QTandUSE_WIN32is 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.apiNew[All] Debug mode. Web inspector for Cocoa/GTK/QT and basic debug information for WinForms.New[All] File filter support increate_file_dialogNew[All]target='_blank'links are now opened in an external browserNew[All] Change window title via aset_titlefunction #159New[All]load_cssfunctionNew[All] Support for relative local URLs increate_window/load_html. Linked local resources are resolved as well. #186New[All]todosexample app demonstrating js api and relative local URLs.New[All] Text select in the webview window is disabled by default. Addedtext_selectargument tocreate_windowfunction.New[QT] OpenBSD 6.x support #213. Thanks @hucste.Fix[All]base_uriparameter ofload_htmldefaults to the directory of the entry scriptFix[All] Consistent return types withevaluate_jsacross different platforms #175Fix[All] Various concurrency issues and deadlocksFix[Winforms] HideMessage from webpagewhen usingalertJavascript 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_jsfunctionFix[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_dialogto 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.pyfor 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_htmlfunction 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_appNew[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"] = TrueFix[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] Addeddirectoryandsave_filenameparameters tocreate_file_dialogNew[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
FixedPressing close window button terminates the whole program on OSX
# 0.8
Released on 06/10/2015
NewSupport 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
FixedPython 3 compatibility in Win32 module (thanks @Firnagzen) #3FixedFloating values for window dimensions causing issues on Windows XP (thanks @Firnagzen) #4FixedCorrect IE version registry key on Windows XP (thanks @Firnagzen) #5
# 0.6
Released on 11/02/2015
FixedA problem preventing from creating a window on Windows
# 0.5
Released on 30/11/2014
NewWindows supportNewGTK3 supportNewpip installationNewFullscreen mode
# 0.1
Released on 20/11/2014
- First release
- Linux and OSX support