I have to deploy about 300 of these, so to make it easier on the stores they will go in I am trying to use enterprise kiosk mode on ASUS chromebits to host this. I created a quick little hosted app to accomplish this:
{
"name": "<myapp>",
"description": "My Concerto App",
"version":"0.1",
"manifest_version":2,
"app": {
"urls": [
"*://<url>/frontend/"
],
"launch": {
"web_url": "<url>/frontend/"
}
},
"icons": {
"128": "128.png"
},
"permissions": [
"unlimitedStorage",
"notifications"
]
}
The problem is that whenever the chromebit loses power, the screen that comes up gives a new unique ID rather than keeping it's previous configuration.
Since this doesn't happen when not in Kiosk mode, I'm assuming that kiosk mode does something on each restart that normal chrome does not, like flush all cookies or generate a new ID for itself.
Power loss is infrequent, but when multiplied by 300 it will generate a fair amount of work to re-associate the new codes each time.
My question is this:
Is there anything I can add to my app code to change this behavior to allow the identity of the kiosk app to be persistent across reboots? Enterprise management? Backend chromeOS settings?
And can anyone explain why this is happening only in kiosk mode?
Thanks for your help.
--
--
Chromium Developers mailing list: chromi...@chromium.org
View archives, change email options, or unsubscribe:
http://groups.google.com/a/chromium.org/group/chromium-dev
Thank you! I wish I understood how the 6 digit codes were created, I'm having a hard time figuring it out since I don't have any experience with Ruby. The code doesn't make sense to me (I'm used to languages like Java and PHP) https://github.com/concerto/concerto
The suggestion of creating a support ticket on this is a good one, I need to reach out to my Rep and find out what my official support channel is.
{
"name":"BaseCampDSS",
"version":"0.4",
"manifest_version":2,
"minimum_chrome_version":"37.0.0.0",
"permissions":
[
"webview",
"fullscreen",
"power",
"storage",
"<all_urls>",
"videoCapture",
"geolocation",
"pointerLock",
"system.display",
{"fileSystem":
[
"write",
"retainEntries",
"directory"
]
},
"accessibilityFeatures.read",
"accessibilityFeatures.modify"
],
"app":
{"background":
{"scripts":
[
"js/foam.js",
"js/cab.js",
"config.js",
"background_main.js"
]
}
},
"kiosk_enabled":true,
"default_locale":"en",
"icons":{"128":"img/128.png"}}
/**
* Creates the window for the application.
*
* @see http://developer.chrome.com/trunk/apps/app.window.html
*/
var runApp = function() {
if (chrome.power) {
chrome.power.requestKeepAwake('display');
}
console.log(config);
chrome.app.window.create(
config ?
'exported_app_view.html' :
'designer_view.html',
{
state: "fullscreen"
},
function(win) {
if (!this.X) { return; }
var window = win.contentWindow;
window.onload = function() {
this.$addWindow(window);
var Y = this.X.subWindow(window, 'Kiosk Designer Window');
this.DOM.init(Y);
}.bind(this);
win.onClosed.addListener(function() {
this.$removeWindow(window);
}.bind(this));
}.bind(this));
}.bind(this);
/**
* Listens for the app launching then creates the window
*
* @see http://developer.chrome.com/trunk/apps/app.runtime.html
* @see http://developer.chrome.com/trunk/apps/app.window.html
*/
chrome.app.runtime.onLaunched.addListener(function() {
runApp();
});
/**
* Listens for the app restarting then re-creates the window.
*
* @see http://developer.chrome.com/trunk/apps/app.runtime.html
*/
chrome.app.runtime.onRestarted.addListener(function() {
runApp();
});
<p class="center" style="font-size: 4em; font-family: Courier New, monospace; line-height: 1em;">
<%# The following span is used to identify this page to the javscript. %>
<span id="screen_temp_token"><strong><%= @temp_token %></strong></span>
</p>
Rails.logger.debug "Starting #{File.basename(__FILE__)} at #{Time.now.to_s}"
secret_token = ENV['SECRET_TOKEN']
if secret_token.blank?
if ActiveRecord::Base.connection.table_exists?('concerto_configs')
# Try go get secret key from concerto config or auto-generate it
secret_token = ConcertoConfig[:secret_token]
end
end
if secret_token.blank?
require 'securerandom'
secret_token = SecureRandom.hex(64)
Rails.logger.debug 'Auto-generated secret token'
if ActiveRecord::Base.connection.table_exists?('concerto_configs')
ConcertoConfig.set('secret_token', secret_token)
end
end
# Secret key for verifying the integrity of signed cookies.
Concerto::Application.config.secret_token = secret_token
Concerto::Application.config.secret_key_base = secret_token
ENV["SECRET_KEY_BASE"] = secret_token
Rails.logger.debug "Completed #{File.basename(__FILE__)} at #{Time.now.to_s}"
--
--
Chromium Developers mailing list: chromi...@chromium.org
View archives, change email options, or unsubscribe:
http://groups.google.com/a/chromium.org/group/chromium-dev
---
You received this message because you are subscribed to the Google Groups "Chromium-dev" group.
To unsubscribe from this group and stop receiving emails from it, send an email to chromium-dev...@chromium.org.
--
--
Chromium Developers mailing list: chromi...@chromium.org
View archives, change email options, or unsubscribe:
http://groups.google.com/a/chromium.org/group/chromium-dev
---
You received this message because you are subscribed to the Google Groups "Chromium-dev" group.
To view this discussion on the web visit https://groups.google.com/a/chromium.org/d/msgid/chromium-dev/f674f6ba-11ee-4e4c-a63b-5bcaeef1d36d%40chromium.org.
To view this discussion on the web visit https://groups.google.com/a/chromium.org/d/msgid/chromium-dev/441c34f1-0a7e-4d6b-9826-fea966a817f6%40chromium.org.