Skip to content

Releases: citkane/webview

v0.13.0-alpha

v0.13.0-alpha Pre-release
Pre-release

Choose a tag to compare

@citkane citkane released this 19 Jun 14:40

This is an alpha release that concurrently resolves native promises and guarantees ordered execution of bind -> eval -> unbind operations.

Added

  • Concurrent daemonised execution of bound functions. Users no longer have to manage threads in bound callbacks to prevent UI / app freezes
  • The WEBVIEW_UNBIND_TIMEOUT compiler option, which sets a timeout for unbind to allow bound eval functions to complete (40ms default).

Fixed

  • bind -> eval -> unbind will allow WEBVIEW_UNBIND_TIMEOUT for promise resolution instead of silently failing.
  • eval will wait for bind to complete so that included bound function calls do not silently fail.
  • User API instructions will queue until the DOM is ready instead of silently failing.
  • JS promises are no longer left indefinitely in a waiting state if errors occur natively or bindings are unbound.

Deprecated / Removed

  • The synchronous bind signature is deprecated and stubbed. Legacy user code will compile and run, but synchronous bind is a now a no-op.

v0.12.7

v0.12.7 Pre-release
Pre-release

Choose a tag to compare

@citkane citkane released this 19 Jun 14:36

This release simplifies the use of JSON strings and returning values to the JS frontend for the user.

Added

  • json_parse has been added to the public C API.
  • webview_return public C API has been expanded to include webview_return_int, webview_return_float and webview_return_bool.

Changed

  • Users can now pass string, bool, number and JSON strings directly into webview_return methods without the need to quote or double quote them.

Security

  • Sanitising checks for input strings is managed in the frontend JS (using regex and a sandboxed iframe). Executable code, HTML scripts and URLEncoded scripts are rejected.

v0.12.6

v0.12.6 Pre-release
Pre-release

Choose a tag to compare

@citkane citkane released this 19 Jun 14:34

This is a bugfix release that fixes inconsistent behaviour between OS platforms in a bind(); init(); run(); or bind(); set_html(); run(); call sequence.
Depending on platform, the bound script, init script or <script> tags are never processed, leading to silent failure.

Fixed

  • bound functions for init scripts and HTML scripts will execute consistentently across platforms.

Changed

  • If the user owns the window, Linux and Mac will call "set_html` after the main Webview script injection. This ensures that the DOM is ready to recieve scripts.
  • If the user owns the window, Windows will reload the browser location after pre-dom script injection, ensuring that the scripts are triggered.

v0.12.5

v0.12.5 Pre-release
Pre-release

Choose a tag to compare

@citkane citkane released this 19 Jun 14:33

This release introduces optional Webview trace log output

Added

  • The webview::log::trace API with contextual call methods.
  • Key API code flow locations are traced.
  • The WEBVIEW_LOG_TRACE bool compiler option (defaults to OFF).

Changed

  • CI tests have WEBVIEW_LOG_TRACE set to ON, so failed tests will now verbosely output a trace log.

v0.12.4

v0.12.4 Pre-release
Pre-release

Choose a tag to compare

@citkane citkane released this 19 Jun 14:29

This release introduces optional Webview error and warning log output. This should enhance the user and developer experience.

Added

  • The webview::log::console API with error, warn and info methods.
  • The error and warn methods have been implemeted in key API locations and integrated with the existing Webview error system.
  • The WEBVIEW_LOG bool compiler option (defaults to OFF).
  • The WEBVIEW_LOG_ANSI bool compiler option to toggle ANSI colourised strings (defaults to ON).
  • Windows does not automatically capture stdout and stderr for GUI apps, so Webview will automatically check if the user has already captured these and capture them if not.

Changed

  • CI tests have WEBVIEW_LOG set to ON, so test failures will now verbosely output warnings and errors.
  • Windows CI tests are now run as a GUI app.

v0.12.3

v0.12.3 Pre-release
Pre-release

Choose a tag to compare

@citkane citkane released this 19 Jun 14:38

This release guarantees thread safety, thus simplifying the public API and providing the user a cleaner approach to building Webview based applications.

Changed

  • Webview automatically detects if the thread context is main, and internally re-directs API calls to dispatch_impl appropriately.
  • Webview class initialisation MUST happen on the main thread, and Webview will now throw an exception if not.
  • run and init SHOULD be called on the main thread, and Webview will now return an error if not.
  • The Webview headers are now built with Threads::Threads as a dependency.
  • Windows CI tests have pthread statically linked, else MSVC builds will fail to resolve threading library paths.
  • Windows CI warmup test uses std::thread to check linkages.

v0.12.2

v0.12.2 Pre-release
Pre-release

Choose a tag to compare

@citkane citkane released this 19 Jun 14:22

This is primarily a housekeeping release aimed at code readability, maintainability and enabling work for upcoming enhancements.

It has a large diff footprint, but does not change existing functionality ensuring 100% backwards compatibility.

Changed

  • The 'core/include/webview' folder structure is flattened to 'core/include'.
  • The file folder structure and namespaces have been coordinated to reflect code purpose and encapsulation.
  • Namespace tails are followed by API structs and classes with improved inline documentation about the purpose of each internal API.
  • Much of the code definitions and implementations have been separated with improved inline documentation in header files.
  • Some existing code has been refactored for improved encapsulation and readability.
  • All JS/HTML string generation has been moved to a tokenised template system with a string retrieval API.

Fixed

  • Unlike Linux and Windows, the Darwin backend does not accept navigate URL strings with leading or trailing whitespace, causing silent execution anomalies. URL strings are now automatically trimmed for Darwin.

Deprecated

  • The webview::webview C++ API class naming is ambiguous for compilers and humans, so webview_cc is now declared in the Global namespace and should be used instead.
  • #include "webview/webview.h" is deprecated in favour of #include "webview.h".

v0.12.1

Choose a tag to compare

@citkane citkane released this 17 Jun 21:35

For a while all development has occured directly on v0.12.0 HEAD.

This is a benchmark release reflecting all bugfixes and optimisations since 2024-09-11

@StefanL @citkane