Поиск в Поддержке

Избегайте мошенников, выдающих себя за службу поддержки. Мы никогда не попросим вас позвонить, отправить текстовое сообщение или поделиться личной информацией. Сообщайте о подозрительной активности, используя функцию «Пожаловаться».

Learn More

Kiosk Usage

  • 15 ответов
  • 1 имеет эту проблему
  • 620 просмотров
  • Последний ответ от Ale

more options

I am currently creating new Images for our touch kiosks and would like to use Firefox.

Sadly I am confronted with some problems / strange behaviour.

I want to set up a windows Kiosk with Firefox as shell application. So far this worked but the Firefox window opens around 5 times at every restart, also it does not open again if it is closed. The reopening is a feature of the eshell which reacts to the exit code of the Application. Is there anything you know what causes these behaviours? Google chrome does nothing of these things and simply gets restarted if it is closed, as it should.

The second thing is, the built in Kiosk mode is great but our Application at least needs tabs. Is it possible without too much of a hassle to create such a locked down experience? I'd like to do it with a policy or settings file and not to create my own browser out of firefox, maybe there's a way I have overseeen.

I'd really like to do it with firefox as I personally always had a great experience and I trust the team behind it. Thank you for your support beforehand!

I am currently creating new Images for our touch kiosks and would like to use Firefox. Sadly I am confronted with some problems / strange behaviour. I want to set up a windows Kiosk with Firefox as shell application. So far this worked but the Firefox window opens around 5 times at every restart, also it does not open again if it is closed. The reopening is a feature of the eshell which reacts to the exit code of the Application. Is there anything you know what causes these behaviours? Google chrome does nothing of these things and simply gets restarted if it is closed, as it should. The second thing is, the built in Kiosk mode is great but our Application at least needs tabs. Is it possible without too much of a hassle to create such a locked down experience? I'd like to do it with a policy or settings file and not to create my own browser out of firefox, maybe there's a way I have overseeen. I'd really like to do it with firefox as I personally always had a great experience and I trust the team behind it. Thank you for your support beforehand!

Выбранное решение

Can you add command line parameters? If so, can you try adding

--wait-for-browser

When you launch Firefox to see if that solves things?

We think our launcher process might be interfering.

Прочитайте этот ответ в контексте 👍 0

Все ответы (15)

more options

We don't have an easy way to add tabs.

You might take a look at:

https://openkiosk.mozdevgroup.com/

Which is a Firefox based kiosk

I'm not sure about your multiple windows problem...

more options

Mike Kaply said

We don't have an easy way to add tabs.

I now managed to do it with userchrome.css which was not too hard.

The Multiple Windows seem to be caused by the firefox.exe not running continuously which is detected by the eshell and it tries to restart it which causes a new firefox instance.

I don't know what causes this behaviour of firefox, maybe the Updater? If you start firefox via cmd and with the /wait flag it also does not seem to run continuously and the scirpt proceeds.

more options

So my bet is what is happening is you are seeing multiple firefox.exe because of our child processes.

Is there a way to tell eshell to only look at the parent process?

more options

There effectively are multiple firefox windows, not just subprocesses.

Not to my knowledge, no.

more options

I'm wondering if it's possible that session restore was turned on at some point and it's reopening windows that were opened earlier?

Can you go to about:preferences and make sure Restore previous session isn't checked?

Also, can you point me to eshell to check it out?

more options

Hello

The eshell is part of windows: https://docs.microsoft.com/en-us/windows/configuration/kiosk-shelllauncher

The way to enable it which is described here is rather difficult in my opinion. I use a provisioning package which provides a nice overview over the settings. If I recall correctly in advanced view it is under smisettings/shell. In the easy mode it is just the kiosk options you have there. But watch out. Create a Kiosk first in the easy mode and then switch to the advanced, else you wil struggle to find the correct settings. Also the eshell is only available on Enterpriseand IOT not on PRO editions of windows.

