lists.torproject.org
Sign In Sign Up
Manage this list Sign In Sign Up

Keyboard Shortcuts

Thread View

  • j: Next unread message
  • k: Previous unread message
  • j a: Jump to all threads
  • j l: Jump to MailingList overview

tbb-commits

Thread Start a new thread
Threads by month
  • ----- 2025 -----
  • November
  • October
  • September
  • August
  • July
  • June
  • May
  • April
  • March
  • February
  • January
  • ----- 2024 -----
  • December
  • November
  • October
  • September
  • August
  • July
  • June
  • May
  • April
  • March
  • February
  • January
  • ----- 2023 -----
  • December
  • November
  • October
  • September
  • August
  • July
  • June
  • May
  • April
  • March
  • February
  • January
  • ----- 2022 -----
  • December
  • November
  • October
  • September
  • August
  • July
  • June
  • May
  • April
  • March
  • February
  • January
  • ----- 2021 -----
  • December
  • November
  • October
  • September
  • August
  • July
  • June
  • May
  • April
  • March
  • February
  • January
  • ----- 2020 -----
  • December
  • November
  • October
  • September
  • August
  • July
  • June
  • May
  • April
  • March
  • February
  • January
  • ----- 2019 -----
  • December
  • November
  • October
  • September
  • August
  • July
  • June
  • May
  • April
  • March
  • February
  • January
  • ----- 2018 -----
  • December
  • November
  • October
  • September
  • August
  • July
  • June
  • May
  • April
  • March
  • February
  • January
  • ----- 2017 -----
  • December
  • November
  • October
  • September
  • August
  • July
  • June
  • May
  • April
  • March
  • February
  • January
  • ----- 2016 -----
  • December
  • November
  • October
  • September
  • August
  • July
  • June
  • May
  • April
  • March
  • February
  • January
  • ----- 2015 -----
  • December
  • November
  • October
  • September
  • August
  • July
  • June
  • May
  • April
  • March
  • February
  • January
  • ----- 2014 -----
  • December
  • November
  • October
  • September
  • August
  • July
  • June
  • May
  • April
  • March
  • February
tbb-commits@lists.torproject.org

  • 1 participants
  • 19540 discussions
[tor-browser/tor-browser-60.1.0esr-8.0-1] Orfox: hook up default panic trigger to "quit and clear"
by gk@torproject.org 27 Jul '18

27 Jul '18
commit e7b74ce6d0559f2a9d801b7dae1117fb8ead0212 Author: Hans-Christoph Steiner <hans(a)eds.org> Date: Sat Nov 21 00:24:09 2015 +0100 Orfox: hook up default panic trigger to "quit and clear" Signed-off-by: Amogh Pradeep <amoghbl1(a)gmail.com> --- mobile/android/base/AndroidManifest.xml.in | 7 +++ .../base/java/org/mozilla/gecko/GeckoApp.java | 61 ++++++++++++---------- 2 files changed, 41 insertions(+), 27 deletions(-) diff --git a/mobile/android/base/AndroidManifest.xml.in b/mobile/android/base/AndroidManifest.xml.in index 4f626dcc2098..c4ea9a37683e 100644 --- a/mobile/android/base/AndroidManifest.xml.in +++ b/mobile/android/base/AndroidManifest.xml.in @@ -168,6 +168,13 @@ <data android:pathPattern=".*\\.xpi" /> </intent-filter> + <!-- receive triggers from panickit apps --> + <intent-filter> + <action android:name="info.guardianproject.panic.action.TRIGGER" /> + + <category android:name="android.intent.category.DEFAULT" /> + </intent-filter> + #ifdef MOZ_ANDROID_BEAM <intent-filter> <action android:name="android.nfc.action.NDEF_DISCOVERED"/> diff --git a/mobile/android/base/java/org/mozilla/gecko/GeckoApp.java b/mobile/android/base/java/org/mozilla/gecko/GeckoApp.java index ada3e5fa5b0c..63a136541970 100644 --- a/mobile/android/base/java/org/mozilla/gecko/GeckoApp.java +++ b/mobile/android/base/java/org/mozilla/gecko/GeckoApp.java @@ -129,6 +129,7 @@ public abstract class GeckoApp extends GeckoActivity public static final String ACTION_INIT_PW = "org.mozilla.gecko.INIT_PW"; public static final String ACTION_SWITCH_TAB = "org.mozilla.gecko.SWITCH_TAB"; public static final String ACTION_SHUTDOWN = "org.mozilla.gecko.SHUTDOWN"; + public static final String ACTION_PANIC_TRIGGER = "info.guardianproject.panic.action.TRIGGER"; public static final String INTENT_REGISTER_STUMBLER_LISTENER = "org.mozilla.gecko.STUMBLER_REGISTER_LOCAL_LISTENER"; @@ -554,42 +555,46 @@ public abstract class GeckoApp extends GeckoActivity @Override public boolean onOptionsItemSelected(MenuItem item) { if (item.getItemId() == R.id.quit) { - // Make sure the Guest Browsing notification goes away when we quit. - GuestSession.hideNotification(this); + quitAndClear(); + return true; + } - final SharedPreferences prefs = getSharedPreferencesForProfile(); - final Set<String> clearSet = PrefUtils.getStringSet( - prefs, ClearOnShutdownPref.PREF, new HashSet<String>()); + return super.onOptionsItemSelected(item); + } - final GeckoBundle clearObj = new GeckoBundle(clearSet.size()); - for (final String clear : clearSet) { - clearObj.putBoolean(clear, true); - } + private void quitAndClear() { + // Make sure the Guest Browsing notification goes away when we quit. + GuestSession.hideNotification(this); - final GeckoBundle res = new GeckoBundle(2); - res.putBundle("sanitize", clearObj); + final SharedPreferences prefs = getSharedPreferencesForProfile(); + final Set<String> clearSet = PrefUtils.getStringSet( + prefs, ClearOnShutdownPref.PREF, new HashSet<String>()); - // If the user wants to clear open tabs, or else has opted out of session - // restore and does want to clear history, we also want to prevent the current - // session info from being saved. - if (clearObj.containsKey("private.data.openTabs")) { - res.putBoolean("dontSaveSession", true); - } else if (clearObj.containsKey("private.data.history")) { + final GeckoBundle clearObj = new GeckoBundle(clearSet.size()); + for (final String clear : clearSet) { + clearObj.putBoolean(clear, true); + } - final String sessionRestore = - getSessionRestorePreference(getSharedPreferences()); - res.putBoolean("dontSaveSession", "quit".equals(sessionRestore)); - } + final GeckoBundle res = new GeckoBundle(2); + res.putBundle("sanitize", clearObj); - EventDispatcher.getInstance().dispatch("Browser:Quit", res); + // If the user wants to clear open tabs, or else has opted out of session + // restore and does want to clear history, we also want to prevent the current + // session info from being saved. + if (clearObj.containsKey("private.data.openTabs")) { + res.putBoolean("dontSaveSession", true); + } else if (clearObj.containsKey("private.data.history")) { - // We don't call shutdown here because this creates a race condition which - // can cause the clearing of private data to fail. Instead, we shut down the - // UI only after we're done sanitizing. - return true; + final String sessionRestore = + getSessionRestorePreference(getSharedPreferences()); + res.putBoolean("dontSaveSession", "quit".equals(sessionRestore)); } - return super.onOptionsItemSelected(item); + EventDispatcher.getInstance().dispatch("Browser:Quit", res); + + // We don't call shutdown here because this creates a race condition which + // can cause the clearing of private data to fail. Instead, we shut down the + // UI only after we're done sanitizing. } @Override @@ -1531,6 +1536,8 @@ public abstract class GeckoApp extends GeckoActivity // Copy extras. settingsIntent.putExtras(intent.getUnsafe()); startActivity(settingsIntent); + } else if (ACTION_PANIC_TRIGGER.equals(action)) { + quitAndClear(); } mPromptService = new PromptService(this, getAppEventDispatcher());
1 0
0 0
[tor-browser/tor-browser-60.1.0esr-8.0-1] Orfox: NetCipher enabled, checks if orbot is installed
by gk@torproject.org 27 Jul '18

