Open Chrome VNC Viewer from URL - google-chrome

my question is related to this - still unresolved - question.
I would like to be able to open Chrome VNC Viewer apps from a link on a website. I know that chrome supports url_handler but I have not found any clue anywhere on how to format the url for Chrome VNC Viewer. Maybe this feature is not supported?
Does anyone have any clue?
Thanks in advance.

If you are talking about this official Chrome App, then it's not possible.
Its event page (the only thing that can listen to messages of any kind) is dead simple and can't react to anything but launching the app by the user.
And its manifest does not expose any URL or protocol hanlders.

Related

Is there a way to launch chrome packaged app from chrome extension

I'm developing a chrome packaged app and chrome extension, both of them communicate with one another, and i want to lunch my packaged app from a chrome extension, is there any way to do it?
Note:
I've tried using the launchApp method of chrome management api, but for some unknown reason the chrome.management is undefined in my chrome extension JS code, although i have specified management permission in my manifest file like so:
"permissions": ["management"]
Does anyone have a idea what is the problem, or there are any other way i can do it ?
Thanks for help:)
There are 2 possible reasons for not being able to use chrome.management.
You have not reloaded your extension properly
You are trying to call this from a content script; you can't do that, since a content script has very restricted access to Chrome API. You need to message a background page to do this for you.
That said, there is a better way to do it if you write both your extension and your app. "management" permission is a big hammer and will generate a warning to the user on installation.
Instead, you can send a cross-extension message to your app. It will wake it up and you can launch your main window from there. See this answer for details.

Citrix Receiver Kiosk App "Unsupported chrome app origin detected"

I searched all over and couldn't find my specific issue here so please excuse me if my search-fu has failed me.
My issue:
I am currently trying to create a kiosk app for my company's chromeboxes. I have the application packaged and published privately on the chrome web store. I get the app to load but once I launch the kiosk app and enter in my company's url I am presented with, "Unsupported Chrome App Origin Detected". The only thing I can find so far about this is to run the flag --disable-web-security. I can only find examples for Windows/Mac/Linux plus that isn't secure. Am I missing something in my Default.cr or manifest.json files? Is this even possible? This is on a vanilla chromebox that isn't part of a Google Apps domain. Do I need to have it added to a Google Apps for Work domain to get this to work? Any help would be appreciated.
Please add your generated chrome extension app id to storefront web.config file. Please have a look at http://docs.citrix.com/en-us/receiver/chrome/1-7/receiver-chrome-deploy.html point 8 at the end on how to do it.
Also please use 1.7 as it supports better Kiosk mode integration.

How to start a background task when chrome fires up for a chrome app?

I am creating a chrome app (packaged) and I have to create a socket and listen for the incoming broadcast messages as soon as chrome browser starts up.
I came across this API , but it seems to be only for extensions.
And also the API for listening when a window is created needs the permission
"permissions": ["tabs"], and this also is available only for extensions.
So is this possible for a chrome app?
Thanks in advance.
chrome.runtime.onStartup is also available to the Chrome Apps (it is listed as supported api on Chrome App Platform API page). So you can just use it in your chrome app.
Chrome Apps also have an onStartup event, as documented here.
Additionally, you will likely want to handle events like onInstalled to start your background socket tcpServer after the app is first installed (or updated).
The "tabs" permission is only available to extensions, since apps are not meant to interact with the browser/webpages at all, so you certainly won't be able to use that.

Chrome Packaged App Access Chrome APIs

I'm interested in writing a Packaged App that can access data about chrome, namely the chrome.windows.onCreated and chrome.windows.onRemoved events. If I try to add a listener to either of these, I get an error in the console:
Uncaught TypeError: Cannot read property 'onRemoved' of undefined
Is there any way around this?
The other answers are correct that this isn't directly possible from a packaged app, but there is a solution that meets your needs: You can write an extension as well as a packaged app and have them communicate with chrome.runtime.sendMessage.
The user will have to install both app and extension, but you can make this easy by directing them to the chrome web store from within your application. You can read about this here: Communicating between a Chrome packaged app and a Chrome extension?
Edit: and as pointed out in a comment on that thread, there is a Chrome App Sample that helps demonstrate this in action: https://github.com/GoogleChrome/chrome-app-samples/tree/master/messaging
The chrome.windows API is a Chrome extension API, not a packaged apps API. It is used by extensions to interact with browser windows.
If you can write your application as an extension, it will be able to use that API. Packaged apps, however, don't have the ability to manipulate other windows besides their own.
One simple typo here: It is chrome.windows.onRemoved not chrome.windows.OnRemoved ;)
Note the lowercase o.

Is it possible to interact with a local application in a Google Chrome extension?

I have begun using Google Chrome as a primary browser, but I miss my Evernote extension, which can clip a web page directly to the local Evernote application. Is it possible for me to write an extension in Chrome that can do this?
Yes it is possible, through NPAPI, but your local application should be prepared for external communication. Code running in an NPAPI plugin has the full permissions of the current user and is not sandboxed or shielded from malicious input by Google Chrome in any way.
All this is described here:
http://code.google.com/chrome/extensions/npapi.html
To avoid the NPAPI way, another idea would be to communicate with a custom local http server binded to localhost and send requests to it.
Disclaimer: Never tried it but theoretically it should work.
I don't think chrome allows this, simply because it would be dangerous to let plugins have extended priviledges, they even run in an extra, low-rights thread and only communicate with chrome itself through pipes.