Below all the Settings related to "restore" browser.sessionstore.restore_hidden_tabs false browser.sessionstore.restore_on_demand true browser.sessionstore.restore_pinned_tabs_on_demand false browser.sessionstore.restore_tabs_lazily true

more options

I'm checking with the team to see if they have any ideas. Unfortunately we don't have a version of Windows Enterprise or IOT to test with. I'm seeing if I can get one.

more options

Any chance you could send me a video of what's happening? mkaply AT mozilla.com

more options

Выбранное решение

Can you add command line parameters? If so, can you try adding

--wait-for-browser

When you launch Firefox to see if that solves things?

We think our launcher process might be interfering.

more options

Hello, thank you very much for your response!

If you want to test it you can simply download an ISO from microsoft and use it unlicensed, only the personalisation is locked. Everything else is at least for 30 or 90 days fully available.

If I find the time I will record a video for you, sure!

I will also try this commandline parameter, I will let you know about the results asap!


Thanks a lot and have a nice weekend.

more options

Hello

I finally had the time to try it, it works!

Adding --wait-for-browser seems to solve all issues.

It just starts once and it also restarts if ended.

May I ask what the theory behind it is? Is it just the launcher waiting for the Browser to be running and not leaving a timegap between launcher and browser?

Thank you very, very much! This made my life so much easier :)

more options

Hey, it's me again

I have a smaller problem, firefox now is asking for admin permissions if not opened as admin because it wants to install updates.

Update requests should be blocked if opened in kiosk mode shouldn't they? Is there also a commandline option to disable asking for permision to update?

Thanks beforehand

more options

We don't make any other changes except to put it in kiosk mode.

You can turn off updates using our policies:

https://github.com/mozilla/policy-templates/blob/master/README.md#disableappupdate

Making the registry change would probably be easiest for you.

more options

Here's a detailed explanation of how our launcher works:

The launcher process mostly exists to stop other programs from injecting unwanted code into Firefox. It used to be pretty common that antivirus programs would inject a DLL into Firefox. But often their DLL would be buggy, or it would make bad assumptions about how Firefox works, or the way Firefox works would change in a way that they didn't expect, and ultimately Firefox would crash because of it. Most people don't know about all this, so they just assume that it is Firefox's fault that it's crashing and get mad at us instead of at their antivirus. We can sort of do some things that prevent this from happening, but even if we do it really early in startup, people might inject their code even earlier than that. We solve this problem with the launcher process. When you launch Firefox, it can detect if it was started by the launcher process. If it was not, then it becomes the launcher process. The launcher process starts another Firefox process (which will be the actual browser) in a special way such that unwanted code cannot be injected into it, no matter how early. Once it has done this, its job is done and it can exit. Most of the time, this all works out fine. But occasionally, whatever started Firefox wants to keep track of when it exits. So it watches the process that it launches and assumes that when it exits, Firefox must not be running anymore. In general, this isn't actually a very good assumption. Not only can the launcher process trip this up, but if Firefox is already running and neither the new nor the old process was launched with --no-remote, the process will exit after telling the existing browser to handle whatever arguments it was started with (open a new window, open a particular URL, etc). Regardless, there are still some things that rely on being able to detect Firefox exiting this way, often things like testing that do also use --no-remote. So we have the --wait-for-browser flag to handle this. When that is passed, the launcher process calls WaitForSingleObject on the Firefox process that it starts, causing it to basically sleep until Firefox exits, so that the launcher process can exit with it. In this case, Windows is trying to use Firefox as the shell, and it wants to relaunch Firefox if it exits because it doesn't want you to be without a shell. But with the launcher process, Firefox always appears to exit very quickly after it's opened, even though it is actually still running. So Windows starts it again and again and again.

Hope that helps.

more options

Hello there

Thank you very much for your detailed answer! Always interesting to read such things and understand whats behind it.

Thanks a lot for your great support! :)