The Perl Toolchain Summit needs more sponsors. If your company depends on Perl, please support this very important event.
Revision history for Perl extension HTTP::BrowserDetect.

2.07 2015-11-18 23:52:07 America/Toronto
    - Strip off anything Google Translate adds to UserAgent before parsing
      (Marco Fontani)

2.06 2015-11-15 10:59:30 America/Toronto
    - Detect more Edge versions (Marco Fontani)

2.05 2015-07-29 12:36:01 America/Toronto
    - Add Microsoft Windowns 10/Windows Phone 10 Edge Browser (Atsushi Kato)

2.04 2015-06-24 23:26:28 America/Toronto
    - Fix test failures on Perl 5.8

2.03 2015-06-19 09:59:45 America/Toronto
    - Add win8_1 method (Daniel Stadie)

2.02 2015-06-17 18:18:17 America/Toronto
    - Default to using an empty string if an undef UA is provided (ben hengst)

2.01 2015-04-24 23:05:13 America/Toronto
    - Handle "CriOS" entries correctly (andrewmoise)
    - Only detect java when no browser is detected, and make UCBrowser a
      detected browser (andrewmoise)
    - Detect "tablet" on Kindle Fire (and Chrome on Android tablets in general)
      (andrewmoise)
    - Distinguish Android tablets in device_string (andrewmoise)
    - Handle CriOS, rubylib, golib, and Dalvik (andrewmoise)
    - Detect "Mobilesafari/" as Mobile Safari (andrewmoise)
    - Detect "Windows 2000" as Win2k (andrewmoise)
    - Only detect NCR Unix on word boundary (andrewmoise)
    - Try tighter detection of robot names based on fragments (andrewmoise)
    - Fix java detection to be more strict (andrewmoise)
    - Fix up Android tablet detection (andrewmoise)
    - Add proper detection for old Windows versions in Opera (andrewmoise)
    - Add apache http client detection (andrewmoise)
    - Fix detection of SCO Unix to trigger fewer false positives (andrewmoise)
    - Correct detection of (most) robots based on "+http://blah" (andrewmoise)

2.00 2015-03-30 21:46:25 America/Toronto
    - Standardize interface:
        browser         ()
        device     X    _string()
        engine          _version(), _major(), _minor(), _beta()
        os
        robot
      (andrewmoise)
    - Add Galeon, Seamonkey, and Epiphany as specifically detected
      browsers (andrewmoise)
    - Some internal changes that make things simpler and faster
      (andrewmoise)
    - Remove the $check argument (e.g. $ua->beta('.45') to check
      whether the beta version is ".45") (andrewmoise)
    - Update and reorganize documentation (andrewmoise)
    - Breaking Change: remove deprecated user_agent($arg) usage.
      This is the reason for the major version bump.

1.78 2015-03-17 22:43:27 America/Toronto
    - Reorganize documentation (andrewmoise)
    - Make java a robot with the other libs and tools (andrewmoise)
    - Add a "lib" test to detect libs and tools (andrewmoise)
    - Add AppleCoreMedia (andrewmoise)
    - Make Blackberry stop setting Safari tests (andrewmoise)
    - Make Android stop setting Linux tests (andrewmoise)
    - Implement much more engine detection and engine version
      detection (andrewmoise)

1.77 2015-03-08 12:06:17 America/Toronto
    - Switch to using strings for version numbers (andrewmoise)
    - Adds BrowseX and Silk detection (andrewmoise)
    - Makes detection of Obigo more consistent (andrewmoise)

1.76 2015-03-03 22:56:25 America/Toronto
    - Encourage use of public_* and engine_* over version(), major() and
      minor().
    - Speed optimizations (andrewmoise)
    - Fix warnings on "Safari/12x.x (andrewmoise)

1.75 2014-08-27 17:55:01 America/Toronto
    - Adds detection for Chrome OS (Douglas Christopher Wilson)

1.74 2014-08-27 10:32:16 America/Toronto
    -  Adds detection for Majestic-12 bot (Douglas Christopher Wilson)

1.73 2014-08-15 23:50:42 America/Toronto
    - Adds minimum Perl version
    - dzil tweaks to make CPANTS happier

1.72 2014-06-18 23:34:27 America/Toronto
    - Remove File::Slurp from tests in favour of Path::Tiny

