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
  • ----- 2026 -----
  • May
  • April
  • March
  • February
  • January
  • ----- 2025 -----
  • December
  • 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
  • 20430 discussions
[tor-browser/tor-browser-68.1.0esr-9.0-1] Continue using non-adaptive icons and don't allow clear-text traffic
by gk@torproject.org 01 Sep '19

01 Sep '19
commit 144e2f64a8dbb3c84150d44fcdbab989f4aa4184 Author: Matthew Finkel <Matthew.Finkel(a)gmail.com> Date: Mon Jul 22 13:41:22 2019 +0000 Continue using non-adaptive icons and don't allow clear-text traffic --- mobile/android/base/AndroidManifest.xml.in | 4 +--- 1 file changed, 1 insertion(+), 3 deletions(-) diff --git a/mobile/android/base/AndroidManifest.xml.in b/mobile/android/base/AndroidManifest.xml.in index 5f231e9ba83c..39c1899daa1f 100644 --- a/mobile/android/base/AndroidManifest.xml.in +++ b/mobile/android/base/AndroidManifest.xml.in @@ -24,13 +24,11 @@ #include FennecManifest_permissions.xml.in <application android:label="@string/moz_app_displayname" - android:icon="@mipmap/ic_launcher" - android:logo="@drawable/logo" + android:icon="@drawable/icon" android:name="@MOZ_ANDROID_APPLICATION_CLASS@" android:hardwareAccelerated="true" android:supportsRtl="true" android:allowBackup="false" - android:usesCleartextTraffic="true" > <meta-data android:name="com.sec.android.support.multiwindow" android:value="true"/>
1 0
0 0
[tor-browser/tor-browser-68.1.0esr-9.0-1] Bug 29859: Disable HLS support for now
by gk@torproject.org 01 Sep '19

01 Sep '19
commit 14b7000757ad06197cb4e088731171f0a6ff325a Author: Georg Koppen <gk(a)torproject.org> Date: Thu Mar 28 19:10:34 2019 +0000 Bug 29859: Disable HLS support for now --- mobile/android/app/000-tor-browser-android.js | 3 +++ mobile/android/base/AppConstants.java.in | 2 +- mobile/android/moz.configure | 2 +- 3 files changed, 5 insertions(+), 2 deletions(-) diff --git a/mobile/android/app/000-tor-browser-android.js b/mobile/android/app/000-tor-browser-android.js index 02e3ef00c1b3..2410706bb5f5 100644 --- a/mobile/android/app/000-tor-browser-android.js +++ b/mobile/android/app/000-tor-browser-android.js @@ -57,5 +57,8 @@ pref("general.useragent.updates.url", ""); // Enable touch events on Android (highlighting text, etc) pref("dom.w3c_touch_events.enabled", 2); +// No HLS support for now due to browser freezing, see: #29859. +pref("media.hls.enabled", false); + // Inherit locale from the OS, used for multi-locale builds pref("intl.locale.requested", ""); diff --git a/mobile/android/base/AppConstants.java.in b/mobile/android/base/AppConstants.java.in index 26047188841c..762db8d86a1b 100644 --- a/mobile/android/base/AppConstants.java.in +++ b/mobile/android/base/AppConstants.java.in @@ -382,7 +382,7 @@ public class AppConstants { //#ifdef TOR_BROWSER_VERSION return true; //#else - return false; + return true; //#endif } } diff --git a/mobile/android/moz.configure b/mobile/android/moz.configure index c8ed3a9a59e1..cb536b790d94 100644 --- a/mobile/android/moz.configure +++ b/mobile/android/moz.configure @@ -92,7 +92,7 @@ project_flag('MOZ_SWITCHBOARD', project_flag('MOZ_ANDROID_HLS_SUPPORT', help='Enable HLS (HTTP Live Streaming) support (currently using the ExoPlayer library)', - default=True) + default=False) option(env='MOZ_ANDROID_ACTIVITY_STREAM', help='Enable Activity Stream on Android (replacing the default HomePager)',
1 0
0 0
[tor-browser/tor-browser-68.1.0esr-9.0-1] Bug 24920 - Only create Private tabs if browser.privatebrowsing.autostart is true
by gk@torproject.org 01 Sep '19

