mirror of
https://github.com/keepassxreboot/keepassxc.git
synced 2024-12-17 19:54:33 -05:00
Added Linux, MacOS, and Windows support for Tor Browser. (#2387)
Add path for native-messaging-hosts on Linux, Windows, and macOS for Tor Browser
This commit is contained in:
parent
5bf4f51389
commit
2ad8036823
@ -27,7 +27,7 @@ for all your websites, programs, etc.
|
||||
* In **Browser Integration**, check **Enable KeePassXC browser integration**
|
||||
* Right below that, click the checkbox for the browser(s) you use
|
||||
Leave the other options at their defaults.
|
||||
* *In your default web browser,* install the KeePassXC Browser extension/add-on. Instructions for [Firefox](https://addons.mozilla.org/en-US/firefox/addon/keepassxc-browser/) or [Chrome](https://chrome.google.com/webstore/detail/keepassxc-browser/oboonakemofpalcgghocfoadofidjkkk)
|
||||
* *In your default web browser,* install the KeePassXC Browser extension/add-on. Instructions for [Firefox or Tor Browser](https://addons.mozilla.org/en-US/firefox/addon/keepassxc-browser/) or [Chrome](https://chrome.google.com/webstore/detail/keepassxc-browser/oboonakemofpalcgghocfoadofidjkkk)
|
||||
* Click the KeePassXC icon in the upper-right corner. You'll see the dialog below.
|
||||
* Click the blue Connect button to make the browser extension connect to the KeePassXC application.
|
||||
<img src="./KeePassXC-Connect.png" height="200" alt="KeePassXC Connect dialog">
|
||||
|
@ -60,6 +60,9 @@ BrowserOptionDialog::BrowserOptionDialog(QWidget* parent)
|
||||
// Vivaldi uses Chrome's registry settings
|
||||
m_ui->vivaldiSupport->setHidden(true);
|
||||
m_ui->chromeSupport->setText("Chrome and Vivaldi");
|
||||
// Tor Browser uses Firefox's registry settings
|
||||
m_ui->torBrowserSupport->setHidden(true);
|
||||
m_ui->firefoxSupport->setText("Firefox and Tor Browser");
|
||||
#endif
|
||||
m_ui->browserGlobalWarningWidget->setVisible(false);
|
||||
}
|
||||
@ -99,7 +102,10 @@ void BrowserOptionDialog::loadSettings()
|
||||
m_ui->chromeSupport->setChecked(settings->chromeSupport());
|
||||
m_ui->chromiumSupport->setChecked(settings->chromiumSupport());
|
||||
m_ui->firefoxSupport->setChecked(settings->firefoxSupport());
|
||||
#ifndef Q_OS_WIN
|
||||
m_ui->vivaldiSupport->setChecked(settings->vivaldiSupport());
|
||||
m_ui->torBrowserSupport->setChecked(settings->torBrowserSupport());
|
||||
#endif
|
||||
|
||||
#if defined(KEEPASSXC_DIST_APPIMAGE)
|
||||
m_ui->supportBrowserProxy->setChecked(true);
|
||||
@ -149,7 +155,10 @@ void BrowserOptionDialog::saveSettings()
|
||||
settings->setChromeSupport(m_ui->chromeSupport->isChecked());
|
||||
settings->setChromiumSupport(m_ui->chromiumSupport->isChecked());
|
||||
settings->setFirefoxSupport(m_ui->firefoxSupport->isChecked());
|
||||
#ifndef Q_OS_WIN
|
||||
settings->setVivaldiSupport(m_ui->vivaldiSupport->isChecked());
|
||||
settings->setTorBrowserSupport(m_ui->torBrowserSupport->isChecked());
|
||||
#endif
|
||||
}
|
||||
|
||||
void BrowserOptionDialog::showProxyLocationFileDialog()
|
||||
|
@ -60,8 +60,7 @@
|
||||
</widget>
|
||||
</item>
|
||||
<item>
|
||||
<widget class="QLabel" name="extensionLabel">
|
||||
</widget>
|
||||
<widget class="QLabel" name="extensionLabel"/>
|
||||
</item>
|
||||
<item>
|
||||
<spacer name="verticalSpacer_1">
|
||||
@ -88,6 +87,19 @@
|
||||
<property name="horizontalSpacing">
|
||||
<number>40</number>
|
||||
</property>
|
||||
<item row="0" column="3">
|
||||
<spacer name="horizontalSpacer">
|
||||
<property name="orientation">
|
||||
<enum>Qt::Horizontal</enum>
|
||||
</property>
|
||||
<property name="sizeHint" stdset="0">
|
||||
<size>
|
||||
<width>179</width>
|
||||
<height>20</height>
|
||||
</size>
|
||||
</property>
|
||||
</spacer>
|
||||
</item>
|
||||
<item row="0" column="0">
|
||||
<widget class="QCheckBox" name="chromeSupport">
|
||||
<property name="text">
|
||||
@ -108,19 +120,6 @@
|
||||
</property>
|
||||
</widget>
|
||||
</item>
|
||||
<item row="0" column="2">
|
||||
<spacer name="horizontalSpacer">
|
||||
<property name="orientation">
|
||||
<enum>Qt::Horizontal</enum>
|
||||
</property>
|
||||
<property name="sizeHint" stdset="0">
|
||||
<size>
|
||||
<width>179</width>
|
||||
<height>20</height>
|
||||
</size>
|
||||
</property>
|
||||
</spacer>
|
||||
</item>
|
||||
<item row="1" column="0">
|
||||
<widget class="QCheckBox" name="chromiumSupport">
|
||||
<property name="text">
|
||||
@ -141,6 +140,16 @@
|
||||
</property>
|
||||
</widget>
|
||||
</item>
|
||||
<item row="0" column="2">
|
||||
<widget class="QCheckBox" name="torBrowserSupport">
|
||||
<property name="text">
|
||||
<string>&Tor Browser</string>
|
||||
</property>
|
||||
<property name="checked">
|
||||
<bool>false</bool>
|
||||
</property>
|
||||
</widget>
|
||||
</item>
|
||||
</layout>
|
||||
</widget>
|
||||
</item>
|
||||
@ -214,22 +223,6 @@
|
||||
</property>
|
||||
</widget>
|
||||
</item>
|
||||
<item>
|
||||
<spacer name="verticalSpacer_2">
|
||||
<property name="orientation">
|
||||
<enum>Qt::Vertical</enum>
|
||||
</property>
|
||||
<property name="sizeType">
|
||||
<enum>QSizePolicy::Fixed</enum>
|
||||
</property>
|
||||
<property name="sizeHint" stdset="0">
|
||||
<size>
|
||||
<width>20</width>
|
||||
<height>10</height>
|
||||
</size>
|
||||
</property>
|
||||
</spacer>
|
||||
</item>
|
||||
<item>
|
||||
<spacer name="verticalSpacer_2">
|
||||
<property name="orientation">
|
||||
|
@ -228,6 +228,17 @@ void BrowserSettings::setVivaldiSupport(bool enabled)
|
||||
HostInstaller::SupportedBrowsers::VIVALDI, enabled, supportBrowserProxy(), customProxyLocation());
|
||||
}
|
||||
|
||||
bool BrowserSettings::torBrowserSupport()
|
||||
{
|
||||
return m_hostInstaller.checkIfInstalled(HostInstaller::SupportedBrowsers::TOR_BROWSER);
|
||||
}
|
||||
|
||||
void BrowserSettings::setTorBrowserSupport(bool enabled)
|
||||
{
|
||||
m_hostInstaller.installBrowser(
|
||||
HostInstaller::SupportedBrowsers::TOR_BROWSER, enabled, supportBrowserProxy(), customProxyLocation());
|
||||
}
|
||||
|
||||
bool BrowserSettings::passwordUseNumbers()
|
||||
{
|
||||
return config()->get("generator/Numbers", PasswordGenerator::DefaultNumbers).toBool();
|
||||
|
@ -70,7 +70,9 @@ public:
|
||||
void setFirefoxSupport(bool enabled);
|
||||
bool vivaldiSupport();
|
||||
void setVivaldiSupport(bool enabled);
|
||||
|
||||
bool torBrowserSupport();
|
||||
void setTorBrowserSupport(bool enabled);
|
||||
|
||||
bool passwordUseNumbers();
|
||||
void setPasswordUseNumbers(bool useNumbers);
|
||||
bool passwordUseLowercase();
|
||||
|
@ -38,16 +38,19 @@ HostInstaller::HostInstaller()
|
||||
, TARGET_DIR_CHROMIUM("/Library/Application Support/Chromium/NativeMessagingHosts")
|
||||
, TARGET_DIR_FIREFOX("/Library/Application Support/Mozilla/NativeMessagingHosts")
|
||||
, TARGET_DIR_VIVALDI("/Library/Application Support/Vivaldi/NativeMessagingHosts")
|
||||
, TARGET_DIR_TOR_BROWSER("/Library/Application Support/TorBrowser-Data/Browser/Mozilla/NativeMessagingHosts")
|
||||
#elif defined(Q_OS_LINUX)
|
||||
, TARGET_DIR_CHROME("/.config/google-chrome/NativeMessagingHosts")
|
||||
, TARGET_DIR_CHROMIUM("/.config/chromium/NativeMessagingHosts")
|
||||
, TARGET_DIR_FIREFOX("/.mozilla/native-messaging-hosts")
|
||||
, TARGET_DIR_VIVALDI("/.config/vivaldi/NativeMessagingHosts")
|
||||
, TARGET_DIR_TOR_BROWSER("/.tor-browser/app/Browser/TorBrowser/Data/Browser/.mozilla/native-messaging-hosts")
|
||||
#elif defined(Q_OS_WIN)
|
||||
, TARGET_DIR_CHROME("HKEY_CURRENT_USER\\Software\\Google\\Chrome\\NativeMessagingHosts\\org.keepassxc.keepassxc_browser")
|
||||
, TARGET_DIR_CHROMIUM("HKEY_CURRENT_USER\\Software\\Chromium\\NativeMessagingHosts\\org.keepassxc.keepassxc_browser")
|
||||
, TARGET_DIR_FIREFOX("HKEY_CURRENT_USER\\Software\\Mozilla\\NativeMessagingHosts\\org.keepassxc.keepassxc_browser")
|
||||
, TARGET_DIR_VIVALDI("HKEY_CURRENT_USER\\Software\\Vivaldi\\NativeMessagingHosts\\org.keepassxc.keepassxc_browser")
|
||||
, TARGET_DIR_VIVALDI(TARGET_DIR_CHROME)
|
||||
, TARGET_DIR_TOR_BROWSER(TARGET_DIR_FIREFOX)
|
||||
#endif
|
||||
{
|
||||
}
|
||||
@ -159,6 +162,8 @@ QString HostInstaller::getTargetPath(SupportedBrowsers browser) const
|
||||
return TARGET_DIR_FIREFOX;
|
||||
case SupportedBrowsers::VIVALDI:
|
||||
return TARGET_DIR_VIVALDI;
|
||||
case SupportedBrowsers::TOR_BROWSER:
|
||||
return TARGET_DIR_TOR_BROWSER;
|
||||
default:
|
||||
return QString();
|
||||
}
|
||||
@ -182,6 +187,8 @@ QString HostInstaller::getBrowserName(SupportedBrowsers browser) const
|
||||
return "firefox";
|
||||
case SupportedBrowsers::VIVALDI:
|
||||
return "vivaldi";
|
||||
case SupportedBrowsers::TOR_BROWSER:
|
||||
return "tor-browser";
|
||||
default:
|
||||
return QString();
|
||||
}
|
||||
@ -287,7 +294,7 @@ QJsonObject HostInstaller::constructFile(SupportedBrowsers browser, const bool&
|
||||
script["type"] = "stdio";
|
||||
|
||||
QJsonArray arr;
|
||||
if (browser == SupportedBrowsers::FIREFOX) {
|
||||
if (browser == SupportedBrowsers::FIREFOX || browser == SupportedBrowsers::TOR_BROWSER) {
|
||||
for (const QString& extension : ALLOWED_EXTENSIONS) {
|
||||
arr.append(extension);
|
||||
}
|
||||
|
@ -33,7 +33,8 @@ public:
|
||||
CHROME = 0,
|
||||
CHROMIUM = 1,
|
||||
FIREFOX = 2,
|
||||
VIVALDI = 3
|
||||
VIVALDI = 3,
|
||||
TOR_BROWSER = 4
|
||||
};
|
||||
|
||||
public:
|
||||
@ -64,6 +65,7 @@ private:
|
||||
const QString TARGET_DIR_CHROMIUM;
|
||||
const QString TARGET_DIR_FIREFOX;
|
||||
const QString TARGET_DIR_VIVALDI;
|
||||
const QString TARGET_DIR_TOR_BROWSER;
|
||||
};
|
||||
|
||||
#endif // HOSTINSTALLER_H
|
||||
|
Loading…
Reference in New Issue
Block a user