# 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 own- window.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 to
- Improvement[QT] Pyside support via PyQT wrapper. Thanks @tshemeng.
- Fix[Cocoa] Make Ctrl-C (SIGINT) work on Cocoa when running from the command line
- Fix[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 new- webview.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. #628
- Improvement[All] Selected web renderer printed in Python console in debug mode.
- Improvement[All] JS API serialization logic. Thanks @peter23
- Improvement[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 @simonrob
- Fix[EdgeChromium] Change webview component to transparent. Thanks @ODtian
- Fix[CEF] Fix exception when destroying window
- Fix[Cocoa] cmd+w bypasses exit confirmation dialogue. #698. Thanks @fizzadar
- Fix[Cocoa] Fix window coordinate calculation logic when moving a window.
- Fix[MSHTML] Fix drag_region
- Fix[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 and- get_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 of- evaluate_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 specific- pyobjcpackages 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 handling
- Fix[EdgeHTML] file:// url handling
# 3.3.4
Released 18/09/2020
- Fix[EdgeHTML] Fix content not displaying with local URLs or local HTTP server
- Fix[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 in- loadedevent #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 PyGObject
- Fix[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 arguments
- Improvement[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 via- webview.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 via- webview.platforms.cef.settings. See example for details.
- Fix[All] Built-in HTTP server is properly restarted when using- window.load_url
- Fix[Cocoa] New window position is correctly calculated when using- window.move
- Fix[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] New- window.pywebviewreadyDOM event that is thrown when- window.pywebviewis available.
- New[All] Links opened via- window.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 to- window.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 access- window.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 via- gui=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. #352
- Fix[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 mode
- Fix[Windows] Fix Windows version detection with frozen executables.
- Fix[Windows] Open folder dialog now supports- directoryargument.
- 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. #272
- New[All] Built-in HTTP server. #260
- New[All] Autogenerated CSRF token exposed as- window.pywebview.token. #316
- New[All]- get_elementsfunction to retrieve DOM nodes. #292
- New[All] New events system that lets you to subscribe to events.- loadedand- shownevents are implemented. #201
- New[Windows] EdgeHTML support. Thanks @heavenvolkoff. #243
- Fix[Windows] Fullscreen mode. #338
- Fix[GTK] Better Javascript support for recent version of WebKit2
- Fix[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 creation- webview.set_window_size(width, height). Thanks @aprowe #274
- New[Windows] Chrome Embedded Framework (CEF) support #15
- Improvement[All] pywebview does not interfer with Python's logger configuration #295
- Fix[All] Empty DOM issues when window is created without a URL #285
- Improvement[macOS] Web renderer upgraded to WKWebView
- Improvement[macOS] Add support for Mojave dark mode
- Fix[macOS] Problem with handling paths containing spaces #283
- Fix[QT] Better support for QTWebKit and QTWebChannel #304
- Improvement[QT] Remove support for QT4
- Fix[GTK] Thrown exception not Python 2 compatible #277
# 2.2.1
Released 24/10/2018
- FixDependency installation
- NewReintroduce [qt] extra require switch
# 2.2
Released 23/10/2018
- NewBrand new documentation at https://pywebview.flowrl.com
- ImprovementSimplify installation. Now pywebview can be installed by- pip install pywebview. Dependencies will be resolved and installed automatically
- Improvement[GTK] Update to WebKit2
# 2.1
Released 16/09/2018
- New[All] Introduce- PYWEBVIEW_GUIenvironment variable and- webview.config.guiproperty. Acceptable values are are- qt,- gtkand- win32.- USE_QTand- USE_WIN32is deprecated.
- Fix[Cocoa] Closing main window does not result in program termination
- Fix[All] New main window re-creation after closing. #229
- Fix[QT] Debug mode #233
- Fix[Cocoa/Windows] Preserve JS API on page reload
- Fix[Windows]- toggle_fullscreen()function #232. Thanks @lt94
- Fix[Windows]- load_css()function. Thanks @wormius.
# 2.0.3
Released 16/05/2018
- Fix[QT] Fix a deadlock preventing QT implementation from starting
- Fix[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 support
- New[All] Ability to call Python code from Javascript via- window.pywebview.api
- New[All] Debug mode. Web inspector for Cocoa/GTK/QT and basic debug information for WinForms.
- New[All] File filter support in- create_file_dialog
- New[All]- target='_blank'links are now opened in an external browser
- New[All] Change window title via a- set_titlefunction #159
- New[All]- load_cssfunction
- New[All] Support for relative local URLs in- create_window/- load_html. Linked local resources are resolved as well. #186
- New[All]- todosexample app demonstrating js api and relative local URLs.
- New[All] Text select in the webview window is disabled by default. Added- text_selectargument to- create_windowfunction.
- New[QT] OpenBSD 6.x support #213. Thanks @hucste.
- Fix[All]- base_uriparameter of- load_htmldefaults to the directory of the entry script
- Fix[All] Consistent return types with- evaluate_jsacross different platforms #175
- Fix[All] Various concurrency issues and deadlocks
- Fix[Winforms] Hide- Message from webpagewhen using- alertJavascript function #150
- Fix[Winforms] Support for high DPI #179
- Fix[QT] Support for QT 5.10 #171. Thanks @adbenitez
- Fix[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 using- evaluate_jsfunction
- Fix[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 used
- Fix[Winforms] Add support for Del and Ctrl+A keys in input elements.
- New[QT] QT5 is now prefererred over QT4
- Fix[QT] Fix return parameters of- create_file_dialogto have the same format as on other platforms
- Fix[GTK] Better threading model. Thanks to @jorants #121
# 1.7
Released 08/06/2017
- New[All] Add a basic test suite and continuous integration. #88
- New[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. #90
- New[Cocoa] Disable backspace navigation. Thanks to @shivaprsdv. #102
- New[Cocoa] Implementation of window.print() and window.confirm method. Thanks to @shivaprsdv. #97
- Fix[Cocoa] Fix non-existing localization string in save file dialog
- New[Winforms] Disable all the shortcut keys of web navigation
- Fix[Winforms] Fix load_html failing sometimes due thread violation
- Fix[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 #31
- New[All] webview.config can be used using the dot notation (ie. webview.config.use_win32 = True)
- New[Winforms] Disable context menu
- Fix[Winforms] Application icon is now visible in the application window when frozen with PyInstaller #91
- Fix[Mac] load_html() is invoked as soon as the webview is ready #93
- Fix[QT] get_current_url() not working due a typo. Thanks @maroc81. #85
- Fix[GTK] Better exception handling when GTK is not found #94
- Fix[GTK] destroy_window() #95
# 1.5
Released 09/02/2017
- New[All] toggle_fullscreen function #52
- New[All] get_current_url function #76
- New[Winforms] Javascript errors are now suppressed
- Fix[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 @josePhoenix
- New[All] Localization support. Refer to- examples/localization.pyfor an example use
- New[Mac] QT5 support
- Fix[Windows] File dialogs are now attached to the main window
- Fix[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 Forms
- Fix[Windows] Removed unnecessary pywin32 dependencies from Windows Forms #60
- Fix[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] Introduced- load_htmlfunction that allows dynamic loading of HTML code, instead of a URL. Implemented for all platforms except Win32 (use Windows Forms). Thanks to @ysobolev #39
- New[All] Added an example of a Flask-based application skeleton. The example can be found in- examples/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 user
- Fix[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 @cuibonobo
- New[Linux] GTK is made as default and pypi dependency added. USE_GTK environment variable is also deprecated. To use QT, set- webview.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 window
- Fix[Windows] Fullscreen mode
- Fix[Windows] Change setup.py to use pypiwin32 #22
- Fix[Windows] Relative import of win32_gen fixed on Python 3 #20. Thanks to @yoavram for the contribution
- Fix[Windows] FileNotFound exception on Windows 2003. Thanks to @jicho for the contribution
- Fix[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 #12
- New[All] Window minimum size constraints #13
- New[All] Save file dialog
- New[All] Added- directoryand- save_filenameparameters to- create_file_dialog
- New[All] An option to set a default directory in a file dialog
- New[GTK] Introduced USE_GTK environment variable. When set, GTK is preferred over QT.
- Fix[Windows] Webview scrollbar sizing with a non-resizable window
- Fix[Windows] Add support for application icon #9
- Fix[Windows] Disable logging spam for comtypes
# 0.8.4
- Fix[Windows] Invisible scrollbars
- Fix[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 dialogs
- Fixed#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) #3
- FixedFloating values for window dimensions causing issues on Windows XP (thanks @Firnagzen) #4
- FixedCorrect 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 support
- NewGTK3 support
- Newpip installation
- NewFullscreen mode
# 0.1
Released on 20/11/2014
- First release
- Linux and OSX support