1.71 2014-05-19 22:38:52 America/Toronto
    - Fixes warnings on "frakenagent" (Douglas Christopher Wilson)

1.70 2014-03-27 12:16:12 America/Toronto
    - Add new UA tests & avoid false positive Sun match on Samsung (Jon Jensen)

1.69 2014-02-05 21:56:27 America/Toronto
    - Adds detection for BlackBerry 10 devices (Douglas Christopher Wilson)

1.68 2014-01-26 23:05:14 America/Toronto
    - Adds Yandex & Ahrefs bots (Perlover)

1.67 2014-01-22 16:18:36 America/Toronto
    - Adds detection for tablet Firefox OS (Douglas Christopher Wilson)

1.66 2013-12-17 11:37:20 America/Toronto
    - Adds detection for IE Compatibility View (Douglas Christopher Wilson)

1.65 2013-12-10 21:08:07 America/Toronto
    - Adds os_version for FireFox in OS X (Hao Wu)

1.64 2013-11-25 10:10:23 America/Toronto
    - Adds detection for Opera 15+ (Douglas Christopher Wilson)

1.63 2013-11-21 21:39:46 America/Toronto
    - Adds detection for Internet Explorer 11 (Douglas Christopher Wilson)
    - Adds detection for Windows 8.1 (Douglas Christopher Wilson)

1.62 2013-10-25 14:40:57 America/Toronto
    - Returns explicit undef more consistently (David Ihnen)

1.61 2013-09-06 15:47:57 America/Toronto
    - Reverts a commit that was causing a test to fail when a warning about
      File::Slurp was detected

1.60 2013-08-29 23:02:13 America/Toronto
    - Fixes bug where "Linux" rather than "Android" was returned as os_string
      for Android devices.

1.59 2013-08-18 00:38:21 America/Toronto
    - Revert 1.57's behaviour of returning a robot name in browser_string.
    - Fix bug where OS X identied as just Mac in os_string.
    - Add linkchecker, YandexImages and archive.org_bot bots.
    - Add undocumented os_version() for OS X, winPhone, Android, iOS, Firefox
      OS.

1.58 2013-08-16 23:37:23 America/Toronto
    - Break up parsing into smaller chunks.
    - Return better names for Googlebot News, Images and Video.
    - Fix bug where Yahoo! Slurp reported as Firefox.

1.57 2013-08-16 01:21:35 America/Toronto
    - Make internals a little less quirky.
    - Stop returning explicit undef for browser_string and os_string.  (Why
      would you ever call these in list context?)
    - Return name of robot for browser_string when browser is, in fact, a bot.
      Previous behaviour was to return undef or something just really wrong.

1.56 2013-08-15 01:02:32 America/Toronto
    - Adds experimental and undocumented robot_name method.

1.55 2013-07-22 23:06:40 America/Toronto
    - Add all current Google robot user agents (Douglas Christopher Wilson)

1.54 2013-07-21
    - Fix generic version parsing not to cross whitespace (Douglas Christopher
      Wilson)
    - Compare Safari build numbers by parts instead of floats (Douglas
      Christopher Wilson)
    - Removes Exporter

1.53 2013-07-19
    - Detect IE on ARM as tablet (Douglas Christopher Wilson)
    - Add BlackBerry PlayBook detection (Douglas Christopher Wilson)
    - Split version parsing into two expressions (Douglas Christopher Wilson)

1.52 2013-05-03
    - Fixes warning when MSIE does not have a minor version
    - Simplifies MSIE version regex logic
    - Removes a test for AskJeeves browser

1.51 2013-04-25
    - Adds Android tablet detection (yeahoffline <frank.gasser@gmail.com>)

1.50 2013-03-01
    - Adds Firefox OS detection (Douglas Christopher Wilson)

1.49 2013-02-27
    - Fixes language/country detectio for Safari (Douglas Christopher Wilson)

1.48 2013-02-26
    - Adds Obigo browser detection (Douglas Christopher Wilson)

1.47 2012-12-10
    - Distinguishes version of Windows Phone (Douglas Christopher Wilson)
    - Enables warnings and traps warnings in tests (Douglas Christopher Wilson)

1.46 2012-12-05
    - Add Windows 8 detection (Douglas Christopher Wilson)