27 Jul '18
commit 5307039febcc2e0fcd0b2451d821197202fda8b8 Author: Amogh Pradeep <amoghbl1(a)gmail.com> Date: Mon Jul 20 21:46:25 2015 -0400 Orfox: NetCipher enabled, checks if orbot is installed Signed-off-by: Amogh Pradeep <amoghbl1(a)gmail.com> --- .../base/java/org/mozilla/gecko/BrowserApp.java | 38 +++- mobile/android/base/strings.xml.in | 1 + .../netcipher/proxy/OrbotHelper.java | 186 ++++++++++++++++ .../netcipher/proxy/TorServiceUtils.java | 233 +++++++++++++++++++++ mobile/android/torbrowser/strings.xml.in | 5 + 5 files changed, 458 insertions(+), 5 deletions(-) diff --git a/mobile/android/base/java/org/mozilla/gecko/BrowserApp.java b/mobile/android/base/java/org/mozilla/gecko/BrowserApp.java index 88c707cfa533..8d5bbddabc88 100644 --- a/mobile/android/base/java/org/mozilla/gecko/BrowserApp.java +++ b/mobile/android/base/java/org/mozilla/gecko/BrowserApp.java @@ -176,6 +176,8 @@ import org.mozilla.gecko.widget.GeckoActionProvider; import org.mozilla.gecko.widget.SplashScreen; import org.mozilla.geckoview.GeckoSession; +import info.guardianproject.netcipher.proxy.OrbotHelper; + import java.io.File; import java.io.FileNotFoundException; import java.io.IOException; @@ -1271,6 +1273,30 @@ public class BrowserApp extends GeckoApp } } + public void checkStartOrbot() { + if (!OrbotHelper.isOrbotInstalled(this)) { + final Intent installOrbotIntent = OrbotHelper.getOrbotInstallIntent(this); + + AlertDialog.Builder builder = new AlertDialog.Builder(this); + builder.setTitle(R.string.install_orbot); + builder.setMessage(R.string.you_must_have_orbot); + builder.setPositiveButton(R.string.yes, new DialogInterface.OnClickListener() { + @Override + public void onClick(DialogInterface dialogInterface, int i) { + startActivity(installOrbotIntent); + } + }); + builder.setNegativeButton(R.string.no, new DialogInterface.OnClickListener() { + @Override + public void onClick(DialogInterface dialogInterface, int i) { + } + }); + builder.show(); + } else { + OrbotHelper.requestStartTor(this); + } + } + @Override public void onResume() { super.onResume(); @@ -1279,16 +1305,18 @@ public class BrowserApp extends GeckoApp return; } - if (!mHasResumed) { - getAppEventDispatcher().unregisterUiThreadListener(this, "Prompt:ShowTop"); - mHasResumed = true; - } - processTabQueue(); for (BrowserAppDelegate delegate : delegates) { delegate.onResume(this); } + + // isInAutomation is overloaded with isTorBrowser(), but here we actually + // need to know if we are in automation. + final SafeIntent intent = new SafeIntent(getIntent()); + if (!IntentUtils.getIsInAutomationFromEnvironment(intent)) { + checkStartOrbot(); + } } @Override diff --git a/mobile/android/base/strings.xml.in b/mobile/android/base/strings.xml.in index b510012948b9..cf43a3b4c78b 100644 --- a/mobile/android/base/strings.xml.in +++ b/mobile/android/base/strings.xml.in @@ -25,6 +25,7 @@ <string name="android_package_name_for_ui">@ANDROID_PACKAGE_NAME@</string> #include ../services/strings.xml.in +#include ../torbrowser/strings.xml.in <string name="firstrun_panel_title_welcome">&firstrun_panel_title_welcome;</string> diff --git a/mobile/android/geckoview/src/thirdparty/java/info/guardianproject/netcipher/proxy/OrbotHelper.java b/mobile/android/geckoview/src/thirdparty/java/info/guardianproject/netcipher/proxy/OrbotHelper.java new file mode 100644 index 000000000000..d6a632fda37d --- /dev/null +++ b/mobile/android/geckoview/src/thirdparty/java/info/guardianproject/netcipher/proxy/OrbotHelper.java @@ -0,0 +1,186 @@ + +package info.guardianproject.netcipher.proxy; + +import android.app.Activity; +import android.content.Context; +import android.content.Intent; +import android.content.pm.PackageManager; +import android.content.pm.ResolveInfo; +import android.net.Uri; +import android.text.TextUtils; +import android.util.Log; + + +import java.util.List; + +public class OrbotHelper { + + private final static int REQUEST_CODE_STATUS = 100; + + public final static String ORBOT_PACKAGE_NAME = "org.torproject.android"; + public final static String ORBOT_MARKET_URI = "market://details?id=" + ORBOT_PACKAGE_NAME; + public final static String ORBOT_FDROID_URI = "https://f-droid.org/repository/browse/?fdid=" + + ORBOT_PACKAGE_NAME; + public final static String ORBOT_PLAY_URI = "https://play.google.com/store/apps/details?id=" + + ORBOT_PACKAGE_NAME; + + /** + * A request to Orbot to transparently start Tor services + */ + public final static String ACTION_START = "org.torproject.android.intent.action.START"; + /** + * {@link Intent} send by Orbot with {@code ON/OFF/STARTING/STOPPING} status + */ + public final static String ACTION_STATUS = "org.torproject.android.intent.action.STATUS"; + /** + * {@code String} that contains a status constant: {@link #STATUS_ON}, + * {@link #STATUS_OFF}, {@link #STATUS_STARTING}, or + * {@link #STATUS_STOPPING} + */ + public final static String EXTRA_STATUS = "org.torproject.android.intent.extra.STATUS"; + /** + * A {@link String} {@code packageName} for Orbot to direct its status reply + * to, used in {@link #ACTION_START} {@link Intent}s sent to Orbot + */ + public final static String EXTRA_PACKAGE_NAME = "org.torproject.android.intent.extra.PACKAGE_NAME"; + + /** + * All tor-related services and daemons are stopped + */ + public final static String STATUS_OFF = "OFF"; + /** + * All tor-related services and daemons have completed starting + */ + public final static String STATUS_ON = "ON"; + public final static String STATUS_STARTING = "STARTING"; + public final static String STATUS_STOPPING = "STOPPING"; + /** + * The user has disabled the ability for background starts triggered by + * apps. Fallback to the old Intent that brings up Orbot. + */ + public final static String STATUS_STARTS_DISABLED = "STARTS_DISABLED"; + + public final static String ACTION_START_TOR = "org.torproject.android.START_TOR"; + public final static String ACTION_REQUEST_HS = "org.torproject.android.REQUEST_HS_PORT"; + public final static int START_TOR_RESULT = 0x048079234; + public final static int HS_REQUEST_CODE = 9999; + + private final static String FDROID_PACKAGE_NAME = "org.fdroid.fdroid"; + private final static String PLAY_PACKAGE_NAME = "com.android.vending"; + + private OrbotHelper() { + // only static utility methods, do not instantiate + } + + public static boolean isOrbotRunning(Context context) { + int procId = TorServiceUtils.findProcessId(context); + + return (procId != -1); + } + + public static boolean isOrbotInstalled(Context context) { + return isAppInstalled(context, ORBOT_PACKAGE_NAME); + } + + private static boolean isAppInstalled(Context context, String uri) { + try { + PackageManager pm = context.getPackageManager(); + pm.getPackageInfo(uri, PackageManager.GET_ACTIVITIES); + return true; + } catch (PackageManager.NameNotFoundException e) { + return false; + } + } + + public static void requestHiddenServiceOnPort(Activity activity, int port) { + Intent intent = new Intent(ACTION_REQUEST_HS); + intent.setPackage(ORBOT_PACKAGE_NAME); + intent.putExtra("hs_port", port); + + activity.startActivityForResult(intent, HS_REQUEST_CODE); + } + + /** + * First, checks whether Orbot is installed. If Orbot is installed, then a + * broadcast {@link Intent} is sent to request Orbot to start transparently + * in the background. When Orbot receives this {@code Intent}, it will + * immediately reply to this all with its status via an + * {@link #ACTION_STATUS} {@code Intent} that is broadcast to the + * {@code packageName} of the provided {@link Context} (i.e. + * {@link Context#getPackageName()}. + * + * @param context the app {@link Context} will receive the reply + * @return whether the start request was sent to Orbot + */ + public static boolean requestStartTor(Context context) { + if (OrbotHelper.isOrbotInstalled(context)) { + Log.i("OrbotHelper", "requestStartTor " + context.getPackageName()); + Intent intent = getOrbotStartIntent(); + intent.putExtra(EXTRA_PACKAGE_NAME, context.getPackageName()); + context.sendBroadcast(intent); + return true; + } + return false; + } + + public static Intent getOrbotStartIntent() { + Intent intent = new Intent(ACTION_START); + intent.setPackage(ORBOT_PACKAGE_NAME); + return intent; + } + + /** + * First, checks whether Orbot is installed, then checks whether Orbot is + * running. If Orbot is installed and not running, then an {@link Intent} is + * sent to request Orbot to start, which will show the main Orbot screen. + * The result will be returned in + * {@link Activity#onActivityResult(int requestCode, int resultCode, Intent data)} + * with a {@code requestCode} of {@link START_TOR_RESULT} + * + * @param activity the {@link Activity} that gets the + * {@code START_TOR_RESULT} result + * @return whether the start request was sent to Orbot + */ + public static boolean requestShowOrbotStart(Activity activity) { + if (OrbotHelper.isOrbotInstalled(activity)) { + if (!OrbotHelper.isOrbotRunning(activity)) { + Intent intent = getShowOrbotStartIntent(); + activity.startActivityForResult(intent, START_TOR_RESULT); + return true; + } + } + return false; + } + + public static Intent getShowOrbotStartIntent() { + Intent intent = new Intent(ACTION_START_TOR); + intent.setPackage(ORBOT_PACKAGE_NAME); + intent.addFlags(Intent.FLAG_ACTIVITY_NEW_TASK); + return intent; + } + + public static Intent getOrbotInstallIntent(Context context) { + final Intent intent = new Intent(Intent.ACTION_VIEW); + intent.setData(Uri.parse(ORBOT_MARKET_URI)); + + PackageManager pm = context.getPackageManager(); + List<ResolveInfo> resInfos = pm.queryIntentActivities(intent, 0); + + String foundPackageName = null; + for (ResolveInfo r : resInfos) { + Log.i("OrbotHelper", "market: " + r.activityInfo.packageName); + if (TextUtils.equals(r.activityInfo.packageName, FDROID_PACKAGE_NAME) + || TextUtils.equals(r.activityInfo.packageName, PLAY_PACKAGE_NAME)) { + foundPackageName = r.activityInfo.packageName; + break; + } + } + + if (foundPackageName == null) { + intent.setData(Uri.parse(ORBOT_FDROID_URI)); + } else { + intent.setPackage(foundPackageName); + } + return intent; + } +} diff --git a/mobile/android/geckoview/src/thirdparty/java/info/guardianproject/netcipher/proxy/TorServiceUtils.java b/mobile/android/geckoview/src/thirdparty/java/info/guardianproject/netcipher/proxy/TorServiceUtils.java new file mode 100644 index 000000000000..e553ecac3543 --- /dev/null +++ b/mobile/android/geckoview/src/thirdparty/java/info/guardianproject/netcipher/proxy/TorServiceUtils.java @@ -0,0 +1,233 @@ +/* Copyright (c) 2009, Nathan Freitas, Orbot / The Guardian Project - http://openideals.com/guardian */ +/* See LICENSE for licensing information */ + +package info.guardianproject.netcipher.proxy; + +import android.content.Context; +import android.util.Log; + + +import java.io.BufferedReader; +import java.io.File; +import java.io.IOException; +import java.io.InputStreamReader; +import java.io.OutputStreamWriter; +import java.net.URLEncoder; +import java.util.StringTokenizer; + +public class TorServiceUtils { + + private final static String TAG = "TorUtils"; + // various console cmds + public final static String SHELL_CMD_CHMOD = "chmod"; + public final static String SHELL_CMD_KILL = "kill -9"; + public final static String SHELL_CMD_RM = "rm"; + public final static String SHELL_CMD_PS = "ps"; + public final static String SHELL_CMD_PIDOF = "pidof"; + + public final static String CHMOD_EXE_VALUE = "700"; + + public static boolean isRootPossible() + { + + StringBuilder log = new StringBuilder(); + + try { + + // Check if Superuser.apk exists + File fileSU = new File("/system/app/Superuser.apk"); + if (fileSU.exists()) + return true; + + fileSU = new File("/system/app/superuser.apk"); + if (fileSU.exists()) + return true; + + fileSU = new File("/system/bin/su"); + if (fileSU.exists()) + { + String[] cmd = { + "su" + }; + int exitCode = TorServiceUtils.doShellCommand(cmd, log, false, true); + if (exitCode != 0) + return false; + else + return true; + } + + // Check for 'su' binary + String[] cmd = { + "which su" + }; + int exitCode = TorServiceUtils.doShellCommand(cmd, log, false, true); + + if (exitCode == 0) { + Log.d(TAG, "root exists, but not sure about permissions"); + return true; + + } + + } catch (IOException e) { + // this means that there is no root to be had (normally) so we won't + // log anything + Log.e(TAG, "Error checking for root access", e); + + } catch (Exception e) { + Log.e(TAG, "Error checking for root access", e); + // this means that there is no root to be had (normally) + } + + Log.e(TAG, "Could not acquire root permissions"); + + return false; + } + + public static int findProcessId(Context context) { + String dataPath = context.getFilesDir().getParentFile().getParentFile().getAbsolutePath(); + String command = dataPath + "/" + OrbotHelper.ORBOT_PACKAGE_NAME + "/app_bin/tor"; + int procId = -1; + + try { + procId = findProcessIdWithPidOf(command); + + if (procId == -1) + procId = findProcessIdWithPS(command); + } catch (Exception e) { + try { + procId = findProcessIdWithPS(command); + } catch (Exception e2) { + Log.e(TAG, "Unable to get proc id for command: " + URLEncoder.encode(command), e2); + } + } + + return procId; + } + + // use 'pidof' command + public static int findProcessIdWithPidOf(String command) throws Exception + { + + int procId = -1; + + Runtime r = Runtime.getRuntime(); + + Process procPs = null; + + String baseName = new File(command).getName(); + // fix contributed my mikos on 2010.12.10 + procPs = r.exec(new String[] { + SHELL_CMD_PIDOF, baseName + }); + // procPs = r.exec(SHELL_CMD_PIDOF); + + BufferedReader reader = new BufferedReader(new InputStreamReader(procPs.getInputStream())); + String line = null; + + while ((line = reader.readLine()) != null) + { + + try + { + // this line should just be the process id + procId = Integer.parseInt(line.trim()); + break; + } catch (NumberFormatException e) + { + Log.e("TorServiceUtils", "unable to parse process pid: " + line, e); + } + } + + return procId; + + } + + // use 'ps' command + public static int findProcessIdWithPS(String command) throws Exception + { + + int procId = -1; + + Runtime r = Runtime.getRuntime(); + + Process procPs = null; + + procPs = r.exec(SHELL_CMD_PS); + + BufferedReader reader = new BufferedReader(new InputStreamReader(procPs.getInputStream())); + String line = null; + + while ((line = reader.readLine()) != null) + { + if (line.indexOf(' ' + command) != -1) + { + + StringTokenizer st = new StringTokenizer(line, " "); + st.nextToken(); // proc owner + + procId = Integer.parseInt(st.nextToken().trim()); + + break; + } + } + + return procId; + + } + + public static int doShellCommand(String[] cmds, StringBuilder log, boolean runAsRoot, + boolean waitFor) throws Exception + { + + Process proc = null; + int exitCode = -1; + + if (runAsRoot) + proc = Runtime.getRuntime().exec("su"); + else + proc = Runtime.getRuntime().exec("sh"); + + OutputStreamWriter out = new OutputStreamWriter(proc.getOutputStream()); + + for (int i = 0; i < cmds.length; i++) + { + // TorService.logMessage("executing shell cmd: " + cmds[i] + + // "; runAsRoot=" + runAsRoot + ";waitFor=" + waitFor); + + out.write(cmds[i]); + out.write("\n"); + } + + out.flush(); + out.write("exit\n"); + out.flush(); + + if (waitFor) + { + + final char buf[] = new char[10]; + + // Consume the "stdout" + InputStreamReader reader = new InputStreamReader(proc.getInputStream()); + int read = 0; + while ((read = reader.read(buf)) != -1) { + if (log != null) + log.append(buf, 0, read); + } + + // Consume the "stderr" + reader = new InputStreamReader(proc.getErrorStream()); + read = 0; + while ((read = reader.read(buf)) != -1) { + if (log != null) + log.append(buf, 0, read); + } + + exitCode = proc.waitFor(); + + } + + return exitCode; + + } +} diff --git a/mobile/android/torbrowser/strings.xml.in b/mobile/android/torbrowser/strings.xml.in new file mode 100644 index 000000000000..e3a22974ed78 --- /dev/null +++ b/mobile/android/torbrowser/strings.xml.in @@ -0,0 +1,5 @@ +<!-- NetCipher Integration Strings, used for dialog --> + <string name="install_orbot">Install Orbot?</string> + <string name="you_must_have_orbot">You must have Orbot installed and activated to proxy traffic through it. Would you like to download it?</string> + <string name="yes">Yes</string> + <string name="no">No</string>
1 0
0 0
[tor-browser/tor-browser-60.1.0esr-8.0-1] Bug 25741 - TBA: Disable features at compile-time
by gk@torproject.org 27 Jul '18

