summaryrefslogtreecommitdiff
path: root/program/js/app.js
diff options
context:
space:
mode:
authorThomas Bruederli <thomas@roundcube.net>2014-03-21 18:32:04 +0100
committerThomas Bruederli <thomas@roundcube.net>2014-03-21 18:32:13 +0100
commitd2215764898919f1ea3b461fb08ac430db4340a4 (patch)
tree82b604ba414fa00db7c8b42ba7e4263683564c95 /program/js/app.js
parent3f4845948c07c29bd040f3afae077e0e31858f36 (diff)
Disable link registering mailto: protocol handler if not supported by the browser (#1489569)
Diffstat (limited to 'program/js/app.js')
-rw-r--r--program/js/app.js26
1 files changed, 17 insertions, 9 deletions
diff --git a/program/js/app.js b/program/js/app.js
index 332d9841e..7fb644145 100644
--- a/program/js/app.js
+++ b/program/js/app.js
@@ -7516,20 +7516,28 @@ function rcube_webmail()
try {
window.navigator.registerProtocolHandler('mailto', this.mailto_handler_uri(), name);
}
- catch(e) {};
+ catch(e) {
+ this.display_message(String(e), 'error');
+ };
};
this.check_protocol_handler = function(name, elem)
{
var nav = window.navigator;
- if (!nav
- || (typeof nav.registerProtocolHandler != 'function')
- || ((typeof nav.isProtocolHandlerRegistered == 'function')
- && nav.isProtocolHandlerRegistered('mailto', this.mailto_handler_uri()) == 'registered')
- )
- $(elem).addClass('disabled');
- else
- $(elem).click(function() { rcmail.register_protocol_handler(name); return false; });
+ if (!nav || (typeof nav.registerProtocolHandler != 'function')) {
+ $(elem).addClass('disabled').click(function(){ return false; });
+ }
+ else {
+ var status = null;
+ if (typeof nav.isProtocolHandlerRegistered == 'function') {
+ status = nav.isProtocolHandlerRegistered('mailto', this.mailto_handler_uri());
+ if (status)
+ $(elem).parent().find('.mailtoprotohandler-status').html(status);
+ }
+ else {
+ $(elem).click(function() { rcmail.register_protocol_handler(name); return false; });
+ }
+ }
};
// Checks browser capabilities eg. PDF support, TIF support