ScientiaMobile WURFL PHP API Change Log

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

  • Expanded support for
    • iOS versions and devices

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
    • 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
  • 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

  • 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
  • Removed deprecated methods:

    • AndroidMetadata::releaseMap
    • HttpRequest::getUserAgentProfile
    • VirtualCapabilityProvider::getObject
    • VirtualCapabilityProvider::getRequiredCapabilities

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

  • Fixed Roku regression

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

  • MongoDB: Fixed exception "document to insert contains invalid key" with mongodb driver > 1.2.6

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
    • added clear cache option
  • 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

  • Support for url-encoded UAs
  • Better iPod Touch detection
  • Better Facebook and Mobile App detection
  • Added Chinese Android detection
  • Added Android 7 detection
  • Added iOS 10 detection
  • Mandatory Capabilities are automatically loaded during engine load

  • Dropped support for PHP 5.3

  • Implemented standard interfaces:
    • PSR3 psr/log
    • PSR6 psr/cache
    • container-interop
  • Added SQLite storage and cache adapter
  • Added MySQL storage and cache adapter
  • Added MongoDB storage and cache adapter
  • Added WURFL updater

[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:
    • MSIE 12/Edge
  • 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:
    • is_phone
    • is_app_webview

[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
    • MaemoHandler
  • 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
    • Added A WURFLReloader
  • Created a new web_browsers_patch

[2010-06-16]

Added Caching expiration capability