Editing Chrome's AutoplayAllowlist - google-chrome

We're building a web app for our business that is specifically designed to make audible alarms when things go bad, but it seems we're blocked by Chrome's autoplay policy.
We can get around this by checking on load whether the AudioContext state is suspended and then show a dialog box to accept sound, which then runs the resume() method on the audiocontext, but it seems stupid that every time someone logs in it first asks them to allow sound for an app whose sole purpose is to audibly alert the client to a problem.
I did read here that you can override this behaviour for specific urls by changing the AutoplayAllowlist... but there seem to be no instructions on how to do this at all. Any help?

The workaround was just to try play() and catch the error to then request the user allow sound and offer browser specific instructions on how to change the site settings to always allow sound.

Related

How to login a user through their browser from AIR?

I'm working on an AIR app that logs a user in to a remote website. At certain points during the session the user may need to open a page in their browser. When they do that they are not logged in according to the browser so the user must login again. I'm trying to login them in through the browser when they login in the application.
I've read that AIR can manage cookies. I think it's doing that but I'm not sure. Is there a way to share cookies with the browser? Is that what manage cookies setting does?
If none of that is happening could I create a mx:HTML instance or stage web view and double login with that? A stage webview should be using the system browser correct? The same browser that will launch when navigateToURL() is called.
UPDATE:
It looks like cookies are shared across browsers except in a few cases such as Firefox and Linux. Update again, cookies are shared less often than initially thought. It looks like I might be able to login a user by creating a StageWebView instance. I will have to double check to make sure it's a default browser and not the internal webkit.
UGH. It looks like StageWebView on the desktop uses the internal webkit. There is a useNative property though. But even if I can use a native system browser I'm not sure how to log someone in with it because I don't think I can post to it? I think I can only set the URL which would be a get...
...It looks like I can create a post request and then use navigateToURL() to load that request. It would be hacky but it might work.
ARG. It looks like AIR doesn't support post through navigateToURL().
I don't know why you want to complicate things by thinking just to use POST ?! You can use GET by sending some temporary identifier ( token, hash, ... ), like some websites do with their user's newsletter when they give you the possibility to log in just by clicking a simple link in that newsletter, which will be generated by your server side script after that your user has been successfully identified, then when the user opens that link in the browser you can verify that information and then create your cookies ...
Hope that can help.

ActionScript 3.0: Wait for response from Flash Player Settings window

I recently received some code from another developer and there's one piece I would like to rework. It's a flash app that works with mic and webcam. When it is started you are prompted to press a button - after that the usual flash player settings windows appears asking you to allow access to mic and cam. The application needs to wait for user's response on this question. It was achieved in the code I received in a rather awkward fashion. Application progressed on mouse movement event, which would not be registered since the flash player settings popup block the area. Once it out of the way - any mouse move would make application to go on. I need to rework with in some better way, because this piece of code is also used in AIR application that doesn't ask for allowance and, therefore, if you click the opening button you would need to move your mouse in order to get things running. I believe there must be some decent way to notify the app that settings popup is gone. Could anyone advice on this?
The correct way to do this in Flash Player is to listen for StatusEvent.STATUS event which is dispatched after the user either allows or denies you access to their mic. See the documentation for Microphone.getMicrophone().
In AIR, however, you don't have to ask for user's permission to access their mic and camera, so this event is not dispatched when your application gets access to the input device. In that case, you can check through Capabilities.playerType property if your code is running in AIR and then proceed with doing what you would have done in response to receiving permission to access user's input devices.

Windows .net Google.Apis hangs on the call to InsertMediaUpload.Upload -- there is no timeout

I am using GoogleApis to upload documents to Google Drive using the InsertMediaUpload class from the FilesResource namespace and the Upload method. It is working well for me with the following exception:
After calling InsertMediaUpload, a browser window appears asking the user to log into their Google (usually Gmail) account. If the user simply closes the browser window instead of clicking on "Accept" or "Cancel" then the current process appears to be hung. I suppose there should a timeout of a minute or two so that if the user opts to not log in the current windows application will not simply hang and stop working indefinitely.
There is no need for sample code here. What should happen when the user simply closes the browser window instead of clicking cancel if they are no longer interested in uploading a document? Crashing (or hanging) the current process should not be a possibility, but that is what occurs. One would hope closing the browser window would have the same effect as clicking the cancel button -- just another way of opting out of an upload to Google Drive, right?
Thanks in advance for any help with this.
You're not supposed to get authentication message from InsertMediaUpload class. You should handle authentication by yourself. Authentication browser window you get is for your development convenience, not for production code. Please take a look at .net quickstart. In this quickstart, you'll see GetAuthorization method which handles authentication. Modify this method on your needs and you'll get what you want.

How to skip the security setting on flash player?

Can we skip the security setting (for camera permission) on flash player when we attached camera (by code) ? So every time we use the flash app, the permission is always 'allow'. Because I am using camera for local purpose only, so the camera images will not shared to others (standalone app, not web apps). So, the user must not click on it all the time.
Is it possible ?
Something you must understand is that Flash is a sandbox environment, you will not be able to change or influence any client side browser settings.
The best solution for this may be to inform the user via an alert to make sure that there flash security settings are set correctly.

How to detect calls while app is in the background?

So I understand that a foreground app can detect phone calls by registering for the obscured event, but while my app is running in the background, playing sound, sending notifications, etc, it does not hit the same event.
Is there a specific way to handle phone calls in this circumstance? The obscured event is the only one that I can find for detecting phone calls, but it won't work in this instance.
Unfortunately, with the current API there isn't...
In fact, I'd say that the obscured event can't even be considered a reliable way to detect an incoming phone call: you can use it right now for that purpose, but tomorrow Microsoft can just go ahead and add new stuff that will raise that very same event!