Fully "Kiosking" Chrome (capture and prevent default of C-w/t/n) - google-chrome

I need to prevent Ctrl-w, Ctrl-t, Ctrl-n from doing their default functionality. I know removing user rights is frowned upon, but hear me out before casting judgement.
event.preventDefault() only works on lesser key combos like p, but n, t, and w are immune to client side javascript according to javascript capture browser shortcuts (ctrl+t/n/w).
I'm writing educational cloud software for kids 3-12, and I use Chrome's Kisok mode to limit their ability to screw around. I have full control of the computers in question. Are there hidden Chrome options / extensions / Windows tricks / something else that I can use to make the computer actually a kiosk instead of a "kisok"?
Also, I'm writing a cloud code editor using Ace and I want to use emacs key bindings but I keep opening new windows when I try to go down a line.
EDIT clarification: It's Chrome only because that was the spec / we control the system, but it would be useful if anyone has thoughts on ff/o/ie

Since you noted thoughts on other browsers would be helpful: Opera's kiosk mode seems more powerful than Chrome's. I believe this would give the result you want: opera.exe /kioskmode /nokeys http://your-url

Related

Looking for a Chromium Command Line Switch to relax HTMLInputElement restrictions

The title pretty much says it all. Is there a command line switch for Chrome/Edge which relaxes the restrictions that are made to javascript on the input element of type file?
Yes I am aware there is a reason for these restrictions
No I actually don't intend to use it on a Browser such as Chrome or Edge
I want to know so I can build a hybrid app that utilizes MS's Webview2 which accepts the switches (at least I am led to believe it does)
EDIT: I want to call click() and/or add files to it.

Is there a keyboard shortcut to show or hide 'FPS meter' in Chromium versions 60+?

Analyzing an HTML-5 application which makes heavy use of GPU-enabled animations, I would like to constantly check the FPS rate in an environment in which Chrome/Chromium is started with the --kiosk startup flag. Currently, I use Chromium in version 60+.
Most of us know how to en- or disable this feature in Chrome/Chromium by selecting the checkbox FPS meter in regular mode (see: [1], [2]). I already found the startup flag --show-fps-counter which shows the GPU debug box upon startup [3]. However, the official developer documentation provided by Google does not mention ways to use a keyboard shortcut to toggle the display of the FPS meter tool.
So my question is:
Is there an (un-)official keyboard shortcut to show/hide the FPS meter when Chrome/Chromium is launched in --kiosk mode? If so: what is it?
Questions which I already checked/screened and which did not provide a useful answers:
[4], refers to an outdated Chrome version (v33),
[5], refers to Android settop boxes and, as of today, has no answer,
[6], refers to JavaScript and a programmatic activation of the FPS meter (again: no answer).
Any suggestions based on official sources are much appreciated.
The FPS counter, being part of the DevTools, can be toggled programmatically over the Chrome DevTools Protocol (CDP). An example using Puppeteer is available here on the Google Developers site.
So a clumsy but working solution would be writing a script that toggles the FPS counter over CDP, and assign a hotkey to it in your OS. You might want to check the awesome-devtools repo to choose a CDP client in your favorite language.
maybe this solution is useful for you ,
first download an extension called FPS extension
then in extensions panel go to keyboard shortcuts and add a shortcut for this extension,
this way you can turn it on and off when ever you want. hope it helps
You can enable that in the Dev Tools area via Ctrl + Shift + J > Console Drawer > 3-dot menu > Rendering > FPS meter.
There is no keyboard shortcut for this, I'm afraid.

Disable automatic saving of CSS changes in Chrome Developer Tools

I am referring to the save feature in the 'Sources' panel of the Chrome Dev Tools. I have been using this feature for a long time in the stable release of Chrome, but after installing the build from the developer channel, I notice that once I have saved the file the first time, Chrome no longer prompts me to save and just does it automatically after every change I make.
This is quite a pain, as I make a lot of changes experimentally in the dev tools whilst debugging which I don't wish to save, I would like Chrome to save the file only when I explicitly tell it to.
Does anyone know if there is a way to disable this automatic CSS saving?
(Apologies for no screenshot, my PrtScn key seemingly won't operate when I am in a context menu)
Update:
I have reverted to the current stable build, 27.0.1453.93, and the behaviour appears to be the same.
I am having the same problem, I can only offer workarounds: use another browser, such as Firefox, for doing tests!
Alternatively you could launch another instance of Chrome with a different profile. You could also launch a Chrome "Incognito Window", it seems to not apply the filesystem mappings.
I normally use an Incognito Window or inline styles to test changes.
Alas, I learned after reading a post by Google's dev relations person
that the automatic save cannot be disabled and it seems that's the way
it's going to stay.
html5rocks.com/en/tutorials/developertools/revolutions2013
– tommypyatt Feb 21 '14 at 14:22
While not solving the issue directly, it is a decent work around:
In Chrome, in the css inspector you can click and hold the + button, then choose to add your changes to the inspector-stylesheet. It's not as convenient as directly editing in your css-selectors, but what you write will all be in inspector-stylesheet.css, so not saved to your project. Then when you are happy with your changes, you can manually put them in to your css.

How can I display the same DOM across several tabs in a Chrome Extension?

I'm looking to build a chrome extension that allows the user to have an independent subwindow that is the same in each tab (for example you are taking notes and the notes are synchronized among each tab). Also, clicking a link should not destroy this subwindow.
One solution is to inject an iframe in each tab, and try to synchronize this data serverside and send back to each client tab, as it is updated.
This seems very tedious, plus the iframe would be provided by a third party, and I want to make it the easiest for them.
Is there a way I can have a shared dom piece and display it in its current state across several tabs?
There's an API (still experimental as of Chrome 17) that does more or less exactly what you want. If you visit about:flags, and enable "Panels" (they're enabled by default in Dev and on Canary (and on ChromeOS)), you'll be able to use chrome.windows.create with a type of panel to create a floating pane that exists independently from the browser window. That would likely meet your need.
Take a look at the Google Talk extension for an example of how it might work.

HTML5 Chrome supported popup Dialog box?

I'm wondering is there anyway of creating a dialog box for a Chrome extension using HTML5 or otherwise? basically I'd love to have a dialog box that looks more elegant than just creating a new window. Is there anything available to do so I'm attempting to create a popup effect.
Challenge / Issue:
1) Chrome was not supporting windows popup
Reason:
Google Chrome no longer supports window.showModalDialog, breaking several enterprise apps such as OWA, EAC, SAP, and others.
Why:
1) Google decided to deprecate window.showModalDialog in Chrome 35 due to its related code complexity
2) Google believe that showModalDialog is a “bad API” that, according to their measurements, is not used extensively
Immediate Solution:
The immediate solution is to switch to IE or Firefox. For those willing to stay on Chrome, one way to temporary solve this problem
is to enable this deprecated feature in Enterprise Policy settings, which can be done only until April 30, 2015
(http://www.bugdebugzone.com/2014/08/sitecore-modal-pop-ups-are-not-working.html)
Another approach:
Another partial solution is using a ShowModalDialog polyfill as explained in this post, but some of the functionality
is still not restored.
Approach our team adapted:
Work with Window.Open method and tweak the javascript code to adapt this method to refresh the parent window and pass values to and from.
I think the best way to do this would be to inject a <div> into the page and position / style it using CSS. It is possible to include other JavaScript libraries with your plugin, so, you could look into using jQuery UI's Dialog.