Closed Bug 988761 Opened 9 years ago Closed 4 years ago

youku.com sends desktop site to Firefox OS

Categories

(Web Compatibility :: Mobile, defect, P5)

All
Gonk (Firefox OS)
defect

Tracking

(Not tracked)

RESOLVED WONTFIX

People

(Reporter: yliu, Assigned: yliu)

References

()

Details

(Whiteboard: [country-cn][serversniff][needscontact])

Attachments

(2 files)

Significant difference in source code:
Response sent to Firefox OS has Content-Length: 63650
Response sent to Firefox Android has Content-Length: 12068


Selected HTTP response headers:

Response for: 'Mozilla/5.0 (Mobile; rv:18.1) Gecko/18.1 Firefox/18.1'
Response Status: 200
content-length: 63650
content-type: text/html

Response for: 'Mozilla/5.0 (Android; Mobile; rv:26.0) Gecko/26.0 Firefox/26.0'
Response Status: 200
content-length: 12068
content-type: text/html
Assignee: nobody → yliu
Status: NEW → ASSIGNED
It seems that no mobile devices are receiving anymore any mobile sites.
I guess we could close as INVALID.

Hallvord what do we do for the test in these cases?
Comment out?
Status: ASSIGNED → RESOLVED
Closed: 8 years ago
Flags: needinfo?(hsteen)
Resolution: --- → INVALID
Deleting the test is OK. Should we in some rare case need it again, that's what Git is for - right? :)
Flags: needinfo?(hsteen)
Reopening Chrome Mobile is receiving a mobile site.
Status: RESOLVED → REOPENED
Resolution: INVALID → ---
* Firefox OS is receiving Desktop content
* Firefox Android is receiving Mobile content

We need to contact them.
Whiteboard: [country-cn][serversniff][contactready] → [country-cn][serversniff][needscontact]
Replying to a comment made on an unrelated bug 
https://bugzilla.mozilla.org/show_bug.cgi?id=1164827#c39

> Sorry Karl, I am not that familiar with the UA override mechanism... 
> In https://bugzilla.mozilla.org/show_bug.cgi?id=988761#c4 you 
> mentioned that the Firefox OS is receiving desktop content and we 
> need to contact them. But before Youku make any change, shouldn't 
> we use UA override to force Youku to send Firefox OS the mobile content?

Both.

As I explained in https://bugzilla.mozilla.org/show_bug.cgi?id=1164827#c33

