Closed Bug 915339 Opened 9 years ago Closed 6 years ago

ABCnews.go.com doesn't send the mobile version to Firefox on Mobile

Categories

(Web Compatibility :: Mobile, defect)

Other
Gonk (Firefox OS)
defect
Not set
normal

Tracking

(Not tracked)

RESOLVED FIXED

People

(Reporter: karlcow, Unassigned)

References

()

Details

(Whiteboard: [mobile-compat-form] [country-us] [clientsniff] [sitewait] [csswebkit][lib-iscroll])

Attachments

(2 files)

Site: http://abcnews.go.com/
ABCnews.go.com doesn't send the mobile version to Firefox on Mobile

:: Steps To Reproduce

0. Choose Firefox OS or Firefox for Android
1. Go to http://abcnews.go.com/


:: Expected Result

Reach the mobile version of the site

:: Actual Result

The desktop content is sent to the device.

:: Additional Information

Software Version: 1.11
Device Information: ZTE roamer2
Reporter's User Agent: Mozilla/5.0 (Macintosh; Intel Mac OS X 10.7; rv:23.0) Gecko/20100101 Firefox/23.0
There is no change for HTTP headers with regards to the User Agent String. The size of the content is the same whatever is the UA. (see below)

The redirection is made on the client side. 
http://a.abcnews.com/assets/js/smartphoneLoad.js?v=4

I guess the redirection is happening at 

> if(navigator.userAgent.match(/Blackberry|iPhone|iPod\//i) || isAndroidMobile) {//revisit with modernizr
>    var url = window.location.toString();
>    if(url.indexOf('/m/')==-1){
>    …



# Firefox for Android

GET / HTTP/1.1
Accept: */*
Accept-Encoding: gzip, deflate, compress
Host: abcnews.go.com
User-Agent: Mozilla/5.0 (Android; Mobile; rv:18.0) Gecko/18.0 Firefox/18.0

HTTP/1.1 200 OK
Accept-Ranges: bytes
Age: 14
Cache-Control: max-age=60
Connection: keep-alive
Content-Length: 119903
Content-Type: text/html;charset=utf-8
Date: Wed, 11 Sep 2013 19:29:09 GMT
From: n7abchwc05.starwave.com
Server: Apache-Coyote/1.1
Via: 1.1 varnish
X-Cache: HIT
X-VG-WebCache: 22
X-Varnish: 286328394 286325928


# Firefox OS

GET / HTTP/1.1
Accept: */*
Accept-Encoding: gzip, deflate, compress
Host: abcnews.go.com
User-Agent: Mozilla/5.0 (Mobile; rv:18.0) Gecko/18.0 Firefox/18.0

HTTP/1.1 200 OK
Accept-Ranges: bytes
Age: 50
Cache-Control: max-age=60
Connection: keep-alive
Content-Length: 119903
Content-Type: text/html;charset=utf-8
Date: Wed, 11 Sep 2013 19:29:36 GMT
From: n7abchwc01.starwave.com
Server: Apache-Coyote/1.1
Via: 1.1 varnish
X-Cache: HIT
X-VG-WebCache: 12
X-Varnish: 2089311176 2089301889


# iPhone

GET / HTTP/1.1
Accept: */*
Accept-Encoding: gzip, deflate, compress
Host: abcnews.go.com
User-Agent: Mozilla/5.0 (iPhone; CPU iPhone OS 5_0 like Mac OS X) AppleWebKit/534.46 (KHTML, like Gecko) Version/5.1 Mobile/9A334 Safari/7534.48.3

HTTP/1.1 200 OK
Accept-Ranges: bytes
Age: 52
Cache-Control: max-age=60
Connection: Keep-Alive
Content-Encoding: gzip
Content-Length: 29220
Content-Type: text/html;charset=utf-8
Date: Wed, 11 Sep 2013 19:30:39 GMT
From: n7abchwc04.starwave.com
Server: Apache-Coyote/1.1
Vary: Accept-Encoding
Via: 1.1 varnish
X-Cache: HIT
X-VG-WebCache: 25
X-Varnish: 1253395183 1253385761
Status: UNCONFIRMED → NEW
Ever confirmed: true
Whiteboard: [mobile-compat-form] → [mobile-compat-form] [country-us] [clientsniff]
The Android part is surprising because the Firefox for Android contains the keyword Android. The detection is happening higher up in the script.

The Firefox for Android is 
"Mozilla/5.0 (Android; Mobile; rv:18.0) Gecko/18.0 Firefox/18.0"

And their script is creating a complicated object for Android.

> var androidUser = new Object();
> androidUser.supportsVideo = false;
> androidUser.userAgentMatch = navigator.userAgent.match(/Android/);
> if(androidUser.userAgentMatch!=null) {
> 	androidUser.userAgentVersion = new RegExp("Android (\\d+(?:\\.\\d+)?)(?:\\.\\d+)?;").exec(navigator.userAgent);
> 	androidUser.osVersionNum = androidUser.userAgentVersion[1];
> 	androidUser.supportsVideo = (parseFloat(androidUser.osVersionNum) >= 2.2)?true:false;//2.2 Froyo or higher
> }

On Firefox for Android all these will fail. Because there is no version number for Android.
Whiteboard: [mobile-compat-form] [country-us] [clientsniff] → [mobile-compat-form] [country-us] [clientsniff] [contactready]
I wonder if they are using Mobile ESP https://wiki.mozilla.org/Compatibility/UADetectionLibraries
Anyway contacted them at http://abcnews.go.com/Site/page?id=3271346&cat=ABCNews.com%20comments
Whiteboard: [mobile-compat-form] [country-us] [clientsniff] [contactready] → [mobile-compat-form] [country-us] [clientsniff] [sitewait]
Attached image abcnewsmobile.png
No answers through the normal communication channels.
BUT testing the mobile version, it doesn't work perfectly either. 
Putting at notcontactready. 
On the attached screenshot we can see that some menus don't get expanded.
A lot of the CSS contains CSS Webkit only.
http://a.abcnews.com/assets/scss/css/phone_web.css?v=1
It doesn't seem consistent. sometimes there are properties with prefix sometimes not.

example:
#mw_hp .list_carousel,#mw_hp .media_carousel {
        -webkit-backface-visibility:hidden;
    -webkit-transform:translate3d(0, 0, 0)}

But the CSS is not the only part being buggy.

It relies on iscroll JS libraries which seem to have also UA sniffing and broken code and mobileScroller which seems to be webKit only.
Flags: needinfo?(miket)
Whiteboard: [mobile-compat-form] [country-us] [clientsniff] [sitewait] → [mobile-compat-form] [country-us] [clientsniff] [sitewait] [csswebkit]
Yep, http://a.abcnews.com/assets/js/iscroll-4.2.2.min.js. 

See https://bugzilla.mozilla.org/show_bug.cgi?id=941076#c1 for more info on iScroll, but the tl;dr is that iScroll 5 is compatibile with Firefox mobile browsers and we should ask them to upgrade.
Whiteboard: [mobile-compat-form] [country-us] [clientsniff] [sitewait] [csswebkit] → [mobile-compat-form] [country-us] [clientsniff] [sitewait] [csswebkit][lib-iscroll]
The site is now responsive. This is fixed. 
Opening another bug for the webkitcss
https://webcompat.com/issues/2216
Status: NEW → RESOLVED
Closed: 6 years ago
Resolution: --- → FIXED
Product: Tech Evangelism → Web Compatibility
You need to log in before you can comment on or make changes to this bug.