ScientiaMobile WURFL PHP API Change Log
1.13.0.1 - April 11th, 2024
- Fixed
- Classes that implement MongoDB Persistable now declare an array return type
1.13.0.0 - Feb 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
1.12.11.1 - Dec 6th, 2023
- Updated to be compatible with recent versions of PSR libraries
1.12.11.0 - Oct 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
1.12.10.1 - Sept 1st, 2023
- Fixed "Fatal error: Uncaught TypeError: count()" error for certain SmartTV requests
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
- Potentially breaking change: move to Common Container Interface (PHP FIG PSR-11) from the deprecated container-interop interface
- 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 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
- Expanded support for
- 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
- Dropped support for PHP 7.1, 7.2 and 7.3
- Added support for
- new robots, spiders and crawlers
- custom user-agents for Android, iOS and other platforms
- Added methods:
- HttpRequest::isUaFrozen()
- HttpRequest::headerQuality()
- Expanded support for
- User-Agent Client Hints
- SmartTVs, STBs and other OTT devices
- App detection via is_app and advertised_app_name
Note: Support for User-Agent Client Hints is now turned on by default.
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
1.12.3.3 - October 28, 2021
1.12.3.1 - 1.12.3.2
- Bugfix releases for other WURFL API products
1.12.3.0 - September 29, 2021
- 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
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
- Dropped support for PHP 5.6
- Dropped support for PHP 7.0
- 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
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
1.11.7.1 - May 4, 2020
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
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
Deprecated methods
- UserAgentUtils::getAndroidModel
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
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
Dropped support for PHP 5.4
Deprecated methods:
- The optional parameter $override_sideloaded_browser in
HttpRequest::__construct(array $request_headers, $override_sideloaded_browser_ua = true)
has been deprecated and its TRUE logic will be the standard logic used.
This API will emit E_USER_DEPRECATED if $override_sideloaded_browser is not set to TRUE.
Implementations that use HttpRequest::__construct($request_headers) or
HttpRequest::__construct($request_headers, true) are unaffected.
- WURFLEngine::enableFastDesktopBrowserMatch
- WURFLEngine::disableFastDesktopBrowserMatch
- WURFLEngine::isFastDesktopBrowserMatchEnabled
- AbstractDeviceMatcher::applyConclusiveMatch
- AbstractDeviceMatcher::applyRecoveryMatch
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
Removed --force flag for wurfl-updated command
Fixed an issue that could cause a random AspectException during WURFL loading in daemon mode
1.9.4.0 - May 21, 2018
1.9.3.3 - April 23, 2018
- Added virtual capabilities:
- generalized_browser_type
- generalized_os_brand
- Improved detection of UCWebBrowser
Version 1.9.3.2 - April 9, 2018
- Fixed wurfl_capability_filter reload issues
Version 1.9.3.1 - April 4, 2018
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
Version 1.9.0.0
- 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
- Deprecated methods:
- WURFLEngine::enablePerformanceMode()
- WURFLEngine::enableAccuracyMode()
- WURFLEngine::isPerformanceModeEnabled()
- AndroidMetadata::releaseMap()
- VirtualCapabilityProvider::getObject()
- Fixed Opcache invalidate always increase wasted memory
Version 1.8.4.0
- Added detection of Nintendo Switch
- Added detection of Email client
- Improved detection of devices with encoded user agents
- Fixed Android 4.4/5.x mistakenly classified as apps
- Fixed advertised_os vcap detection for requests from Opera Mini browser
- Deprecated HttpRequest::getUserAgentProfile method
Version 1.8.3.0
- Added support for upcoming iOS and Android versions
- Updated support for Microsoft Edge browsers
- Improved detection of
- some Nintendo devices running Access/Netfront browsers
- macOS User-Agents
- Fixed compatibility for the Redis cache adapter with redis server v2.8.x
Version 1.8.2.1
- Fixed an error with wurfl-updater when snapshot is up-to-date
Version 1.8.2.0
- Added iOS 10.2 hardware IDs
- Added new virtual capability - advertised_app_name
- Improved detection of
- MSIE browsers with alphanumeric versions
- UAs originating from Google Search app on iOS
- Updated support for Microsoft Edge and Opera browsers
- Fixes in robot, Kindle and Windows Phone detection
- Added Redis storage and cache adapter
- Added APCu cache adapter
- Removed deprecated Metadata class properties
- Deprecated APC cache adapter in favor of APCu
- Deprecated class Constant in favor of Api
Version 1.8.1.0
- Added Android 7.1 devices
- Added iPhone 7 and 7 plus device
- Added support for Amazon mobile app
- Improved wurfl-updater script
- Improved device lookup performance
- Review of patch file load process
Version 1.8.0.6
- Improved performance retrieving capabilities and virtual capabilities
- Added an inline cache system to speedup fallback tree generation
- Improved the virtual capability group initialization logic
- Improved the MongoDB adapter
Version 1.8.0.5
- Added warning about missing Snapshot URL
- Improved patch files validation
- Fixed capability to string conversion with boolean
- Fixed bug in MySQL cache adapter
Version 1.8.0.4
- Fixed a Repository exception with wurfl-updater
- Updated composer dev dependencies
Version 1.8.0.3
- Adds UPGRADE documentation
- Improved storage permission check
- Improved performance
- Minor fixes
Version 1.8.0.2
- Improved wurfl-updater script
- Minor fixes
Version 1.8.0.1
[2016.05.23] Version 1.7.1.2
- Fixed wurfl.xml extraction not multi instance safe
- Fixed cache interferes with is_app_webview and advertised vcap values
- Improved WURFL_FileUtils::getTempDir() to return a multi instance safe temporary dir
- Deprecated the WURFL_Request_UserAgentNormalizer_Interface
[2016.04.19] Version 1.7.1.1
- Improved performance detection
- Improved build lock implementation with multiple api's
[2016.04.13] Version 1.7.1.0
- Added detection of:
- Palemoon Browser
- Bravia SmartTV
- iOS 10 and new iOS devices
- Desktop App
- Fixed IIS detection issues
- Fixed controlcap mechanism
- Fixed APC and Memcache storage namespace conflict with multiple api's
[2015.03.29] Version 1.7.0.1
- Fixed PHP 5.3 compatibility
[2015.02.08] Version 1.7.0.0
- Added WURFL.XML deviceIds consistency check
- Improved detection of:
- Apple devices
- Edge browser
- Added new Virtual Capability: device_name
[2015.12.16] Version 1.6.4.2
- Added mandatory capabilities for advertised capabilities
[2015.12.09] Version 1.6.4.1
- Fixed is_phone virtual capability logic
[2015.12.04] Version 1.6.4.0
- Improved detection of:
- Nokia devices
- Android User-Agents (UAs) without model names
- Certain feature phones running Opera Mini
- SmartTVs
- UAs from Android apps
- Blackberry Playbook
- Bot UAs
- Firefox on iOS
- Improved internal UA matching methods
[2015.10.19] Version 1.6.3.0
- Improved detection of:
- CFNetwork
- Android webview
- Google Web Preview and Google Image Proxy bots
- New iPhone/iPad devices
- Certain third party Android browsers
[2015.08.04] Version 1.6.2.0
- Improved detection in VC tool for:
- Improved detection of:
- Windows Phone
- Bots
- CFNetwork
[2015.07.01] Version 1.6.1.0
- Improved detection in VC tool for:
- MSIE 12/Edge
- Baidu browser
- Apple
- Improved detection of:
- Windows Phone
- Kindle
- SmartTV
- Apple
- CFNetwork
- FirefoxOS
- Opera
[2015.04.20] Version 1.6.0.1
- Fixed
- Header sanitize error when Header value is an array (i.e. argv)
[2015.04.01] Version 1.6.0.0
- Added
- Android 5.1 support
- MSIE 12/Edge 12.0 support
- Tizen 2.3 support
- Trove Bot detection
- Windows Phone 10 support
- Improved detection performance
- Improved detection of:
- Android
- CFNetwork
- Chromium
- Firefox OS
- MSIE 12/Edge support
- Opera
- SmartBrowser
- SmartTV
- UCWebBrowser
- Wii
- Added virtual capabilities:
[2014.12.02] Version 1.5.3.0
- Added Opera for Android UA support in VC tool
- Added iOS 8.1 WURFL hardware IDs
- LD Algorithm Enhancement
- Added UC browser on Windows Phone support
[2014.09.22] Version 1.5.2.1
- Improved form_factor capability
- Improved support for Apple devices
[2014.09.02] Version 1.5.2.0
- Improved detection of:
- Android
- Apple
- Firefox OS
- Internet Explorer
- Opera
- Smart TVs
- Tizen
- Ubuntu OS
- Windows Phone
- Windows RT
- Improved existing virtual capabilities
- 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
- Added support for iOS 8
- Added the ability to detect sideloaded browser instead of the device with its stock browser
[2014.04.23] Version 1.5.1.1
- Improved accuracy of is_robot
- Bugfix: auto-reload is not thread safe when lockfile is on a filesystem without flock support
[2014.01.07] Version 1.5.1.0
- Added support in Virtual Capabilities for:
- Internet Explorer 11
- Windows 8.1
- OS extraction for Opera Mini User-Agents
- Improved detection of:
- Android
- Apple iOS
- Xbox One
- Pantech feature phones
- Added new matcher for Desktop Applications
- Optimized matcher order
[2013.10.09] Version 1.5.0.2
- Bugfix: using an old WURFL with MySQL persistence causes infinte loop
[2013.10.07] Version 1.5.0.1
- Bugfix: missing capabilities demo page
[2013.10.03] Version 1.5.0.0
- New Feature: Virtual Capabilities
- Improved normalization
- Improved detection of:
- Android
- Apple iOS
- Windows Phone
- Firefox Mobile
- Firefox OS
- SmartTVs
- BlackBerry
- Skyfire
- Opera Mini
- UCWEB
- Robots
- Native apps
[2013.01.11] Version 1.4.4.0
- Improved detection of Android 4.1+
- Improved detection of Windows RT
- Simplified detection of Firefox desktop
- Improved detection of Xbox console
- Improved detection of Opera Mobi and Opera Tablet
[2012.11.07] Version 1.4.3.0
- Improved detection of Kindle Fire
- Improved detection of Playstation Vita
- Improved detection of Windows Phone
- Improved detection of Windows RT
- Improved detection of Safari desktop browser
- Added Device-Stock-UA support
- Improved detection of Maemo devices
- Improved detection of SmartTVs
- Improved detection of XBOX 360
- Improved detection of Epiphany browser
- Updated WURFL database
[2012.09.04] Version 1.4.2.0
- Improved detection of Mobile Chrome
- Improved detection of Smart TVs
- Improved examples to allow auto-reloading if WURFL data changes
- Bugfix: Improperly normalized filenames on Windows may cause exceptions
[2012.07.30] Version 1.4.1.1
- Bugfix: Some desktop UAs with "toolbar" are detected as robots in HA mode
[2012.04.07] Version 1.4.1
- Bugfix: Invalid definition of WURFL_Storage::save()
- Bugfix: Chrome Beta on Android is not detected properly
- Bugfix: Invalid system temp dir returned from sys_get_temp_dir()
[2012.03.30] Version 1.4.0
- Complete overhaul of all User Agent Handlers
- Improved normalizers
- Added High-Performance vs. High-Accuracy mode
- Added Introspector utility for diagnostics
- Massive code and documentation cleanup
- Added "Secondary Caching" to persistence providers, so memcache and APC can be used
to improve performance of lookups to the persistence provider
- Refactored examples for simplicity
- Changed recommended configuration from XML Config to InMemory config
- Removed the web patch, as it is now integrated with the main WURFL file
[2011.07.19] Version 1.3.1
- Enabled displaying errors in example script
- Updated default wurfl.xml
- Added manual lookup script
- Fixed bug with auto-loading WURFL failure on Solaris (EX flock on RO file failed)
- Improved detection of Tablet PC devices
- Improved detection of Android 2.3 - 3.0 devices
[2011.05.14] 1.3.0
- Documented all classes
- Improved Exceptions
- Bugfix: ArrayConfig can now use relative config file pathnames
- Updated unit tests and phing build file
[2010.10.05]
- Added Storage to replace (Persistence & Cache)
- Added NameSpace support for Memcache and Apc
- Added Normalizers for
- Locale
- SerialNumbers
- Maemo
- Added Handler
- Added Support For Multiple Memcache backend
[2010.05.06]
- Replaced WURFLManagerProvider with WURFLManagerFactory
- Autoreloading Added
[2009.06.01]
- Configuration:
- Changed the "persistance" to "persistence" (N.B a to e) in wurfl-config.xml
- Added Possibilty to specify configuration from an array.(array-wurfl-config.php)
- Normalizers
- Added
- Android
- Chrome
- Opera
- Safari
- MSIE
- Handlers
- Added
- AndroidHandler
- ChromeHandler
- BotCrawlerTranscoderHandler
- Logger
- Removed dependency from the PEAR Log
- Added Custom Logger
- WURFLLoader
- Created a new web_browsers_patch
[2010-06-16]
Added Caching expiration capability