01 Sep '19
commit 576ff6dcffff7ad57c21c4bc469b52566d8da3dd Author: Matthew Finkel <Matthew.Finkel(a)gmail.com> Date: Mon May 27 15:55:33 2019 +0000 Bug 24920 - Only create Private tabs if browser.privatebrowsing.autostart is true --- .../base/java/org/mozilla/gecko/BrowserApp.java | 9 +++++++ .../base/java/org/mozilla/gecko/GeckoApp.java | 31 ++++++++++++++++++++++ .../android/base/java/org/mozilla/gecko/Tabs.java | 7 ++++- .../java/org/mozilla/gecko/tabs/TabsPanel.java | 4 +++ mobile/android/chrome/content/browser.js | 4 +-- 5 files changed, 52 insertions(+), 3 deletions(-) diff --git a/mobile/android/base/java/org/mozilla/gecko/BrowserApp.java b/mobile/android/base/java/org/mozilla/gecko/BrowserApp.java index da25e3b395be..c2a463ad6ed1 100644 --- a/mobile/android/base/java/org/mozilla/gecko/BrowserApp.java +++ b/mobile/android/base/java/org/mozilla/gecko/BrowserApp.java @@ -3362,6 +3362,15 @@ public class BrowserApp extends GeckoApp share.setActionProvider(provider); + // Change visibility of new_tab. This may be called before + // mOnlyPrivateTabs is set in GeckoApp::onCreate(). If the PrefHelper + // callback was not already called, then the visibility will be correctly set + // in the callback. + MenuItem newTabMenuItem = mMenu.findItem(R.id.new_tab); + if (newTabMenuItem != null) { + newTabMenuItem.setVisible(mOnlyPrivateTabs == false); + } + return true; } diff --git a/mobile/android/base/java/org/mozilla/gecko/GeckoApp.java b/mobile/android/base/java/org/mozilla/gecko/GeckoApp.java index e01318dab422..9c66f56b0485 100644 --- a/mobile/android/base/java/org/mozilla/gecko/GeckoApp.java +++ b/mobile/android/base/java/org/mozilla/gecko/GeckoApp.java @@ -165,6 +165,8 @@ public abstract class GeckoApp extends GeckoActivity */ public static final String PREFS_IS_FIRST_RUN = "telemetry-isFirstRun"; + public static final String PREFS_PRIVATEBROWSING_AUTOSTART = "browser.privatebrowsing.autostart"; + public static final String SAVED_STATE_IN_BACKGROUND = "inBackground"; public static final String SAVED_STATE_PRIVATE_SESSION = "privateSession"; /** @@ -352,6 +354,8 @@ public abstract class GeckoApp extends GeckoActivity private boolean mPrivateBrowsingSessionOutdated; private static final int MAX_PRIVATE_TABS_UPDATE_WAIT_MSEC = 500; + protected boolean mOnlyPrivateTabs = false; + private volatile HealthRecorder mHealthRecorder; private volatile Locale mLastLocale; @@ -1164,6 +1168,28 @@ public abstract class GeckoApp extends GeckoActivity "ToggleChrome:Show", null); + PrefsHelper.getPref(PREFS_PRIVATEBROWSING_AUTOSTART, + new PrefsHelper.PrefHandlerBase() { + @Override public void prefValue(String pref, boolean value) { + if (pref != PREFS_PRIVATEBROWSING_AUTOSTART) { + return; + } + + mOnlyPrivateTabs = value; + + // Change visibility here in case mMenu is initialized. If it is not initialized, + // then the visibility is set in BrowserApp::onCreateOptionsMenu(). + if (mMenu != null) { + MenuItem newTabMenuItem = mMenu.findItem(R.id.new_tab); + if (newTabMenuItem != null) { + newTabMenuItem.setVisible(mOnlyPrivateTabs == false); + } + } + + Tabs.getInstance().setOnlyPrivateTabs(mOnlyPrivateTabs); + } + }); + Tabs.getInstance().attachToContext(this, mLayerView, getAppEventDispatcher()); Tabs.registerOnTabsChangedListener(this); @@ -1202,6 +1228,7 @@ public abstract class GeckoApp extends GeckoActivity } // If we are doing a restore, read the session data so we can send it to Gecko later. + GeckoBundle restoreMessage = null; if (!mIsRestoringActivity && mShouldRestore) { final boolean isExternalURL = invokedWithExternalURL(getIntentURI(new SafeIntent(getIntent()))); @@ -2306,6 +2333,10 @@ public abstract class GeckoApp extends GeckoActivity } } + public boolean isOnlyPrivateTabs() { + return mOnlyPrivateTabs; + } + @TargetApi(Build.VERSION_CODES.JELLY_BEAN_MR1) protected void finishAndShutdown(final boolean restart) { ThreadUtils.assertOnUiThread(); diff --git a/mobile/android/base/java/org/mozilla/gecko/Tabs.java b/mobile/android/base/java/org/mozilla/gecko/Tabs.java index 068d8cb7ca28..30c75b68aad8 100644 --- a/mobile/android/base/java/org/mozilla/gecko/Tabs.java +++ b/mobile/android/base/java/org/mozilla/gecko/Tabs.java @@ -106,6 +106,7 @@ public class Tabs implements BundleEventListener { private ContentObserver mBookmarksContentObserver; private PersistTabsRunnable mPersistTabsRunnable; private int mPrivateClearColor; + private boolean mOnlyPrivateTabs = true; // Close all tabs including normal and private tabs. @RobocopTarget @@ -211,6 +212,10 @@ public class Tabs implements BundleEventListener { } } + public synchronized void setOnlyPrivateTabs(boolean onlyPrivateTabs) { + mOnlyPrivateTabs = onlyPrivateTabs; + } + public void detachFromContext() { mGeckoView = null; } @@ -1026,7 +1031,7 @@ public class Tabs implements BundleEventListener { // delayLoad implies background tab boolean background = delayLoad || (flags & LOADURL_BACKGROUND) != 0; - boolean isPrivate = (flags & LOADURL_PRIVATE) != 0 || (intent != null && intent.getBooleanExtra(PRIVATE_TAB_INTENT_EXTRA, false)); + boolean isPrivate = (flags & LOADURL_PRIVATE) != 0 || (intent != null && intent.getBooleanExtra(PRIVATE_TAB_INTENT_EXTRA, false)) || mOnlyPrivateTabs; boolean userEntered = (flags & LOADURL_USER_ENTERED) != 0; boolean desktopMode = (flags & LOADURL_DESKTOP) != 0; boolean external = (flags & LOADURL_EXTERNAL) != 0; diff --git a/mobile/android/base/java/org/mozilla/gecko/tabs/TabsPanel.java b/mobile/android/base/java/org/mozilla/gecko/tabs/TabsPanel.java index 08c107ebb62d..fc27ac03c929 100644 --- a/mobile/android/base/java/org/mozilla/gecko/tabs/TabsPanel.java +++ b/mobile/android/base/java/org/mozilla/gecko/tabs/TabsPanel.java @@ -167,6 +167,10 @@ public class TabsPanel extends LinearLayout final View tabNormal = mTabWidget.addTab(R.drawable.tabs_normal, R.string.tabs_normal); mNormalTabsPanel = tabNormal instanceof ThemedImageButton ? ((ThemedImageButton) tabNormal) : null; + if (mActivity.isOnlyPrivateTabs()) { + tabNormal.setVisibility(View.GONE); + } + final View tabPrivate = mTabWidget.addTab(R.drawable.tabs_private, R.string.tabs_private); mPrivateTabsPanel = tabPrivate instanceof ThemedImageButton ? ((ThemedImageButton) tabPrivate) : null; if (mPrivateTabsPanel != null) { diff --git a/mobile/android/chrome/content/browser.js b/mobile/android/chrome/content/browser.js index e139e59a7f40..f8e9399f51c4 100644 --- a/mobile/android/chrome/content/browser.js +++ b/mobile/android/chrome/content/browser.js @@ -4410,9 +4410,9 @@ Tab.prototype = { // Must be called after appendChild so the docShell has been created. this.setActive(false); - let isPrivate = "isPrivate" in aParams && aParams.isPrivate; + let isPrivate = (("isPrivate" in aParams) && aParams.isPrivate) || Services.prefs.getBoolPref("browser.privatebrowsing.autostart"); if (isPrivate) { - attrs.privateBrowsingId = 1; + attrs['privateBrowsingId'] = 1; } this.browser.docShell.setOriginAttributes(attrs);
1 0
0 0
[tor-browser/tor-browser-68.1.0esr-9.0-1] Pick up latest Torbutton fixes
by gk@torproject.org 01 Sep '19

