Skip to content

Commit

Permalink
Merge pull request #558 from dahn-zk/fix-native-messaging-example-che…
Browse files Browse the repository at this point in the history
…cker-script

native-messaging: fix Windows checker script not to fail on missing HKCU when HKLM is set
  • Loading branch information
dotproto committed Jul 13, 2024
2 parents 711f647 + 2a93ff8 commit f627c5f
Show file tree
Hide file tree
Showing 2 changed files with 7 additions and 13 deletions.
2 changes: 1 addition & 1 deletion native-messaging/README.md
Original file line number Diff line number Diff line change
Expand Up @@ -16,7 +16,7 @@ To get this working, there's a little setup to do.

### Windows setup ###

1. Check you have Python installed, and that your system's PATH environment variable includes the path to Python. See [Using Python on Windows](https://docs.python.org/2/using/windows.html). You'll need to restart the web browser after making this change, or the browser won't pick up the new environment variable.
1. Check you have Python installed, and that your system's PATH environment variable includes the path to Python. See [Using Python on Windows](https://docs.python.org/3/using/windows.html). You'll need to restart the web browser after making this change, or the browser won't pick up the new environment variable.
2. Edit the "path" property of "ping_pong.json" to point to the location of "ping_pong_win.bat" on your computer. Note that you'll need to escape the Windows directory separator, like this: `"path": "C:\\Users\\MDN\\native-messaging\\app\\ping_pong_win.bat"`.
3. Edit "ping_pong_win.bat" to refer to the location of "ping_pong.py" on your computer.
4. Add a registry key containing the path to "ping_pong.json" on your computer. See [App manifest location ](https://developer.mozilla.org/en-US/Add-ons/WebExtensions/Native_manifests#Manifest_location) to find details of the registry key to add.
Expand Down
18 changes: 6 additions & 12 deletions native-messaging/check_config_win.py
Original file line number Diff line number Diff line change
Expand Up @@ -16,21 +16,15 @@
# Assuming current user overrides local machine.
key_roots = ['HKEY_CURRENT_USER', 'HKEY_LOCAL_MACHINE']

found_key = False

for root in key_roots:
key = winreg.OpenKey(getattr(winreg, root), key_path)
for key_root in key_roots:
try:
print('Checking:', root, key_path)
print('Checking:', key_root, key_path)
key = winreg.OpenKey(getattr(winreg, key_root), key_path)
res = winreg.QueryValueEx(key, '')
break
except FileNotFoundError:
print('...error finding key')
continue

found_key = True
break

if not found_key:
print('... error finding key')
else:
raise ValueError('Could not find a registry entry, aborting.')

json_path = res[0]
Expand Down

0 comments on commit f627c5f

Please sign in to comment.