diff --git a/app/assets/javascripts/helpers/protocol_handler.js b/app/assets/javascripts/helpers/protocol_handler.js
new file mode 100644
index 0000000000000000000000000000000000000000..6d9368979fc50466e5c7ce3e8facb67684e452a2
--- /dev/null
+++ b/app/assets/javascripts/helpers/protocol_handler.js
@@ -0,0 +1,22 @@
+// @license magnet:?xt=urn:btih:0b31508aeb0634b347b8270c7bee4d411b5d4109&dn=agpl-3.0.txt AGPL-v3-or-Later
+
+Diaspora.ProtocolHandler = {
+  register: function() {
+    if (typeof (window.navigator.registerProtocolHandler) !== "function") {
+      return false;
+    }
+
+    var protocol = location.protocol;
+    var slashes = protocol.concat("//");
+    var host = slashes.concat(window.location.hostname);
+
+    if (location.port) {
+      host = host.concat(":" + location.port);
+    }
+
+    window.navigator.registerProtocolHandler("web+diaspora", host.concat("/link?q=%s"), document.title);
+    return true;
+  }
+};
+
+Diaspora.ProtocolHandler.register();
diff --git a/app/assets/javascripts/main.js b/app/assets/javascripts/main.js
index 563bbc3151fba4162f1533b3e6316497d541ea06..e359ad7c2ddafb9a32ebe80f05754c82edb5d76d 100644
--- a/app/assets/javascripts/main.js
+++ b/app/assets/javascripts/main.js
@@ -45,5 +45,5 @@
 //= require api/authorization_page
 //= require bootstrap-markdown/bootstrap-markdown
 //= require helpers/markdown_editor
+//= require helpers/protocol_handler
 //= require jquery.are-you-sure
-//= require protocol-handler
diff --git a/app/assets/javascripts/protocol-handler.js b/app/assets/javascripts/protocol-handler.js
deleted file mode 100644
index 6afedf40940f010d9746bbba4614f6d9d020982f..0000000000000000000000000000000000000000
--- a/app/assets/javascripts/protocol-handler.js
+++ /dev/null
@@ -1,17 +0,0 @@
-// @license magnet:?xt=urn:btih:0b31508aeb0634b347b8270c7bee4d411b5d4109&dn=agpl-3.0.txt AGPL-v3-or-Later
-
-function registerDiasporaLinksProtocol() {
-  var protocol = location.protocol;
-  var slashes = protocol.concat("//");
-  var host = slashes.concat(window.location.hostname);
-
-  if (location.port) {
-    host = host.concat(":" + location.port);
-  }
-
-  window.navigator.registerProtocolHandler("web+diaspora", host.concat("/link?q=%s"), document.title);
-}
-
-if (typeof (window.navigator.registerProtocolHandler) === "function") {
-  registerDiasporaLinksProtocol();
-}