> 1. explain what is the issue
> 2. analyze it and find the source of the issue
> 3. propose a fix for the code
> 4. propose a UA override as a temporary solution and which one.
> 5. demonstrate that the UA override is not breaking anything else. (it's happening often).

The reason for this is that we want to be sure to not introduce other issues with doing UA override. 
Youku is a Web site with a lot of videos and other features. 

If you want to discuss about UA override in general, It would be cool to do it on 
https://groups.google.com/forum/#!forum/mozilla.compatibility

^_^ Hope it helps.
Flags: needinfo?(vchen)
Trying to dig contacts. The Company is "Youku Tudou Inc."
http://c.youku.com/abouteg/youtu
I can't read chinese so Maybe Jack Guo or someone else with Chinese speaking ability can help us find the right contact.
We are now basically receiving something quite similar in terms of content.
Content-Length: 80009
Content-Length: 81723


→ http --print hH http://www.youku.com/ 'User-Agent:Mozilla/5.0 (Android; Mobile; rv:40.0) Gecko/40.0 Firefox/40.0'
GET / HTTP/1.1
Accept: */*
Accept-Encoding: gzip, deflate
Connection: keep-alive
Host: www.youku.com
User-Agent: Mozilla/5.0 (Android; Mobile; rv:40.0) Gecko/40.0 Firefox/40.0

HTTP/1.1 200 OK
Cache-Control: max-age=128
Connection: keep-alive
Content-Encoding: gzip
Content-Length: 80009
Content-Type: text/html; charset=UTF-8
Date: Thu, 11 Jun 2015 03:26:40 GMT
Expires: Thu, 11 Jun 2015 03:28:48 GMT
Last-Modified: Thu, 11 Jun 2015 03:23:46 GMT
Pragma:
Server: Apache
Vary: Accept-Encoding

12:26:40 ~/Sites/la-grange.net/2015/06/11
→ http --print hH http://www.youku.com/ 'User-Agent:Mozilla/5.0 (Mobile; rv:40.0) Gecko/40.0 Firefox/40.0'
GET / HTTP/1.1
Accept: */*
Accept-Encoding: gzip, deflate
Connection: keep-alive
Host: www.youku.com
User-Agent: Mozilla/5.0 (Mobile; rv:40.0) Gecko/40.0 Firefox/40.0

HTTP/1.1 200 OK
Cache-Control: max-age=101
Connection: keep-alive
Content-Encoding: gzip
Content-Length: 81723
Content-Type: text/html; charset=UTF-8
Date: Thu, 11 Jun 2015 03:26:51 GMT
Expires: Thu, 11 Jun 2015 03:28:32 GMT
Last-Modified: Thu, 11 Jun 2015 03:18:42 GMT
Pragma:
Server: Apache
Vary: Accept-Encoding



→ http -b http://www.youku.com/ 'User-Agent:Mozilla/5.0 (Mobile; rv:40.0) Gecko/40.0 Firefox/40.0' > youkufxos.txt;http -b http://www.youku.com/ 'User-Agent:Mozilla/5.0 (Android; Mobile; rv:40.0) Gecko/40.0 Firefox/40.0' > youkufxand.txt

→ diff youkufxand.txt youkufxos.txt 

→ wc -l youkufx*
   14102 youkufxand.txt
   14102 youkufxos.txt

Let's inpect the content:

They are testing the mobile at least here in the main html:

if (!window.location.href.match(/screen=/)){
	if(navigator.userAgent.match(/(Nexus 7|GT-N8000)/i)){
		if(window.location.href.match(/\?/)){
			window.location.href += '&screen=pad';
		}else{
			window.location.href += '?screen=pad';
		}
	}else if(navigator.userAgent.match(/(iphone|Android)/i)){
		if(window.location.href.match(/\?/)){
			window.location.href += '&screen=phone';
		}else{
			window.location.href += '?screen=phone';
		}
	}
}


Also in http://atanx.alicdn.com/t/tanxssp/main.js

  e.isMob = /iphone|ipod|android|blackberry|opera mini|opera mobi|skyfire|maemo|windows phone|palm|iemobile|symbian|symbianos|fennec/i.test(navigator.userAgent.toLowerCase()),


Also in http://static.youku.com/v1.0.1062/cms/js/cmsCommon.js
and probably the one causing us troubles:

(function(){
    OST = {};
    var osType = {
        isWin:'Win',
        isMac:'Mac',
        isSafari:'Safari',
        isChrome:'Chrome',
        isIPAD: 'iPad', 
        isIPHONE: 'iPhone', 
        isIPOD: 'iPod',
        isLEPAD: 'lepad_hls',
        isMIUI: 'MI-ONE',
        isAndroid:'Android',
        isAndroid4: 'Android 4.',
        isAndroid41: 'Android 4.1',
        isSonyDTV: "SonyDTV",
        isBlackBerry:"BlackBerry",
        isMQQBrowser:'MQQBrowser',
        isMobile:'Mobile'
    };
    for(var os in osType){
        if(navigator.userAgent.indexOf(osType[os]) !== -1){
            OST[os] = true;
        }else{
            OST[os] = false;
        }
    }
    OST.isIos = ((OST.isIPAD || OST.isIPHONE || OST.isIPOD) || OST.isMac );
    OST.isPhone = (OST.isIPHONE || OST.isIPOD || (OST.isAndroid&&OST.isMobile));
    OST.isPad = (OST.isIPAD || (OST.isAndroid && !OST.isMobile));
})();

var cms_request_ad = function(url){
	if(!url) return;
	url += "&aw=w";
	if(logPvid){ url += "&sid="+logPvid; };
	if(OST.isPad){ url += "&bt=pad"; }else if(OST.isPhone){ url += "&bt=phone"; };
	if(OST.isIos){ url += "&os=ios"; }else if(OST.isAndroid){ url += "&os=Android"; };
	Nova.addScript(url);
}


This line, where a phone is Mobile AND Android.
    OST.isPhone = (OST.isIPHONE || OST.isIPOD || (OST.isAndroid&&OST.isMobile));

I would change this line by

    OST.isPhone = ( (OST.isMobile && !OST.isIPAD) || OST.isAndroid );

This will catch iOS and Firefox and Android but will exclude iPad. ^_^
There is also a request for doing UA override for youku.com by adding Firefox Android UA.
https://hg.mozilla.org/mozilla-central/file/tip/b2g/app/ua-update.json.in

If someone with Chinese Language skills could test on FIREFOX OS with Firefox ANDROID UA, the Web site and tell us if anything is breaking or if everything is working well that would be nice.
I found at least one issue with layout for Firefox Android UA.
Opened a new bug on Webcompat https://webcompat.com/issues/1238
(In reply to Karl Dubost :karlcow from comment #7)
> We are now basically receiving something quite similar in terms of content.
> Content-Length: 80009
> Content-Length: 81723
Hi Karl:

When Youku using the UA or not, I got the different result with you, see following:

YouKu using UA(\\(Mobile#(Android; Mobile):
GET /v1.0.1062/cms/js/cmsFriends.js HTTP/1.1
Host: static.youku.com
User-Agent: Mozilla/5.0 (Android; Mobile; rv:34.0) Gecko/34.0 Firefox/34.0
Accept: */*
Accept-Language: en-US,en;q=0.5
Accept-Encoding: gzip, deflate
Referer: http://www.youku.com/
Cookie: __ysuid=1433990030909H68; __ali=1433990030909P6l; __aliCount=1; advideo={"adv205987_5": 2, "adv206012_2": 1, "adv206025_1": 1, "adv206025_2": 1}
Connection: keep-alive

HTTP/1.1 200 OK
Expires: Sat, 13 Jun 2015 04:53:39 GMT
Cache-Control: max-age=172800
Vary: Accept-Encoding
Content-Encoding: gzip
Last-Modified: Fri, 27 Feb 2015 09:12:52 GMT
ETag: "3801536812"
Content-Type: text/javascript
Accept-Ranges: bytes
Content-Length: 32796
Date: Thu, 11 Jun 2015 04:53:39 GMT
Server: static.a01.isp

Youku not using UA:
GET /v1.0.1029/cms/img/topic.png HTTP/1.1
Host: static.youku.com
User-Agent: Mozilla/5.0 (Mobile; rv:34.0) Gecko/34.0 Firefox/34.0
Accept: image/png,image/*;q=0.8,*/*;q=0.5
Accept-Language: en-US,en;q=0.5
Accept-Encoding: gzip, deflate
Referer: http://www.youku.com/
Cookie: __ysuid=1433990030909H68; __ali=1433990030909P6l; __aliCount=1; advideo={"adv205987_5": 1, "adv206012_2": 2, "adv206025_1": 2, "adv206025_2": 2}
Connection: keep-alive

HTTP/1.1 200 OK
Expires: Sat, 13 Jun 2015 04:44:00 GMT
Cache-Control: max-age=172800
Content-Type: image/png
Accept-Ranges: bytes
ETag: "2897278961"
Last-Modified: Thu, 05 Mar 2015 02:51:35 GMT
Content-Length: 1154
Date: Thu, 11 Jun 2015 04:44:00 GMT
Server: static.a01.isp

Please help to check, thank you!
Flags: needinfo?(kdubost)
Attached image Youku_mobile.png
Youku using the UA(\\(Mobile#(Android; Mobile)
Attached image Youku_PC.png
Youku not using UA
Hi Lin,

You are not testing the same thing, see your requests: 


(In reply to lin.hui@spreadtrum.com from comment #10)

> YouKu using UA(\\(Mobile#(Android; Mobile):
> GET /v1.0.1062/cms/js/cmsFriends.js HTTP/1.1
> Host: static.youku.com

Here you are requesting, aka a JS file
http://static.youku.com/v1.0.1062/cms/js/cmsFriends.js


> Youku not using UA:
> GET /v1.0.1029/cms/img/topic.png HTTP/1.1
> Host: static.youku.com

And here you are requesting an image
http://static.youku.com/v1.0.1029/cms/img/topic.png
Flags: needinfo?(kdubost)
Priority: -- → P5
Closing as we are not working on Firefox OS anymore.
Status: REOPENED → RESOLVED
Closed: 8 years ago4 years ago
Resolution: --- → WONTFIX
Product: Tech Evangelism → Web Compatibility
You need to log in before you can comment on or make changes to this bug.