New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Android 8 + Pixel phone user agent string incompatibility #1563

Closed
fabriciomurta opened this Issue Oct 14, 2017 · 2 comments

Comments

Projects
None yet
1 participant
@fabriciomurta
Contributor

fabriciomurta commented Oct 14, 2017

Found: 4.4.1
Ext.NET forum thread; Ext classic fails to load on Pixel Phone/Oreo
Sencha forum thread: [Android Oreo Chrome with ExtJs 6.5.1] Browser detected as Opera

Phones from the Pixel brand, after updated to android 8 (Oreo) produce a user-agent browser string on their default browser that breaks ExtJS's browser detection.

The meta user-agent string provided from the phone is:

Mozilla/5.0 (Linux; Android 8.0.0; Pixel Build/OPR3.170623.008) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/61.0.3163.98 Mobile Safari/537.36

The Pixel Build/OPR3 part confuses a weak regex match in ExtJS which breaks the code. Mostly, ExtJS matches against a regexp that matches the OPR3 bit, and then crops the string by a different regexp, which does not match the OPR3.170623... part. So it throws a javascript error in a very early stage of the page load in ExtJS.

@fabriciomurta fabriciomurta added this to the 4.x milestone Oct 14, 2017

@fabriciomurta fabriciomurta self-assigned this Oct 14, 2017

@fabriciomurta

This comment has been minimized.

Show comment
Hide comment
@fabriciomurta

fabriciomurta Oct 14, 2017

Contributor

This issue can be reproduced using google chrome if you manipulate the user-agent header with developer tools. To do so:

  1. open developer tools (F12)
  2. click the "..." menu of the developer tools
  3. choose "more tools"
  4. choose "network conditions"
  5. Paste the user-agent string in the text field
  6. open any Ext.NET-powered page.
Contributor

fabriciomurta commented Oct 14, 2017

This issue can be reproduced using google chrome if you manipulate the user-agent header with developer tools. To do so:

  1. open developer tools (F12)
  2. click the "..." menu of the developer tools
  3. choose "more tools"
  4. choose "network conditions"
  5. Paste the user-agent string in the text field
  6. open any Ext.NET-powered page.

@fabriciomurta fabriciomurta modified the milestones: 4.x, 4.5.0 Oct 14, 2017

@fabriciomurta

This comment has been minimized.

Show comment
Hide comment
@fabriciomurta

fabriciomurta Oct 14, 2017

Contributor

Now the inner and outer match regexps against opera browser are equal, not matching the android 8 user agent line (the inside match took precedence).

This has been documented and should be applied directly to the ExtJS files every ExtJS release until they fix the issue from their own.

Contributor

fabriciomurta commented Oct 14, 2017

Now the inner and outer match regexps against opera browser are equal, not matching the android 8 user agent line (the inside match took precedence).

This has been documented and should be applied directly to the ExtJS files every ExtJS release until they fix the issue from their own.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment