Revert "don't require requireBuiltInCerts when installing unsigned extensions"
This reverts commit 64d320cf05.
This commit is contained in:
@@ -29,9 +29,6 @@ import 'package:weblibre/features/geckoview/domain/providers.dart';
|
|||||||
part 'browser_addon.g.dart';
|
part 'browser_addon.g.dart';
|
||||||
|
|
||||||
const _signatureRequiredPref = 'xpinstall.signatures.required';
|
const _signatureRequiredPref = 'xpinstall.signatures.required';
|
||||||
const _installRequireBuiltInCertsPref =
|
|
||||||
'extensions.install.requireBuiltInCerts';
|
|
||||||
const _updateRequireBuiltInCertsPref = 'extensions.update.requireBuiltInCerts';
|
|
||||||
|
|
||||||
@Riverpod(keepAlive: true)
|
@Riverpod(keepAlive: true)
|
||||||
class BrowserAddonService extends _$BrowserAddonService {
|
class BrowserAddonService extends _$BrowserAddonService {
|
||||||
@@ -76,13 +73,6 @@ class BrowserAddonService extends _$BrowserAddonService {
|
|||||||
bool allowUnsigned = false,
|
bool allowUnsigned = false,
|
||||||
}) async {
|
}) async {
|
||||||
final prefService = GeckoPrefService();
|
final prefService = GeckoPrefService();
|
||||||
final unsignedInstallPrefs = {
|
|
||||||
_signatureRequiredPref: false,
|
|
||||||
_installRequireBuiltInCertsPref: false,
|
|
||||||
_updateRequireBuiltInCertsPref: false,
|
|
||||||
};
|
|
||||||
|
|
||||||
Map<String, Object>? previousUnsignedInstallPrefs;
|
|
||||||
|
|
||||||
try {
|
try {
|
||||||
// Validate file exists and has .xpi extension
|
// Validate file exists and has .xpi extension
|
||||||
@@ -98,25 +88,7 @@ class BrowserAddonService extends _$BrowserAddonService {
|
|||||||
|
|
||||||
// Temporarily disable signature requirement if user allows unsigned
|
// Temporarily disable signature requirement if user allows unsigned
|
||||||
if (allowUnsigned) {
|
if (allowUnsigned) {
|
||||||
final existingPrefs = await prefService.getPrefs(
|
await prefService.applyPrefs({_signatureRequiredPref: false});
|
||||||
unsignedInstallPrefs.keys.toList(),
|
|
||||||
);
|
|
||||||
|
|
||||||
previousUnsignedInstallPrefs = {
|
|
||||||
for (final entry in existingPrefs.entries)
|
|
||||||
if (entry.value.value case final Object value) entry.key: value,
|
|
||||||
};
|
|
||||||
|
|
||||||
await prefService.applyPrefs(unsignedInstallPrefs);
|
|
||||||
|
|
||||||
final appliedPrefs = await prefService.getPrefs(
|
|
||||||
unsignedInstallPrefs.keys.toList(),
|
|
||||||
);
|
|
||||||
|
|
||||||
logger.i(
|
|
||||||
'Prepared unsigned add-on install prefs: '
|
|
||||||
'${appliedPrefs.map((key, value) => MapEntry(key, value.value))}',
|
|
||||||
);
|
|
||||||
}
|
}
|
||||||
|
|
||||||
try {
|
try {
|
||||||
@@ -129,8 +101,8 @@ class BrowserAddonService extends _$BrowserAddonService {
|
|||||||
return true;
|
return true;
|
||||||
} finally {
|
} finally {
|
||||||
// Always restore signature requirement
|
// Always restore signature requirement
|
||||||
if (allowUnsigned && previousUnsignedInstallPrefs != null) {
|
if (allowUnsigned) {
|
||||||
await prefService.applyPrefs(previousUnsignedInstallPrefs);
|
await prefService.applyPrefs({_signatureRequiredPref: true});
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
} catch (e, s) {
|
} catch (e, s) {
|
||||||
|
|||||||
+1
-1
@@ -88,7 +88,7 @@ class _InstallLocalAddonSheet extends HookConsumerWidget {
|
|||||||
if (errorString.contains('NotSigned') ||
|
if (errorString.contains('NotSigned') ||
|
||||||
errorString.contains('SIGNEDSTATE')) {
|
errorString.contains('SIGNEDSTATE')) {
|
||||||
errorMessage.value =
|
errorMessage.value =
|
||||||
'This extension is not signed by Mozilla. Enable "Allow unsigned extensions" to retry.';
|
'This extension is not signed by Mozilla. Enable "Allow unsigned extensions" to install it.';
|
||||||
} else {
|
} else {
|
||||||
errorMessage.value = 'Installation failed: $errorString';
|
errorMessage.value = 'Installation failed: $errorString';
|
||||||
}
|
}
|
||||||
|
|||||||
Reference in New Issue
Block a user