Overview | News | Windows | macOS | Android | iOS | Audio Formats | Components | Encoder Pack | Screenshots | Help & Support | Developer | Old Versions | Other Projects
WebView2
By: oops
foo_webview2 is a foobar2000 component that exposes the Microsoft Edge WebView2 control as a UI element or panel. This is a fork of foo_uie_webview.
It takes an HTML file that receives notifications from and can interact with foobar2000. The panel can react to those notifications and adjust its output using JavaScript. In addition, a host object provides a number of methods and properties to interact with foobar2000 and the visualization stream can be accessed through a shared buffer.
Features
It takes an HTML file that receives notifications from and can interact with foobar2000. The panel can react to those notifications and adjust its output using JavaScript. In addition, a host object provides a number of methods and properties to interact with foobar2000 and the visualization stream can be accessed through a shared buffer.
Features
- Supports the Default User Interface (Default UI) and the Columns User Interface (Columns UI).
- Includes 32-bit and 64-bit x86 component variants as well as ARM64EC.
- Built for Windows 10 or later.
- foobar2000 v2.0 or later (32 or 64-bit).
- Microsoft Edge WebView2 Runtime (preinstalled in Windows 10 and 11).
- Tested with foobar2000 2.25.6.
- Tested with Columns UI 3.2.3.
- Tested with WebView2 144.0.3719.93.
- Tested on Microsoft Windows 11 (Build 26200).
Current version: 0.3.3, released on 2026-01-29
Change log:
Forked from foo_uie_webview v0.3.0.0-alpha3. Features:
Optimizations:
Fork:
Repository/Development:
Quality:
- Add timestamp argument to `onTimer()` callback
- Convert relative paths that begin with "file://" to native paths
-
Add ability to load a user-specified COM interface as host object
- Use `__cdecl` instead of `__stdcall` for COM interface
-
Add borderless fullscreen mode to Default UI element and Columns UI panel
- Add "Alt+Enter" key combination to enter and exit fullscreen
- Add DPI-aware icon loader
-
Support relative file paths (to the user profile directory) in the Preferences page
- Expand `%fb2k_profile_path%` in addition to environment variables
- Implement instance selector in Preferences page
- Enable ARM64 and ARM64EC builds
- Reduce x64 DLL size by 256 KB or 29% (from 884,736 bytes in 0.3.2-alpha0 to 622,592 bytes in 0.3.3)
Optimizations:
- Change shared buffer to "read only"
- Use enumeration from configuration for scroll bar
- Use `CreateFile2()` for file watcher
- Fix crashes in text format functions when error messages exceed 256 characters
- Fix inactive component in debug mode
- Fix single pixel border on fullscreen
- Fix context menu icon not appearing
- Remove foobar2000 SDK helpers as dependency
- Reuse "foobar2000.exe" icon instead of budling
Fork:
-
Rename component to "foo_webview2"
- Change component and preferences GUID
- Update file headers and copyright
- Update "About"
- Update "LICENSE.txt"
Repository/Development:
- Reorganize header inclusions
-
Move "framework.h" content directly into "pch.h"
- Update "framework.h" with additional headers
- Add console print macro and update log messages
- Update foobar2000 SDK classes to their latest version
- Clean up SDK function prototypes
- Remove scope resolution to the global namespace and Unicode function suffix where not needed
- Specify full namespace for "Microsoft::WRL"
- Update layout of third-party libraries/packages in solution
- Remove unused files
- Use ClangFormat to normalize code style
- Clean up configuration files
- Move resources, documentation and scripts into their own directories
- Add ARM64 platforms to build, CI workflow and SDK patching
- Change `!SUCCEEDED()` macro to `FAILED()`
- Update WebView2 NuGet package to 1.0.3719.77
- Update WIL NuGet package to 1.0.260126.7
- Convert resource files to UTF-8
- Update resource syntax
- Update ".gitattributes"
- Trim ".gitignore"
Quality:
- Normalize HTML and JavaScript template formatting using Prettier
- Fix iterator in JavaScript template (MetaDB handle list class)
- Fix incorrect function name in JavaScript template (`getChannelConfigurationText()`)
- Fix Code Analysis messages
- Fix C4100 warnings
- Update build script
- Update README
Supported systems: Windows 32-bit, Windows 64-bit, Windows ARM.
Works with foobar2000 v2.0 and newer
Links
View version history
Home page
Documentation
Discussion
Source code
More components
Browse all
Browse by author: oops
Tags: browser, Columns UI panel, CSS, Default UI element, HTML, JavaScript