There's no simple, cross-platform way to register protocol handlers in Electron. Every OS requires a different solution. This seems like something that Electron should smooth over.

There's already a W3C API for this: [`Navigator.registerProtocolHandler`](https://developer.mozilla.org/en-US/docs/Web/API/Navigator/registerProtocolHandler). Can Electron implement it?

atom/browser/browser.h
protected:
  
  std::string GetExecutableFileVersion() const;
  
  std::string GetExecutableFileProductName() const;
  
  void NotifyAndShutdown();
  
  bool HandleBeforeQuit();
  bool is_quiting_;
 private:
  
  void OnWindowCloseCancelled(NativeWindow* window) override;
  void OnWindowAllClosed() override;
  
  base::ObserverList<BrowserObserver> observers_;
  
  bool is_ready_;
  
  bool is_shutdown_;
  std::string version_override_;
  std::string name_override_;
#if defined(OS_WIN)
  base::string16 app_user_model_id_;
#endif
  DISALLOW_COPY_AND_ASSIGN(Browser);
};
}  
#endif