1.45 2012-12-02
    - Removes Data::Dump from deps
    - Supports Windows Phone 8.0 devices (Douglas Christopher Wilson)
    - Fixes mistaken WAP detection for Nokia Windows Phones
    - Fixes warnings on browser version when running under -w (Aran Deltac)

1.44 2012-05-03
    - Fixes "sort (...) interpreted as function" introduced in 1.43, which was
      causing tests to fail

1.43 2012-05-02
    - Sorts keys when iterating for consistency across Perl implementations (Thom Blake)

1.42 2012-03-01
    - Adds bot detection for askjeeves, baidu and googleadsbot (Bill Rhodes)

1.41 2012-01-19
    - Exposes test categorization via our (Olivier Bilodeau)

1.40 2012-01-05
    - Fixes false positive results for RealPlayer browser (John Oatis)

1.39 2011-12-01
    - Adds logical groupings of test cases BrowserDetect.pm (Olivier Bilodeau)
    - Fixes win-based device names (Olivier Bilodeau)

1.38 2011-11-30
    - Ensures that all methods return undef where advertised (Ronald J. Kimball)

1.37 2011-11-29
    - Adds nintendo mobile browsers (Nintendo DSi, Nintendo 3DS) (cho45)
    - Adds kindle, dsi, n3ds to device and device_name methods

1.36 2011-11-07
    - Tweaks detection of Yahoo robot (Atsushi Kato)

1.35 2011-11-02
    - Fixes false positive for bot() with Puffin browser (Atsushi Kato)

1.34 2011-10-24
    - Adds BlackBerry to the list of possible return values of browser_string()
      (John Oatis)

1.33 2011-10-15
    - Adds detections for the Trident engine (Douglas Christopher Wilson)

1.32 2011-10-12
    - Fixes RealPlayer false positives (John Oatis)

1.31 2011-10-12
    - Adds detection and device name for Windows Phone (Douglas Christopher Wilson)

1.30 2011-09-15
    - Tweaks language regexes to reduce false positives

1.29 2011-09-01
    - Adds ios method for ipod, ipad and iphone (os_string returns "iOS")

1.28 2011-08-31
    - Adds ie9 and ie10 methods (Douglas Christopher Wilson)

1.27 2011-08-30
    - Google and MSN mobile bots are now detected as mobile agents (Uwe Voelker)

1.26 2011-07-12
    - Fixes Pod typo

1.25 2011-07-12
    - Fix warnings about iceweasel test being defined twice (Paul Findlay)
    - Adds Opera Tablet to mobile devices (Jacob Rask)

1.24 2011-05-13
    - Removes dependency on Modern::Perl, which was accidentally introduced
      (Yoshiki Kurihara)

1.23 2011-05-02
    - Adds a browser_properties() call that exposes all the browser
      "properties" (Olivier Bilodeau)
    - Fixes issues where a Chrome string would return 1 to a ->nav45up check
      (Olivier Bilodeau)
    - Fixes issue where some WebKit/KHTML browsers returned 1 on ->gecko
      (Olivier Bilodeau)
    - Adds wince method (Windows CE) (Olivier Bilodeau)
    - Now detects Java UserAgent as a robot (Graham Barr)
    - Now detects Jakarta Commons-HttpClient as a Java client (Graham Barr)
    - UserAgent tests moved from YAML to JSON
    - Moves issue tracking to Github
    - Dist now includes META.json rather than META.yaml

1.22 2011-03-10
    - Adds Namoroka to list of Firefox browsers (Viacheslav Tykhanovskyi)

1.21 2010-12-23
    - Test suite now uses YAML rather than YAML::Tiny as YAML::Tiny 1.46
      refuses to load useragents.yaml
    - Alphabetically re-ordered some of the documentation

1.20 2010-11-23
    - Be a little more selective in marking ua as robot when contains search
      or seek (Graham Barr)
    - Add facebook crawler as a robot (Graham Barr) (Enrico Sorcinelli)

1.19 2010-09-24
    - Added support for WebOS (Jesse Thompson) RT #61437

1.18 2010-09-06
    - Added support for Netfront and Safari on Kindle

1.17 2010-08-28
    - Added support for Mobile Safari, Links and Elinks (Jon Jensen)
    - Added more UserAgents to test suite (Jon Jensen)

