Skip to content

Detect opera as browser in user_agent #1556

@attack68

Description

@attack68

Expected Behavior

user_agent.browser is reported as opera and user_agent.version as 60 when browsing using Opera 60 in MacOs 10.13.5.

@web.route('/test')
def test():
    browser = request.user_agent.browser
    version = request.user_agent.version and int(request.user_agent.version.split('.')[0])
    platform = request.user_agent.platform
    uas = request.user_agent.string
    jsonify(dict(browser=browser, version=version, platform=platform, uas=uas))

Actual Behavior

When using Opera the report is as follows (note the 'OPR/60'):

{
  "browser": "chrome", 
  "platform": "macos", 
  "uas": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_13_5) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/73.0.3683.103 Safari/537.36 OPR/60.0.3255.95", 
  "version": 73
}

When using Chrome the report is:

{
  "browser": "chrome", 
  "platform": "macos", 
  "uas": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_13_5) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/74.0.3729.169 Safari/537.36", 
  "version": 74
}

Environment

  • Python version: 3.7.0
  • Flask version: 1.0.2
  • Werkzeug version: 0.14.1

Metadata

Metadata

Assignees

No one assigned

    Type

    No type
    No fields configured for issues without a type.

    Projects

    No projects

    Milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions