Loading mobile/android/geckoview/src/main/java/org/mozilla/geckoview/TorIntegrationAndroid.java +30 −11 Original line number Diff line number Diff line Loading @@ -7,6 +7,7 @@ package org.mozilla.geckoview; import android.content.Context; import android.os.AsyncTask; import android.util.Log; import androidx.annotation.AnyThread; Loading Loading @@ -131,7 +132,11 @@ public class TorIntegrationAndroid implements BundleEventListener { } else if (EVENT_MEEK_STOP.equals(event)) { stopMeek(message, callback); } else if (EVENT_SETTINGS_READY.equals(event)) { loadSettings(message); try { new SettingsLoader().execute(message); } catch(Exception e) { Log.e(TAG, "SettingsLoader error: "+ e.toString()); } } else if (EVENT_BOOTSTRAP_STATE_CHANGED.equals(event)) { String state = message.getString("state"); for (BootstrapStateChangeListener listener: mBootstrapStateListeners) { Loading Loading @@ -161,14 +166,24 @@ public class TorIntegrationAndroid implements BundleEventListener { } } private void loadSettings(GeckoBundle message) { private class SettingsLoader extends AsyncTask<GeckoBundle, Void, TorSettings> { protected TorSettings doInBackground(GeckoBundle... messages) { GeckoBundle message = messages[0]; TorSettings settings; if (TorLegacyAndroidSettings.unmigrated()) { mSettings = TorLegacyAndroidSettings.loadTorSettings(); setSettings(mSettings); settings = TorLegacyAndroidSettings.loadTorSettings(); setSettings(settings, true, true); TorLegacyAndroidSettings.setMigrated(); } else { GeckoBundle bundle = message.getBundle("settings"); mSettings = new TorSettings(bundle); settings = new TorSettings(bundle); } return settings; } @Override protected void onPostExecute(TorSettings torSettings) { mSettings = torSettings; } } Loading Loading @@ -515,8 +530,12 @@ public class TorIntegrationAndroid implements BundleEventListener { return EventDispatcher.getInstance().queryBundle(EVENT_SETTINGS_GET); } public @NonNull GeckoResult<Void> setSettings(final TorSettings settings) { return EventDispatcher.getInstance().queryVoid(EVENT_SETTINGS_SET, settings.asGeckoBundle()); public @NonNull GeckoResult<Void> setSettings(final TorSettings settings, boolean save, boolean apply) { GeckoBundle bundle = new GeckoBundle(3); bundle.putBoolean("save", save); bundle.putBoolean("apply", apply); bundle.putBundle("settings", settings.asGeckoBundle()); return EventDispatcher.getInstance().queryVoid(EVENT_SETTINGS_SET, bundle); } public @NonNull GeckoResult<Void> applySettings() { Loading toolkit/modules/TorAndroidIntegration.sys.mjs +8 −2 Original line number Diff line number Diff line Loading @@ -136,13 +136,19 @@ class TorAndroidIntegrationImpl { return; case ListenedEvents.settingsSet: // This does not throw, so we do not have any way to report the error! lazy.TorSettings.setSettings(data); lazy.TorSettings.setSettings(data.settings); if (data.save) { lazy.TorSettings.saveToPrefs(); } if (data.apply) { lazy.TorSettings.applySettings(); } break; case ListenedEvents.settingsApply: await lazy.TorSettings.applySettings(); break; case ListenedEvents.settingsSave: await lazy.TorSettings.saveSettings(); await lazy.TorSettings.saveToPrefs(); break; case ListenedEvents.bootstrapBegin: lazy.TorConnect.beginBootstrap(); Loading Loading
mobile/android/geckoview/src/main/java/org/mozilla/geckoview/TorIntegrationAndroid.java +30 −11 Original line number Diff line number Diff line Loading @@ -7,6 +7,7 @@ package org.mozilla.geckoview; import android.content.Context; import android.os.AsyncTask; import android.util.Log; import androidx.annotation.AnyThread; Loading Loading @@ -131,7 +132,11 @@ public class TorIntegrationAndroid implements BundleEventListener { } else if (EVENT_MEEK_STOP.equals(event)) { stopMeek(message, callback); } else if (EVENT_SETTINGS_READY.equals(event)) { loadSettings(message); try { new SettingsLoader().execute(message); } catch(Exception e) { Log.e(TAG, "SettingsLoader error: "+ e.toString()); } } else if (EVENT_BOOTSTRAP_STATE_CHANGED.equals(event)) { String state = message.getString("state"); for (BootstrapStateChangeListener listener: mBootstrapStateListeners) { Loading Loading @@ -161,14 +166,24 @@ public class TorIntegrationAndroid implements BundleEventListener { } } private void loadSettings(GeckoBundle message) { private class SettingsLoader extends AsyncTask<GeckoBundle, Void, TorSettings> { protected TorSettings doInBackground(GeckoBundle... messages) { GeckoBundle message = messages[0]; TorSettings settings; if (TorLegacyAndroidSettings.unmigrated()) { mSettings = TorLegacyAndroidSettings.loadTorSettings(); setSettings(mSettings); settings = TorLegacyAndroidSettings.loadTorSettings(); setSettings(settings, true, true); TorLegacyAndroidSettings.setMigrated(); } else { GeckoBundle bundle = message.getBundle("settings"); mSettings = new TorSettings(bundle); settings = new TorSettings(bundle); } return settings; } @Override protected void onPostExecute(TorSettings torSettings) { mSettings = torSettings; } } Loading Loading @@ -515,8 +530,12 @@ public class TorIntegrationAndroid implements BundleEventListener { return EventDispatcher.getInstance().queryBundle(EVENT_SETTINGS_GET); } public @NonNull GeckoResult<Void> setSettings(final TorSettings settings) { return EventDispatcher.getInstance().queryVoid(EVENT_SETTINGS_SET, settings.asGeckoBundle()); public @NonNull GeckoResult<Void> setSettings(final TorSettings settings, boolean save, boolean apply) { GeckoBundle bundle = new GeckoBundle(3); bundle.putBoolean("save", save); bundle.putBoolean("apply", apply); bundle.putBundle("settings", settings.asGeckoBundle()); return EventDispatcher.getInstance().queryVoid(EVENT_SETTINGS_SET, bundle); } public @NonNull GeckoResult<Void> applySettings() { Loading
toolkit/modules/TorAndroidIntegration.sys.mjs +8 −2 Original line number Diff line number Diff line Loading @@ -136,13 +136,19 @@ class TorAndroidIntegrationImpl { return; case ListenedEvents.settingsSet: // This does not throw, so we do not have any way to report the error! lazy.TorSettings.setSettings(data); lazy.TorSettings.setSettings(data.settings); if (data.save) { lazy.TorSettings.saveToPrefs(); } if (data.apply) { lazy.TorSettings.applySettings(); } break; case ListenedEvents.settingsApply: await lazy.TorSettings.applySettings(); break; case ListenedEvents.settingsSave: await lazy.TorSettings.saveSettings(); await lazy.TorSettings.saveToPrefs(); break; case ListenedEvents.bootstrapBegin: lazy.TorConnect.beginBootstrap(); Loading