ScientiaMobile WURFL Java API Change Log
1.13.0.1 - April 2nd, 2024
- Updated
- Vulnerable commons-collection package to v4.3.x (please note that there is a package name change to org.apache.commons.collections4). Please note that if you need to keep using the old version of commons-collection and just rely on the Java API importing it, you will have to explicitly add it to your project's pom.xml.
- logback dependency version
- Fixed behavior for
- detection of certain Web OS browser versions
- REMOVAL NOTICE
- UserAgentNormalizedChain (normalizers are called procedurally)
- WURFLRequestFactory and DefaultWURFLRequestFactory (deprecated in 2019)
1.13.0.0 - February 28th, 2024
- Added support for
- New robots, spiders and crawlers
- Emerging custom user-agents for Android, iOS and other platforms
- Expanded support for
- SmartTVs, STBs and other OTT devices
- User-Agent Client Hints
- App detection via is_app and advertised_app_name
- Digital assistant and connected speaker devices
- Game Consoles
- Fixed behavior for
- Spark Email Client (iOS/macOS) now defaults to a desktop detection
- Improved performance for lock handling in cache and virtual capability detection
- METHOD DEPRECATION NOTICE: the following methods:
- getGroupByCapability, getAllGroups, isGroupDefined,getCapabilitiesForGroup
of WURFLUtils, WURFLModel and its implementations have been deprecated.
Starting from the release after 1.13.0.0, these methods will always return empty string/collections or false depending on the method return type. These methods will be removed two releases after the release of WURFL API 1.13.0.0 and they will not be replaced.
1.12.11.1 - November 30th, 2023
- Updated logback dependency version to fix vulnerability
1.12.11.0 - October 23rd, 2023
- Added support for
- new SmartTVs, STBs and other OTT devices
- new robots, spiders and crawlers
- Expanded support for
- custom user-agents for Android, iOS and other platforms
- User-Agent Client Hints
- app detection via is_app and advertised_app_name
- iOS and iPadOS versions and devices
- Tizen based devices
- Fixed behavior for
- Firefox on Android will now use "6.0" as the default/fallback OS version in cases where an Android version is absent
- Removed code that has been deprecated for four or more years
1.12.10.1 - August 28th, 2023
- Fixed a NullPointerException in getDeviceForRequest()
1.12.10.0 - June 27th, 2023
- Added support for
- new robots, spiders and crawlers
- new SmartTVs, STBs and other OTT devices
- Expanded support for
- custom user-agents for Android, iOS and other platforms
- app detection via is_app and advertised_app_name
- Chromium based browsers and web clients
- Fixed behavior for
- User-Agents and HTTP Requests with invalid or missing Android versions will now return "6.0" as the default/fallback Android version. The previously returned version was "4.0".
- Note: We periodically update the definition of what we consider to be a smartphone. These changes affect the is_smartphone and form_factor capabilities. This version of the WURFL API makes the following change:
- Minimum OS version requirements increased to iOS 12, Android 8.0
1.12.9.0 - March 14th, 2023
- Added support for
- new robots, spiders and crawlers
- custom user-agents for Android, iOS and other platforms
- Expanded support for
- SmartTVs, STBs and other OTT devices
- User-Agent Client Hints
- App detection via is_app and advertised_app_name
- iOS and iPadOS versions and devices
- Android devices
1.12.8.0 - Nov 30th, 2022
- Added support for
- new robots, spiders and crawlers
- custom user-agents for Android, iOS and other platforms
- Expanded support for
- Android devices
- SmartTVs, STBs and other OTT devices
- Chromium based browsers and web clients
- App detection via is_app and advertised_app_name
- iOS and iPadOS versions and devices
- User-Agent Client Hints
1.12.7.0 - Sept 21th, 2022
- Added support for
- new robots, spiders and crawlers
- new email clients
- Expanded support for
- SmartTVs, STBs and other OTT devices
- Digital assistant and connected speaker devices
- Fire OS devices
- App detection via is_app and advertised_app_name
- Mobile and desktop applications
- iOS and iPadOS versions and devices
1.12.6.0 - May 31, 2022
- Added WURFLEngine method getDeviceForRequest(Map<String,String> headers)
- Added WURFLEngine method buildUserAgentFromClientHints(Map<String,String> headers)
- Starting from this version MatchType of an empty user-agent detection ("") is MatchType.exact (was MatchType.none)
- Added support for
- custom user-agents for Android, iOS and other platforms
- new SmartTVs, STBs and other OTT devices
- device level detection for certain Roku UAs
- User-Agent Client Hints
- ChromeOS devices
- is_smartphone and form_factor capabilities
- App detection via is_app and advertised_app_name
- Chromium based browsers and web clients
- iOS and iPadOS versions and devices
Note: We periodically update the definition of what we consider a Smartphone. These changes affect the is_smartphone and form_factor capabilities. This version of the WURFL API makes the following changes:
- Horizontal Resolution requirements increased to 540 pixels
- Minimum OS version requirements increased to iOS 9, Android 6.0
- Removed RIM OS and Windows Phone OS from being considered as Smartphone OS'es
- Added HarmonyOS
1.12.5.0 - March 1, 2022
- Added support for
- new robots, spiders and crawlers
- custom user-agents for Android, iOS and other platforms
- Expanded support for
- User-Agent Client Hints
- SmartTVs, STBs and other OTT devices
- App detection via is_app and advertised_app_name
- Added methods isUaFrozen and headerQuality
Note: Support for User-Agent Client Hints is now turned on by default.
- Removed internal interface WURFLHeaderProvider and its implementations (deprecated from March 2018)
- Removed old commons-lang dependency and updated the commons-lang3 one
- Replaced dependency logback-classic with logback-core
- engine methods getDeviceById and its overloads now throw NPE if device ID is null,
while in previous versions threw IllegalArgumentException
1.12.4.0 - November 24, 2021
- Added support for
- new robots, spiders and crawlers
- Expanded support for
- SmartTVs, STBs and other OTT devices
- Custom user-agents for Android, iOS and other platforms
- App detection via is_app and advertised_app_name
- Certain Windows 11 User-Agents
- iOS and iPadOS versions and devices
- KaiOS based devices
- Tizen based devices
- Fixed behavior for ExtraHeadersExperimental
1.12.3.0 - September 29, 2021
- Starting this release (WURFL OnSite API for Java 1.12.3.0), Java 8 will be the lowest supported Java version.
- Added support for
- new robots, spiders and crawlers
- Expanded support for
- App detection via is_app and advertised_app_name
- SmartTVs, STBs and other OTT devices
- Certain User-Agents from the Roku OS platform
- iOS and iPadOS versions and devices
- Fixed behavior for
- Google Read Aloud Assistant: this service is a text to speech assistant and will no longer be categorized as a robot
1.12.2.0 - July 19, 2021
- Added support for
- Chromium based browsers and web clients
- Expanded support for
- Android devices
- App detection via is_app and advertised_app_name
- Certain non-standard app based user-agents
- SmartTVs, STBs and other OTT devices
- Custom user-agents for Android, iOS and other platforms
1.12.1.0 - May 24, 2021
- Added support for
- new robots, spiders and crawlers
- Expanded support for
- SmartTVs, STBs and other OTT devices
- DEPRECATIONS:
- getDeviceId methods in WURFLUtils class and WURFLService interface have been deprecated, use the methods with the same name in WURFLEngine instead.
- Some constructors of DefaultWURFLRequest, deprecated in 2018, have been made inaccessible from outside code.
1.12.0.0 - February 26, 2021
- Added support for
- new robots, spiders and crawlers
- Chromium based browsers and web clients
- Expanded support for
- SmartTVs, STBs and other OTT devices
- KaiOS based devices
- App detection via is_app and advertised_app_name
- game consoles
- Firefox based browsers
- Fixed behavior for
- User-Agents with invalid Android versions will now consistently return the default/fallback Android version (4.0)
1.11.10.0 - November 23, 2020
- Added support for
- Chromium based browsers and web clients
- Expanded support for
- SmartTVs, STBs and other OTT devices
- App detection via is_app and advertised_app_name
- iOS and macOS webviews and apps
- iOS and iPadOS versions and devices
- Android TV devices
- Removed support for Java 6. From this version Java Onsite API will be compiled with target and source 1.7 options, and it will run on Java 7 and above versions.
1.11.9.0 - September 14, 2020
- Added support for
- new robots, spiders and crawlers
- Expanded support for
- SmartTVs, STBs and other OTT devices
- iOS and macOS webviews and apps
- App detection via is_app and advertised_app_name
1.11.8.0 - July 1, 2020
- Added support for
- new robots, spiders and crawlers
- Expanded support for
- SmartTVs, STBs and other OTT devices
- Android devices
- iOS versions and devices
- App detection via is_app and advertised_app_name
- REPLACED jackson dependency with Gson
- DEPRECATED class IntrospectorServlet. It will be removed in a future release.
1.11.7.1 - May 4, 2020
- Added support for iOS 13.5 hardware mappings
1.11.7.0 - April 30, 2020
- Added support for
- new digital assistant and connected speaker devices
- Expanded support for
- UC Browser User-Agents
- iOS versions and devices
- App detection via is_app and advertised_app_name
- SmartTVs, STBs and other OTT devices
- Chromium based browsers and web clients
- Disabled external entity features in SAXParser usage to prevent XXE attacks
1.11.6.0 - February 17, 2020
- Expanded support for
- App detection via is_app and advertised_app_name
- Web browsers
- new iOS versions and devices
- SmartTVs, STBs and other OTT devices
- Fixed behavior for
1.11.5.0 - December 4, 2019
- Added support for
- new robots, spiders and crawlers
- Expanded support for
- new iOS versions and devices
- App detection via is_app and advertised_app_name
- Chromium based browsers and web clients
- SmartTVs, STBs and other OTT devices
- Fire OS TV devices
- Fixed behavior for
- UC Browser User-Agents
- Samsung Browser: Both Dex and Samsung browsers will now return "Samsung Browser" for the advertised_browser_name virtual capability. This is because both browsers will send a similar HTTP request in desktop mode/requesting a desktop User-Agent.
- Vivaldi: Vivaldi web browser will now return "Vivaldi" and not "Vivaldi browser" for the advertised_app_name virtual capability. This is to be consistent with the browser's branding.
1.11.4.0 - September 16, 2019
- Expanded support for
- App detection via is_app and advertised_app_name
- Chromium based browsers and web clients
- SmartTVs, STBs and other OTT devices
- KaiOS based devices
- certain Xiaomi devices
1.11.3.0 - June 17, 2019
- Expanded support for
- SmartTVs, STBs and other OTT devices
- App detection via is_app and advertised_app_name
- Chromium based browsers
- Digital Assistant devices
- new iOS versions and devices
- Fixed behavior for
- UC Browser User-Agents
- bot, spider and crawler detection
1.11.2.0 - April 17, 2019
Added support for
- new robots, spiders and crawlers
Expanded support for
- SmartTVs, STBs and other OTT devices
- App detection via is_app and advertised_app_name
- Google Assistant based devices
- Chromium based browsers
Fixed behavior for
- bot, spider and crawler detection
1.11.1.0 - February 11, 2019
Added support for
- new robots, spiders and crawlers
- new Chromium and Gecko based browsers
Expanded support for
- App generated UAs on Android and iOS platforms
- App detection via is_app and advertised_app_name
- STBs and other OTT devices
- SmartTVs, STBs and other OTT devices
- Chromium based browsers
- Google Assistant based devices
Fixed behavior for
- is_app and is_app_webview behavior under certain conditions where additional HTTP headers are available
- Android model name extraction for certain User-Agents
- certain Kindle user agents
1.11.0.2 - January 25, 2019
- Added dependency to commons-lang3 together with old commons-lang.
This has been made to try to prevent issue https://issues.apache.org/jira/browse/LANG-626
while preserving backward compatibility as much as possible.
1.11.0.1 - December 20, 2018
- Fixed NullPointerException in method Device.getDeviceRootId() for generic device
1.11.0.0 - December 5, 2018
- Added support for
- new Chromium based browsers
- new virtual capability - pixel_density
- Expanded support for
- app detection via is_app, is_app_webview and advertised_app_name
- Xbox game consoles
- web automation frameworks and libraries
- Internet Explorer and Edge browsers
- Yahoo Mail
- robots, crawlers and spiders
- new Apple devices
- Gmail
- WURFLRequestFactory is not used anymore. WURFLEngine.setWurflRequestFactory is deprecated
- CapabilityHolderFactory and CapabilityHolder are not used anymore. WURFLEngine.setCapabilitiesHolderFactory is deprecated
NOTICE: from version 1.11.0.0 all Java API example application will only provide source code and build files.
1.10.0.0 - September 24, 2018
- Potentially breaking change: Please note that this version standardizes tvOS return values for advertised_device_os and advertised_browser capabilities and aligns them to Apple's branding practices. "TV OS" will henceforth be called "tvOS" and "TV OS App" will be renamed to "tvOS App"
- Added support for
- new Chromium and Gecko based browsers
- Expanded support for
- app detection via is_app, is_app_webview and advertised_app_name
- KaiOS based devices
- PlayStation devices
- Apple TV devices
1.9.5.0 - July 23, 2018
Deprecated UserAgentPriority enum:
- The optional parameter OverrideSideloadedBrowser is used as default in DefaultWURFLRequest constructor.
Setter will have no effect. getter will always return OverrideSideloadedBrowser. It wil be removed in a future release.
- EngineTarget. It will be removed in a future release.
Aligned some return values for the advertised_device_os virtual capability to align with device_os static capability
- "Bada" is now "Bada OS"
- "Nokia Series 40" is now "S40 OS"
- "Symbian" is now "Symbian OS"
Added support for
- Certain Android P user-agents
- Certain TV OS User-Agent formats
- Digital Assistants
- New Opera browser versions
- New Tizen versions
- Upcoming Android and iOS versions
- New tvOS versions
Improved support for is_app capability for SmartTV devices
Expanded app detection support via is_app and advertised_app_name
Optimized model name extraction for certain Android apps that send irregular User-Agent structures
Fixed an issue that caused certain Fire OS webview User-Agents to be misclassified within is_app and is_app_webview
1.9.4.0 - May 21, 2018
1.9.3.2 - April 23, 2018
- Added new virtual capability generalized_os_brand
- Added new virtual capability generalized_browser_type
Version 1.9.3.1 - April 4, 2018
- Fixed Roku regression
- Support for case insensitive headers in WURFLRequest impl.
- Deprecated WURFLRequestFactory and its implementation. Please check Javadoc for more info.
- Deprecated WURFLEngine.getMarkup()
Version 1.9.3.0 - March 19, 2018
Version 1.9.2.0 - December 13, 2017
Added support for
- Upcoming iOS versions
- Upcoming Tizen versions
- Extracting model numbers for desktop devices under certain conditions
Improved detection of
- Opera Mobi and Tablet on Android
- Requests from UCBrowser's U2 engine
Version 1.9.1.1 - November 27, 2017
Version 1.9.1.0 - November 6, 2017
- Breaking: The default version of Android is now 4.0. Undetecteable/corrupted Android User-Agents will now return a more appropriate OS version.
- Added support for
- Upcoming iOS versions
- Upcoming Android versions
- Edge browser on iOS and Android
- Steam in-game requests
- Firefox Focus
- Yandex Desktop
- Improved detection of
- Fire OS
- iPhone hardware
- Apps
- Huawei devices
- Firefox on Android User-Agents
- Android and iOS UCbrowser User-Agents
- Edge browser
- Added additional validation for advertised_device_os
Version 1.9.0.0 - August 25, 2017
- Decommissioning of engine target options
- Improved detection of
- Android
- Bots
- Apps
- Amazon Silk Browser
- CFNetwork User-Agents
- Added support for
- Epiphany detection
- iOS 11
- Samsung Dex
- Samsung Browser
- Tizen 3.0
- Added stripping of non-printable characters from the User-Agent
Version 1.8.4.2
Ehn: Improved various internal object creation
Fix: Exception in Device.getCapabilities()
Fix: virtual capability addition to capability cache in some corner cases
Version 1.8.4.1
- Ehn: aligned default "app_name" value to "Stock Browser" value (was: "stock_browser")
- Fix: loading of entire capability map in device object
- Fix: inconsistency in some virtual capability values
Version 1.8.4.0
- Add: detection of Nintendo Switch
- Add: detection of Email client
- Ehn: improved detection of devices with encoded user agents
- Ehn: updater url check when using proxy settings
- Fix: Android 4.4/5.x mistakenly classified as apps
Version 1.8.3.2
- Fix: advertised_device_os and advertised_device_os_version detection for Palemoon browsers
Version 1.8.3.1
- EHN: various WURFL updater improvements
Version 1.8.3.0
- Add: support for upcoming iOS and Android versions
- Add: support for new Microsoft Edge browsers
- Ehn: detection of some Nintendo devices running Access/Netfront browsers
- Ehn: detection of macOS User-Agents
- Ehn: improved checks on updater module
Version 1.8.2.1
Fix: API loading issue with spring webapps
Version 1.8.2.0
- Add: iOS 10.2 hardware IDs
- Add: new virtual capability - advertised_app_name
- Enh: detection of MSIE browsers with alphanumeric versions
- Enh: UAs originating from Google Search app on iOS
- Enh: support for Microsoft Edge and Opera browsers
- Fix: robot, Kindle and Windows Phone detection
Version 1.8.1.0
- Add: Android 7.1 devices
- Add: Iphone 7 and 7 plus device
- Add: support for Amazon mobile app
- Enh: Refactored virtual capability API
- Enh: Improved is_app virtual capability detection
- Enh: Review of patch file load process
Version 1.8.0.0
- Add: module for automatic WURFL file update
- Add: Support for url-encoded UAs
- Enh: Better iPod Touch detection
- Enh: Better Facebook and Mobile App detection
- Add: Chinese Android detection
- Add: Android 7 (N) detection
- Enh: Mandatory Capabilities are automatically loaded during engine load
- Enh: Major performance improvements
- Fix: bug on applyPatch of GeneralWURFLEngine
- Fix: screen size not properly detected for certain devices
- Add: iOS 10 devices
Version 1.7.1.0
Add: Palemoon Browser detection
Add: Bravia, SmartTV detection
Add: iOS 10 and new iOS devices detection
Add: Desktop App detection
Fix: IIS detection issues
Fix: controlcap mechanism
Version 1.7.0.0
Add: WURFL.XML deviceIds consistency check
Add: New virtual capability: device_name
Enh: Improved detection of Apple devices
Enh: Improved detection Edge browser
Version 1.6.4.1
Fix: Added mandatory capabilities for advertised capabilities
Version 1.6.4.0
Enh: Improved detection of Nokia devices
Enh: Improved detection of Android User-Agents (UAs) without model names
Enh: Improved detection of Certain feature phones running Opera Mini
Enh: Improved detection of SmartTVs
Enh: Improved detection of UAs from Android apps
Enh: Improved detection of Blackberry Playbook
Enh: Improved detection of Bot UAs
Enh: Improved detection of Firefox on iOS
Enh: Improved internal UA matching methods
1.6.3.0
Enh: Improved detection of Apple devices
Enh: Improved detection of Bots
Enh: Improved detection of Androids
Enh: Improved detection of Edge browser
Enh: Improved virtual capability computation for Safari on iOS
Enh: Improved virtual capability computation for Samsung Browser
Enh: Improved virtual capability computation for BlackBerry 10
Enh: Improved virtual capability computation for Mac OS X
Enh: Improved is_app_webview virtual capability computation for Android 5.X
Enh: Improved CFNetwork UAs detection
Version 1.6.2.2
Fix: IsSmartphone virtual capability computation
Version 1.6.2.1
Enh: Improved detection of iPhones
Version 1.6.2.0
Enh: Improved detection in VC tool for MSIE 12/Edge
Enh: Improved detection of Windows Phone
Enh: Improved detection of Bots
Version 1.6.1.0
Enh: Improved detection in VC tool for Baidu browser
Enh: Improved detection in VC tool for iOS
Enh: Improved iOS device detection
Enh: Improved Opera browser detection
Enh: Improved FirefoxOS detection
Version 1.6.0.1
Enh: Improved detection in VC tool for MSIE 12/Edge
Enh: Improved detection of Windows Phone
Enh: Improved detection of Kindle
Enh: Improved detection of SmartTV
Enh: advertised_* virtual capabilities are now computed much faster than before.
Version 1.6.0.0
Add: Android 5.1 support
Add: MSIE 12/Edge 12.0 support
Add: Tizen 2.3 support
Add: Trove Bot detection
Add: Windows Phone 10 support
Add: New is_phone and is_app_webview virtual capabilities
Enh: Improved WURFL detection performances
Enh: Improved detection of Android, CFNetwork, Chromium, Firefox OS, MSIE 12/Edge, Opera, SmartBrowser, SmartTV, UCWebBrowser, Wii
Version 1.5.4b
Add: CFNetwork detection
Enh: Android 5.1 detection
Version 1.5.3.1
Fix: Windows Mobile virtual capabilities detection
Fix: improved BotMatcher Detection matching logic
Version 1.5.3.0
Add: 360 Browser (for Desktop and Android) detection in VC tool
Add: Opera on Android detection in VC tool
Add: Opera on iOS detection in VC tool
Add: iOS 8.1 and 8.2 WURFL hardware IDs
Add: Windows 10 detection
Enh: LD Algorithm Enhancement
Version 1.5.2.1
Enh: improved form_factor virtual capability
Version 1.5.2
Enh: improved detection of:
- Android
- Apple
- Firefox OS
- Internet Explorer
- Opera
- Smart TVs
- Tizen
- Ubuntu OS
- Windows Phone
- Windows RT
Enh: improved existing virtual capabilities
Add: added virtual capabilities:
- complete_device_name : The brand_name, model_name and marketing name (if applicable)
- form_factor : Tablet, Smartphone, Feature Phone, Robot, Desktop, Smart-TV, Other Non-Mobile
Add: added support for iOS 8
Add: added the ability to detect sideloaded browser instead of the device with its stock browser
Version 1.5.1.2
Fix: minor bug related to XML parsing
Version 1.5.1.1
Enh: is_app virtual capability logic has been improved.
Enh: User agent extraction procedure has been refined.
Version 1.5.1
Add: Thunderbird, Microsoft Outlook and MSOffice matching on desktops.
Add: Added recognition for three characters locale inside a user agent.
Enh: Apple devices matching logic has been improved.
Enh: Tweaked Android devices model and version recognition, improved Android matching logic.
Enh: Improved Samsung matching logic.
Enh: Improved LG matching logic.
Enh: Improved Windows Phone matching logic.
Enh: Updated Pantech matching logic.
Enh: Updated XBox matching logic.
Enh: Updated Apple devices matching logic.
Enh: Enhanced Virtual Capability computation logic.
Add: Added mandatory capabilities to be specified when requesting for a particular capability subset.
Version 1.5.0.2
Fix: Opera matcher logic
Version 1.5.0.1
Enh: virtual capabilities heuristic improved for Symbian user-agents
Enh: multi-threading synchronization enhanced
Version 1.5
Add: Capability filter feature
Add: Many more virtual capabilities now available
Enh: New WURFLEngine is now the one and only entry-point interface
Enh: Several matchers improved
Fix: Aligned all matchers with the new specifications
Version 1.4.4
Add: Support for new iOS naming in "device_os" capability
Enh: Android and Firefox version matching
Enh: Opera on Android matching
Enh: XBox user agents matching
Fix: Windows RT recovery ID
Version 1.4.3.1
Fix: HTTP header parsing issue
Version 1.4.3
New: support for WindowsRT, Kindle Fire, XBox and Playstation Vita
Enh: matching of particular Windows Phone, Safari, SmartTV and Maemo UAs
Version 1.4.2.1
Fix: resource unlock failure in particular conditions
Fix: wurfl.xml repository reload failure in non-initialized core conditions
Version 1.4.2
Fix: SmartTV matching of particular UAs
Version 1.4.1
New: added Virtual Capability feature
see net.sourceforge.wurfl.core.Device Javadoc for more details
Version 1.4.0.3
Fix: fixed Mobile Chrome being detected as Desktop web browser
Version 1.4.0.2
Fix: restored servlet context listener capability to retrieve wurfl.zip from
context-relative path (e.g. "WEB-INF/wurfl.zip")
Version 1.4.0.1
Fix: samsung matching of particular UAs
Version 1.4.0
Enh: New minimum Java SDK requirement. Tha minimum Java SDK version required
by WURFL API to be compiled has changed from 1.4 to 1.5
New: Added HighPerformance engine target
New: CacheProvider interface now includes Device getDeviceFromDeviceId(String deviceId);
New: Added Introspector servlet to remotely inspect a running WURFL instance
Enh: Faster, more efficient cache implementation
Enh: Decoupled Spring framework and removed net.sourceforge.wurfl.spring