JSFiddle - React, Tailwind, and code Playground
HTML
<h1>Does my Tesla have the 2018 Intel (fast) MCU?</h1>
<p id="result" style="font-size: xx-large; font-weight: bold;"></p>
<table>
<thead>
<tr>
<th>Property</th>
<th>2013-2017 MCU value</th>
<th>2018 MCU value</th>
<th>Your value</th>
</tr>
</thead>
<tbody>
<tr>
<th>Navigator.platform</th>
<td>Linux armv7l <!-- https://teslamotorsclub.com/tmc/attachments/8dbf36d4-7a0b-4b7b-b749-dcec9b827135-jpeg.286335/ --> </td>
<td></td>
<td id="platform"></td>
</tr>
<tr>
<th>Navigator.userAgent</th>
<td>Mozilla/5.0 (X11; Linux) Apple WebKit/534.34 (KHTML, like Gecko) QtCarBrowser Safari/534.34</td>
<td>Mozilla/5.0 (X11; Linux x86_64) Apple WebKit/534.34 (KHTML, like Gecko) QtCarBrowser Safari/534.34</td>
<td id="ua"></td>
</tr>
</tbody>
</table>
<h3>(Misc data)</h3>
<dl>
<dt>window.screen</dt>
<dd><pre id="screen"></pre></dd>
<dt>window.devicePixelRatio</dt>
<dd id="devicePixelRatio"></dd>
<dt>window.navigator</dt>
<dd><pre id="navigator"></pre></dd>
</dl>
JavaScript
window.addEventListener("DOMContentLoaded", function( e ) {
var platform = document.getElementById("platform").textContent = window.navigator.platform.trim();
var userAgent = document.getElementById("ua" ).textContent = window.navigator.userAgent.trim();
document.getElementById("screen").textContent = dumpScreen();
document.getElementById("devicePixelRatio").textContent = window.devicePixelRatio;
document.getElementById("navigator").textContent = dumpNavigator();
var result;
if( platform != "Linux armv7l" && userAgent.indexOf("x86_64") > -1 ) {
result = "Yes! You have the S3XY new Intel MCU!";
}
else if( platform == "Linux armv7l" && userAgent.indexOf("x86_64") == -1 ) {
result = "Sorry, you have the slow old and busted Tegra MCU";
}
else {
result = "You're not driving a Tesla, are you?";
}
document.getElementById("result").textContent = result;
} );
function dumpScreen() {
var names = [
'availTop', 'availLeft', 'availHeight', 'availWidth', 'colorDepth', 'height', 'left', 'pixelDepth', 'top', 'width'
];
var s = window.screen;
var temp = {};
for( var i = 0; i < names.length; i++ ) {
var name = names[i];
temp[name] = s[name];
}
temp['orientation'] = (s.orientation || {})['type'];
return JSON.stringify( temp, null, 4 );
}
function dumpNavigator() {
var names = [
'appCodeName',
'appName',
'appVersion',
'battery',
'connection',
'cookieEnabled',
'geolocation',
'hardwareConcurrency',
'javaEnabled',
'language',
'languages',
'mimeTypes',
'onLine',
'oscpu',
'permissions',
'platform',
'plugins',
'product',
'serviceWorker',
'storage',
'userAgent',
'buildID',
'credentials',
'deviceMemory',
'doNotTrack',
'mediaDevices',
'productSub',
'standalone',
'vendor',
'vendorSub'
];
var s = window.navigator;
var temp = {};
for( var i = 0; i < names.length; i++ ) {
var name = names[i];
temp[name] =...