NewYour coding agent can read the release notes before it upgrades.Set up the MCP server →
PyPI · #3499 most downloaded on PyPI
Build GUI for your Python program with JavaScript, HTML, and CSS
Last release 5 months ago
15 Apr 2026
Ships fairly regularly
a new release about every 2 months
Nearly every release is documented
notes for 59 of the last 60 stable releases
Nothing withdrawn
no release was ever pulled
12 years old
78 releases · first in 2014
Winforms Fix screen scale reporting in Screen object.
Winforms Fix screen scale reporting in Screen object.Released 15/04/2026
Winforms Fix screen scale reporting in Screen object.All Display scaling support for Screen class. Screen objects now report proper DPI-aware dimensions. New properties include scale , dpi , physical_x ,
All Display scaling support for Screen class. Screen objects now report proper DPI-aware dimensions. New properties include scale, dpi, physical_x, physical_y, physical_width and physical_height.All New multiprocess example demonstrating multi-process architecture with a non-blocking architecture.All Support for state index notation (eg. window.state["attribute"]) for easier state access.All Bump minimum Python version to 3.8.All Support for static methods for JS API exposure. Thanks @ivanovmatveywork. #1770Cocoa Improved file picker to use all MIME types from accept attribute in NSOpenPanel. Wildcard types (image/, video/) are now properly mapped to their supertype UTIs. Thanks @JMHSV. #1781 #1780Cocoa Icon support. Thanks @sevilla. #1757Winforms Icon support. Thanks @sevilla. #1755Winforms Improved theme detection using AppsUseLightTheme registry key instead of SystemUsesLightTheme. Thanks @Mnaisuka. #1760Winforms Fallback to coreclr when netfx runtime is not found. Thanks @HZBHZB1234. #1791EdgeChromium Update WebView2 to 1.0.3856.49QT Support for REMOTE_DEBUGGING_PORT via webview.settings['REMOTE_DEBUGGING_PORT']. Thanks @cybergrind. #1740All Fix file pattern parsing in file dialogs.All Fix window.expose race condition.All Fix 'WindowsPath' object has no attribute '_hash'. Thanks @jonathanbluhm. #1762 #1776Cocoa Fix use-after-free crash on macOS ARM64 by disabling releasedWhenClosed. NSWindow now properly manages retain count. Thanks @smparkes. #1799Cocoa Fix single app delegate - use a single shared AppDelegate instead of one per window. Thanks @smparkes. #1801Cocoa Clear delegates before removing from instances dict in windowWillClose_ to prevent callbacks after window closure. Thanks @smparkes. #1802Cocoa Fix input file accept parameter handling. #1604Cocoa Prevent crash in windowDidBecomeKey_ when window is closed.Cocoa Release retained instances on window close to prevent memory leaks in macOS Tahoe. Thanks @AlecHaring. #1743Cocoa Fix macOS drag handler. Thanks @AlecHaring. #1742Winforms Fix window position scaling for proper multi-monitor support.Winforms Fix logical pixels calculation for DPI-aware rendering.Winforms Fix Ctrl+C signal handling.QT Fix resize problem.QT Fix mousemove exception and other minor issues.GTK Fix menu rendering.GTK Fix response_received events when there's no request_sent event. Thanks @jmuchemb. #1784GTK Fix background color not being applied correctly. #1811EdgeChromium Better exception handling in clear_user_data.One column per quarter.
All New `webview.settings['DRAG_REGION_DIRECT_TARGET_ONLY'] setting to control whether drag region selector matches only direct targets or any element
All New `webview.settings['DRAG_REGION_DIRECT_TARGET_ONLY'] setting to control whether drag region selector matches only direct targets or any element in the event path. Default is False. Thanks @chrissantamariaEdgeChromium Ability to bundle WebView2 runtime with the application via webview.settings['WEBVIEW2_RUNTIME_PATH']. Thanks @leovukCocoa Support for application menu. Thanks @camdarley. #1725All Handle new elements in draggable and drag region client logic. Thanks @chrissantamariaAll Improve detection of cyclic structures during serialization from JS to Python. #1708QT Properly handle SIGINT to quit program allowing to close the window with Ctrl+C in terminal. Thanks @chrissantamaria.Cocoa Add support for 'New Folder' button in FOLDER_DIALOG on macOS. Thanks @camdarley. #1710Dev Automatic linting and formatting on pre-commit hook installation.All Fix state change event not being fired on state change from JS side #1698All Fix state values with special characters not being set properly.All Fix special characters handling in HTML attributes and styles in Element object.Android Fix window.event.closed not being firedAndroid Improve cleanup on application exitCocoa Support for partial functions in menu actions #1707Cocoa Add missing pyobjc-framework-UniformTypeIdentifiers dependency. Thanks @Josef-Haupt.Cocoa module 'objc._objc' has no attribute 'file' after package #1717GTK Fix data not being remove on application quit in private mode #1713Winforms AttributeError: 'Screen' object has no attribute 'X #1704MSHTML Fix MSTML compatibility #1701All BREAKING: webview.SAVE_DIALOG , webview.OPEN_DIALOG and webview.FOLDER_DIALOG constants are deprecated in favor of webview.FileDialog enum with va…
All Shared state management via window.state object. State object is automatically updated between Javascript and Python.All New request_sent and response_received events. The events are fired when a HTTP request is sent and a response is received. Request headers can be modified before sending.All Window specific menu that can be created via webview.create_window(menu=webview.menu.Menu).All Add origin coordinates (x, y) to webview.screen.Screen objectAll JS API nested classes can now be omitted from serialization by setting _serializable = False class attribute.Cocoa New webview.settings['SHOW_DEFAULT_MENUS'] parameter to omit default menus. True by default. Thanks @mikeylemmon.Android New Android Kivyless implementation for improved startup time and smaller package size. Thanks @kengoon.Android Fullscreen mode support #1598. Thanks @michelle-avery.All BREAKING: webview.SAVE_DIALOG, webview.OPEN_DIALOG and webview.FOLDER_DIALOG constants are deprecated in favor of webview.FileDialog enum with values SAVE, LOAD and FOLDER.All BREAKING: Deprecated functions window.get_element and window.get_elements are removed. Use window.dom.get_element and window.dom.get_elements instead.All BREAKING: webview.DRAG_REGION_SELECTOR is deprecated. Use webview.settings['DRAG_REGION_SELECTOR'] instead.All Modify JS API to use callback instead of setInterval #1607. Thanks @qaqFei.All When exposing a Window object to JS API, dom, events and state objects are omitted.All Logging level set by PYWEBVIEW_LOG environment level takes precedence over debug parameter.Android New test suite for Android platform.Cocoa Add handler for Javascript prompt/input #1567. Thanks @maddyaby.Winforms Dark mode support with automatic theme changing #1595. Thanks @godcop.All Better duplicate object detection in JS API serialization.All Loading URLs with a hash served by local HTTP server. #1574All Multiwindow with local-url setups sets wrong server root (BottleServer). Thanks @Sopze92.All SSL support for HTTP apps. Thanks @Gu-f.All Fix duplicate logging when webview is imported multiple times.Android Fix JSON-encoded values returned by window.evaluate_js.Android Fix cookie support.Cocoa Don't terminate app if windows shouldn't close #1580. Thanks @mikeylemmon.Cocoa File filter set via <input type="file"> tag.GTK Fix Javascript exception handling #1648.QT Fix user agent string.QT Fix QWebPage enums. #1639EdgeChromium Fix easy dragEdgeChromium Remote Debugging Fails When Both storage_path and REMOTE_DEBUGGING_PORT are setEdgeChromium Fix window transparency. Transparent windows can now react to mouse events.Winforms Fix window placing on a screenReleased 08/08/2025
All Shared state management via window.state object. State object is automatically updated between Javascript and Python.All New request_sent and response_received events. The events are fired when a HTTP request is sent and a response is received. Request headers can be modified before sending.All New initialized event that is fired when GUI library / Web is chosen and before the window is created. The first argument is a chosen renderer. If event handler returns False, the window creation will be cancelled and GUI loop will not be started.All Window specific menu that can be created via webview.create_window(menu=webview.menu.Menu).All Add origin coordinates (x, y) to webview.screen.Screen objectAll JS API nested classes can now be omitted from serialization by setting _serializable = False class attribute.Cocoa New webview.settings['SHOW_DEFAULT_MENUS'] parameter to omit default menus. True by default. Thanks @mikeylemmon.Android New Android Kivyless implementation for improved startup time and smaller package size. Thanks @kengoon.Android Fullscreen mode support #1598. Thanks @michelle-avery.All BREAKING: webview.SAVE_DIALOG, webview.OPEN_DIALOG and webview.FOLDER_DIALOG constants are deprecated in favor of webview.FileDialog enum with values SAVE, LOAD and FOLDER.All BREAKING: Deprecated functions window.get_element and window.get_elements are removed. Use window.dom.get_element and window.dom.get_elements instead.All BREAKING: webview.DRAG_REGION_SELECTOR is deprecated. Use webview.settings['DRAG_REGION_SELECTOR'] instead.All Modify JS API to use callback instead of setInterval #1607. Thanks @qaqFei.All When exposing a Window object to JS API, dom, events and state objects are omitted.All Logging level set by PYWEBVIEW_LOG environment level takes precedence over debug parameter.Android New test suite for Android platform.Cocoa Add handler for Javascript prompt/input #1567. Thanks @maddyaby.Winforms Dark mode support with automatic theme changing #1595. Thanks @godcop.All Better duplicate object detection in JS API serialization.All Loading URLs with a hash served by local HTTP server. #1574All Multiwindow with local-url setups sets wrong server root (BottleServer). Thanks @Sopze92.All SSL support for HTTP apps. Thanks @Gu-f.All Fix duplicate logging when webview is imported multiple times.Android Fix JSON-encoded values returned by window.evaluate_js.Android Fix cookie support.Cocoa Don't terminate app if windows shouldn't close #1580. Thanks @mikeylemmon.Cocoa File filter set via <input type="file"> tag.GTK Fix Javascript exception handling #1648.QT Fix user agent string.QT Fix QWebPage enums. #1639EdgeChromium Fix easy dragEdgeChromium Remote Debugging Fails When Both storage_path and REMOTE_DEBUGGING_PORT are setEdgeChromium Fix window transparency. Transparent windows can now react to mouse events.Winforms Fix window placing on a screenAll A new function for executing Javascript as is window.run_js(code) without returning a result
All A new function for executing Javascript as is window.run_js(code) without returning a resultAll New before_load event that is fired right before pywebview code is injected into the page. The event roughly corresponds to DOMContentLoaded DOM event.All Screen object now have origin coordinates as screen.x and screen.yEdgeChromium Add remote debugging support via webview.settings['REMOTE_DEBUGGING_PORT']. Thanks @LugribosskAll Implement a len method for Event objects to get a number of event subscribers.All The order of firing of loading events loading, before_load and loaded is standardized across the platforms.All Window objects can now be exposed via JS APIAll Make webview.settings key immutable.GTK 'undefined'and 'null' string values are no longer translated to None during JS API serialization.Cocoa Add support for the download attribute on links. Thanks @maddyaby.Cocoa Ignore ssl errors for local HTTP server by defaultCocoa Native Color Picker on MacOS is drawn in the wrong place #1568. Thanks @maddyabyCocoa Improved support for py2app #1565EdgeChromium Update webview2 binaries to 1.0.2957.106HTTP Fix loading local urls with a hash served by local HTTP server.EdgeChromium Delete browser data in private mode on program exitCocoa Fix typo in abortModal call. Thanks @simonrobCocoa Fix missing menuCocoa Fix window close termination when pressing Cmd+Q. Thanks @mikeylemmon.Cocoa Fix missing get_active_window. Thanks @sardinationWindows Fix window placing in certain monitor layouts when assigning to a specific monitor.Windows Fix a short blank when closing the window. Thanks @godcopFix Pyinstaller compatibility for non-Windows platforms #1508
Released 22/10/2024
🐞 Bug fixes Fix Pyinstaller compatibility
All Native window object for each platform is now exposed window.native . You can use it for example for applying custom appearance to a window. Addit
All Native window object for each platform is now exposed window.native. You can use it for example for applying custom appearance to a window. Additionally WebView is exposed via window.native.webviewAll New window.events.before_show event.All New DomEventHandler debounce parameter. It can be used it for solving performance issues with dragover and mouseover events.GTK/QT application icon support for GTK and QT platforms webview.start(icon=<path>)All Storage path is now verified for write permissions before application start. An exception is thrown, if path is not writable.All Refined logic at which point of the startup procedure shown event is fired.Cocoa Better handling of stopping event loop in headless environments.Windows Fallback to WinForms when QT is forced and not availableWindows Remove white border in a fullscreen window.Windows Support multiple selection in open folder dialog.All Support for Unicode filenames in drag and drop. Thanks @hustshenlCocoa Fix open file dialog file type selector and all files filterCocoa Fix folder drag and drop. Thanks @pythonsGTK Fix multiple file drag and drop on certain Linux distributions. Thanks @coffeejunkQT QT6 compatilibityQT Release of profile requested but WebEnginePage still not deleted with multiple windowsWindows Graceful handling for shcore.dll not being present on Windows 7. Thanks @rafael-vasconcellos.Windows Return result of open folder dialog is fixed to tuple.Edge Chromium Current url not being updated after a navigation event. Thanks @hustshenlAll Replace print with logging in JS API exception handling.
All Replace print with logging in JS API exception handling.All Replace ssl.wrap_socket() with SSLContext().wrap_socket(). Thanks @lanzzWinForms Add a modern Vista open folder dialog. Thanks @v_yonghliaoWinforms Fallback to Winforms when QT is forced, but not available.EdgeChromium Replace window.alert with a message box implementation.MSHTML Convert JS API code to ES5 to be compatible with MSHTML.All Add missing return in DOM.body property. Thanks @lanzz.All Use json.dumps to serialise the html template in create_element. Thanks @lanzzAll Fix ever-growing main menu bug. Thanks @lanzzAll Change on_closing event handlers to be executed synchronously in order to prevent a deadlock when using thread join. #1439All Fix TypeError: unhashable type with certain unhashable object types exposed via JS API. #1442Cocoa Fix nil pointer dereference during file download. Thanks @realityone.EdgeChromium Support multiple pywebviews at the same time. Thanks @huan1936.QT QT6 compatibility.QT Fix devtools in PySide6. Thanks @TransparentLCQT Fix user agent.QT Fix segfault on window close.All Clear all the cookies (including HttpOnly) with window.clear_cookies() . Sponsored by TBS
All Clear all the cookies (including HttpOnly) with window.clear_cookies(). Sponsored by TBSAll pywebview event handler can now have an optional window parameter that holds an instance of the Window object that triggered the event.Windows Add window shadow with webview.create_window(..., shadow=True). Thanks @yllhwaCocoa Fix showing windowQT Fix fetching cookies in private modeQT Fix blank screen in Pop! OS. Thanks @ysfchn.GTK Fix frameless windows having a hard-coded minimum size. Thanks @coffeejunkAll Prevent infinite recursion in nested JS API #1327
All Prevent infinite recursion in nested JS API #1327CEF Crash due incorrect settings #1330QT WebEnginePage not deleted after window is closed #1328QT Blank screen on certain Linux systems #1325Released 07/03/2024
All Prevent infinite recursion in nested JS API #1327CEF Crash due incorrect settings #1330QT WebEnginePage not deleted after window is closed #1328QT Blank screen on certain Linux systems #1325### 🐞 Bug fixes - All Python 3.7 compatibility
All Python 3.7 compatibilityQT window position is returned in coordinates excluding the window frame to be in line with provided coordinates.
QT window position is returned in coordinates excluding the window frame to be in line with provided coordinates.EdgeChromium CoreWebView2Settings exception in debug mode. #1323QT Crashing when closing additional windows #525QT DevTools failing to focus on openAndroid support. _pywebview_ can now be used on Android devices with help of buildozer in producing APK. #377
webview.settings. You can now override default behaviour of pywebview by modifying this dictionary. Currently configurable settings include.webview.settings = {
'ALLOW_DOWNLOADS': False, # Allow file downloads
'ALLOW_FILE_URLS': True, # Allow access to file:// urls
'OPEN_EXTERNAL_LINKS_IN_BROWSER': True, # Open target=_blank links in an external browser
'OPEN_DEVTOOLS_IN_DEBUG': True, # Automatically open devtools when `start(debug=True)`.
}
webview.settings['ALLOW_DOWNLOADS'] = True. Disabled by default.event['domTransfer']['files'][0]['pywebviewFullPath'] value in the drop event caught on the Python side. To subscribe to the event you use window.dom.document.events.drop += on_drop.window.maximize() - maximize window.All A more powerful JS data serializer capable of handling different data types and detecting circular references #1217All Nested JS API support. See examples/js_api.py for details. Thanks @AlecHaringAll BREAKING: window.get_elements returns a list of instances of a new Element object.All BREAKING: evaluate_js throws a webview.errors.JavascriptException if executed codes raises an errorWindows WebView2 control updated to 1.0.2045.28Windows Add SSL support for local HTTP server.GTK Update deprecated codeCocoa Suppress secure coding is not enabled for restorable state warning. Thanks @awesomo4000EdgeChromium Background color not available in webview2. Thanks @VanthysEdgeChromium Multiple focus events on window show. Thanks @yllhwaGTK Fallback for Webkit4.0 if 4.1 not found. Thanks @starnight.QT Fix user agent string. #1256 Thanks @TransparentLC.QT Solve the blank main window issue on RHEL9. Thanks @justincui #1266QT Submenu actions firing incorrectly #1318Nothing published for this version
GTK Fallback for WebKit 4.0 if 4.1 not found.
GTK Fallback for WebKit 4.0 if 4.1 not found.Released 31/10/2023
GTK Fallback for Webkit4.0 if 4.1 not found.Cocoa Window not retaining focus on keystrokes. #1187
Cocoa Window not retaining focus on keystrokes. #1187Cocoa App crashing when closing fullscreen window. #1236Cocoa Video keeps playing after closing window. #1235Cocoa Uploaded file is empty if filename contains a space. #1231Cocoa Return value of confirmation dialog created by window.confirm. #976Windows Fullscreen application disappearing after disconnecting extended display. #1229All Don't start http server for file:// urls. Thanks @glorpenGTK Bump WebKit2 to 4.1. Thanks @starnightWindows Disable swipe navigation #1230Windows Window is changed to fullscreen on the current monitor in a multi-monitor setup.### 🐞 Bug fixes - [QT] Fix QT implementation
[Winforms] Fix easy_drag from being always enabled.
easy_drag from being always enabled.Released 01/09/2023
Winforms Fix easy_drag from being always enabled.[Cocoa] Add missing maximized implementation
Released 30/08/2023
Cocoa Add missing maximized implementation[All] webview.create_window(maximized=False) Create a window in a maximized state. Thanks @vsajip
webview.create_window(maximized=False) Create a window in a maximized state. Thanks @vsajipwebview.create_window(screen=screen_instance) Create a window on a specific monitor, where screen is a screen returned by window.screens. Thanks @louisnw01window.title.webview.screens is returned before webview.start #1193webview.start() call #1063. Thanks @PercentBoat4164[All] Fix 'NoneType' object has no attribute 'start_server'. #1159
Released 25/06/2023
All Fix 'NoneType' object has no attribute 'start_server'. #1159### 🐞 Bug fixes - [All] Fix installation.
[All] webview.create_window(focus=False) to create a non-focusable window. Thanks @mi4code #1030.
webview.create_window(focus=False) to create a non-focusable window. Thanks @mi4code #1030.pyobjc-framework-security.Released 22/06/2023
All webview.create_window(focus=False) to create a non-focusable window. Thanks @mi4code #1030.All Modernization of project infrastructure + typing. Thanks @demberto.Winforms Top level menu item support. Thanks @zhengxiaoyao0716.Winforms Disable touchpad elastic overscroll. Thanks @firai.Winforms Unable to load DLL 'WebView2Loader.dll': The specified module could not be found. Thanks @kawana77b #1078Cocoa Fix missing pip dependency pyobjc-framework-security.[Cocoa/QT/GTK] SSL support for built-in http server webview.start(ssl=True). Thanks @keredson
Released 02/05/2023
webview.start(ssl=True). Thanks @keredson[All] HTTP server is now multithreaded. This should prevent stalled requests. #1025
webview.start(storage_path) can now be set in private mode. This can be useful if you do not have write access to EdgeChromium default data directory and get 0x80070005 (E_ACCESSDENIED) error. #1026AttributeError: module 'webview.http' has no attribute 'running' exception occurring when multiple windows are opened. Thanks @YidaozhanYa. #1024create_window(hidden=True) makes the show() command not work #1050[All] Suppress HTTP server logging if not in debug mode.
Released 19/01/2023
All Suppress HTTP server logging if not in debug mode.All Fix HTTP server starting twice with a single window. Thanks @robb-brown.[All] Window events are moved into window.events namespace. window.loaded, window.shown etc no longer work.
window.events namespace. window.loaded, window.shown etc no longer work.examples/menu.py for usage example. Thanks @sardinationwebview.start(private_mode=True, storage_path=None) Private mode and persistant storage support in a non-private mode. Private mode is enabled by default.webview.create_window(zoomable=False) Enable / disable zooming on webpage. Disabled by default.webview.create_window(draggable=False) Enable / disable dragging of IMG and A elements. Disabled by default.webview.create_confirmation_dialog(title, content) creates a confirmation (Ok, Cancel) dialog. Thanks @sardination.window.get_cookies() retrieve all the cookies (including HttpOnly) for the current webpage.webview.create_window(vibancy=False) Window vibrancy suppport. macOS only. Thanks @CahierX.evaluate_js performance.[All] Fix missing libraries from the previous release
Released 16/11/2022
[Edge Chromium] Better platform detection
Released 14/11/2022
Edge Chromium Better platform detectionEdge Chromium ARM64 support[All] New window.moved event. Thanks @irtimir
window.moved event. Thanks @irtimirThe 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.evaluate_js_async crash and program termination prevention. Thanks @detritophage.evaluate_js, so that further script do not get stuck. Thanks @irtimirmaster uid not found error on startup.[Winforms] Support for Edge Chromium v100. Thanks @greper.
Released 05/04/2022
Winforms Support for Edge Chromium v100. Thanks @greper.## 🐞 Bug fixes - [Cocoa] Fix closing window
- Fix [CEF] Exception on start
Fix [CEF] Exception on startNew [All] MSHTML and EdgeHTML are deprecated. No further development will be done on these renderers.
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 own window.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.New [All] Get information about available screens via new webview.screens property.
New [All] Get information about available screens via new webview.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.alertNew [Windows] WebView2 Chromium support. Thanks sbbosco. #521.
New [Windows] WebView2 Chromium support. Thanks sbbosco. #521.Fix [All] Exception with HTML checkboxes and get_elements. #622.Fix [All] pystray compatibility. Thanks AlexCovizzi. #486.Fix [All] expose methods instead of all callables for JS API objects. Thanks jgentil. #629.Fix [EdgeHTML] Make returning results of evaluate_js more robust. Thanks sbbosco.Fix [QT] KDE_FULL_SESSION not being used. Thanks Maltzur.Fix [Cocoa] Unicode filenames for input files.Improvement [Cocoa] Only install the specific pyobjc packages required. Thanks Fizzadar.Improvement [Cocoa] Add support for default document navigation and window handling shortcut keys . Thanks ikhmyz and FizzadarFix [EdgeHTML] Server middleware handling
Fix [EdgeHTML] Server middleware handlingFix [EdgeHTML] file:// url handlingReleased 26/09/2020
Fix EdgeHTML Server middleware handlingFix EdgeHTML file:// url handling[EdgeHTML] Fix content not displaying with local URLs or local HTTP server
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 awesomo4000Fix [Cocoa] Save dialog not working #578.
Fix [All] Load html triggers error - resolve_url() missing 1 required positional argument: 'should_serve' #562.
Fix Unable to start on Windows.
Fix Unable to start on Windows.
Released 01/07/2020
Fix WinForms TypeError : 'str' value cannot be converted to System.Drawing.Color #560.New [All] Brand-new WSGI based internal HTTP server. Thanks @astronouth7303.
New [All] Brand-new WSGI based internal HTTP server. Thanks @astronouth7303.New [All] Transparent windows. 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.New [All] Custom user-agent support. Thanks @tognee.Fix [All] Python function not triggered using JS #458.Fix [All] window methods do not work in loaded event #528.Fix [Cocoa] Caption bar and window control buttons are now hidden In frameless mode.Fix [CEF] CEF window resize hang #484.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 modeNew [All] Window x, y, width and height properties to retrieve coordinates and dimensions of the window. Thanks @Fizzadar
Released 24/01/2020
New [All] Window x, y, width and height properties to retrieve coordinates and dimensions of the window. Thanks @FizzadarNew [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 via webview.http_server.portImprovement [QT] Microphone/webcam are enabled by default. Thanks @dtcooperImprovement [QT] Default debugger port is changed to 8228. Thanks @melvinkcxImprovement [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_urlFix [Cocoa] New window position is correctly calculated when using window.moveFix [EdgeHTML] window.alert fixImprovement [All] window.set_window_size is deprecated in favour to window.resize.
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.pywebview is available.New [All] Links opened via window.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 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 occuring when trying to access window.pywebview object right after theFix [CEF] High DPI fix resulting in a small window appearing inside the main windowFix [EdgeHTML] Unicode error when loading HTMLFix [MSHTML] get_elements failingFix [MSHTML] console.log not writing to Python console in debug modeFix [MSHTML] Forcing MSHTML via gui=mshtml is now possible. ¯\_(ツ)_/¯Fix [All] Prevent JSON like strings being converted to JSON objects when returning JS API calls. #352
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 occuring in a thread.Fix [All] Don't escape line breaks in result of js_bridge_call. Thanks @kvasserman.
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 supports directory argument.Fix [QT] Workaround for segmentation fault on closing the main window. Thanks @kvasserman.Fix [pytest] Fix for pytest warning about invalid escape sequenceNew [All] New API. The API is not compatible with older versions of _pywebview_. See https://pywebview.flowrl.com for usage details. #272
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 as window.pywebview.token. #316New [All] get_elements function to retrieve DOM nodes. #292New [All] New event system that lets you to subscribe to events. loaded and shown 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 modeNew [All] Support for frameless windows. #169
New [All] Support for frameless windows. #169Fix [Windows] Fix broken installation of v2.3 #314Released 17/02/2019
New All Support for frameless windows.Fix Windows Fix broken installation of v2.3New [All] Ability to resize window after creation webview.set_window_size(width, height). Thanks @aprowe #274
New [All] Ability to resize window after creation webview.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 #277New Reintroduce [qt] extra require switch
Fix Dependency installationNew Reintroduce [qt] extra require switchReleased 24/10/2018
Fix Dependency installationNew Reintroduce qt extra require switchNew Brand new documentation at https://pywebview.flowrl.com
New Brand new documentation at https://pywebview.flowrl.comImprovement Simplify installation. Now pywebview can be installed by pip install pywebview. Dependencies will be resolved and installed automaticallyImprovement [GTK] Update to WebKit2Released 23/10/2018
New Brand new documentation at https://pywebview.flowrl.comImprovement Simplify installation. Now pywebview can be installed by pip install pywebview. Dependencies will be resolved and installed automaticallyImprovement GTK Update to WebKit2Acceptable values are are qt, gtk and win32. USE_QT and USE_WIN32 is deprecated.
New [All] Introduce PYWEBVIEW_GUI environment variable and webview.config.gui property. Acceptable values are are qt, gtk and win32. USE_QT and USE_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.[QT] Fix a deadlock preventing QT implementation from starting [QT] QT is set to default on QT-based systems
[QT] Fix a deadlock preventing QT implementation from starting [QT] QT is set to default on QT-based systems
Released 16/05/2018
Fix QT Fix a deadlock preventing QT implementation from startingFix QT QT is set to default on QT-based systems[Windows] Yet another fix to the pip installation problem
[Windows] Fix installation through pip
Fix [QT] Deprecate QT4. Starting from this verison new features won't be tested on QT4 and support will be removed in the future.
New [All] Multi-window supportNew [All] Ability to call Python code from Javascript via window.pywebview.apiNew [All] Debug mode. Web inspector for Cocoa/GTK/QT and basic debug information for WinForms.New [All] File filter support in create_file_dialogNew [All] target='_blank' links are now opened in an external browserNew [All] Change window title via a set_title function #159New [All] load_css functionNew [All] Support for relative local URLs in create_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. Added text_select argument to create_window function.New [QT] OpenBSD 6.x support #213. Thanks @hucste.Fix [All] base_uri parameter of load_html defaults to the directory of the entry scriptFix [All] Consistent return types with evaluate_js across different platforms #175Fix [All] Various concurrency issues and deadlocksFix [Winforms] Hide Message from webpage when using alert Javascript function #150Fix [Winforms] Support for high DPI #179Fix [QT] Support for QT 5.10 #171. Thanks @adbenitezFix [QT] Deprecate QT4. Starting from this verison new features won't be tested on QT4 and support will be removed in the future.pywebview has the official logo
New [All] Add an ability to run Javascript code using evaluate_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 of create_file_dialog to have the same format as on other platformsFix [GTK] Better threading model. Thanks to @jorants #121New [All] Add a basic test suite and continuous integration. #88
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.New [All] Quit confirmation dialog
Released 29/03/2017
New [All] Quit confirmation dialogNew [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 PyInstallerFix [Mac] load_html() is invoked as soon as the webview is readyFix [QT] get_current_url() not working due a typo. Thanks @maroc81.Fix [GTK] Better exception handling when GTK is not foundFix [GTK] destroy_window()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() #95Your coding agent can read these notes before it upgrades. Set up the MCP server →