Closed
Bug 784450
Opened 12 years ago
Closed 11 years ago
cnet.com serves simplified mobile site to Firefox Android
Categories
(Web Compatibility :: Site Reports, defect)
Tracking
(Not tracked)
RESOLVED
FIXED
People
(Reporter: lmandel, Assigned: karlcow)
References
()
Details
(Whiteboard: [sitewait] [serversniff] [clientsniff] [country-all])
Attachments
(2 files)
CNet serves simplified mobile content to Fennec resulting in an inferior experience when compared with the stock browser.
Reporter | ||
Comment 1•12 years ago
|
||
Updated•12 years ago
|
Component: Evangelism → Mobile
Product: Firefox for Android → Tech Evangelism
Version: Firefox 15 → unspecified
Comment 2•12 years ago
|
||
Still an issue. https://twitter.com/hallvord/status/361823678234763266
Updated•11 years ago
|
Whiteboard: [sitewait]
Updated•11 years ago
|
Assignee: hsteen → nobody
Status: ASSIGNED → NEW
Assignee | ||
Comment 3•11 years ago
|
||
* Firefox OS Desktop
* Firefox Android lowfi Mobile
* iOS hifi Mobile
# Firefox OS
GET / HTTP/1.1
Accept: */*
Accept-Encoding: gzip, deflate, compress
Host: www.cnet.com
User-Agent: Mozilla/5.0 (Mobile; rv:18.0) Gecko/18.0 Firefox/18.0
HTTP/1.1 200 OK
Cache-Control: max-age=120
Connection: keep-alive
Content-Encoding: gzip
Content-Language: en-US
Content-Length: 19686
Content-Type: text/html; charset=UTF-8
Date: Fri, 22 Nov 2013 18:01:27 GMT
Expires: Fri, 22 Nov 2013 18:02:39 GMT
P3P: CP="CAO DSP COR CURa ADMa DEVa PSAa PSDa IVAi IVDi CONi OUR OTRi IND PHY ONL UNI FIN COM NAV INT DEM STA"
RUM_MAD_SESSION: c
Set-Cookie: mad4=c; Domain=.cnet.com; Path=/;
Set-Cookie: tempSessionId=Cg5gqFKPm/dCz9BmOGg; domain=.cnet.com; path=/; expires=Mon, 20-Nov-2023 18:01:27 GMT
Set-Cookie: arrowLat=1385143287804; domain=.cnet.com; path=/; expires=Sat, 22-Nov-2014 18:01:27 GMT
Set-Cookie: arrowSpc=1; domain=.cnet.com; path=/; expires=Sun, 22-Dec-2013 18:01:27 GMT
Set-Cookie: bkGeo=can; domain=.cnet.com; path=/
Set-Cookie: arrowFdCounter=1; domain=.cnet.com; path=/; expires=Fri, 22-Nov-2013 19:01:27 GMT
Set-Cookie: wsFd=true; domain=.cnet.com; path=/; expires=Sun, 22-Dec-2013 18:01:27 GMT
Vary: X-Purpose
Vary: Accept-Encoding
# Firefox Android
GET / HTTP/1.1
Accept: */*
Accept-Encoding: gzip, deflate, compress
Host: www.cnet.com
User-Agent: Mozilla/5.0 (Android; Mobile; rv:18.0) Gecko/18.0 Firefox/18.0
HTTP/1.1 301 Moved Permanently
Cache-Control: max-age=0, no-cache, no-store
Connection: keep-alive
Connection: Transfer-Encoding
Content-Type: text/html; charset=iso-8859-1
Date: Fri, 22 Nov 2013 18:02:36 GMT
Expires: Thu, 01 Jan 1970 00:00:00 GMT
Location: http://m.cnet.com
Server: Apache
Transfer-Encoding: chunked
Vary: Accept-Encoding
GET / HTTP/1.1
Accept: */*
Accept-Encoding: gzip, deflate, compress
Host: m.cnet.com
User-Agent: Mozilla/5.0 (Android; Mobile; rv:18.0) Gecko/18.0 Firefox/18.0
HTTP/1.1 200 OK
Connection: keep-alive
Content-Encoding: gzip
Content-Type: text/html; charset=utf-8
Date: Fri, 22 Nov 2013 18:03:31 GMT
Server: nginx/1.2.0
Set-Cookie: grd=m1%2C%2C%2C; path=/; expires=Fri, 29 Nov 2013 18:03:31 GMT
X-Powered-By: Express
transfer-encoding: chunked
# iOS
GET / HTTP/1.1
Accept: */*
Accept-Encoding: gzip, deflate, compress
Host: www.cnet.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 301 Moved Permanently
Cache-Control: max-age=0, no-cache, no-store
Connection: keep-alive
Connection: Transfer-Encoding
Content-Type: text/html; charset=iso-8859-1
Date: Fri, 22 Nov 2013 18:03:11 GMT
Expires: Thu, 01 Jan 1970 00:00:00 GMT
Location: http://m.cnet.com
Server: Apache
Transfer-Encoding: chunked
Vary: Accept-Encoding
GET / HTTP/1.1
Accept: */*
Accept-Encoding: gzip, deflate, compress
Host: m.cnet.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
Cache-Control: no-cache, private, no-store, must-revalidate, max-stale=0, post-check=0, pre-check=0
Connection: keep-alive
Content-Encoding: gzip
Content-Length: 1043
Content-Type: text/html; charset=utf-8
Date: Fri, 22 Nov 2013 18:03:59 GMT
Server: nginx/1.2.0
X-Powered-By: Express
The http://m.cnet.com is in fact
* the JS calling the page with xhr when accessed with iOS User Agent or Android Stock Browser (see the markup below)
For example,
d: "iphone"
d: "android"
* the lowfi content with iOS.
So basically there are multiple level of detection. :)
The markup
=========================
<!DOCTYPE html>
<html>
<head>
<meta name="viewport" content="width=device-width, initial-scale=1, maximum-scale=1">
<meta HTTP-EQUIV="CACHE-CONTROL" CONTENT="NO-CACHE">
<meta HTTP-EQUIV="PRAGMA" CONTENT="NO-CACHE">
<title>CNET</title>
<script>var noCookie = false;
function noCookies() {
//alert("no cookie");
if (noCookie) {document.getElementById("nck").style.display = "block";}
}
</script>
</head>
<body onload="noCookies()" style="background: #fff;padding: 1em;">
<noscript>
<p style="color: #900">Oh no! It looks like you don't have JavaScript enabled in your browser.</p>
<p>You may have a better experience if you enable JavaScript.</p>
<a href="/?ds=njs">Click here to continue</a>
</noscript>
<div id="nck" style="display:none">
<p style="color: #900">Oh no! It looks like you don't have cookies enabled in your browser.</p>
<p>Enabling cookies will make for a better experience.</p>
<a href="/?ds=nc">Click here to continue</a>
</div>
<script type="text/javascript">(function(){
var a = navigator.userAgent.toLowerCase(),
dateNow = (new Date()).getTime(),
exp = new Date(dateNow + 86400000),
ckval = "",
url = "/".indexOf("ds=1") >= 0 ? "/" : "/?ds=1",
jsonO = null,
xhr = null;
try {xhr = XMLHttpRequest;}
catch(e){xhr = null;}
try {jsonO = JSON;}
catch(e){jsonO = null;}
var o = {
d: "iphone",
j: jsonO && typeof jsonO.parse === "function" ? 1 : 0,
x: xhr !== null ? 1 : 0,
q: typeof document.querySelectorAll === "function" && typeof document.querySelector === "function" ? 1 : 0,
t: "ontouchstart" in window ? 1 : 0,
hh: "onhashchange" in window ? 1 : 0,
p: window.devicePixelRatio || null,
w: screen.width,
h: screen.height
};
for (var q in o) {
ckval += q + ":" + o[q] + ",";
}
ckval = ckval.slice(0, -1);
document.cookie = "p=" + encodeURIComponent(ckval) + "; expires=" + exp;
if(!document.cookie) {
window.noCookie = true;
}
else {
setTimeout(function(){ window.location.replace(url);}, 100);
}
})();
</script>
</body></html>
Whiteboard: [sitewait] → [sitewait]
Assignee | ||
Comment 4•11 years ago
|
||
Ah no. Not an xhr call but a redirection to /?ds=1
Let's see
GET /?ds=1 HTTP/1.1
Accept: */*
Accept-Encoding: gzip, deflate, compress
Host: m.cnet.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
Connection: keep-alive
Content-Encoding: gzip
Content-Length: 5294
Content-Type: text/html; charset=utf-8
Date: Fri, 22 Nov 2013 18:18:38 GMT
Server: nginx/1.2.0
X-Powered-By: Express
<!DOCTYPE html PUBLIC "-//WAPFORUM//DTD XHTML Mobile 1.2//EN" "http://www.openmobilealliance.org/tech/DTD/xhtml-mobile12.dtd"><html><head><head><title>Home - CNET Mobile</title><meta name="viewport" content="width=device-width, initial-scale=1, maximum-scale=1"/><link rel="canonical" href="http://www.cnet.com/"/><script>var __pageParams__ = {
sid: '1',
siteid: '1',
edid: '4163',
prtnr: 'CNET Networks, Inc.',
ptid: '2000',
onid: '1',
asid: '0',
astId: '1',
astid: '1',
pgnbr: '1',
title: '',
testname: '',
testversion: '',
testgroup: '',
networkId: '8264'
};
[…] etc.
Assignee | ||
Updated•11 years ago
|
Assignee: nobody → kdubost
Whiteboard: [sitewait] → [sitewait] [serversniff] [clientsniff] [country-all]
Assignee | ||
Comment 5•11 years ago
|
||
The person in charge of Platform Infrastructure at CBS Interactive was contacted on 2013-11-22.
Assignee | ||
Updated•11 years ago
|
Status: NEW → ASSIGNED
Assignee | ||
Comment 6•11 years ago
|
||
So things changed a bit.
Now the Web site stays on
http://www.cnet.com/
When a mobile is postively identified there is a cookie: "fly_device" set to "mobile"
identified as mobile.
* Chrome Mobile
* Firefox Android
* Firefox OS
→ http --print=Hh GET http://www.cnet.com/ "User-Agent: Mozilla/5.0 (iPhone; CPU iPhone OS 7_0 like Mac OS X) AppleWebKit/537.51.1 (KHTML, like Gecko) Version/7.0 Mobile/11A465 Safari/9537.53" | grep fly_device
Set-Cookie: fly_device=mobile; expires=Thu, 10-Apr-2014 07:15:31 GMT; path=/; domain=.cnet.com
→ http --print=Hh GET http://www.cnet.com/ "User-Agent: Mozilla/5.0 (Android; Mobile; rv:18.0) Gecko/18.0 Firefox/18.0" | grep fly_device
Set-Cookie: fly_device=mobile; expires=Thu, 10-Apr-2014 07:15:50 GMT; path=/; domain=.cnet.com
→ http --print=Hh GET http://www.cnet.com/ "User-Agent: Mozilla/5.0 (Mobile; rv:18.0) Gecko/18.0 Firefox/18.0" | grep fly_device
Set-Cookie: fly_device=mobile; expires=Thu, 10-Apr-2014 07:16:01 GMT; path=/; domain=.cnet.com
FIXED!
Status: ASSIGNED → RESOLVED
Closed: 11 years ago
Resolution: --- → FIXED
Summary: cnet.com serves simplified mobile site to Fennec → cnet.com serves simplified mobile site to Firefox Android
Updated•6 years ago
|
Product: Tech Evangelism → Web Compatibility
Updated•11 months ago
|
Component: Mobile → Site Reports
You need to log in
before you can comment on or make changes to this bug.
Description
•