01 Sep '19
commit 28bf38065aacbb6db2b19b024081aad6da7a1c51 Author: Georg Koppen <gk(a)torproject.org> Date: Sat Aug 31 19:45:55 2019 +0000 Pick up latest Torbutton fixes --- toolkit/torproject/torbutton | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/toolkit/torproject/torbutton b/toolkit/torproject/torbutton index 605decfd4ddc..0efb110e9bc6 160000 --- a/toolkit/torproject/torbutton +++ b/toolkit/torproject/torbutton @@ -1 +1 @@ -Subproject commit 605decfd4ddc81eb37da17172f48f92fd7f7e451 +Subproject commit 0efb110e9bc65e3289c58d093c32a25877f61e0b
1 0
0 0
[tor-browser/tor-browser-68.1.0esr-9.0-1] Bug 30573 - Sanitize old tabs and wait for tor before opening new tabs
by gk@torproject.org 01 Sep '19

01 Sep '19
commit dd5be6e82f301448b2c4d3290beeb3729e943817 Author: Matthew Finkel <Matthew.Finkel(a)gmail.com> Date: Wed May 29 14:05:07 2019 +0000 Bug 30573 - Sanitize old tabs and wait for tor before opening new tabs --- .../base/java/org/mozilla/gecko/BrowserApp.java | 4 +- .../base/java/org/mozilla/gecko/GeckoApp.java | 55 +++++++++++++++++++++- 2 files changed, 57 insertions(+), 2 deletions(-) diff --git a/mobile/android/base/java/org/mozilla/gecko/BrowserApp.java b/mobile/android/base/java/org/mozilla/gecko/BrowserApp.java index c2a463ad6ed1..f03548e30ced 100644 --- a/mobile/android/base/java/org/mozilla/gecko/BrowserApp.java +++ b/mobile/android/base/java/org/mozilla/gecko/BrowserApp.java @@ -1134,7 +1134,7 @@ public class BrowserApp extends GeckoApp * * mTorStatus provides synchronization across threads. */ - private boolean checkTorIsStarted() { + public boolean checkTorIsStarted() { // When tor is started, true. Otherwise, false mTorStatus = false; BroadcastReceiver br = setupReceiveTorIsStartedAsync(); @@ -2120,6 +2120,7 @@ public class BrowserApp extends GeckoApp finishAndShutdown(/* restart */ false); } } + super.handleMessage(event, message, callback); break; case "Sanitize:OpenTabs": @@ -3019,6 +3020,7 @@ public class BrowserApp extends GeckoApp // If we finished, then Tor bootstrapped 100% mTorNeedsStart = false; + EventDispatcher.getInstance().dispatch("Tor:Ready", null); // When bootstrapping completes, check if the Firstrun (onboarding) screens // should be shown. diff --git a/mobile/android/base/java/org/mozilla/gecko/GeckoApp.java b/mobile/android/base/java/org/mozilla/gecko/GeckoApp.java index 9c66f56b0485..388d7c3b89a3 100644 --- a/mobile/android/base/java/org/mozilla/gecko/GeckoApp.java +++ b/mobile/android/base/java/org/mozilla/gecko/GeckoApp.java @@ -193,6 +193,10 @@ public abstract class GeckoApp extends GeckoActivity protected Menu mMenu; protected boolean mIsRestoringActivity; + protected boolean mIsSanitizeTabsEnabled = false; + protected boolean mIsSanitizeCompleted = false; + protected Object mIsSanitizeCompletedLock = new Object(); + /** Tells if we're aborting app launch, e.g. if this is an unsupported device configuration. */ protected boolean mIsAbortingAppLaunch; @@ -604,6 +608,12 @@ public abstract class GeckoApp extends GeckoActivity for (final String clear : clearSet) { clearObj.putBoolean(clear, true); } + + synchronized (mIsSanitizeCompletedLock) { + mIsSanitizeTabsEnabled = clearSet.contains("private.data.openTabs"); + mIsSanitizeCompleted = false; + } + return clearObj; } @@ -788,6 +798,11 @@ public abstract class GeckoApp extends GeckoActivity notifyAll(); } + } else if ("Sanitize:Finished".equals(event)) { + synchronized (mIsSanitizeCompletedLock) { + mIsSanitizeCompleted = true; + } + } else if ("SystemUI:Visibility".equals(event)) { if (message.getBoolean("visible", true)) { mMainLayout.setSystemUiVisibility(View.SYSTEM_UI_FLAG_VISIBLE); @@ -1628,7 +1643,45 @@ public abstract class GeckoApp extends GeckoActivity loadStartupTab(Tabs.LOADURL_NEW_TAB, action); } else { final int flags = getNewTabFlags(); - loadStartupTab(passedUri, intent, flags); + final BrowserApp browserApp = (BrowserApp) GeckoApp.this; + + synchronized (mIsSanitizeCompletedLock) { + // If OpenTabs will be sanitized, then load the tab after Sanitize:Finished + // is received. If Tor isn't started, then load tabs after Tor:Ready, too. And + // if Gecko isn't loaded, then wait until the profile is loaded (avoiding the race + // between loading the page and checking if |browser.privatebrowsing.autoStart| is true. + EventDispatcher.getInstance().registerUiThreadListener(new BundleEventListener() { + // isSanitized is true if Sanitizing is enable and it is completed or if Sanitizing is disabled. + private boolean isSanitized = (mIsSanitizeTabsEnabled && mIsSanitizeCompleted) || !mIsSanitizeTabsEnabled; + private boolean isTorReady = browserApp.checkTorIsStarted(); + private boolean isGeckoReady = GeckoThread.isRunning(); + + @Override + public void handleMessage(String event, GeckoBundle message, EventCallback callback) { + if ("Sanitize:Finished".equals(event)) { + EventDispatcher.getInstance().unregisterUiThreadListener(this, "Sanitize:Finished"); + isSanitized = true; + + } else if ("Tor:Ready".equals(event)) { + EventDispatcher.getInstance().unregisterUiThreadListener(this, "Tor:Ready"); + isTorReady = true; + } else if ("Gecko:Ready".equals(event)) { + EventDispatcher.getInstance().unregisterUiThreadListener(this, "Gecko:Ready"); + isGeckoReady = true; + } else if ("Tor:CheckIfReady".equals(event)) { + EventDispatcher.getInstance().unregisterUiThreadListener(this, "Tor:CheckIfReady"); + } + + if (isSanitized && isTorReady && isGeckoReady) { + loadStartupTab(passedUri, intent, flags); + } + } + }, "Sanitize:Finished", "Tor:Ready", "Tor:CheckIfReady", "Gecko:Ready"); + + // Run the event callback now, just in case Tor:Ready and Sanitize:Finished were + // dispatched before the listener was created. + EventDispatcher.getInstance().dispatch("Tor:CheckIfReady", null); + } } } });
1 0
0 0
[tor-browser/tor-browser-68.1.0esr-9.0-1] Bug 29238 - Prevent crash on Android after update
by gk@torproject.org 01 Sep '19

01 Sep '19
commit 8dbeac4a57547b530762a3a30cb7eea29df463d9 Author: Matthew Finkel <Matthew.Finkel(a)gmail.com> Date: Fri Mar 22 16:24:09 2019 +0000 Bug 29238 - Prevent crash on Android after update --- mobile/android/base/AndroidManifest.xml.in | 8 -------- 1 file changed, 8 deletions(-) diff --git a/mobile/android/base/AndroidManifest.xml.in b/mobile/android/base/AndroidManifest.xml.in index 228a7b6399b0..5f231e9ba83c 100644 --- a/mobile/android/base/AndroidManifest.xml.in +++ b/mobile/android/base/AndroidManifest.xml.in @@ -492,14 +492,6 @@ android:permission="android.permission.BIND_JOB_SERVICE" > </service> - <receiver - android:name="org.mozilla.gecko.PackageReplacedReceiver" - android:exported="false"> - <intent-filter> - <action android:name="android.intent.action.MY_PACKAGE_REPLACED"></action> - </intent-filter> - </receiver> - <service android:name="org.mozilla.gecko.telemetry.TelemetryUploadService" android:permission="android.permission.BIND_JOB_SERVICE"
1 0
0 0
[tor-browser/tor-browser-68.1.0esr-9.0-1] Load torbutton in browser.xul on Android
by gk@torproject.org 01 Sep '19

01 Sep '19
commit 805ff051656dc22d11de026e01223352f39e7380 Author: Matthew Finkel <Matthew.Finkel(a)gmail.com> Date: Fri Aug 30 10:17:25 2019 -0400 Load torbutton in browser.xul on Android --- mobile/android/chrome/content/browser.js | 4 ++++ mobile/android/chrome/content/browser.xul | 1 + 2 files changed, 5 insertions(+) diff --git a/mobile/android/chrome/content/browser.js b/mobile/android/chrome/content/browser.js index f8e9399f51c4..7fcee29f0c3c 100644 --- a/mobile/android/chrome/content/browser.js +++ b/mobile/android/chrome/content/browser.js @@ -243,6 +243,8 @@ var lazilyLoadedBrowserScripts = [ ["CastingApps", "chrome://browser/content/CastingApps.js"], ["RemoteDebugger", "chrome://browser/content/RemoteDebugger.js"], ["gViewSourceUtils", "chrome://global/content/viewSourceUtils.js"], + ["torbuttonUtils", "chrome://torbutton/content/torbutton_utils.js"], + ["torbutton", "chrome://torbutton/content/torbutton.js"], ]; lazilyLoadedBrowserScripts.forEach(function(aScript) { @@ -763,6 +765,8 @@ var BrowserApp = { true ); + torbutton_init(); + // We can't delay registering WebChannel listeners: if the first page is // about:accounts, which can happen when starting the Firefox Account flow // from the first run experience, or via the Firefox Account Status diff --git a/mobile/android/chrome/content/browser.xul b/mobile/android/chrome/content/browser.xul index 8072a7a1c6e5..71aa04df0ebf 100644 --- a/mobile/android/chrome/content/browser.xul +++ b/mobile/android/chrome/content/browser.xul @@ -4,6 +4,7 @@ - file, You can obtain one at http://mozilla.org/MPL/2.0/. --> <?xml-stylesheet href="chrome://browser/content/browser.css" type="text/css"?> +<?xml-stylesheet href="chrome://torbutton/skin/torbutton.css" type="text/css"?> <window id="main-window" onload="BrowserApp.startup();"
1 0
0 0
[tor-browser/tor-browser-68.1.0esr-9.0-1] Bug 25741 - TBA: Move GCM Push prefs within preprocessor guard
by gk@torproject.org 01 Sep '19

01 Sep '19
commit f130103fc3403cb6c9dbedd314a7face0e4e42e7 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 3e13d0d81a5d..9d4f331e968f 100644 --- a/mobile/android/app/mobile.js +++ b/mobile/android/app/mobile.js @@ -813,13 +813,13 @@ pref("dom.serviceWorkers.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-68.1.0esr-9.0-1] Bug 25741 - TBA: Exclude unwanted Stumbler tests
by gk@torproject.org 01 Sep '19

01 Sep '19
commit c789cf909fdbca70d68cd833ce037a05bd13b604 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 1267f849ee3a..c6a0bc45d56f 100644 --- a/mobile/android/app/build.gradle +++ b/mobile/android/app/build.gradle @@ -190,6 +190,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-68.1.0esr-9.0-1] Bug 26690: Port padlock states for .onion services to mobile
by gk@torproject.org 01 Sep '19

01 Sep '19
commit daa148cebd3da69fa24739e2910d67b7480b4fdd Author: Igor Oliveira <igt0(a)torproject.org> Date: Mon Oct 29 12:30:14 2018 -0200 Bug 26690: Port padlock states for .onion services to mobile Prior to this patch, TBA was showing onion services as insecure connection and SSL/TLS ones as encrypted connections(lock icon). This patch fixes the issue adding several new onion icons to indicate all the various permutations of onions services hosted HTTP or HTTPS pages. --- .../app/src/main/res/drawable-hdpi/ic_onion.png | Bin 0 -> 807 bytes .../main/res/drawable-hdpi/ic_onion_disabled.png | Bin 0 -> 975 bytes .../src/main/res/drawable-hdpi/ic_onion_lock.png | Bin 0 -> 932 bytes .../app/src/main/res/drawable-xhdpi/ic_onion.png | Bin 0 -> 1015 bytes .../main/res/drawable-xhdpi/ic_onion_disabled.png | Bin 0 -> 1260 bytes .../src/main/res/drawable-xhdpi/ic_onion_lock.png | Bin 0 -> 1275 bytes .../app/src/main/res/drawable-xxhdpi/ic_onion.png | Bin 0 -> 1592 bytes .../main/res/drawable-xxhdpi/ic_onion_disabled.png | Bin 0 -> 1892 bytes .../src/main/res/drawable-xxhdpi/ic_onion_lock.png | Bin 0 -> 1899 bytes .../app/src/main/res/drawable-xxxhdpi/ic_onion.png | Bin 0 -> 2099 bytes .../res/drawable-xxxhdpi/ic_onion_disabled.png | Bin 0 -> 2526 bytes .../main/res/drawable-xxxhdpi/ic_onion_lock.png | Bin 0 -> 2568 bytes .../main/res/drawable/security_mode_icon_nm.xml | 9 +++++++++ .../main/res/drawable/security_mode_icon_pm.xml | 9 +++++++++ .../src/main/res/drawable/site_security_icon.xml | 10 +++++++++- .../base/java/org/mozilla/gecko/SiteIdentity.java | 14 ++++++++++++++ .../mozilla/gecko/toolbar/SecurityModeUtil.java | 21 ++++++++++++++++----- .../mozilla/gecko/toolbar/SiteIdentityPopup.java | 17 +++++++++++------ mobile/android/chrome/content/browser.js | 15 ++++++++++++++- 19 files changed, 82 insertions(+), 13 deletions(-) diff --git a/mobile/android/app/src/main/res/drawable-hdpi/ic_onion.png b/mobile/android/app/src/main/res/drawable-hdpi/ic_onion.png new file mode 100644 index 000000000000..1a61d982752b Binary files /dev/null and b/mobile/android/app/src/main/res/drawable-hdpi/ic_onion.png differ diff --git a/mobile/android/app/src/main/res/drawable-hdpi/ic_onion_disabled.png b/mobile/android/app/src/main/res/drawable-hdpi/ic_onion_disabled.png new file mode 100644 index 000000000000..9669d12101fb Binary files /dev/null and b/mobile/android/app/src/main/res/drawable-hdpi/ic_onion_disabled.png differ diff --git a/mobile/android/app/src/main/res/drawable-hdpi/ic_onion_lock.png b/mobile/android/app/src/main/res/drawable-hdpi/ic_onion_lock.png new file mode 100644 index 000000000000..b0f60fea5b28 Binary files /dev/null and b/mobile/android/app/src/main/res/drawable-hdpi/ic_onion_lock.png differ diff --git a/mobile/android/app/src/main/res/drawable-xhdpi/ic_onion.png b/mobile/android/app/src/main/res/drawable-xhdpi/ic_onion.png new file mode 100755 index 000000000000..074330c3a25a Binary files /dev/null and b/mobile/android/app/src/main/res/drawable-xhdpi/ic_onion.png differ diff --git a/mobile/android/app/src/main/res/drawable-xhdpi/ic_onion_disabled.png b/mobile/android/app/src/main/res/drawable-xhdpi/ic_onion_disabled.png new file mode 100755 index 000000000000..09db37998d33 Binary files /dev/null and b/mobile/android/app/src/main/res/drawable-xhdpi/ic_onion_disabled.png differ diff --git a/mobile/android/app/src/main/res/drawable-xhdpi/ic_onion_lock.png b/mobile/android/app/src/main/res/drawable-xhdpi/ic_onion_lock.png new file mode 100755 index 000000000000..13799b7fa8f7 Binary files /dev/null and b/mobile/android/app/src/main/res/drawable-xhdpi/ic_onion_lock.png differ diff --git a/mobile/android/app/src/main/res/drawable-xxhdpi/ic_onion.png b/mobile/android/app/src/main/res/drawable-xxhdpi/ic_onion.png new file mode 100755 index 000000000000..711bb3c8d8fa Binary files /dev/null and b/mobile/android/app/src/main/res/drawable-xxhdpi/ic_onion.png differ diff --git a/mobile/android/app/src/main/res/drawable-xxhdpi/ic_onion_disabled.png b/mobile/android/app/src/main/res/drawable-xxhdpi/ic_onion_disabled.png new file mode 100755 index 000000000000..0d931669abf3 Binary files /dev/null and b/mobile/android/app/src/main/res/drawable-xxhdpi/ic_onion_disabled.png differ diff --git a/mobile/android/app/src/main/res/drawable-xxhdpi/ic_onion_lock.png b/mobile/android/app/src/main/res/drawable-xxhdpi/ic_onion_lock.png new file mode 100755 index 000000000000..f7a5c29b4c17 Binary files /dev/null and b/mobile/android/app/src/main/res/drawable-xxhdpi/ic_onion_lock.png differ diff --git a/mobile/android/app/src/main/res/drawable-xxxhdpi/ic_onion.png b/mobile/android/app/src/main/res/drawable-xxxhdpi/ic_onion.png new file mode 100755 index 000000000000..97a0beabbe0c Binary files /dev/null and b/mobile/android/app/src/main/res/drawable-xxxhdpi/ic_onion.png differ diff --git a/mobile/android/app/src/main/res/drawable-xxxhdpi/ic_onion_disabled.png b/mobile/android/app/src/main/res/drawable-xxxhdpi/ic_onion_disabled.png new file mode 100755 index 000000000000..aec29bf6238b Binary files /dev/null and b/mobile/android/app/src/main/res/drawable-xxxhdpi/ic_onion_disabled.png differ diff --git a/mobile/android/app/src/main/res/drawable-xxxhdpi/ic_onion_lock.png b/mobile/android/app/src/main/res/drawable-xxxhdpi/ic_onion_lock.png new file mode 100755 index 000000000000..71df527b2a6a Binary files /dev/null and b/mobile/android/app/src/main/res/drawable-xxxhdpi/ic_onion_lock.png differ diff --git a/mobile/android/app/src/main/res/drawable/security_mode_icon_nm.xml b/mobile/android/app/src/main/res/drawable/security_mode_icon_nm.xml index 0b6b496b0b34..bb0da0b843d2 100644 --- a/mobile/android/app/src/main/res/drawable/security_mode_icon_nm.xml +++ b/mobile/android/app/src/main/res/drawable/security_mode_icon_nm.xml @@ -28,5 +28,14 @@ <item android:drawable="@drawable/ic_search_icon" android:maxLevel="6" /> + <item + android:drawable="@drawable/ic_onion" + android:maxLevel="7"/> + <item + android:drawable="@drawable/ic_onion_lock" + android:maxLevel="8"/> + <item + android:drawable="@drawable/ic_onion_disabled" + android:maxLevel="9"/> </level-list> diff --git a/mobile/android/app/src/main/res/drawable/security_mode_icon_pm.xml b/mobile/android/app/src/main/res/drawable/security_mode_icon_pm.xml index edbd269040d1..be47d7fe081f 100644 --- a/mobile/android/app/src/main/res/drawable/security_mode_icon_pm.xml +++ b/mobile/android/app/src/main/res/drawable/security_mode_icon_pm.xml @@ -28,5 +28,14 @@ <item android:drawable="@drawable/ic_search_icon" android:maxLevel="6" /> + <item + android:drawable="@drawable/ic_onion" + android:maxLevel="7"/> + <item + android:drawable="@drawable/ic_onion_lock" + android:maxLevel="8"/> + <item + android:drawable="@drawable/ic_onion_disabled" + android:maxLevel="9"/> </level-list> diff --git a/mobile/android/app/src/main/res/drawable/site_security_icon.xml b/mobile/android/app/src/main/res/drawable/site_security_icon.xml index ac8624f861ad..f5f4c7775110 100644 --- a/mobile/android/app/src/main/res/drawable/site_security_icon.xml +++ b/mobile/android/app/src/main/res/drawable/site_security_icon.xml @@ -28,5 +28,13 @@ <item android:drawable="@drawable/ic_search_icon" android:maxLevel="6" /> - + <item + android:drawable="@drawable/ic_onion" + android:maxLevel="7"/> + <item + android:drawable="@drawable/ic_onion_lock" + android:maxLevel="8"/> + <item + android:drawable="@drawable/ic_onion_disabled" + android:maxLevel="9"/> </level-list> diff --git a/mobile/android/base/java/org/mozilla/gecko/SiteIdentity.java b/mobile/android/base/java/org/mozilla/gecko/SiteIdentity.java index 79262586b8fe..0a1b92b75f96 100644 --- a/mobile/android/base/java/org/mozilla/gecko/SiteIdentity.java +++ b/mobile/android/base/java/org/mozilla/gecko/SiteIdentity.java @@ -25,6 +25,8 @@ public class SiteIdentity { private String mCountry; private String mVerifier; private String mOrigin; + private boolean mIsOnionHost; + private boolean mHasCert; public enum SecurityMode { UNKNOWN, @@ -59,6 +61,8 @@ public class SiteIdentity { mCountry = null; mVerifier = null; mSecure = false; + mIsOnionHost = false; + mHasCert = false; } public void reset() { @@ -108,6 +112,8 @@ public class SiteIdentity { mVerifier = identityData.getString("verifier"); mSecure = identityData.getBoolean("secure"); mSecurityException = identityData.getBoolean("securityException"); + mIsOnionHost = identityData.getBoolean("isOnionHost"); + mHasCert = identityData.getBoolean("hasCert"); } /* package */ void updateTrackingMode(final String trackingEvent) { @@ -154,6 +160,14 @@ public class SiteIdentity { return mSecure; } + public boolean isOnionHost() { + return mIsOnionHost; + } + + public boolean hasCert() { + return mHasCert; + } + public MixedMode getMixedModeActive() { return mMixedModeActive; } diff --git a/mobile/android/base/java/org/mozilla/gecko/toolbar/SecurityModeUtil.java b/mobile/android/base/java/org/mozilla/gecko/toolbar/SecurityModeUtil.java index ceb33b8e3acb..10bc83c279a1 100644 --- a/mobile/android/base/java/org/mozilla/gecko/toolbar/SecurityModeUtil.java +++ b/mobile/android/base/java/org/mozilla/gecko/toolbar/SecurityModeUtil.java @@ -35,6 +35,9 @@ public class SecurityModeUtil { LOCK_SECURE(1), LOCK_WARNING(-1), // not used for now. reserve for MixedDisplayContent icon, if any. LOCK_INSECURE(3), + ONION(7), + ONION_ACTIVATE(8), + ONION_DISABLED(9), WARNING(2), TRACKING_CONTENT_BLOCKED(4), TRACKING_CONTENT_LOADED(5); @@ -100,6 +103,8 @@ public class SecurityModeUtil { final MixedMode displayMixedMode = identity.getMixedModeDisplay(); final TrackingMode trackingMode = identity.getTrackingMode(); final boolean securityException = identity.isSecurityException(); + final boolean isOnionHost = identity.isOnionHost(); + final boolean hasCert = identity.hasCert(); if (securityException) { return IconType.WARNING; @@ -108,9 +113,9 @@ public class SecurityModeUtil { } else if (trackingMode == TrackingMode.TRACKING_CONTENT_BLOCKED) { return IconType.TRACKING_CONTENT_BLOCKED; } else if (activeMixedMode == MixedMode.LOADED) { - return IconType.LOCK_INSECURE; + return isOnionHost ? IconType.ONION_DISABLED : IconType.LOCK_INSECURE; } else if (displayMixedMode == MixedMode.LOADED) { - return IconType.WARNING; + return isOnionHost ? IconType.ONION_DISABLED : IconType.WARNING; } // Chrome-UI checking is after tracking/mixed-content, even for about: pages, as they @@ -119,9 +124,15 @@ public class SecurityModeUtil { return IconType.DEFAULT; } - return securityModeMap.containsKey(securityMode) - ? securityModeMap.get(securityMode) - : IconType.UNKNOWN; + if (securityMode == SecurityMode.UNKNOWN) { + return isOnionHost ? IconType.ONION : IconType.UNKNOWN; + } else if (securityMode == SecurityMode.IDENTIFIED) { + return isOnionHost ? (hasCert ? IconType.ONION_ACTIVATE : IconType.ONION) : IconType.LOCK_SECURE; + } else if (securityMode == SecurityMode.VERIFIED) { + return isOnionHost ? IconType.ONION_ACTIVATE : IconType.LOCK_SECURE; + } else { + return IconType.UNKNOWN; + } } /** diff --git a/mobile/android/base/java/org/mozilla/gecko/toolbar/SiteIdentityPopup.java b/mobile/android/base/java/org/mozilla/gecko/toolbar/SiteIdentityPopup.java index 831f69f2bf09..df67f0a9b9ed 100644 --- a/mobile/android/base/java/org/mozilla/gecko/toolbar/SiteIdentityPopup.java +++ b/mobile/android/base/java/org/mozilla/gecko/toolbar/SiteIdentityPopup.java @@ -144,8 +144,9 @@ public class SiteIdentityPopup extends AnchoredPopup implements BundleEventListe init(); } - final boolean isIdentityKnown = (siteIdentity.getSecurityMode() == SecurityMode.IDENTIFIED || - siteIdentity.getSecurityMode() == SecurityMode.VERIFIED); + final boolean isIdentityKnown = ((siteIdentity.getSecurityMode() == SecurityMode.IDENTIFIED || + siteIdentity.getSecurityMode() == SecurityMode.VERIFIED) && + siteIdentity.hasCert()); updateConnectionState(siteIdentity); toggleIdentityKnownContainerVisibility(isIdentityKnown); @@ -322,7 +323,8 @@ public class SiteIdentityPopup extends AnchoredPopup implements BundleEventListe } else if (!siteIdentity.isSecure()) { if (siteIdentity.getMixedModeActive() == MixedMode.LOADED) { // Active Mixed Content loaded because user has disabled blocking. - mIcon.setImageResource(R.drawable.ic_lock_disabled); + int resId = siteIdentity.isOnionHost() ? R.drawable.ic_onion_disabled : R.drawable.ic_lock_disabled; + mIcon.setImageResource(resId); clearSecurityStateIcon(); mMixedContentActivity.setVisibility(View.VISIBLE); mMixedContentActivity.setText(R.string.mixed_content_protection_disabled); @@ -330,7 +332,8 @@ public class SiteIdentityPopup extends AnchoredPopup implements BundleEventListe mLink.setVisibility(View.VISIBLE); } else if (siteIdentity.getMixedModeDisplay() == MixedMode.LOADED) { // Passive Mixed Content loaded. - mIcon.setImageResource(R.drawable.ic_lock_inactive); + int resId = siteIdentity.isOnionHost() ? R.drawable.ic_onion_disabled : R.drawable.ic_lock_inactive; + mIcon.setImageResource(resId); setSecurityStateIcon(R.drawable.ic_warning_major, 1); mMixedContentActivity.setVisibility(View.VISIBLE); if (siteIdentity.getMixedModeActive() == MixedMode.BLOCKED) { @@ -342,7 +345,8 @@ public class SiteIdentityPopup extends AnchoredPopup implements BundleEventListe } else { // Unencrypted connection with no mixed content. - mIcon.setImageResource(R.drawable.globe_light); + int resId = siteIdentity.isOnionHost() ? R.drawable.ic_onion : R.drawable.globe_light; + mIcon.setImageResource(resId); clearSecurityStateIcon(); mMixedContentActivity.setVisibility(View.GONE); @@ -361,7 +365,8 @@ public class SiteIdentityPopup extends AnchoredPopup implements BundleEventListe } else { // Connection is secure. - mIcon.setImageResource(R.drawable.ic_lock); + int resId = siteIdentity.isOnionHost() ? (siteIdentity.hasCert() ? R.drawable.ic_onion_lock : R.drawable.ic_onion) : R.drawable.ic_lock; + mIcon.setImageResource(resId); setSecurityStateIcon(R.drawable.img_check, 2); mSecurityState.setTextColor(ContextCompat.getColor(mContext, R.color.affirmative_green)); diff --git a/mobile/android/chrome/content/browser.js b/mobile/android/chrome/content/browser.js index c9cf0f128176..e139e59a7f40 100644 --- a/mobile/android/chrome/content/browser.js +++ b/mobile/android/chrome/content/browser.js @@ -6788,6 +6788,17 @@ var IdentityHandler = { return result; }, + isOnionHost: function isOnionHost() { + try { + return this._uri.host.toLowerCase().endsWith(".onion"); + } catch (e) { + // If something goes wrong (e.g. host is an exception + // because this is an about: page) just fall back + // on false. + return false; + } + }, + /** * Determines the identity mode corresponding to the icon we show in the urlbar. */ @@ -6913,6 +6924,8 @@ var IdentityHandler = { }; result.host = this.getEffectiveHost(); + result.isOnionHost = this.isOnionHost(); + result.hasCert = !!this._lastStatus; // Don't show identity data for pages with an unknown identity or if any // mixed content is loaded (mixed display content is loaded by default). @@ -6982,7 +6995,7 @@ var IdentityHandler = { // Updating the tooltip value in those cases isn't critical. // FIXME: Fixing bug 646690 would probably makes this check unnecessary if ( - this._lastLocation.hostname && + this._lastLocation.hostname && iData.cert && this._overrideService.hasMatchingOverride( this._lastLocation.hostname, this._lastLocation.port || 443,
1 0
0 0
  • ← Newer
  • 1
  • ...
  • 1540
  • 1541
  • 1542
  • 1543
  • 1544
  • 1545
  • 1546
  • ...
  • 2043
  • Older →

HyperKitty Powered by HyperKitty version 1.3.12.