[tor-commits] [Git][tpo/applications/tor-browser][tor-browser-115.9.0esr-13.5-1] fixup! Bug 42247: Android helpers for the TorProvider
Pier Angelo Vendrame (@pierov)
git at gitlab.torproject.org
Tue Mar 26 18:34:21 UTC 2024
Pier Angelo Vendrame pushed to branch tor-browser-115.9.0esr-13.5-1 at The Tor Project / Applications / Tor Browser
Commits:
9e01b1a9 by Dan Ballard at 2024-03-26T11:33:26-07:00
fixup! Bug 42247: Android helpers for the TorProvider
Bug 41187: Add support for tor logs in android integration
- - - - -
4 changed files:
- mobile/android/geckoview/src/main/java/org/mozilla/geckoview/TorIntegrationAndroid.java
- toolkit/components/tor-launcher/TorProvider.sys.mjs
- toolkit/components/tor-launcher/TorProviderBuilder.sys.mjs
- toolkit/modules/TorAndroidIntegration.sys.mjs
Changes:
=====================================
mobile/android/geckoview/src/main/java/org/mozilla/geckoview/TorIntegrationAndroid.java
=====================================
@@ -46,6 +46,7 @@ public class TorIntegrationAndroid implements BundleEventListener {
private static final String EVENT_BOOTSTRAP_PROGRESS = "GeckoView:Tor:BootstrapProgress";
private static final String EVENT_BOOTSTRAP_COMPLETE = "GeckoView:Tor:BootstrapComplete";
private static final String EVENT_BOOTSTRAP_ERROR = "GeckoView:Tor:BootstrapError";
+ private static final String EVENT_TOR_LOGS = "GeckoView:Tor:Logs";
private static final String EVENT_SETTINGS_READY = "GeckoView:Tor:SettingsReady";
private static final String EVENT_SETTINGS_CHANGED = "GeckoView:Tor:SettingsChanged";
private static final String EVENT_SETTINGS_OPEN = "GeckoView:Tor:OpenSettings";
@@ -118,6 +119,7 @@ public class TorIntegrationAndroid implements BundleEventListener {
EVENT_BOOTSTRAP_PROGRESS,
EVENT_BOOTSTRAP_COMPLETE,
EVENT_BOOTSTRAP_ERROR,
+ EVENT_TOR_LOGS,
EVENT_SETTINGS_OPEN);
}
@@ -168,6 +170,12 @@ public class TorIntegrationAndroid implements BundleEventListener {
for (BootstrapStateChangeListener listener: mBootstrapStateListeners) {
listener.onBootstrapError(msg, details);
}
+ } else if (EVENT_TOR_LOGS.equals(event)) {
+ String msg = message.getString("message");
+ String type = message.getString("logType");
+ for (TorLogListener listener: mLogListeners) {
+ listener.onLog(type, msg);
+ }
} else if (EVENT_SETTINGS_OPEN.equals(event)) {
for (BootstrapStateChangeListener listener: mBootstrapStateListeners) {
listener.onSettingsRequested();
@@ -573,6 +581,10 @@ public class TorIntegrationAndroid implements BundleEventListener {
void onSettingsRequested();
}
+ public interface TorLogListener {
+ void onLog(String logType, String message);
+ }
+
private @NonNull void reloadSettings() {
EventDispatcher.getInstance().queryBundle(EVENT_SETTINGS_GET).then( new GeckoResult.OnValueListener<GeckoBundle, Void>() {
public GeckoResult<Void> onValue(final GeckoBundle bundle) {
@@ -647,4 +659,14 @@ public class TorIntegrationAndroid implements BundleEventListener {
}
private final HashSet<BootstrapStateChangeListener> mBootstrapStateListeners = new HashSet<>();
+
+ public void registerLogListener(TorLogListener listener) {
+ mLogListeners.add(listener);
+ }
+
+ public void unregisterLogListener(TorLogListener listener) {
+ mLogListeners.remove(listener);
+ }
+
+ private final HashSet<TorLogListener> mLogListeners = new HashSet<>();
}
=====================================
toolkit/components/tor-launcher/TorProvider.sys.mjs
=====================================
@@ -1002,6 +1002,8 @@ export class TorProvider {
Services.obs.notifyObservers(null, TorProviderTopics.HasWarnOrErr);
}
+ Services.obs.notifyObservers({ type, msg }, TorProviderTopics.TorLog);
+
const date = new Date();
const maxEntries = Services.prefs.getIntPref(
Preferences.MaxLogEntries,
=====================================
toolkit/components/tor-launcher/TorProviderBuilder.sys.mjs
=====================================
@@ -12,6 +12,7 @@ export const TorProviderTopics = Object.freeze({
ProcessExited: "TorProcessExited",
BootstrapStatus: "TorBootstrapStatus",
BootstrapError: "TorBootstrapError",
+ TorLog: "TorLog",
HasWarnOrErr: "TorLogHasWarnOrErr",
BridgeChanged: "TorBridgeChanged",
CircuitCredentialsMatched: "TorCircuitCredentialsMatched",
=====================================
toolkit/modules/TorAndroidIntegration.sys.mjs
=====================================
@@ -11,6 +11,7 @@ ChromeUtils.defineESModuleGetters(lazy, {
TorConnectTopics: "resource://gre/modules/TorConnect.sys.mjs",
TorSettingsTopics: "resource://gre/modules/TorSettings.sys.mjs",
TorProviderBuilder: "resource://gre/modules/TorProviderBuilder.sys.mjs",
+ TorProviderTopics: "resource://gre/modules/TorProviderBuilder.sys.mjs",
TorSettings: "resource://gre/modules/TorSettings.sys.mjs",
});
@@ -32,6 +33,7 @@ const EmittedEvents = Object.freeze({
bootstrapProgress: "GeckoView:Tor:BootstrapProgress",
bootstrapComplete: "GeckoView:Tor:BootstrapComplete",
bootstrapError: "GeckoView:Tor:BootstrapError",
+ torLogs: "GeckoView:Tor:Logs",
});
const ListenedEvents = Object.freeze({
@@ -59,6 +61,8 @@ class TorAndroidIntegrationImpl {
this.#bootstrapMethodReset();
Services.prefs.addObserver(Prefs.useNewBootstrap, this);
+ Services.obs.addObserver(this, lazy.TorProviderTopics.TorLog);
+
for (const topic in lazy.TorConnectTopics) {
Services.obs.addObserver(this, lazy.TorConnectTopics[topic]);
}
@@ -118,6 +122,13 @@ class TorAndroidIntegrationImpl {
details: subj.wrappedJSObject.details ?? "",
});
break;
+ case lazy.TorProviderTopics.TorLog:
+ lazy.EventDispatcher.instance.sendRequest({
+ type: EmittedEvents.torLogs,
+ logType: subj.wrappedJSObject.type ?? "",
+ message: subj.wrappedJSObject.msg ?? "",
+ });
+ break;
case lazy.TorSettingsTopics.Ready:
lazy.EventDispatcher.instance.sendRequest({
type: EmittedEvents.settingsReady,
View it on GitLab: https://gitlab.torproject.org/tpo/applications/tor-browser/-/commit/9e01b1a9e2fc26ab5025dfa60f5a94126dc9a222
--
View it on GitLab: https://gitlab.torproject.org/tpo/applications/tor-browser/-/commit/9e01b1a9e2fc26ab5025dfa60f5a94126dc9a222
You're receiving this email because of your account on gitlab.torproject.org.
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.torproject.org/pipermail/tor-commits/attachments/20240326/eef2d709/attachment-0001.htm>
More information about the tor-commits
mailing list