Proposal: External Protocol Handing (Plugin replacement)

2014-04-01 Thread Konstantin Welke
Hi!

As you want to get rid of all plugins (NPAPI), you say: If there are
plugin features which are not available in the web platform, we encourage
developers to post their use cases to mozilla.dev.platform project list”.
https://developer.mozilla.org/en-US/Add-ons/Plugins

We have such a feature: We currently use a plugin to detect whether one of
our applications is installed and then launch it via iframe. This will no
longer be possible without plugins, while providing a good user experience.

My colleague Ben is currently proposing this API to public-weba...@w3.org,
modeled after Win8/IE11’s navigator.msLaunchUri:
http://bengjohnson.github.io/ExternalProtocolSpecification.html
http://lists.w3.org/Archives/Public/public-webapps/2014JanMar/0791.html

msLaunchUri MSDN docs:
http://msdn.microsoft.com/en-us/library/ie/jj154912(v=vs.85).aspx

Would you consider such an API for Firefox?

Cheers,
Kosta

PS: Sorry for the long signature...
--
Konstantin Welke
Senior Software Developer
Citrix Online Germany GmbH | Erzbergerstr. 117 | D-76133 Karlsruhe
T: +49 721 3544990 | F: +49 721 354499624 | M: +49 151 23429318
konstantin.we...@citrix.com
http://www.citrixonline.com http://www.citrixonline.com/
http://www.citrixonline.com/

Work better. Live better.
Citrix Online Germany GmbH | Erzbergerstr. 117 | D-76133 Karlsruhe
Geschäftsführer: Tommy Ahlers | Michael DiFilippo | David Zalewski
Sitz der Gesellschaft: Karlsruhe | Registergericht: Amtsgericht Mannheim
HRB 713721
Citrix Online UK Ltd http://www.citrixonline.com/imprint-en.tmpl



___
dev-platform mailing list
dev-platform@lists.mozilla.org
https://lists.mozilla.org/listinfo/dev-platform


Re: Proposal: External Protocol Handing (Plugin replacement)

2014-04-01 Thread Konstantin Welke
Hi!

Well, I think adding an API to query directly whether an application is
installed could be a privacy risk. This is why Microsoft added this API to
obscure this information to the web page and just call either the success
or failure callback.

In Citrix, we use this API on IE 11 / Win 8 to e.g. launch our programs
(if installed) or provide the user with a download (if the user declined
the launching / program is not installed). Currently, we use a plugin on
Firefox, Chrome, Safari for the same functionality. For environments where
users cannot typically install programs (Android, iOS, Windows RT, etc.),
we provide a link to the App Store / Play Store / Windows Store instead of
providing a direct download.

Made-up example for launching SSH:
(this works on IE 11 / Win 8 if you use navigator.msLaunchUri):
navigator.launchUri(“ssh://user@host”,
function successCallback() {
//show some UI to show success
},
function failureCallback() {
//display UI to explain how to install an SSH client or re-try
});

One of the main advantages over a plain a href=“ssh://user@host”... is
that if no “ssh://“ scheme handler is installed and the user clicks that
link, there is reliable specified behavior (the failureCallback). Using
currently existing means, that experience is pretty bad and very different
in each browser (e.g. Chrome just ignores the click (after firing unload
events), Firefox asks the user which app to launch (without showing a
default app), Safari/OSX asks to search the app store, etc.). The web page
does not know whether it worked and cannot help the user. For a good user
experience, the page should know whether launching the app worked or not
and be allowed to handle the UI - instead of the browser showing something
random.

Sidenote: Chrome on Android has this functionality using intents, using
the following style:
intent://urltolaunch#Intent;scheme=schemetolaunch;package=packagetoinstall;
end, which either launches schemetolaunch://urltolaunch to redirects to
the play store to install packagetoinstall.

Cheers,
Kosta


On 4/1/14, 7:01 PM, Ehsan Akhgari ehsan.akhg...@gmail.com wrote:

Hi Konstantin,

So, is the main use case here determining whether the application is
installed?  What URL schemes do you use for this?  What kind of UX do
you present to the user if the application is not installed?

Also, how does this picture fit into environments where the application
is not even provided (hypothetically speaking, let's say on Android)?

Thanks!
Ehsan

On 2014-04-01, 11:30 AM, Konstantin Welke wrote:
 Hi!

 As you want to get rid of all plugins (NPAPI), you say: If there are
 plugin features which are not available in the web platform, we
encourage
 developers to post their use cases to mozilla.dev.platform project
list”.
 https://developer.mozilla.org/en-US/Add-ons/Plugins

 We have such a feature: We currently use a plugin to detect whether one
of
 our applications is installed and then launch it via iframe. This will
no
 longer be possible without plugins, while providing a good user
experience.

 My colleague Ben is currently proposing this API to
public-weba...@w3.org,
 modeled after Win8/IE11’s navigator.msLaunchUri:
 http://bengjohnson.github.io/ExternalProtocolSpecification.html
 http://lists.w3.org/Archives/Public/public-webapps/2014JanMar/0791.html

 msLaunchUri MSDN docs:
 http://msdn.microsoft.com/en-us/library/ie/jj154912(v=vs.85).aspx

 Would you consider such an API for Firefox?

 Cheers,
 Kosta

 PS: Sorry for the long signature...
 --
 Konstantin Welke
 Senior Software Developer
 Citrix Online Germany GmbH | Erzbergerstr. 117 | D-76133 Karlsruhe
 T: +49 721 3544990 | F: +49 721 354499624 | M: +49 151 23429318
 konstantin.we...@citrix.com
 http://www.citrixonline.com http://www.citrixonline.com/
 http://www.citrixonline.com/

 Work better. Live better.
 Citrix Online Germany GmbH | Erzbergerstr. 117 | D-76133 Karlsruhe
 Geschäftsführer: Tommy Ahlers | Michael DiFilippo | David Zalewski
 Sitz der Gesellschaft: Karlsruhe | Registergericht: Amtsgericht Mannheim
 HRB 713721
 Citrix Online UK Ltd http://www.citrixonline.com/imprint-en.tmpl



 ___
 dev-platform mailing list
 dev-platform@lists.mozilla.org
 https://lists.mozilla.org/listinfo/dev-platform



___
dev-platform mailing list
dev-platform@lists.mozilla.org
https://lists.mozilla.org/listinfo/dev-platform