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.