27 Jul '18
commit 377b11c036a42e4157e02ab8aaa8b1fc9a8cd45b Author: Matthew Finkel <Matthew.Finkel(a)gmail.com> Date: Mon Apr 9 19:48:12 2018 +0000 Bug 25741 - TBA: Disable features at compile-time MOZ_NATIVE_DEVICES for casting and the media player MOZ_TELEMETRY_REPORTING for telemetry MOZ_DATA_REPORTING for all data reporting preferences (crashreport, telemetry, geo) Document two remaining but unused defines: MOZ_CAPTURE MOZ_XULRUNNER --- mobile/android/confvars.sh | 17 +++++++++++++++++ 1 file changed, 17 insertions(+) diff --git a/mobile/android/confvars.sh b/mobile/android/confvars.sh index e1b507396c84..43062e7352c6 100644 --- a/mobile/android/confvars.sh +++ b/mobile/android/confvars.sh @@ -30,9 +30,14 @@ MOZ_ANDROID_BROWSER_INTENT_CLASS=org.mozilla.gecko.BrowserApp MOZ_NO_SMART_CARDS=1 +# TBA: MOZ_XULRUNNER and MOZ_CAPTURE defines are dead/unused, leaving here for easier future rebasing +# Bug 1478438 + MOZ_XULRUNNER= MOZ_CAPTURE=1 + +# Adds MIME-type support for raw video MOZ_RAW=1 # use custom widget for html:select @@ -42,3 +47,15 @@ MOZ_APP_ID={aa3c5121-dab2-40e2-81ca-7ea25febc110} # Enable checking that add-ons are signed by the trusted root MOZ_ADDON_SIGNING=1 + +### Tor Browser for Android ### + +# Disables support at compile-time for casting (Mozilla Media Manager) +# and prevents dependency on Google Play Services support +unset MOZ_NATIVE_DEVICES + +# Disable telemetry at compile-time +unset MOZ_TELEMETRY_REPORTING + +# Disable data reporting at compile-time +unset MOZ_DATA_REPORTING
1 0
0 0
[tor-browser/tor-browser-60.1.0esr-8.0-1] Bug 25741 - TBA: Add mozconfig for Android and pertinent branding files.
by gk@torproject.org 27 Jul '18