1.16 2010-08-19
    - Added support for the < 3.0 Safari public versions (Jon Jensen)
    - Added new UserAgents to useragents.yaml (Jon Jensen)

1.15 2010-08-18
    - Re-releasing after some folders unintentionally included in build

1.14 2010-08-18
    - Fixed uninitialized value warnings for Safari (Heiko Weber) RT #60440

1.13 2010-08-10
    - Firefox Mobile (Fennec) is now detected as mobile RT #60186 (Jacob Rask)
    - Double digit Opera version #s now detected correctly RT #50717, #59817

1.12 2010-08-01
    - Added msn and msnmobile (Luke Saunders: f5c87a17b8fa2b09e294)
    - Added googlemobile (Luke Saunders: ec28d49d7218b43788b9)
    - SymbOS and Opera Mobi added to mobile detection RT #59817 (Jacob Rask)
    - Distribution is now managed with Dist::Zilla

1.11 2010-06-03
    - Added ps3 and psp (commit 85a619c9a977c0a8e403) (Alexey Surikov)

1.10 2010-05-05
    - Google toolbar no longer triggers false positive for Googlebot (Jay
      Rifkin)

1.09 2010-04-04
    - Better language detection (commit
      68025ca1a58afa1db9b4eeffe8c246d129825cc0) (Maroš Kollár)

1.08 2010-03-19
    - Added ipad(), device() and device_name() methods

1.07 2010-02-10
    - Added realplayer() and _realplayer_version() methods RT #52355 (Marc
      Sebastian Pelzer)
    - Added engine_string(), engine_version(), engine_major(), engine_minor()
      methods
    - Added Windows 7 detection (commit
      73795d8189faded8b07717e55488f128eaa00752) (Alexey Surikov)
    - Added public_version(), public_major() and public_minor() methods

1.06 2009-11-24
    - Added missing file t/useragents.yaml to MANIFEST

1.05 2009-11-23
    - Fixed RT #31847 (Mike Clarke) SCO/Unix false positives

1.04 2009-11-23
    - Moved test config to a YAML file
    - Added language() method
    - Added iphone() method
    - Added ipod() method
    - Added android() method
    - Fixed RT #12259 (guest) Netscape 6 version detection
    - Fixed RT #52007 (Josh Ritter) Chrome browser false positives
    - Added country() method

1.03 2009-10-24
    - Added mobile() method with support for various handsets (Richard Noble)
    - perltidied source

1.02 2009-10-21
    - Fixed RT #48727 (Robin Smidsrod)
        - Made "KHTML, like Gecko" not match gecko
        - Properly detect Safari version >4.0

1.01 2009-10-20
    - Switched to Module::Build from ExtUtils::MakeMaker
    - Re-organized file structure
    - Re-organized tests and expanded coverage to check major and minor
      methods
    - Manually added patch for Iceweasel from RT #41263 (merlynkline)
    - Added test for RT #41541 and RT #41263 (merlynkline)
    - curl added back to list of supported browsers RT #27878 (RT #Toni
      Cebrián)
    - Added test for RT #8547 (Steve Purkis)
    - Added test for RT #30705 (david.hilton.p)
    - Applied patch and added test for RT #7443

1.00 2009-10-19
    - Applied patch from RT #47271 (Denis F. Latypoff), which adds support for
      Chrome
    - Have moved repository to GitHub

0.99 2007-02-22
    - Modifications by Peter Walsham
    - Added support for Windows Server 2003 and Windows Vista

0.98 2004-06-21
    - Added more browsers including Mozilla, Firefox, Safari
    - added Mac OS X, WinXP, Win2k detection
    - added more test cases

0.962 2001-01-31
    - changed how minor() method to return minor version as a floating point
    - added additional browsers
    - added additional 'up' methods
    - added detection for mobile devices: wap, avantgo, audrey, etc.
    - added netscape 6 detection and gecko
    - added Windows ME detection
    - updated url to javascript browser sniffer page

0.95 2000-08-04
    - added additional browsers

0.94 2000-03-19
    - changed copyright notice
    - changed object's internal structure
    - added Windows 2000 detection
    - eliminated AUTOLOAD subroutine

0.92 2000-02-07
    - fixed version numbering problem, would return '.' instead of undef if
      useragent's version couldn't be found
    - added more detection for AOL

0.9 1999-02-17
    - original version; created by h2xs 1.18