0
votes

Opera user agent "Mozilla/5.0 (Windows NT 6.1; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/38.0.2125.104 Safari/537.36 OPR/25.0.1614.63" defined as "Chrome" on server side.

I wanted to override creation of object Request.Browser and added a file "opera.browser" to a folder "App_Browsers":

<browsers>
   <browser id="Opera" parentID="Chrome">
      <identification>
         <userAgent match="OPR/(?'version'(?'major'\d+)(\.(?'minor'\d+)?)\w*)" />
      </identification>

      <capabilities>
         <capability name="browser" value="Opera" />
         <capability name="majorversion" value="${major}" />
         <capability name="minorversion" value="${minor}" />
         <capability name="type" value="Opera${major}" />
         <capability name="version" value="${version}" />
      </capabilities>
   </browser>
</browsers>

But Regex not working and Request.Browser.Browser still defined as "Chrome".

2
I have tried this, it is working fine, make sure when you request from browser, spoof the useragent to required one.Arindam Nayak
It's working strange, if You'll try to switch useragent from Opera to Chrome, object Request.Browser will be cached for both browsers.Aleksey Mynkov

2 Answers

1
votes

You can set the user agent manually by

HttpContext.SetOverriddenBrowser("Some browser");

And if you want to clear the override simply do

HttpContext.ClearOverriddenBrowser();
0
votes

You also have to update the chrome.browser (and possibly mozilla.browser) to not match that regex.