-
Notifications
You must be signed in to change notification settings - Fork 17
Workaround for lack of NPAPI support in Google Chrome #102
Copy link
Copy link
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 -
Reactions are currently unavailable