27 Jul '18
commit ce3ad196040db4886e953cf13fc8d24fdf712d4b Author: Matthew Finkel <Matthew.Finkel(a)gmail.com> Date: Fri Feb 2 17:04:11 2018 +0000 Bug 25741 - TBA: Add mozconfig for Android and pertinent branding files. Based on Orfox initial commits with fixup commits squashed and rebranding Orfox -> Tor Browser See original source from ce3fab3c90eb4a3892181ee36b037da04c785d99 https://github.com/guardianproject/tor-browser.git Dropped symlinks --- .mozconfig-android | 38 +++++++++++++++++++++ .../android/base/locales/en-US/android_strings.dtd | 2 +- mobile/android/branding/torbrowser/configure.sh | 8 +++++ .../android/branding/torbrowser/content/about.png | Bin 0 -> 16858 bytes .../branding/torbrowser/content/favicon32.png | Bin 0 -> 1797 bytes .../branding/torbrowser/content/favicon64.png | Bin 0 -> 3993 bytes mobile/android/branding/torbrowser/content/jar.mn | 9 +++++ .../android/branding/torbrowser/content/moz.build | 7 ++++ mobile/android/branding/torbrowser/ic_launcher.zip | Bin 0 -> 96525 bytes mobile/android/branding/torbrowser/icon.png | Bin 0 -> 36456 bytes .../branding/torbrowser/locales/Makefile.in | 5 +++ .../branding/torbrowser/locales/en-US/brand.dtd | 9 +++++ .../torbrowser/locales/en-US/brand.properties | 7 ++++ mobile/android/branding/torbrowser/locales/jar.mn | 11 ++++++ .../android/branding/torbrowser/locales/moz.build | 7 ++++ mobile/android/branding/torbrowser/moz.build | 7 ++++ .../branding/torbrowser/res/drawable-hdpi/icon.png | Bin 0 -> 3549 bytes .../torbrowser/res/drawable-hdpi/large_icon.png | Bin 0 -> 9558 bytes .../res/drawable-hdpi/launcher_widget.png | Bin 0 -> 14001 bytes .../branding/torbrowser/res/drawable-mdpi/icon.png | Bin 0 -> 2577 bytes .../torbrowser/res/drawable-mdpi/large_icon.png | Bin 0 -> 5878 bytes .../res/drawable-mdpi/launcher_widget.png | Bin 0 -> 7661 bytes .../res/drawable-nodpi/firstrun_welcome.png | Bin 0 -> 48391 bytes .../torbrowser/res/drawable-xhdpi/icon.png | Bin 0 -> 5878 bytes .../torbrowser/res/drawable-xhdpi/large_icon.png | Bin 0 -> 13553 bytes .../res/drawable-xhdpi/launcher_widget.png | Bin 0 -> 21223 bytes .../torbrowser/res/drawable-xhdpi/widget_icon.png | Bin 0 -> 4381 bytes .../torbrowser/res/drawable-xxhdpi/icon.png | Bin 0 -> 9558 bytes .../torbrowser/res/drawable-xxhdpi/large_icon.png | Bin 0 -> 13553 bytes .../res/drawable-xxhdpi/launcher_widget.png | Bin 0 -> 32686 bytes .../torbrowser/res/drawable-xxxhdpi/icon.png | Bin 0 -> 13553 bytes mobile/android/branding/torbrowser/torbrowser.png | Bin 0 -> 55962 bytes mobile/android/branding/torbrowser/torbrowser.xcf | Bin 0 -> 267775 bytes .../mozharness/mozilla/testing/testbase.py | 7 ++-- 34 files changed, 114 insertions(+), 3 deletions(-) diff --git a/.mozconfig-android b/.mozconfig-android new file mode 100755 index 000000000000..efcb1c5415c2 --- /dev/null +++ b/.mozconfig-android @@ -0,0 +1,38 @@ +mk_add_options MOZ_OBJDIR=@TOPSRCDIR@/obj-arm-linux-androideabi +mk_add_options MOZ_APP_DISPLAYNAME="Tor Browser" +mk_add_options MOZILLA_OFFICIAL=1 + +ac_add_options --enable-optimize +ac_add_options --enable-official-branding + +# Android +ac_add_options --enable-application=mobile/android +ac_add_options --target=arm-linux-androideabi +ac_add_options --with-android-ndk="$NDK_BASE" #Enter the android ndk location(ndk r15c) +ac_add_options --with-android-sdk="$SDK_BASE" #Enter the android sdk location +ac_add_options --with-branding=mobile/android/branding/torbrowser + +if [ -n "${TB_BUILD_WITH_DISTRIBUTION}" ]; then + ac_add_options --with-android-distribution-directory=@TOPSRCDIR@/mobile/android/torbrowser +fi + +#enable ccache to set amount of cache assigned for build. +ac_add_options --with-ccache + +ac_add_options --disable-tor-browser-update +ac_add_options --disable-signmar +ac_add_options --disable-verify-mar + +ac_add_options --enable-strip +ac_add_options --disable-tests +ac_add_options --disable-debug +ac_add_options --disable-rust-debug +ac_add_options --disable-maintenance-service +ac_add_options --disable-crashreporter +ac_add_options --disable-webrtc + +ac_add_options --without-google-play-services + +# Let's make sure no preference is enabling either Adobe's or Google's CDM. +ac_add_options --disable-eme +#ac_add_options --disable-ctypes diff --git a/mobile/android/base/locales/en-US/android_strings.dtd b/mobile/android/base/locales/en-US/android_strings.dtd index 917ed534fc9f..b4e2296268c1 100644 --- a/mobile/android/base/locales/en-US/android_strings.dtd +++ b/mobile/android/base/locales/en-US/android_strings.dtd @@ -4,7 +4,7 @@ <!ENTITY firstrun_panel_title_welcome "Welcome"> <!ENTITY firstrun_urlbar_message2 "Thanks for choosing &brandShortName;"> -<!ENTITY firstrun_urlbar_subtext2 "A modern mobile browser from Mozilla, the non-profit committed to a free and open web."> +<!ENTITY firstrun_urlbar_subtext2 "A modern mobile browser from The Tor Project, the non-profit committed to a free and open web."> <!ENTITY firstrun_panel_title_privacy "Privacy"> <!ENTITY firstrun_privacy_message "Browse like no one\'s watching"> <!ENTITY firstrun_privacy_subtext "Private Browsing with Tracking Protection blocks trackers while you browse and won’t remember your history when you finish browsing."> diff --git a/mobile/android/branding/torbrowser/configure.sh b/mobile/android/branding/torbrowser/configure.sh new file mode 100644 index 000000000000..79b7e718cbfd --- /dev/null +++ b/mobile/android/branding/torbrowser/configure.sh @@ -0,0 +1,8 @@ +# This Source Code Form is subject to the terms of the Mozilla Public +# License, v. 2.0. If a copy of the MPL was not distributed with this +# file, You can obtain one at http://mozilla.org/MPL/2.0/. + +ANDROID_PACKAGE_NAME=org.torproject.torbrowser +MOZ_APP_DISPLAYNAME="Tor Browser for Android" +MOZ_UPDATER= +MOZ_ANDROID_ANR_REPORTER= diff --git a/mobile/android/branding/torbrowser/content/about.png b/mobile/android/branding/torbrowser/content/about.png new file mode 100644 index 000000000000..3819f6337a17 Binary files /dev/null and b/mobile/android/branding/torbrowser/content/about.png differ diff --git a/mobile/android/branding/torbrowser/content/favicon32.png b/mobile/android/branding/torbrowser/content/favicon32.png new file mode 100644 index 000000000000..0c414d6ca46b Binary files /dev/null and b/mobile/android/branding/torbrowser/content/favicon32.png differ diff --git a/mobile/android/branding/torbrowser/content/favicon64.png b/mobile/android/branding/torbrowser/content/favicon64.png new file mode 100644 index 000000000000..bfc9e05538c6 Binary files /dev/null and b/mobile/android/branding/torbrowser/content/favicon64.png differ diff --git a/mobile/android/branding/torbrowser/content/jar.mn b/mobile/android/branding/torbrowser/content/jar.mn new file mode 100644 index 000000000000..f934ed5e4634 --- /dev/null +++ b/mobile/android/branding/torbrowser/content/jar.mn @@ -0,0 +1,9 @@ +# This Source Code Form is subject to the terms of the Mozilla Public +# License, v. 2.0. If a copy of the MPL was not distributed with this +# file, You can obtain one at http://mozilla.org/MPL/2.0/. + +chrome.jar: +% content branding %content/branding/ + content/branding/about.png (about.png) + content/branding/favicon32.png (favicon32.png) + content/branding/favicon64.png (favicon64.png) diff --git a/mobile/android/branding/torbrowser/content/moz.build b/mobile/android/branding/torbrowser/content/moz.build new file mode 100644 index 000000000000..3bbe6729759c --- /dev/null +++ b/mobile/android/branding/torbrowser/content/moz.build @@ -0,0 +1,7 @@ +# -*- Mode: python; c-basic-offset: 4; indent-tabs-mode: nil; tab-width: 40 -*- +# vim: set filetype=python: +# This Source Code Form is subject to the terms of the Mozilla Public +# License, v. 2.0. If a copy of the MPL was not distributed with this +# file, You can obtain one at http://mozilla.org/MPL/2.0/. + +JAR_MANIFESTS += ['jar.mn'] diff --git a/mobile/android/branding/torbrowser/ic_launcher.zip b/mobile/android/branding/torbrowser/ic_launcher.zip new file mode 100644 index 000000000000..69601344519e Binary files /dev/null and b/mobile/android/branding/torbrowser/ic_launcher.zip differ diff --git a/mobile/android/branding/torbrowser/icon.png b/mobile/android/branding/torbrowser/icon.png new file mode 100644 index 000000000000..6e0051b95a32 Binary files /dev/null and b/mobile/android/branding/torbrowser/icon.png differ diff --git a/mobile/android/branding/torbrowser/locales/Makefile.in b/mobile/android/branding/torbrowser/locales/Makefile.in new file mode 100644 index 000000000000..82f614ecea29 --- /dev/null +++ b/mobile/android/branding/torbrowser/locales/Makefile.in @@ -0,0 +1,5 @@ +# This Source Code Form is subject to the terms of the Mozilla Public +# License, v. 2.0. If a copy of the MPL was not distributed with this +# file, You can obtain one at http://mozilla.org/MPL/2.0/. + +DEFINES += -DAB_CD=$(AB_CD) diff --git a/mobile/android/branding/torbrowser/locales/en-US/brand.dtd b/mobile/android/branding/torbrowser/locales/en-US/brand.dtd new file mode 100644 index 000000000000..01346be36a7c --- /dev/null +++ b/mobile/android/branding/torbrowser/locales/en-US/brand.dtd @@ -0,0 +1,9 @@ +<!-- This Source Code Form is subject to the terms of the Mozilla Public + - License, v. 2.0. If a copy of the MPL was not distributed with this + - file, You can obtain one at http://mozilla.org/MPL/2.0/. --> + +<!ENTITY brandShortName "Tor Browser"> +<!ENTITY brandFullName "Tor Browser for Android"> +<!ENTITY vendorShortName "The Tor Project"> + +<!ENTITY brandPocket ""> diff --git a/mobile/android/branding/torbrowser/locales/en-US/brand.properties b/mobile/android/branding/torbrowser/locales/en-US/brand.properties new file mode 100644 index 000000000000..3015d2376518 --- /dev/null +++ b/mobile/android/branding/torbrowser/locales/en-US/brand.properties @@ -0,0 +1,7 @@ +# This Source Code Form is subject to the terms of the Mozilla Public +# License, v. 2.0. If a copy of the MPL was not distributed with this +# file, You can obtain one at http://mozilla.org/MPL/2.0/. + +#filter +brandShortName=Tor Browser +brandFullName=Tor Browser for Android diff --git a/mobile/android/branding/torbrowser/locales/jar.mn b/mobile/android/branding/torbrowser/locales/jar.mn new file mode 100644 index 000000000000..825dabbfb470 --- /dev/null +++ b/mobile/android/branding/torbrowser/locales/jar.mn @@ -0,0 +1,11 @@ +#filter substitution +# This Source Code Form is subject to the terms of the Mozilla Public +# License, v. 2.0. If a copy of the MPL was not distributed with this +# file, You can obtain one at http://mozilla.org/MPL/2.0/. + + +@AB_CD@.jar: +% locale branding @AB_CD@ %locale/branding/ +# Nightly branding only exists in en-US + locale/branding/brand.dtd (en-US/brand.dtd) +* locale/branding/brand.properties (en-US/brand.properties) diff --git a/mobile/android/branding/torbrowser/locales/moz.build b/mobile/android/branding/torbrowser/locales/moz.build new file mode 100644 index 000000000000..3bbe6729759c --- /dev/null +++ b/mobile/android/branding/torbrowser/locales/moz.build @@ -0,0 +1,7 @@ +# -*- Mode: python; c-basic-offset: 4; indent-tabs-mode: nil; tab-width: 40 -*- +# vim: set filetype=python: +# This Source Code Form is subject to the terms of the Mozilla Public +# License, v. 2.0. If a copy of the MPL was not distributed with this +# file, You can obtain one at http://mozilla.org/MPL/2.0/. + +JAR_MANIFESTS += ['jar.mn'] diff --git a/mobile/android/branding/torbrowser/moz.build b/mobile/android/branding/torbrowser/moz.build new file mode 100644 index 000000000000..8f320daeae90 --- /dev/null +++ b/mobile/android/branding/torbrowser/moz.build @@ -0,0 +1,7 @@ +# -*- Mode: python; c-basic-offset: 4; indent-tabs-mode: nil; tab-width: 40 -*- +# vim: set filetype=python: +# This Source Code Form is subject to the terms of the Mozilla Public +# License, v. 2.0. If a copy of the MPL was not distributed with this +# file, You can obtain one at http://mozilla.org/MPL/2.0/. + +DIRS += ['content', 'locales'] diff --git a/mobile/android/branding/torbrowser/res/drawable-hdpi/icon.png b/mobile/android/branding/torbrowser/res/drawable-hdpi/icon.png new file mode 100644 index 000000000000..2a1dc9aea83d Binary files /dev/null and b/mobile/android/branding/torbrowser/res/drawable-hdpi/icon.png differ diff --git a/mobile/android/branding/torbrowser/res/drawable-hdpi/large_icon.png b/mobile/android/branding/torbrowser/res/drawable-hdpi/large_icon.png new file mode 100644 index 000000000000..946e03e42d0b Binary files /dev/null and b/mobile/android/branding/torbrowser/res/drawable-hdpi/large_icon.png differ diff --git a/mobile/android/branding/torbrowser/res/drawable-hdpi/launcher_widget.png b/mobile/android/branding/torbrowser/res/drawable-hdpi/launcher_widget.png new file mode 100644 index 000000000000..4d7dc659a565 Binary files /dev/null and b/mobile/android/branding/torbrowser/res/drawable-hdpi/launcher_widget.png differ diff --git a/mobile/android/branding/torbrowser/res/drawable-mdpi/icon.png b/mobile/android/branding/torbrowser/res/drawable-mdpi/icon.png new file mode 100644 index 000000000000..78ace1c9b6d3 Binary files /dev/null and b/mobile/android/branding/torbrowser/res/drawable-mdpi/icon.png differ diff --git a/mobile/android/branding/torbrowser/res/drawable-mdpi/large_icon.png b/mobile/android/branding/torbrowser/res/drawable-mdpi/large_icon.png new file mode 100644 index 000000000000..8e45a100870b Binary files /dev/null and b/mobile/android/branding/torbrowser/res/drawable-mdpi/large_icon.png differ diff --git a/mobile/android/branding/torbrowser/res/drawable-mdpi/launcher_widget.png b/mobile/android/branding/torbrowser/res/drawable-mdpi/launcher_widget.png new file mode 100644 index 000000000000..23d966478fdf Binary files /dev/null and b/mobile/android/branding/torbrowser/res/drawable-mdpi/launcher_widget.png differ diff --git a/mobile/android/branding/torbrowser/res/drawable-nodpi/firstrun_welcome.png b/mobile/android/branding/torbrowser/res/drawable-nodpi/firstrun_welcome.png new file mode 100644 index 000000000000..e4e84187e891 Binary files /dev/null and b/mobile/android/branding/torbrowser/res/drawable-nodpi/firstrun_welcome.png differ diff --git a/mobile/android/branding/torbrowser/res/drawable-xhdpi/icon.png b/mobile/android/branding/torbrowser/res/drawable-xhdpi/icon.png new file mode 100644 index 000000000000..8e45a100870b Binary files /dev/null and b/mobile/android/branding/torbrowser/res/drawable-xhdpi/icon.png differ diff --git a/mobile/android/branding/torbrowser/res/drawable-xhdpi/large_icon.png b/mobile/android/branding/torbrowser/res/drawable-xhdpi/large_icon.png new file mode 100644 index 000000000000..d3a4929e7503 Binary files /dev/null and b/mobile/android/branding/torbrowser/res/drawable-xhdpi/large_icon.png differ diff --git a/mobile/android/branding/torbrowser/res/drawable-xhdpi/launcher_widget.png b/mobile/android/branding/torbrowser/res/drawable-xhdpi/launcher_widget.png new file mode 100644 index 000000000000..beff04f1fc1d Binary files /dev/null and b/mobile/android/branding/torbrowser/res/drawable-xhdpi/launcher_widget.png differ diff --git a/mobile/android/branding/torbrowser/res/drawable-xhdpi/widget_icon.png b/mobile/android/branding/torbrowser/res/drawable-xhdpi/widget_icon.png new file mode 100644 index 000000000000..ef76eb342035 Binary files /dev/null and b/mobile/android/branding/torbrowser/res/drawable-xhdpi/widget_icon.png differ diff --git a/mobile/android/branding/torbrowser/res/drawable-xxhdpi/icon.png b/mobile/android/branding/torbrowser/res/drawable-xxhdpi/icon.png new file mode 100644 index 000000000000..946e03e42d0b Binary files /dev/null and b/mobile/android/branding/torbrowser/res/drawable-xxhdpi/icon.png differ diff --git a/mobile/android/branding/torbrowser/res/drawable-xxhdpi/large_icon.png b/mobile/android/branding/torbrowser/res/drawable-xxhdpi/large_icon.png new file mode 100644 index 000000000000..d3a4929e7503 Binary files /dev/null and b/mobile/android/branding/torbrowser/res/drawable-xxhdpi/large_icon.png differ diff --git a/mobile/android/branding/torbrowser/res/drawable-xxhdpi/launcher_widget.png b/mobile/android/branding/torbrowser/res/drawable-xxhdpi/launcher_widget.png new file mode 100644 index 000000000000..279af3fff38b Binary files /dev/null and b/mobile/android/branding/torbrowser/res/drawable-xxhdpi/launcher_widget.png differ diff --git a/mobile/android/branding/torbrowser/res/drawable-xxxhdpi/icon.png b/mobile/android/branding/torbrowser/res/drawable-xxxhdpi/icon.png new file mode 100644 index 000000000000..d3a4929e7503 Binary files /dev/null and b/mobile/android/branding/torbrowser/res/drawable-xxxhdpi/icon.png differ diff --git a/mobile/android/branding/torbrowser/torbrowser.png b/mobile/android/branding/torbrowser/torbrowser.png new file mode 100644 index 000000000000..6c6d906aa044 Binary files /dev/null and b/mobile/android/branding/torbrowser/torbrowser.png differ diff --git a/mobile/android/branding/torbrowser/torbrowser.xcf b/mobile/android/branding/torbrowser/torbrowser.xcf new file mode 100644 index 000000000000..2a8f829c3c34 Binary files /dev/null and b/mobile/android/branding/torbrowser/torbrowser.xcf differ diff --git a/testing/mozharness/mozharness/mozilla/testing/testbase.py b/testing/mozharness/mozharness/mozilla/testing/testbase.py index 558c629363f8..1e5c9507a2b3 100755 --- a/testing/mozharness/mozharness/mozilla/testing/testbase.py +++ b/testing/mozharness/mozharness/mozilla/testing/testbase.py @@ -566,8 +566,11 @@ You can set this by: self._download_test_packages(suite_categories, extract_dirs) self._download_installer() - if self.config.get('download_symbols'): - self._download_and_extract_symbols() + # When using --disable-crashreporter the symbols file + # "target.crashreporter-symbols.zip" won't be created, + # so we shouldn't try downloading it (and fail). + #if self.config.get('download_symbols'): + # self._download_and_extract_symbols() # create_virtualenv is in VirtualenvMixin.
1 0
0 0
[tor-browser/tor-browser-60.1.0esr-8.0-1] Bug 25741 - TBA: Move GCM Push prefs within preprocessor guard
by gk@torproject.org 27 Jul '18

