1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128 129 130 131 132 133 134 135 136 137 138 139 140 141 142 143 144 145 146 147 148 149 150 151 152 153 154 155 156 157 158 159 160 161 162 163 164 165 166 167 168 169 170 171 172 173 174 175 176 177 178 179 180 181 182 183 184 185 186 187 188 189 190 191 192 193 194 195 196 197 198 199 200 201 202 203 204 205 206 207 208 209 210 211 212 213 214 215 216 217 218 219 220 221 222 223 224 225 226 227 228 229 230 231 232 233 234 235 236 237 238 239 240 241 242 243 244 245 246 247 248 249 250 251 252 253 254 255 256 257 258 259 260 261 262 263 264 265 266 267 268 269 270 271 272 273 274 275 276 277 278 279 280 281 282 283 284 285 286 287 288 289 290 291 292 293 294 295 296 297 298 299 300 301 302 303 304 305 306 307 308 309 310 311 312 313 314 315 316 317 318 319 320 321 322 323 324 325 326 327 328 329 330 331 332 333 334 335 336 337 338 339 340 341 342 343 344 345 346 347 348 349 350 351 352 353 354 355 356 357 358 359 360 361 362 363 364 365 366 367 368 369 370 371 372 373 374 375 376 377 378 379 380 381 382 383 384 385 386 387 388 389 390 391 392 393 394 395 396 397 398 399 400 401 402 403 404 405 406 407 408 409 410 411 412 413 414 415 416 417 418 419 420 421 422 423 424 425 426 427 428 429 430 431 432 433 434 435 436 437 438 439 440 441 442 443 444 445 446 447 448 449 450 451 452 453 454 455 456 457 458 459 460 461 462 463 464 465 466 467 468 469 470 471 472 473 474 475 476 477 478 479 480 481 482 483 484 485 486 487 488 489 490 491 492 493 494 495 496 497 498 499 500 501 502 503 504 505 506 507 508 509 510 511 512 513 514 515 516 517 518 519 520 521 522 523 524 525 526 527 528 529 530 531 532 533 534 535 536 537 538 539 540 541 542 543 544 545 546 547 548 549 550 551 552 553 554 555 556 557 558 559 560 561 562 563 564 565 566 567 568 569 570 571 572 573 574 575 576 577 578 579 580 581 582 583 584 585 586 587 588 589 590 591 592 593 594 595 596 597 598 599 600 601 602 603 604 605 606 607 608 609 610 611 612 613 614 615 616 617 618 619 620 621 622 623 624 625 626 627 628 629 630 631 632 633 634 635 636 637 638 639 640 641 642 643 644 645 646 647 648 649 650 651 652 653 654 655 656 657 658 659 660 661 662 663 664 665 666 667 668 669 670 671 672 673 674 675 676 677 678 679 680 681 682 683 684 685 686 687 688 689 690 691 692 693 694 695 696 697 698 699 700 701 702 703 704 705 706 707 708 709 710 711 712 713 714 715 716 717 718 719 720 721 722 723 724 725 726 727 728 729 730 731 732 733 734 735 736 737 738 739 740 741 742 743 744 745 746 747 748 749 750 751 752 753 754 755 756 757 758 759 760 761 762 763 764 765 766 767 768 769 770 771 772 773 774 775 776 777 778 779 780 781 782 783 784 785
|
# Changelog
## 5.0.5
_Released 07/03/2024_
### 🐞 Bug fixes
- `All` Prevent infinite recursion in nested JS API #1327
- `CEF` Crash due incorrect settings #1330
- `QT` WebEnginePage not deleted after window is closed #1328
- `QT` Blank screen on certain Linux systems #1325
## 5.0.4
_Released 04/03/2024_
### 🐞 Bug fixes
- `All` Python 3.7 compatibility
## 5.0.3
_Released 03/03/2024_
### 🚀 Improvements
- `QT` window position is returned in coordinates excluding the window frame to be in line with provided coordinates.
### 🐞 Bug fixes
- `EdgeChromium` CoreWebView2Settings exception in debug mode. #1323
- `QT` Crashing when closing additional windows #525
- `QT` DevTools failing to focus on open
## 5.0.1
_Released 02/03/2024_
### ⚡ Features
- Android support. _pywebview_ can now be used on Android devices with help of [buildozer](https://buildozer.readthedocs.io/en/latest/) in producing APK. #377
- DOM manipulation, traversal and events. _pywebview_ provides a set of functions for mutating DOM nodes and traversing DOM, as well as you can subscribe to DOM events directly in Python. #1218
- Application settings `webview.settings`. You can now override default behaviour of _pywebview_ by modifying this dictionary. Currently configurable settings include.
``` python
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)`.
}
```
- Support for file downloads. To enable file downloads, set `webview.settings['ALLOW_DOWNLOADS'] = True`. Disabled by default.
- Full path support for file drag n drop. To get a full path of the dragged file, _pywebview_ introduces `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.
### 🚀 Improvements
- `All` A more powerful JS data serializer capable of handling different data types and detecting circular references #1217
- `All` Nested JS API support. See `examples/js_api.py` for details. Thanks @AlecHaring
- `All` 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 error
- `Windows` WebView2 control updated to 1.0.2045.28
- `Windows` Add SSL support for local HTTP server.
- `GTK` Update deprecated code
### 🐞 Bug fixes
- `Cocoa` Suppress secure coding is not enabled for restorable state warning. Thanks @awesomo4000
- `EdgeChromium` Background color not available in webview2. Thanks @Vanthys
- `EdgeChromium` Multiple focus events on window show. Thanks @yllhwa
- `GTK` 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 #1266
- `QT` Submenu actions firing incorrectly #1318
## 4.4.1
_Released 31/10/2023_
### 🐞 Bug fixes
- `GTK` Fallback for Webkit4.0 if 4.1 not found.
## 4.4
_Released 26/10/2023_
### 🐞 Bug fixes
- `Cocoa` Window not retaining focus on keystrokes. #1187
- `Cocoa` App crashing when closing fullscreen window. #1236
- `Cocoa` Video keeps playing after closing window. #1235
- `Cocoa` Uploaded file is empty if filename contains a space. #1231
- `Cocoa` Return value of confirmation dialog created by `window.confirm`. #976
- `Windows` Fullscreen application disappearing after disconnecting extended display. #1229
### 🚀 Improvements
- `All` Don't start http server for file:// urls. Thanks @glorpen
- `GTK` Bump WebKit2 to 4.1. Thanks @starnight
- `Windows` Disable swipe navigation #1230
- `Windows` Window is changed to fullscreen on the current monitor in a multi-monitor setup.
## 4.3.3
_Released 08/09/2023_
### 🐞 Bug fixes
- `QT` Fix QT implementation
## 4.3.2
_Released 01/09/2023_
### 🐞 Bug fixes
- `Winforms` Fix `easy_drag` from being always enabled.
## 4.3.1
_Released 30/08/2023_
### 🐞 Bug fixes
- `Cocoa` Add missing maximized implementation
## 4.3
_Released 30/08/2023_
### ⚡ Features
- `All` `webview.create_window(maximized=False)` Create a window in a maximized state. Thanks @vsajip
- `All` `webview.create_window(screen=screen_instance)` Create a window on a specific monitor, where `screen` is a screen returned by `window.screens`. Thanks @louisnw01
- `All` Window title can be obtained / set via `window.title`.
### 🚀 Improvements
- `All` Window closing event fired after closing confirmation #1178. Thanks @p4bl0-
- `All` Improve performance of JS API calls by removing the initial delay of 100ms.
- `GTK` Native JS Bridge. HTTP server based JS bridge is removed.
- `GTK` Remove support for Webkit older than 2.2
### 🐞 Bug fixes
- `All` Easy drag memory leak #1176
- `Winforms` Easy drag support #1125
- `Winforms` Incorrect DPI scaling
- `Winforms` Private mode not working if `webview.screens` is returned before `webview.start` #1193
- `QT` Add no sandbox for arch/manjaro/nixos to avoid white screen problem #890. Thanks @myuanz
- `GTK` Closing event handlers cancellation. Thanks @p4bl0-
- `GTK` SEGFAULT on second `webview.start()` call #1063. Thanks @PercentBoat4164
## 4.2.2
_Released 25/06/2023_
- `All` Fix 'NoneType' object has no attribute 'start_server'. #1159
## 4.2.1
_Released 22/06/2023_
- `All` Fix installation
## 4.2
_Released 22/06/2023_
### ⚡ Features
- `All` `webview.create_window(focus=False)` to create a non-focusable window. Thanks @mi4code #1030.
### 🚀 Improvements
- `All` Modernization of project infrastructure + typing. Thanks @demberto.
- `Winforms` Top level menu item support. Thanks @zhengxiaoyao0716.
- `Winforms` Disable touchpad elastic overscroll. Thanks @firai.
### 🐞 Bug fixes
- `Winforms` Unable to load DLL 'WebView2Loader.dll': The specified module could not be found. Thanks @kawana77b #1078
- `Cocoa` Fix missing pip dependency `pyobjc-framework-security`.
## 4.1
_Released 02/05/2023_
### ⚡ Features
- `Cocoa/QT/GTK` SSL support for built-in http server `webview.start(ssl=True)`. Thanks @keredson
### 🚀 Improvements
- `All` JS API exceptions are now printed both in Python and Javascript consoles.
- `All` Hide menu bar when there is no menu. Thanks @Joffreybvn
### ⚡ Features
- `All` Fix bug where http_port was not being forwarded to the actual window #1060. Thanks @robb-brown
- `All` Switch from tempfile to os.devnull to fix PyInstaller issue. Thanks @simonrob
- `Cocoa` Fix getting cookies in cocoa. Thanks @eerimoq
- `Cocoa` Fix exception occurring when main menu for application cannot be obtained.
- `Windows` A more robust logic for setting user data directory. Thanks @al-eax
- `Windows` Fix exception when executing a menu function
- `Windows` Fix the title and message of the confirmation dialog. Thanks @zhengxiaoyao0716
## 4.0.2
_Released 21/02/2023_
### 🚀 Improvements
- `All` HTTP server is now multithreaded. This should prevent stalled requests. #1025
- `Windows` `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. #1026
### 🐞 Bug fixes
- `All` Fix `AttributeError: module 'webview.http' has no attribute 'running'` exception occurring when multiple windows are opened. Thanks @YidaozhanYa. #1024
- `Winforms` Fix on_top not having any effect on Windows. #1036
- `Winforms` Fix `create_window(hidden=True)` makes the show() command not work #1050
- `Windows` Fix pyinstaller compatibility on Windows. Thanks @simonrob #1044
- `CEF` Fix window.get_cookies() throwing KeyError exception. #1021
- `Cocoa` Fix non-QWERTY keyboard shortcuts. Thanks @max-uho
- `QT` Fix web inspector preventing to open. #1028
- `GTK` Fix "ImportError: Requiring namespace 'Soup' version '2.4', but '3.0' is already loaded" Thanks @YidaozhanYa #1041
## 4.0.1
_Released 19/01/2023_
### 🚀 Improvements
- `All` Suppress HTTP server logging if not in debug mode.
### 🐞 Bug fixes
- `All` Fix HTTP server starting twice with a single window. Thanks @robb-brown.
## 4.0
_Released 18/01/2023_
### 💔 BREAKING CHANGES
- `All` Window events are moved into `window.events` namespace. `window.loaded`, `window.shown` etc no longer work.
- EdgeHTML support is removed.
### ⚡ Features
- `All` Local homegrown HTTP server is replaced with [bottle.py](https://bottlepy.org). Thanks @robb-brown for WSGI support.
- `All` Native application menu support. See `examples/menu.py` for usage example. Thanks @sardination
- `All` `webview.start(private_mode=True, storage_path=None)` Private mode and persistant storage support in a non-private mode. Private mode is enabled by default.
- `All` `webview.create_window(zoomable=False)` Enable / disable zooming on webpage. Disabled by default.
- `All` `webview.create_window(draggable=False)` Enable / disable dragging of IMG and A elements. Disabled by default.
- `All` `webview.create_confirmation_dialog(title, content)` creates a confirmation (Ok, Cancel) dialog. Thanks @sardination.
- `All` `window.get_cookies()` retrieve all the cookies (including HttpOnly) for the current webpage.
- `macOS` `webview.create_window(vibancy=False)` Window vibrancy suppport. macOS only. Thanks @CahierX.
### 🚀 Improvements
- `All` Local relative URLs (eg. src/index.html) are opened using the built-in http server by default. Support for local URLs is still possible using file:// schema
- `Cocoa` Disable Ctrl+click context menu. Thanks @ecpost.
- `EdgeChromium` Improve `evaluate_js` performance.
- `GTK` Enable media / audio / WebGL / clipboard related WebKit features
### 🐞 Bug fixes
- `Cocoa` Fix passing through keyboard events handled by pywebview. Thanks @ecpost.
- `GTK` Fix JS bridge maximum return object size limitation. GTK's JS bridge is implemented via HTTP server.
- `GTK` Fix hanging problem during window closing when JS evaluation is in progress
## 3.7.1
_Released 14/11/2022_
### 🐞 Bug fixes
- `Edge Chromium` Better platform detection
### 🚀 Improvements
- `Edge Chromium` ARM64 support
## 3.7
_Released 04/11/2022_
### ⚡ Features
- `All` New `window.events.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 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 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.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. #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](https://github.com/sbbosco). [#521](https://github.com/r0x0r/pywebview/issues/521).
- `Fix` `All` Exception with HTML checkboxes and `get_elements`. [#622](https://github.com/r0x0r/pywebview/issues/622).
- `Fix` `All` pystray compatibility. Thanks [AlexCovizzi](https://github.com/AlexCovizzi). [#486](https://github.com/r0x0r/pywebview/issues/486).
- `Fix` `All` expose methods instead of all callables for JS API objects. Thanks [jgentil](https://github.com/jgentil). [#629](https://github.com/r0x0r/pywebview/issues/629).
- `Fix` `EdgeHTML` Make returning results of `evaluate_js` more robust. Thanks [sbbosco](https://github.com/sbbosco).
- `Fix` `QT` KDE_FULL_SESSION not being used. Thanks [Maltzur](https://github.com/Maltzur).
- `Fix` `Cocoa` Unicode filenames for input files.
- `Improvement` `Cocoa` Only install the specific `pyobjc` packages required. Thanks [Fizzadar](https://github.com/fizzadar).
- `Improvement` `Cocoa` Add support for default document navigation and window handling shortcut keys . Thanks [ikhmyz](https://github.com/ikhmyz) and [Fizzadar](https://github.com/fizzadar)
## 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](https://github.com/awesomo4000)
## 3.3.3
_Released 08/08/2020_
- `Fix` `Cocoa` Save dialog not working [#578](https://github.com/r0x0r/pywebview/issues/578).
- `Fix` `Cocoa` Error sound being played when pressing keys on macOS [#566](https://github.com/r0x0r/pywebview/issues/566).
## 3.3.2
_Released 28/07/2020_
- `Fix` `All` Load html triggers error - resolve_url() missing 1 required positional argument: 'should_serve' [#562](https://github.com/r0x0r/pywebview/issues/562).
- `Fix` `Cocoa/GTK` Access window size on closing [#573](https://github.com/r0x0r/pywebview/issues/573).
- `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](https://github.com/r0x0r/pywebview/issues/560).
## 3.3: Detroit Edition
_Released 29/06/2020_
- `New` `All` Brand-new WSGI based internal HTTP server. Thanks `@astronouth7303`(https://github.com/astronouth7303).
- `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`(https://github.com/Fizzadar).
- `New` `All` Custom user-agent support. Thanks `@tognee`(https://github.com/tognee).
- `Fix` `All` Python function not triggered using JS [#458](https://github.com/r0x0r/pywebview/issues/458).
- `Fix` `All` window methods do not work in `loaded` event [#528](https://github.com/r0x0r/pywebview/issues/528).
- `Fix` `Cocoa` Caption bar and window control buttons are now hidden in frameless mode.
- `Fix` `CEF` CEF window resize hang [#484](https://github.com/r0x0r/pywebview/issues/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 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`(https://github.com/Fizzadar)
- `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`(https://github.com/dtcooper)
- `Improvement` `QT` Default debugger port is changed to 8228. Thanks `@melvinkcx`(https://github.com/melvinkcx)
- `Improvement` `CEF` Ability to pass custom CEF settings via ` webview.platforms.cef.settings`. See [example](/examples/cef.md) 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.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` New `window.pywebviewready`DOM 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 occurring when trying to access `window.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 via `gui=mshtml` is now possible. ¯\\\_(ツ)\_/¯
<img src='/windows31.png' alt='Windows 3.1'/>
## 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 `directory` 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. #272
- `New` `All` Built-in HTTP server. #260
- `New` `All` Autogenerated CSRF token exposed as `window.pywebview.token`. #316
- `New` `All` `get_elements` function to retrieve DOM nodes. #292
- `New` `All` New events system that lets you to subscribe to events. `loaded` and `shown` events 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_
- `Fix` Dependency installation
- `New` Reintroduce `qt` extra require switch
## 2.2
_Released 23/10/2018_
- `New` Brand new documentation at https://pywebview.flowrl.com
- `Improvement` Simplify 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_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 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_title` function #159
- `New` `All` `load_css` function
- `New` `All` Support for relative local URLs in `create_window` / `load_html`. Linked local resources are resolved as well. #186
- `New` `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 script
- `Fix` `All` Consistent return types with `evaluate_js` across different platforms #175
- `Fix` `All` Various concurrency issues and deadlocks
- `Fix` `Winforms` Hide `Message from webpage` when using `alert` Javascript 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_js` function
- `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_dialog` to 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.py` for 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_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 #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 `directory` and `save_filename` parameters 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
- `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 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
- `Fixed` Python 3 compatibility in Win32 module (thanks @Firnagzen) #3
- `Fixed` Floating values for window dimensions causing issues on Windows XP (thanks @Firnagzen) #4
- `Fixed` 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 support
- `New` GTK3 support
- `New` pip installation
- `New` Fullscreen mode
## 0.1
Released on 20/11/2014
- First release
- Linux and OSX support
|