(Version numbers: http://semver.org/) 3.1.0: Quick fix for new Unity versions. Features: - Fix build issues caused by breaking changes Unity made in 2019.3.9. ------------------------------------------------------------------------- 3.0.0: CEF update, VR update, some bugfixes. I've been working on a big, awesome update. This is not it. Breaking Changes: - Update to CEF 74.1.19+gb62bacf+chromium-74.0.3729.157 / Chromium 74.0.3729.157 - Default HTML errors are generated by ErrorGenerator.cs instead of Resources/Browser/Errors.html Other changes: - [OS X] Browsers can use hardware OS cursors again. - Move CEF version information from versions.txt to documentation. Features: - Support for SteamVR 2+ with its remappable input handlers and related changes. - Postbuild scripts display an alert in addition to logging a message when there's an issue. - Add support for using ExternalKeyboard in Unity's GUI (and demo). - You can test your game from the Windows Editor while targeting OS X and building for OS X from Windows is officially supported. - Added Browser.LoadDataURI() - The newer Chromium version supports mp3 audio (blocking patents have expired). Fixes: - Fix Windows 32-bit executable effectively having --zf-log-internal hardcoded on. - Fixes for newer Unity versions. - Log fixes: Deal better with odd application names, put the browser log beside instead of inside the Unity log in Unity 2019.1+ to keep messages from getting clobbered, and more. - Fix a ZFGameBrowser crash-on-exit bug. - Fix ExternalKeyboard causing errors after it's destroyed. - Fix scrolling one GUI browser scrolling them all (and probably some related bugs). Now we scroll what the mouse is over. - [OS X] Fix issues with tab and insert keys. - [Windows] Bail on build if the chosen path will break things (has a ";"). Known Issues: - Due to technical reasons (see CEF issue 2586) LoadHTML doesn't work right in some cases, such as after a fetch fail. We still display errors (by loading a data URI), but the history and URL are incorrect. ------------------------------------------------------------------------- 2.1.0: Note: ThirdPartyNotices.txt for 2.0.0 was partially wrong see fixes below. Changes: - --zf-browser-update-delay is unused. The slave update loop is now handled by CefRunMessageLoop instead of CefDoMessageLoopWork and should hopefully work fine without tuning. (Existing applications using this flag should continue to run.) - Tweaks to the main demo's 3rd room. Features: - Add experimental support for Linux 64-bit builds! - Add support for Windows 64-bit and OS X il2cpp builds. - Add CSP-friendly version of EvalJS: EvalJSCSP. (Has some requirements and pitfalls, see the function documentation.) - Automatically set the executable bit on ZFGameBrowser executable on build. (OS X, Linux) Fixes: - ThirdPartyNotices.txt contained data from CEF 3.3202.1683 instead of 3.3282.1741. It has been updated. Also: encoding fix. Consider updating this file (as appropriate), even if you don't use the new asset version, for legal reasons. (You should have more-or-less what should have been in the last version if you remove the libX11 section.) - Fix needing MSVC 2013 runtime installed. (Windows) - Fix browser not working if started under a path with Unicode characters. (Again.) - Fix browser flickering when compositing dialogs (like alert and such). - Don't crash when asked to go to a null URL. - Fix browser.IsLoaded being false in onLoad (and therefore breaking things like EvalJS). - Overlapping calls to CookieManager.GetCookies() should now bail instead of doing strange things. Also document that it's not reentrant. - Allow copy-paste in browser's inspector for EvalJS/SetHTML. - Fix an issue that crashed the Editor when hot-reloading scripts. (Hot-reloading isn't supported, but it shouldn't crash your Editor.) - Don't leak world-space cursors into the scene if browser is destroyed. - CEFResources are now (properly) handled on a per-platform+architecture basis. - Fix build errors for OS X with newer Unity versions. (Unity doesn't make a Plugins folder for us anymore.) - Some fixes for new Unity versions. - Misc fixes, docs updates/changes. ------------------------------------------------------------------------- 2.0.0: Changes: - Updated to Chromium 64.0.3282.119 / CEF 3.3282.1741.gcd94615 for Windows and OS X - API proxy (Chromium out-of-process) is used by everywhere now. Pros: - C# debugging should work out-of-the box, instead of crashing/hanging. - The inspector is much more stable. - The Unity Editor won't hang if you use the new Mono (.NET 4.6) backend. - (Windows) Standalone builds made with newer Unity and CEF versions won't crash on exit. - (OS X) Fixes all sorts of crashing in builds. - (Windows) Since the browser no longer executes directly from the Player executable, many files can and have been moved from the build root to inside [game]_Data/Plugins. - Probably a number of other little things. Cons: - It's a lot more work to make, but that's not your problem. ;-) - It's slower, but a lot of effort has gone into improving its performance; hopefully everything will run just awesome now. :-) - Using pop-up windows that open in an OS-native window outside the game may have unexpected or incomplete behavior. Using these outside testing/debugging is not recommended or officially supported. - Adjust popup window behavior via SetNewWindowHandler instead of newWindowAction/NewWindowHandler. - Cleaned up some demo scripts being in their own folder and/or not being in the right namespace. - The WebResources API has changed. It's now asynchronous and more powerful! Unfortunately, it is different, so if you extended WebResources you'll need to make some changes. Also, the generated errors are slightly different. - browser.backgroundColor was renamed to baseColor and the initial texture gets this color. - "--zf-browser-log-verbose" was renamed to "--zf-log-cef-verbose" (and "--zf-log-internal" was added) - Require Unity 5.6.3+ out of the box. (Older versions may still work with minor tweaks.) Features: - Added first-class VR input support (requires Unity 2017.2 or newer) - Added soft keyboard for use inside (or outside) VR - Added browser.onTextureUpdated - Added browser.onNavStateChange - Added new input system that combines clicks, touches, and spacial interactions. (Still built on IBrowserUI.) The old input classes are still included, but deprecated. - While we can still only convert a single touch to the browser's mouse, the new input handlers should do a much better job of it. - Added new unlit colored emulate mipmap shader. Use it to apply a tint/color the the browser image. (As always, you can write you own shader too!) - Added support for --key=value style command-line arguments. (For example, set a proxy manually with --proxy-server=10.1.2.3:8080) - Save user data between application runs by setting BrowserNative.ProfilePath (or leave it blank to keep forgetting everything on restart). - Throw a BrowserSystemSettings into your scene to automatically change/call BrowserNative.ProfilePath or UserAgent.SetUserAgent, no coding required. - Added checkbox to disable GUIBrowserUI auto-resizing. - Added support for HTTP user/password prompts. - Added support for file downloads & relevant API. - IBrowserUI.MouseScroll is no longer truncated to the nearest integer, allowing finer scroll inputs. (Also scroll events are throttled and grouped, so feel free to send lots of small scroll events.) - Frame data uploads faster via texture.LoadRawTextureData now and with fewer intermediate copies. (Also, see notes about framerates in the docs.) - Added Assembly Definition files (for newer versions of Unity). - Automatically copy ThirdPartyNotices.txt to build. Fixes: - Properly release alt (and other modifiers) when you alt-tab out. (Fixes things like backspace and arrow keys not working after an alt-tab.) - Fix an issue with zfb_tick getting called before the symbol loaded. - Calling browser.CallFunction with a null argument passes it along correctly instead of breaking. - Fix GUI browser not working correctly with a non-center pivot. (Thanks to those that pointed this out!) - Docs fixes - Under Windows the browser backend is now fully torn down between runs, more correctly emulating how profile data is (or isn't) persisted. - New Unity version fixes. ------------------------------------------------------------------------- 1.1.1: Changes: - The Unity 4.x FPS controller isn't included with the demo anymore. The demo now uses a simple replacement controller. (Not a public API change, affects demo and demo scripts only.) ------------------------------------------------------------------------- 1.1.0: Features: - You can now adjust or add Chromium switches with BrowserNative.commandLineSwitches. - Experimental Adobe Flash support (see Readme) - CallFunction and EvalJS now return results through a promise; it's now much easier to query the page for a specific value. - Massively revamped Readme formatting. - Cookie API (delete all cookies, CRUD any cookie, date features experimental) - Added a simpler example of calling/getting called by JS. - Added API for setting a custom user agent. Fixes: - Browser should now work correctly with unicode characters in the path. - We no longer display an error on page load abort. This allows you to see incomplete page loads and also keeps things from breaking if you double-click a link. - Remove non-ASCII characters from the user agent so things don't break. - Dynamically instantiating a BrowserGUI should now work instead of dying in the mouse input code. - Fix issues with GUIBrowserUI + touchscreen + build. - Unity 5.4: Don't spam errors about cursor formats. - Unity 5.5: Cope with Profiler namespace change. - localGame:// will strip query strings/hashes and try to find the underlying file instead of always failing when one is present. ------------------------------------------------------------------------- 1.0.2: Fixes: - OS X: Asset Store packages still weren't getting the right child process permissions, so now the executable permission is always added when starting a browser in the Editor. ------------------------------------------------------------------------- 1.0.1: Fixes: - Rebuild package so ZFGameBrowser has the correct initial permissions on OS X. - Correctly build browser_assets runtime resource even if there is no BrowserAssets directory. - NewWindow demo explains how to unzip BrowserAssets like MainDemo. - Demo explanation should no longer be replaced by an error on very slow computers. - Disabling and re-enabling a BrowserGUI GameObject should no longer break automatic resizing. ------------------------------------------------------------------------- 1.0.0: Initial release