ScientiaMobile WURFL Java API Change Log

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
    • Android User-Agents

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

  • Added support for

    • Upcoming iOS versions
    • MIUI Browser
    • Quark Browser
    • Avast Secure
  • Improved support for

    • Apple iPad (6th gen)
    • Sony and Vizio Smart TVs
    • Roku devices
    • App name detection (advertised_app_name)
    • Microsoft Office
    • Yandex browser
    • Baidu Browser
    • Apple Core Media User-Agents
    • Facebook Messenger
  • Deprecated getAllMandatoryCapabilities() of WURFLEngine implementation - since 1.8.0.0 wurfl engine takes care of loading/checking that vcap needed static capabilities are present.

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

  • Potentially breaking change: The definition of what we consider smartphones is changing with this release. Please read this article for more details on what is changing and why - https://www.scientiamobile.com/keeping-smartphones-smart

  • Added support for

    • KaiOS
    • Tizen 4.0
    • Some Android media players
  • Improved detection of

    • Robots and Crawlers
    • Mobile and desktop applications
    • Smart-TVs
    • SmartPhones
    • Game consoles

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

  • Improved engine loading

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