diff --git a/CHANGELOG.md b/CHANGELOG.md
index 0004fc4ec8..cfafae41b2 100644
--- a/CHANGELOG.md
+++ b/CHANGELOG.md
@@ -2,6 +2,9 @@
## Unreleased
+# 4.46.3
+- Fix camera access on linux
+
# 4.46.2
- Fix Linux blank screen issue related to the local mimetype database
diff --git a/backend/update.go b/backend/update.go
index 7fc260d92e..32c716500a 100644
--- a/backend/update.go
+++ b/backend/update.go
@@ -27,7 +27,7 @@ const updateFileURL = "https://bitboxapp.shiftcrypto.io/desktop.json"
var (
// Version of the backend as displayed to the user.
- Version = semver.NewSemVer(4, 46, 2)
+ Version = semver.NewSemVer(4, 46, 3)
)
// UpdateFile is retrieved from the server.
diff --git a/frontends/android/BitBoxApp/app/build.gradle b/frontends/android/BitBoxApp/app/build.gradle
index c11b8a7a2c..30d0996e26 100644
--- a/frontends/android/BitBoxApp/app/build.gradle
+++ b/frontends/android/BitBoxApp/app/build.gradle
@@ -7,8 +7,8 @@ android {
applicationId "ch.shiftcrypto.bitboxapp"
minSdkVersion 21
targetSdkVersion 34
- versionCode 57
- versionName "android-4.46.2"
+ versionCode 58
+ versionName "android-4.46.3"
testInstrumentationRunner "androidx.test.runner.AndroidJUnitRunner"
}
buildTypes {
diff --git a/frontends/ios/BitBoxApp/Config.xcconfig b/frontends/ios/BitBoxApp/Config.xcconfig
index 434ce8d08f..9fcf6ac523 100644
--- a/frontends/ios/BitBoxApp/Config.xcconfig
+++ b/frontends/ios/BitBoxApp/Config.xcconfig
@@ -2,8 +2,8 @@
// https://help.apple.com/xcode/#/dev745c5c974
// App version
-MARKETING_VERSION = 4.46.2
+MARKETING_VERSION = 4.46.3
// Build number, increment this for every separate publication,
// even if the app version is the same.
-CURRENT_PROJECT_VERSION = 5
+CURRENT_PROJECT_VERSION = 6
diff --git a/frontends/qt/Makefile b/frontends/qt/Makefile
index 9f41243562..12585f2c8f 100644
--- a/frontends/qt/Makefile
+++ b/frontends/qt/Makefile
@@ -37,8 +37,8 @@ linux:
cp resources/linux/usr/share/icons/hicolor/128x128/apps/bitbox.png build/linux-tmp
mkdir build/tmp-deb/opt/
cp -aR build/linux-tmp build/tmp-deb/opt/bitbox
- cd build/linux && fpm --after-install ../../resources/deb-afterinstall.sh -s dir -t deb -n bitbox -v 4.46.2 -C ../tmp-deb/
- cd build/linux && fpm --after-install ../../resources/deb-afterinstall.sh -s dir -t rpm -n bitbox -v 4.46.2 -C ../tmp-deb/
+ cd build/linux && fpm --after-install ../../resources/deb-afterinstall.sh -s dir -t deb -n bitbox -v 4.46.3 -C ../tmp-deb/
+ cd build/linux && fpm --after-install ../../resources/deb-afterinstall.sh -s dir -t rpm -n bitbox -v 4.46.3 -C ../tmp-deb/
# create AppImage
cd build/linux-tmp && /opt/linuxdeployqt-continuous-x86_64.AppImage BitBox -appimage -unsupported-allow-new-glibc
mv build/linux-tmp/BitBoxApp-*-x86_64.AppImage build/linux/
diff --git a/frontends/qt/main.cpp b/frontends/qt/main.cpp
index 3c28524338..2b7175b455 100644
--- a/frontends/qt/main.cpp
+++ b/frontends/qt/main.cpp
@@ -184,8 +184,8 @@ class RequestInterceptor : public QWebEngineUrlRequestInterceptor {
// We treat the exchange pages specially because we need to allow exchange
// widgets to load in an iframe as well as let them open external links
// in a browser.
- bool onExchangePage = currentUrl.contains(QRegularExpression(QString("^%1:/exchange/.*$").arg(scheme)));
- bool onBitsurancePage = currentUrl.contains(QRegularExpression(QString("^%1:/bitsurance/.*$").arg(scheme)));
+ bool onExchangePage = currentUrl.contains(QRegularExpression(QString("^%1:/index\.html\#/exchange/.*$").arg(scheme)));
+ bool onBitsurancePage = currentUrl.contains(QRegularExpression(QString("^%1:/index\.html\#/bitsurance/.*$").arg(scheme)));
if (onExchangePage || onBitsurancePage) {
if (info.firstPartyUrl().toString() == info.requestUrl().toString()) {
// Ignore requests for certain file types (e.g., .js, .css) Somehow Moonpay loads
@@ -208,7 +208,7 @@ class RequestInterceptor : public QWebEngineUrlRequestInterceptor {
// All the requests originated in the wallet-connect section are allowed, as they are needed to
// load the Dapp logos and it is not easy to filter out non-images requests.
- bool onWCPage = currentUrl.contains(QRegularExpression(QString(R"(^%1:/account/[^\/]+/wallet-connect/.*$)").arg(scheme)));
+ bool onWCPage = currentUrl.contains(QRegularExpression(QString(R"(^%1:/index\.html\#/account/[^\/]+/wallet-connect/.*$)").arg(scheme)));
if (onWCPage) {
return;
}
@@ -339,11 +339,8 @@ int main(int argc, char *argv[])
}
QWebEngineUrlScheme bbappScheme(scheme);
- bbappScheme.setSyntax(QWebEngineUrlScheme::Syntax::HostAndPort);
- bbappScheme.setFlags(
- QWebEngineUrlScheme::LocalScheme |
- QWebEngineUrlScheme::SecureScheme |
- QWebEngineUrlScheme::LocalAccessAllowed);
+ bbappScheme.setSyntax(QWebEngineUrlScheme::Syntax::Path);
+ bbappScheme.setFlags(QWebEngineUrlScheme::SecureScheme);
QWebEngineUrlScheme::registerScheme(bbappScheme);
view = new WebEngineView();
diff --git a/frontends/qt/resources/MacOS/Info.plist b/frontends/qt/resources/MacOS/Info.plist
index 10f0476ec4..7da7fabfb5 100644
--- a/frontends/qt/resources/MacOS/Info.plist
+++ b/frontends/qt/resources/MacOS/Info.plist
@@ -21,10 +21,10 @@
APPL
CFBundleVersion
- 4.46.2
+ 4.46.3
CFBundleShortVersionString
- 4.46.2
+ 4.46.3
CFBundleSignature
????
diff --git a/frontends/qt/setup.nsi b/frontends/qt/setup.nsi
index 7b420b4d47..1ae1a1bf53 100755
--- a/frontends/qt/setup.nsi
+++ b/frontends/qt/setup.nsi
@@ -22,7 +22,7 @@ SetCompressor /SOLID lzma
# General Symbol Definitions
!define REGKEY "SOFTWARE\$(^Name)"
-!define VERSION 4.46.2.0
+!define VERSION 4.46.3.0
!define COMPANY "Shift Crypto AG"
!define URL https://github.com/BitBoxSwiss/bitbox-wallet-app/releases/
!define BINDIR "build\windows"
diff --git a/frontends/web/src/app.tsx b/frontends/web/src/app.tsx
index 918e3f83b8..9f58c7d401 100644
--- a/frontends/web/src/app.tsx
+++ b/frontends/web/src/app.tsx
@@ -63,8 +63,8 @@ export const App = () => {
}, [t]);
const maybeRoute = useCallback(() => {
- const currentURL = window.location.pathname;
- const isIndex = currentURL === '/' || currentURL === '/index.html' || currentURL === '/android_asset/web/index.html' || currentURL.endsWith('/assets/web/index.html');
+ const currentURL = window.location.hash.replace(/^#/, '');
+ const isIndex = currentURL === '' || currentURL === '/';
const inAccounts = currentURL.startsWith('/account/');
// QT and Android start their apps in '/index.html' and '/android_asset/web/index.html' respectively
diff --git a/frontends/web/src/index.tsx b/frontends/web/src/index.tsx
index 97c969a99b..b4c16163b7 100644
--- a/frontends/web/src/index.tsx
+++ b/frontends/web/src/index.tsx
@@ -18,7 +18,7 @@
import React from 'react';
import { createRoot } from 'react-dom/client';
import { I18nextProvider } from 'react-i18next';
-import { BrowserRouter } from 'react-router-dom';
+import { HashRouter } from 'react-router-dom';
import { App } from './app';
import { i18n } from './i18n/i18n';
import './style/index.css';
@@ -30,9 +30,9 @@ root.render(
-
+
-
+