27 Jul '18
commit 75c6114151ff3f97595c51e75e07413d06da336a Author: Matthew Finkel <Matthew.Finkel(a)gmail.com> Date: Sun Apr 15 14:19:38 2018 +0000 Bug 25741 - TBA: Move GCM Push prefs within preprocessor guard Otherwise the preprocessor is sad because MOZ_ANDROID_GCM_SENDERID is not defined. We don't need any of this, so we exclude it. --- mobile/android/app/mobile.js | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/mobile/android/app/mobile.js b/mobile/android/app/mobile.js index a737a1bda4ce..a11e1b033396 100644 --- a/mobile/android/app/mobile.js +++ b/mobile/android/app/mobile.js @@ -859,13 +859,13 @@ pref("dom.serviceWorkers.interception.enabled", true); // click on mobile. This is to account for some devices being quite slow. pref("dom.serviceWorkers.disable_open_click_delay", 5000); +#ifdef MOZ_ANDROID_GCM pref("dom.push.debug", false); // The upstream autopush endpoint must have the Google API key corresponding to // the App's sender ID; we bake this assumption directly into the URL. pref("dom.push.serverURL", "https://updates.push.services.mozilla.com/v1/gcm/@MOZ_ANDROID_GCM_SENDERID@"); pref("dom.push.maxRecentMessageIDsPerSubscription", 0); -#ifdef MOZ_ANDROID_GCM pref("dom.push.enabled", true); #endif
1 0
0 0
[tor-browser/tor-browser-60.1.0esr-8.0-1] Bug 25741 - TBA: Exclude unwanted Stumbler tests
by gk@torproject.org 27 Jul '18

