mirror of
https://github.com/bitwarden/browser
synced 2026-01-05 01:53:55 +00:00
[PM-14270] Use rust to access windows registry (#11413)
This commit is contained in:
9
apps/desktop/desktop_native/napi/src/registry/dummy.rs
Normal file
9
apps/desktop/desktop_native/napi/src/registry/dummy.rs
Normal file
@@ -0,0 +1,9 @@
|
||||
use anyhow::{bail, Result};
|
||||
|
||||
pub fn create_key(_key: &str, _subkey: &str, _value: &str) -> Result<()> {
|
||||
bail!("Not implemented")
|
||||
}
|
||||
|
||||
pub fn delete_key(_key: &str, _subkey: &str) -> Result<()> {
|
||||
bail!("Not implemented")
|
||||
}
|
||||
4
apps/desktop/desktop_native/napi/src/registry/mod.rs
Normal file
4
apps/desktop/desktop_native/napi/src/registry/mod.rs
Normal file
@@ -0,0 +1,4 @@
|
||||
#[cfg_attr(target_os = "windows", path = "windows.rs")]
|
||||
#[cfg_attr(not(target_os = "windows"), path = "dummy.rs")]
|
||||
mod internal;
|
||||
pub use internal::*;
|
||||
29
apps/desktop/desktop_native/napi/src/registry/windows.rs
Normal file
29
apps/desktop/desktop_native/napi/src/registry/windows.rs
Normal file
@@ -0,0 +1,29 @@
|
||||
use anyhow::{bail, Result};
|
||||
|
||||
fn convert_key(key: &str) -> Result<&'static windows_registry::Key> {
|
||||
Ok(match key.to_uppercase().as_str() {
|
||||
"HKEY_CURRENT_USER" | "HKCU" => windows_registry::CURRENT_USER,
|
||||
"HKEY_LOCAL_MACHINE" | "HKLM" => windows_registry::LOCAL_MACHINE,
|
||||
"HKEY_CLASSES_ROOT" | "HKCR" => windows_registry::CLASSES_ROOT,
|
||||
_ => bail!("Invalid key"),
|
||||
})
|
||||
}
|
||||
|
||||
pub fn create_key(key: &str, subkey: &str, value: &str) -> Result<()> {
|
||||
let key = convert_key(key)?;
|
||||
|
||||
let subkey = key.create(subkey)?;
|
||||
|
||||
const DEFAULT: &str = "";
|
||||
subkey.set_string(DEFAULT, value)?;
|
||||
|
||||
Ok(())
|
||||
}
|
||||
|
||||
pub fn delete_key(key: &str, subkey: &str) -> Result<()> {
|
||||
let key = convert_key(key)?;
|
||||
|
||||
key.remove_tree(subkey)?;
|
||||
|
||||
Ok(())
|
||||
}
|
||||
Reference in New Issue
Block a user