Repository navigation
Releases: citkane/webview
Release list
v0.13.0-alpha
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
unbindto allow boundevalfunctions to complete (40ms default).
Fixed
bind->eval->unbindwill allow WEBVIEW_UNBIND_TIMEOUT for promise resolution instead of silently failing.evalwill wait forbindto 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
bindsignature is deprecated and stubbed. Legacy user code will compile and run, but synchronous bind is a now a no-op.
v0.12.7
This release simplifies the use of JSON strings and returning values to the JS frontend for the user.
Added
json_parsehas been added to the public C API.webview_returnpublic C API has been expanded to includewebview_return_int,webview_return_floatandwebview_return_bool.
Changed
- Users can now pass string, bool, number and JSON strings directly into
webview_returnmethods 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
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
This release introduces optional Webview trace log output
Added
- The
webview::log::traceAPI with contextual call methods. - Key API code flow locations are traced.
- The
WEBVIEW_LOG_TRACEbool compiler option (defaults to OFF).
Changed
- CI tests have
WEBVIEW_LOG_TRACEset to ON, so failed tests will now verbosely output a trace log.
v0.12.4
This release introduces optional Webview error and warning log output. This should enhance the user and developer experience.
Added
- The
webview::log::consoleAPI witherror,warnandinfomethods. - The
errorandwarnmethods have been implemeted in key API locations and integrated with the existing Webview error system. - The
WEBVIEW_LOGbool compiler option (defaults to OFF). - The
WEBVIEW_LOG_ANSIbool compiler option to toggle ANSI colourised strings (defaults to ON). - Windows does not automatically capture
stdoutandstderrfor GUI apps, so Webview will automatically check if the user has already captured these and capture them if not.
Changed
- CI tests have
WEBVIEW_LOGset 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
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 todispatch_implappropriately. - Webview class initialisation MUST happen on the
mainthread, and Webview will now throw an exception if not. runandinitSHOULD be called on themainthread, and Webview will now return an error if not.- The Webview headers are now built with
Threads::Threadsas a dependency. - Windows CI tests have
pthreadstatically linked, else MSVC builds will fail to resolve threading library paths. - Windows CI warmup test uses std::thread to check linkages.
v0.12.2
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
navigateURL strings with leading or trailing whitespace, causing silent execution anomalies. URL strings are now automatically trimmed for Darwin.
Deprecated
- The
webview::webviewC++ API class naming is ambiguous for compilers and humans, sowebview_ccis now declared in the Global namespace and should be used instead. #include "webview/webview.h"is deprecated in favour of#include "webview.h".