27 Jul '18
commit 214bccd0cd359301724fe13d3979c1d1911be6ad Author: Matthew Finkel <Matthew.Finkel(a)gmail.com> Date: Mon Apr 16 13:47:48 2018 +0000 Bug 25741 - TBA: Exclude unwanted Stumbler tests When the stumbler service is ifdef-disabled because MOZ_ANDROID_MLS_STUMBLER is not defined, then the unit test compilation fails because some values are never declared and defined. We exclude all testStumbler*.java files from the robocop gecko test source tree. --- mobile/android/app/build.gradle | 5 +++++ 1 file changed, 5 insertions(+) diff --git a/mobile/android/app/build.gradle b/mobile/android/app/build.gradle index f18e933a03d2..7c515bbe65a7 100644 --- a/mobile/android/app/build.gradle +++ b/mobile/android/app/build.gradle @@ -186,6 +186,11 @@ android { androidTest { java { srcDir "${topsrcdir}/mobile/android/tests/browser/robocop/src" + + if (!mozconfig.substs.MOZ_ANDROID_MLS_STUMBLER) { + exclude 'org/mozilla/gecko/tests/testStumbler*.java' + } + // Bug 1229149 tracks pushing this into a :services Gradle project. srcDir "${topsrcdir}/mobile/android/services/src/androidTest/java" srcDir "${topsrcdir}/mobile/android/tests/browser/junit3/src"
1 0
0 0
[tor-browser/tor-browser-60.1.0esr-8.0-1] Bug 25741 - TBA: Add default configure options in dedicated file
by gk@torproject.org 27 Jul '18

27 Jul '18
commit da8531b4015da74d3ebc2e4218a6f7a6455b3328 Author: Matthew Finkel <Matthew.Finkel(a)gmail.com> Date: Mon Jan 22 11:18:45 2018 +0000 Bug 25741 - TBA: Add default configure options in dedicated file --- mobile/android/moz.configure | 9 ++++++-- mobile/android/torbrowser.configure | 43 +++++++++++++++++++++++++++++++++++++ 2 files changed, 50 insertions(+), 2 deletions(-) diff --git a/mobile/android/moz.configure b/mobile/android/moz.configure index 034810e966dc..df9eb2038075 100644 --- a/mobile/android/moz.configure +++ b/mobile/android/moz.configure @@ -112,9 +112,12 @@ option(env='MOZ_ANDROID_MOZILLA_ONLINE', set_config('MOZ_ANDROID_MOZILLA_ONLINE', depends_if('MOZ_ANDROID_MOZILLA_ONLINE')(lambda _: True)) -imply_option('MOZ_SERVICES_HEALTHREPORT', True) -imply_option('MOZ_ANDROID_HISTORY', True) imply_option('--enable-small-chunk-size', True) +# Comment these so we can imply |False| in torbrowser.configure +# The Build system doesn't allow multiple imply_option() +# calls with the same key. +#imply_option('MOZ_SERVICES_HEALTHREPORT', True) +#imply_option('MOZ_ANDROID_HISTORY', True) set_config('ANDROID_SUPPORT_LIBRARY_VERSION', '23.4.0') add_old_configure_assignment('ANDROID_SUPPORT_LIBRARY_VERSION', '23.4.0') @@ -128,6 +131,8 @@ def check_target(target): 'Build_Instructions/Simple_Firefox_for_Android_build ' 'for more information about the necessary options.') +include('torbrowser.configure') + include('../../toolkit/moz.configure') include('../../build/moz.configure/java.configure') include('gradle.configure') diff --git a/mobile/android/torbrowser.configure b/mobile/android/torbrowser.configure new file mode 100644 index 000000000000..5e3ab67dca6a --- /dev/null +++ b/mobile/android/torbrowser.configure @@ -0,0 +1,43 @@ +# -*- Mode: python; indent-tabs-mode: nil; tab-width: 40 -*- +# vim: set filetype=python: +# This Source Code Form is subject to the terms of the Mozilla Public +# License, v. 2.0. If a copy of the MPL was not distributed with this +# file, You can obtain one at http://mozilla.org/MPL/2.0/. + +# Set Tor Browser default config + +# Disable Android Beam (NFC integration) +imply_option('MOZ_ANDROID_BEAM', False) + + +imply_option('MOZ_ANDROID_DOWNLOAD_CONTENT_SERVICE', False) +imply_option('MOZ_ANDROID_DOWNLOADS_INTEGRATION', False) +imply_option('MOZ_ANDROID_EXCLUDE_FONTS', False) + +# Disable push notifications/messaging on nightly +imply_option('MOZ_ANDROID_GCM', False) + +# Disable all history/bookmark/icon caching +# (both in local sqlite DB and with Android integration) +imply_option('MOZ_ANDROID_HISTORY', False) +imply_option('MOZ_PLACES', False) + +# Disable the stumbler, Firefox shouldn't touch the network +imply_option('MOZ_ANDROID_MLS_STUMBLER', False) + +# Disable uploading crash reports and dump files to an external server +# This is still configured in old-configure. Uncomment when this moves +# to the python config +#imply_option('MOZ_CRASHREPORTER', False) + +# Disable uploading information about the browser configuration and +# performance to an external server +imply_option('MOZ_SERVICES_HEALTHREPORT', False) + +# Disable creating telemetry and data reports that are uploaded to an +# external server +# These aren't actually configure options. These are disabled in +# confvars.sh, but they look like configure options so we'll document +# them here, as well. +#imply_option('MOZ_TELEMETRY_REPORTING', False) +#imply_option('MOZ_DATA_REPORTING', False)
1 0
0 0
[tor-browser/tor-browser-60.1.0esr-8.0-1] Bug 25741 - TBA: Do not register Stumbler listener at start up
by gk@torproject.org 27 Jul '18

27 Jul '18
commit 2fd232288ac877e67fabf6c52ec1d85b87533446 Author: Matthew Finkel <Matthew.Finkel(a)gmail.com> Date: Wed Apr 25 01:55:44 2018 +0000 Bug 25741 - TBA: Do not register Stumbler listener at start up --- mobile/android/base/java/org/mozilla/gecko/GeckoApp.java | 8 ++++++-- 1 file changed, 6 insertions(+), 2 deletions(-) diff --git a/mobile/android/base/java/org/mozilla/gecko/GeckoApp.java b/mobile/android/base/java/org/mozilla/gecko/GeckoApp.java index 7e04484ac5bc..1f2f95490d0a 100644 --- a/mobile/android/base/java/org/mozilla/gecko/GeckoApp.java +++ b/mobile/android/base/java/org/mozilla/gecko/GeckoApp.java @@ -979,9 +979,12 @@ public abstract class GeckoApp extends GeckoActivity // Tell Stumbler to register a local broadcast listener to listen for preference intents. // We do this via intents since we can't easily access Stumbler directly, // as it might be compiled outside of Fennec. - getApplicationContext().sendBroadcast( + // TBA: We don't want Fennec using or receiving Stumbler + if (!AppConstants.isTorBrowser()) { + getApplicationContext().sendBroadcast( new Intent(INTENT_REGISTER_STUMBLER_LISTENER) - ); + ); + } // Did the OS locale change while we were backgrounded? If so, // we need to die so that Gecko will re-init add-ons that touch @@ -1025,6 +1028,7 @@ public abstract class GeckoApp extends GeckoActivity final String uri = getURIFromIntent(intent); if (!TextUtils.isEmpty(uri)) { // Start a speculative connection as soon as Gecko loads. + // XXX TBA: Check this doesn't leak, and is blocked by Tor bootstrap GeckoThread.speculativeConnect(uri); } }
1 0
0 0
[tor-browser/tor-browser-60.1.0esr-8.0-1] Bug 25741 - TBA: Add mobile-override of 000-tor-browser prefs
by gk@torproject.org 27 Jul '18

27 Jul '18
commit b5a6b33814d32a25a41b0d21f02447e1b630ec4f Author: Matthew Finkel <Matthew.Finkel(a)gmail.com> Date: Fri Jan 19 23:49:11 2018 +0000 Bug 25741 - TBA: Add mobile-override of 000-tor-browser prefs --- .eslintignore | 3 ++ mobile/android/app/000-tor-browser-android.js | 58 +++++++++++++++++++++++++++ mobile/android/app/mobile.js | 4 ++ mobile/android/app/moz.build | 1 + mobile/android/installer/package-manifest.in | 1 + 5 files changed, 67 insertions(+) diff --git a/.eslintignore b/.eslintignore index 3fcc46db7ded..69f27d2366ec 100644 --- a/.eslintignore +++ b/.eslintignore @@ -326,6 +326,9 @@ media/webrtc/trunk/** # mobile/android/ exclusions mobile/android/tests/browser/chrome/tp5/** +# uses `#include` +mobile/android/app/000-tor-browser-android.js + # Uses `#filter substitution` mobile/android/app/mobile.js mobile/android/app/geckoview-prefs.js diff --git a/mobile/android/app/000-tor-browser-android.js b/mobile/android/app/000-tor-browser-android.js new file mode 100644 index 000000000000..399c6f07718b --- /dev/null +++ b/mobile/android/app/000-tor-browser-android.js @@ -0,0 +1,58 @@ +// Import all prefs from the canonical file +// We override mobile-specific prefs below +// Tor Browser for Android +// Do not edit this file. + +#include ../../../browser/app/profile/000-tor-browser.js + + +// Disable Presentation API +pref("dom.presentation.controller.enabled", false); +pref("dom.presentation.enabled", false); +pref("dom.presentation.discoverable", false); +pref("dom.presentation.discoverable.encrypted", false); +pref("dom.presentation.discovery.enabled", false); +pref("dom.presentation.receiver.enabled", false); + +pref("dom.audiochannel.audioCompeting", false); +pref("dom.audiochannel.mediaControl", false); + +// Space separated list of URLs that are allowed to send objects (instead of +// only strings) through webchannels. This list is duplicated in browser/app/profile/firefox.js +pref("webchannel.allowObject.urlWhitelist", ""); + +// Disable browser auto updaters +pref("app.update.auto", false); +pref("app.update.enabled", false); +pref("browser.startup.homepage_override.mstone", "ignore"); + +// Clear data on quit +pref("privacy.clearOnShutdown.cache", true); +pref("privacy.clearOnShutdown.cookies",true); +pref("privacy.clearOnShutdown.downloads",true); +pref("privacy.clearOnShutdown.formdata",true); +pref("privacy.clearOnShutdown.history",true); +pref("privacy.clearOnShutdown.offlineApps",true); +pref("privacy.clearOnShutdown.passwords",true); +pref("privacy.clearOnShutdown.sessions",true); +pref("privacy.clearOnShutdown.siteSettings",true); + +// Disable Control media casting & mirroring features +pref("browser.casting.enabled", false); +pref("browser.mirroring.enabled", false); + +// Disable autoplay +pref("media.autoplay.enabled", false); + +// controls if we want camera support +pref("device.camera.enabled", false); +pref("media.realtime_decoder.enabled", false); + +// Do not fetch updated per-site user-agent strings from Mozilla +// See ua-update.json.in for the packaged UA override list +// See https://bugzilla.mozilla.org/show_bug.cgi?id=897221 +pref("general.useragent.updates.enabled", false); +pref("general.useragent.updates.url", ""); + +// Override this because Orbot uses 9050 as the default +pref("network.proxy.socks_port", 9050); diff --git a/mobile/android/app/mobile.js b/mobile/android/app/mobile.js index a11e1b033396..052ebdec5948 100644 --- a/mobile/android/app/mobile.js +++ b/mobile/android/app/mobile.js @@ -504,7 +504,11 @@ pref("app.update.timerMinimumDelay", 30); // seconds // used by update service to decide whether or not to // automatically download an update pref("app.update.autodownload", "wifi"); +#ifdef TOR_BROWSER_VERSION +pref("app.update.url.android", ""); +#else pref("app.update.url.android", "https://aus5.mozilla.org/update/4/%PRODUCT%/%VERSION%/%BUILD_ID%/%BUILD_TAR…"); +#endif #ifdef MOZ_UPDATER /* prefs used specifically for updating the app */ diff --git a/mobile/android/app/moz.build b/mobile/android/app/moz.build index 8ff152f3b369..773c1a3979a8 100644 --- a/mobile/android/app/moz.build +++ b/mobile/android/app/moz.build @@ -49,6 +49,7 @@ if CONFIG['MOZ_PKG_SPECIAL']: DEFINES['MOZ_PKG_SPECIAL'] = CONFIG['MOZ_PKG_SPECIAL'] JS_PREFERENCE_PP_FILES += [ + '000-tor-browser-android.js', 'geckoview-prefs.js', 'mobile.js', ] diff --git a/mobile/android/installer/package-manifest.in b/mobile/android/installer/package-manifest.in index 6f6a02082bec..8a2a356c151c 100644 --- a/mobile/android/installer/package-manifest.in +++ b/mobile/android/installer/package-manifest.in @@ -431,6 +431,7 @@ #ifdef MOZ_GECKOVIEW_JAR @BINPATH@/@PREF_DIR@/geckoview-prefs.js #else +@BINPATH@/@PREF_DIR@/000-tor-browser-android.js @BINPATH@/@PREF_DIR@/mobile.js #endif @BINPATH@/@PREF_DIR@/channel-prefs.js
1 0
0 0
[tor-browser/tor-browser-60.1.0esr-8.0-1] Bug 25741 - TBA: Remove sync option from preferences
by gk@torproject.org 27 Jul '18

27 Jul '18
commit 99f346a73bde893c862bbb6504ff52f63b5b60e0 Author: Amogh Pradeep <amoghbl1(a)gmail.com> Date: Fri Jul 17 13:27:07 2015 -0400 Bug 25741 - TBA: Remove sync option from preferences We don't want this while the Sync subsystem is a proxy-bypass risk. We can drop this when the feature is patched. Signed-off-by: Amogh Pradeep <amoghbl1(a)gmail.com> --- mobile/android/app/src/main/res/xml/preferences.xml | 6 ------ 1 file changed, 6 deletions(-) diff --git a/mobile/android/app/src/main/res/xml/preferences.xml b/mobile/android/app/src/main/res/xml/preferences.xml index 06716cd9af91..08ee14ea443a 100644 --- a/mobile/android/app/src/main/res/xml/preferences.xml +++ b/mobile/android/app/src/main/res/xml/preferences.xml @@ -9,12 +9,6 @@ xmlns:gecko="http://schemas.android.com/apk/res-auto" android:enabled="false"> - <org.mozilla.gecko.preferences.SyncPreference android:key="android.not_a_preference.sync" - android:title="@string/pref_sync" - android:icon="@drawable/sync_avatar_default" - android:summary="@string/pref_sync_summary" - android:persistent="false" /> - <PreferenceScreen android:title="@string/pref_category_general" android:summary="@string/pref_category_general_summary" android:key="android.not_a_preference.general_screen"
1 0
0 0
  • ← Newer
  • 1
  • ...
  • 1566
  • 1567
  • 1568
  • 1569
  • 1570
  • 1571
  • 1572
  • ...
  • 1954
  • Older →

HyperKitty Powered by HyperKitty version 1.3.12.