-
Notifications
You must be signed in to change notification settings - Fork 17
Open
Labels
Description
In order to continue to supporting Google Chrome after their discontinuation of NPAPI, WebPG will need to use "Native Messaging".
Native Messaging is a mechanism whereby request/response messsages are sent/collected using chrome.runtime.sendNativeMessage or via a native messaging port.
The underlying WebPG binary component has been designed to support Native Messaging, however, it requires that a manifest file (and registry key in Windows) be installed on the host system along with a binary. An installer will be necessary in order to accomplish this.
The contents of said file are as follows -
{
"name": "org.webpg.nativeHost",
"description": "WebPG Native Messaging Host",
"path": "C:\\Users\\{USER}\\AppData\\WebPG\\webpg_message_host.exe",
"type": "stdio",
"allowed_origins": [
"chrome-extension://<EXTENSION_ID>" // Production extension ID
"chrome-extension://<EXTENSION_ID>" // Development extension ID
"chrome-extension://<EXTENSION_ID>" // Offline extension ID
]
}
File Location (Proposed):
- Linux:
~/.config/google-chrome/NativeMessagingHosts/org.webpg.nativeHost.json
- OSX:
~/Library/Application Support/Google/Chrome/NativeMessagingHosts/org.webpg.nativeHost.json
- Windows:
C:\Users\{USER}\AppData\WebPG\nativeHost.json
Additional install items
- Linux: ~/bin/webpg/webpg_message_host
- OSX: ~/bin/webpg/webpg_message_host (?? better location in OSX)
- Windows
- C:\Users{USER}\AppData\WebPG\webpg_message_host.exe
- C:\Users{USER}\AppData\WebPG\libassuan-0.dll
- C:\Users{USER}\AppData\WebPG\libgpg-error-0.dll
- C:\Users{USER}\AppData\WebPG\libgpgme-11.dll
- Registry key:
HKEY_CURRENT_USER\SOFTWARE\Google\Chrome\NativeMessagingHosts\org.webpg.nativeHost
- Value:
C:\Users\{USER}\AppData\WebPG\nativeHost.json
- Value:
Points of discussion -
- File locations
- binary naming convention
- Should the release version be included in the path or binary naming scheme?
- More?
Objectives -
- Easy to install
- Should be easy to uninstall
- Aware of system vs. user installation
- As least "hokey" as possible.
Ancillary items -
- Extension needs to be modified to in order to communicate with the host (assigned: kylehuff)
- Need to hook into installation events of extension to catch uninstall
-
PGPMime methods need to be moved from webpg-npapi to libwebpg(completed with kylehuff/libwebpg@e31f59c) - Others?
References -
Persons tagged in this issue -