-
Notifications
You must be signed in to change notification settings - Fork 43
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
Detect need to check for software updates #409
Comments
How could we programmatically check for that? |
I believe the response code is either a 4XX or 5XX error code |
This issue is detectable as a 577 response. We are currently working on adding this to roku-deploy rokucommunity/roku-deploy#180 |
I'm unable to trigger a 577 http status code response. From my testing, we get a 200 status code from the upload response, with some javascript that trigger showing the message. Here's the response we get: <html>
<head>
<meta charset="utf-8">
<meta name="HandheldFriendly" content="True">
<title> Roku Development Kit </title>
<link rel="stylesheet" type="text/css" media="screen" href="css/global.css" />
</head>
<body>
<div id="root" style="background: #fff">
</div>
<script type="text/javascript" src="css/global.js"></script>
<script type="text/javascript">
// Include core components and resounce bundle (needed)
Shell.resource.set(null, {
endpoints: {}
});
Shell.create('Roku.Event.Key');
Shell.create('Roku.Events.Resize');
Shell.create('Roku.Events.Scroll');
// Create global navigation and render it
var nav = Shell.create('Roku.Nav')
.trigger('Enable standalone and utility mode - hide user menu, shopping cart, and etc.')
.trigger('Use compact footer')
.trigger('Hide footer')
.trigger('Render', document.getElementById('root'))
.trigger('Remove all feature links from header')
// Retrieve main content body node
var node = nav.invoke('Get main body section mounting node');
// Create page container and page header
var container = Shell.create('Roku.Nav.Page.Standard').trigger('Render', node);
node = container.invoke('Get main body node');
container.invoke('Get headline node').innerHTML = 'Failed to check for software update';
// Cannot reach Software Update Server
node.innerHTML = '<p>Please make sure that your Roku device is connected to internet and running most recent software.</p> <p> After connecting to internet, go to system settings and check for software update.</p> ';
var hrDiv = document.createElement('div');
hrDiv.innerHTML = '<hr />';
node.appendChild(hrDiv);
var d = document.createElement('div');
d.innerHTML = '<br />';
node.appendChild(d);
</script>
<div style="display:none">
<font color="red">Please make sure that your Roku device is connected to internet, and running most recent software version (d=951469)</font>
</div>
</body>
</html> And the raw response as javascript in the JS debug console: {
message: 'Successful deploy',
results: {
response: IncomingMessage {
_readableState: [ReadableState],
_events: [Object: null prototype],
_eventsCount: 1,
_maxListeners: undefined,
socket: [Socket],
httpVersionMajor: 1,
httpVersionMinor: 1,
httpVersion: '1.1',
complete: true,
rawHeaders: [Array],
rawTrailers: [],
aborted: false,
upgrade: false,
url: '',
method: null,
statusCode: 200,
statusMessage: 'OK',
client: [Socket],
_consuming: true,
_dumped: false,
req: [ClientRequest],
request: [Request],
toJSON: [Function: responseToJSON],
caseless: [Caseless],
body: '<html>\n' +
'<head>\n' +
' <meta charset="utf-8">\n' +
' <meta name="HandheldFriendly" content="True">\n' +
' <title> Roku Development Kit </title>\n' +
'\n' +
' <link rel="stylesheet" type="text/css" media="screen" href="css/global.css" />\n' +
'</head>\n' +
'<body>\n' +
' <div id="root" style="background: #fff">\n' +
'\n' +
' </div>\n' +
'\n' +
' <script type="text/javascript" src="css/global.js"></script>\n' +
' <script type="text/javascript">\n' +
' \n' +
' // Include core components and resounce bundle (needed)\n' +
' Shell.resource.set(null, {\n' +
' endpoints: {} \n' +
' });\n' +
" Shell.create('Roku.Event.Key');\n" +
" Shell.create('Roku.Events.Resize');\n" +
" Shell.create('Roku.Events.Scroll'); \n" +
' // Create global navigation and render it\n' +
" var nav = Shell.create('Roku.Nav')\n" +
" .trigger('Enable standalone and utility mode - hide user menu, shopping cart, and etc.')\n" +
" .trigger('Use compact footer')\n" +
" .trigger('Hide footer')\n" +
" .trigger('Render', document.getElementById('root'))\n" +
" .trigger('Remove all feature links from header')\n" +
'\n' +
' // Retrieve main content body node\n' +
" var node = nav.invoke('Get main body section mounting node');\n" +
' \n' +
' // Create page container and page header\n' +
" var container = Shell.create('Roku.Nav.Page.Standard').trigger('Render', node);\n" +
" node = container.invoke('Get main body node');\n" +
" container.invoke('Get headline node').innerHTML = 'Failed to check for software update';\n" +
'\t // Cannot reach Software Update Server\n' +
" node.innerHTML = '<p>Please make sure that your Roku device is connected to internet and running most recent software.</p> <p> After connecting to internet, go to system settings and check for software update.</p> ';\n" +
'\n' +
" var hrDiv = document.createElement('div');\n" +
" hrDiv.innerHTML = '<hr />';\n" +
' node.appendChild(hrDiv);\n' +
'\n' +
" var d = document.createElement('div');\n" +
" d.innerHTML = '<br />';\n" +
' node.appendChild(d);\n' +
'\n' +
' </script>\n' +
'\n' +
'\n' +
' <div style="display:none">\n' +
'\n' +
' <font color="red">Please make sure that your Roku device is connected to internet, and running most recent software version (d=952852)</font>\n' +
'\n' +
' </div>\n' +
'\n' +
'</body>\n' +
'</html>\n',
[Symbol(kCapture)]: false,
[Symbol(kHeaders)]: [Object],
[Symbol(kHeadersCount)]: 6,
[Symbol(kTrailers)]: null,
[Symbol(kTrailersCount)]: 0,
[Symbol(RequestTimeout)]: undefined
},
body: '<html>\n' +
'<head>\n' +
' <meta charset="utf-8">\n' +
' <meta name="HandheldFriendly" content="True">\n' +
' <title> Roku Development Kit </title>\n' +
'\n' +
' <link rel="stylesheet" type="text/css" media="screen" href="css/global.css" />\n' +
'</head>\n' +
'<body>\n' +
' <div id="root" style="background: #fff">\n' +
'\n' +
' </div>\n' +
'\n' +
' <script type="text/javascript" src="css/global.js"></script>\n' +
' <script type="text/javascript">\n' +
' \n' +
' // Include core components and resounce bundle (needed)\n' +
' Shell.resource.set(null, {\n' +
' endpoints: {} \n' +
' });\n' +
" Shell.create('Roku.Event.Key');\n" +
" Shell.create('Roku.Events.Resize');\n" +
" Shell.create('Roku.Events.Scroll'); \n" +
' // Create global navigation and render it\n' +
" var nav = Shell.create('Roku.Nav')\n" +
" .trigger('Enable standalone and utility mode - hide user menu, shopping cart, and etc.')\n" +
" .trigger('Use compact footer')\n" +
" .trigger('Hide footer')\n" +
" .trigger('Render', document.getElementById('root'))\n" +
" .trigger('Remove all feature links from header')\n" +
'\n' +
' // Retrieve main content body node\n' +
" var node = nav.invoke('Get main body section mounting node');\n" +
' \n' +
' // Create page container and page header\n' +
" var container = Shell.create('Roku.Nav.Page.Standard').trigger('Render', node);\n" +
" node = container.invoke('Get main body node');\n" +
" container.invoke('Get headline node').innerHTML = 'Failed to check for software update';\n" +
'\t // Cannot reach Software Update Server\n' +
" node.innerHTML = '<p>Please make sure that your Roku device is connected to internet and running most recent software.</p> <p> After connecting to internet, go to system settings and check for software update.</p> ';\n" +
'\n' +
" var hrDiv = document.createElement('div');\n" +
" hrDiv.innerHTML = '<hr />';\n" +
' node.appendChild(hrDiv);\n' +
'\n' +
" var d = document.createElement('div');\n" +
" d.innerHTML = '<br />';\n" +
' node.appendChild(d);\n' +
'\n' +
' </script>\n' +
'\n' +
'\n' +
' <div style="display:none">\n' +
'\n' +
' <font color="red">Please make sure that your Roku device is connected to internet, and running most recent software version (d=952852)</font>\n' +
'\n' +
' </div>\n' +
'\n' +
'</body>\n' +
'</html>\n'
}
} |
Implemented in rokucommunity/roku-debug#204, rokucommunity/roku-deploy#181, and rokucommunity/roku-deploy#180 |
If a Roku hasn't been ran in a while when you first boot it up and try to deploy it will fail because it needs to check for software updates before it will proceed. We should detect this issue and either try to automatically run the update prompt or at least let the developer know why it is failing
The text was updated successfully, but these errors were encountered: