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 -----
  • July
  • June
  • 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
  • 20724 discussions
[tor-browser/tor-browser-68.1.0esr-9.0-1] Bug 25696 - Implement alpha onboarding for Tor Browser for Android
by gk@torproject.org 01 Sep '19

01 Sep '19
commit 11c49bccc023231db699b8bef6c6d98681ae4c87 Author: Igor Oliveira <igt0(a)torproject.org> Date: Mon Aug 6 00:12:26 2018 -0300 Bug 25696 - Implement alpha onboarding for Tor Browser for Android - FirstrunTorPagerConfig.java: Create file that sets up all the views in the pager. - FirstrunPager.java: Update code to use the FirstrunTorPagerConfig. - FirstrunLastPanel.java: Create view that adds a close handler in the latest pager view. Also: Bug 25696 - Design of alpha onboarding for Tor Browser for Android Bug 27125 - Move localized Tor Browser for Android strings into separate file --- .../res/layout/firstrun_animation_container.xml | 10 +-- .../firstrun_basepanel_checkable_fragment.xml | 34 +++++---- mobile/android/app/src/main/res/values/colors.xml | 3 + mobile/android/app/src/main/res/values/styles.xml | 7 ++ .../mozilla/gecko/firstrun/FirstrunLastPanel.java | 30 ++++++++ .../org/mozilla/gecko/firstrun/FirstrunPager.java | 18 ++--- .../gecko/firstrun/FirstrunPagerConfig.java | 1 + .../org/mozilla/gecko/firstrun/FirstrunPanel.java | 2 + .../gecko/firstrun/FirstrunTorPagerConfig.java | 81 +++++++++++++++++++++ .../java/org/mozilla/gecko/firstrun/LastPanel.java | 7 +- .../android/base/locales/en-US/android_strings.dtd | 2 +- .../base/locales/en-US/torbrowser_strings.dtd | 26 +++++++ mobile/android/base/strings.xml.in | 32 +++++++- .../alpha/res/drawable-nodpi/figure_experience.png | Bin 0 -> 44299 bytes .../alpha/res/drawable-nodpi/figure_network.png | Bin 0 -> 70302 bytes .../alpha/res/drawable-nodpi/figure_onion.png | Bin 0 -> 139952 bytes .../alpha/res/drawable-nodpi/figure_privacy.png | Bin 0 -> 61696 bytes .../alpha/res/drawable-nodpi/figure_security.png | Bin 0 -> 52021 bytes .../alpha/res/drawable-nodpi/figure_welcome.png | Bin 0 -> 83798 bytes .../drawable-nodpi/home_tab_menu_strip_tor.9.png | Bin 0 -> 126 bytes .../res/drawable-nodpi/figure_experience.png | Bin 0 -> 44299 bytes .../nightly/res/drawable-nodpi/figure_network.png | Bin 0 -> 70302 bytes .../nightly/res/drawable-nodpi/figure_onion.png | Bin 0 -> 139952 bytes .../nightly/res/drawable-nodpi/figure_privacy.png | Bin 0 -> 61696 bytes .../nightly/res/drawable-nodpi/figure_security.png | Bin 0 -> 52021 bytes .../nightly/res/drawable-nodpi/figure_welcome.png | Bin 0 -> 83798 bytes .../drawable-nodpi/home_tab_menu_strip_tor.9.png | Bin 0 -> 126 bytes .../res/drawable-nodpi/figure_experience.png | Bin 0 -> 44299 bytes .../official/res/drawable-nodpi/figure_network.png | Bin 0 -> 70302 bytes .../official/res/drawable-nodpi/figure_onion.png | Bin 0 -> 139952 bytes .../official/res/drawable-nodpi/figure_privacy.png | Bin 0 -> 61696 bytes .../res/drawable-nodpi/figure_security.png | Bin 0 -> 52021 bytes .../official/res/drawable-nodpi/figure_welcome.png | Bin 0 -> 83798 bytes .../drawable-nodpi/home_tab_menu_strip_tor.9.png | Bin 0 -> 126 bytes 34 files changed, 215 insertions(+), 38 deletions(-) diff --git a/mobile/android/app/src/main/res/layout/firstrun_animation_container.xml b/mobile/android/app/src/main/res/layout/firstrun_animation_container.xml index 3e7225365c57..dd20466a8e1a 100644 --- a/mobile/android/app/src/main/res/layout/firstrun_animation_container.xml +++ b/mobile/android/app/src/main/res/layout/firstrun_animation_container.xml @@ -8,7 +8,7 @@ xmlns:gecko="http://schemas.android.com/apk/res-auto" android:layout_height="match_parent" android:layout_width="match_parent" - android:background="@color/dark_transparent_overlay"> + android:background="@android:color/white"> <org.mozilla.gecko.firstrun.FirstrunPager android:id="@+id/firstrun_pager" @@ -18,12 +18,12 @@ <org.mozilla.gecko.home.TabMenuStrip android:layout_width="match_parent" android:layout_height="@dimen/tabs_strip_height" - android:background="@color/firstrun_pager_header" + android:background="@android:color/white" android:visibility="visible" android:layout_gravity="top" - gecko:strip="@drawable/home_tab_menu_strip" - gecko:activeTextColor="@color/placeholder_grey" - gecko:inactiveTextColor="@color/tab_text_color" + gecko:strip="@drawable/home_tab_menu_strip_tor" + gecko:activeTextColor="@color/tor_tab_active_text" + gecko:inactiveTextColor="@color/tor_tab_inactive_text" gecko:tabsMarginLeft="@dimen/firstrun_tab_strip_content_start" /> </org.mozilla.gecko.firstrun.FirstrunPager> diff --git a/mobile/android/app/src/main/res/layout/firstrun_basepanel_checkable_fragment.xml b/mobile/android/app/src/main/res/layout/firstrun_basepanel_checkable_fragment.xml index 700ab20663ce..b0083511ae0d 100644 --- a/mobile/android/app/src/main/res/layout/firstrun_basepanel_checkable_fragment.xml +++ b/mobile/android/app/src/main/res/layout/firstrun_basepanel_checkable_fragment.xml @@ -13,31 +13,37 @@ <LinearLayout android:layout_width="match_parent" android:layout_height="wrap_content" android:minHeight="@dimen/firstrun_min_height" - android:background="@color/about_page_header_grey" + android:background="@color/tor_description_background_text" android:gravity="center_horizontal" android:orientation="vertical"> - <ImageView android:id="@+id/firstrun_image" - android:layout_width="wrap_content" - android:layout_height="@dimen/firstrun_background_height" - android:layout_marginTop="30dp" - android:layout_marginBottom="18dp" - android:scaleType="fitCenter" - android:layout_gravity="center" - android:adjustViewBounds="true"/> + <LinearLayout android:layout_width="match_parent" + android:layout_height="@dimen/firstrun_background_height" + android:background="@android:color/white" + android:gravity="center" + android:layout_gravity="center"> + + <ImageView android:id="@+id/firstrun_image" + android:layout_width="wrap_content" + android:layout_height="match_parent" + android:scaleType="fitCenter" + android:layout_gravity="center" + android:adjustViewBounds="true"/> + </LinearLayout> <TextView android:id="@+id/firstrun_text" android:layout_width="@dimen/firstrun_content_width" android:layout_height="wrap_content" - android:gravity="center" + android:gravity="left" android:textAppearance="@style/TextAppearance.FirstrunLight.Main"/> <TextView android:id="@+id/firstrun_subtext" android:layout_width="@dimen/firstrun_content_width" android:layout_height="wrap_content" android:paddingTop="20dp" - android:gravity="center" - android:textAppearance="@style/TextAppearance.FirstrunRegular.Body"/> + android:gravity="left" + android:lineSpacingExtra="5dp" + android:textAppearance="@style/TextAppearance.FirstrunTorRegular.Body"/> <android.support.v7.widget.SwitchCompat android:id="@+id/firstrun_switch" @@ -47,10 +53,10 @@ android:visibility="invisible"/> <TextView android:id="@+id/firstrun_link" - android:layout_width="wrap_content" + android:layout_width="@dimen/firstrun_content_width" android:layout_height="wrap_content" android:layout_marginBottom="30dp" - android:gravity="center" + android:gravity="left" android:textAppearance="@style/TextAppearance.Link" android:textAllCaps="true" android:text="@string/firstrun_button_next"/> diff --git a/mobile/android/app/src/main/res/values/colors.xml b/mobile/android/app/src/main/res/values/colors.xml index d1be54da0233..f31f0e73198f 100644 --- a/mobile/android/app/src/main/res/values/colors.xml +++ b/mobile/android/app/src/main/res/values/colors.xml @@ -151,6 +151,9 @@ <color name="url_bar_shadow_private">#272727</color> + <color name="tor_tab_inactive_text">#484848</color> + <color name="tor_tab_active_text">#7D4698</color> + <color name="tor_description_background_text">#FAFAFA</color> <!-- Restricted profiles palette --> <color name="restricted_profile_background_gold">#ffffcb51</color> diff --git a/mobile/android/app/src/main/res/values/styles.xml b/mobile/android/app/src/main/res/values/styles.xml index 033aec05c806..a669933fca01 100644 --- a/mobile/android/app/src/main/res/values/styles.xml +++ b/mobile/android/app/src/main/res/values/styles.xml @@ -730,6 +730,7 @@ <style name="TextAppearance.FirstrunLight"/> <style name="TextAppearance.FirstrunRegular"/> + <style name="TextAppearance.FirstrunTorRegular"/> <style name="TextAppearance.FirstrunLight.Main"> <item name="android:textSize">20sp</item> @@ -742,6 +743,12 @@ <item name="android:lineSpacingMultiplier">1.25</item> </style> + <style name="TextAppearance.FirstrunTorRegular.Body"> + <item name="android:textSize">16sp</item> + <item name="android:textColor">@color/ob_subtitle</item> + <item name="android:lineSpacingMultiplier">2</item> + </style> + <style name="TextAppearance.Link"> <item name="android:textSize">16sp</item> <item name="android:textColor">@color/ob_click</item> diff --git a/mobile/android/base/java/org/mozilla/gecko/firstrun/FirstrunLastPanel.java b/mobile/android/base/java/org/mozilla/gecko/firstrun/FirstrunLastPanel.java new file mode 100644 index 000000000000..37ccda25d328 --- /dev/null +++ b/mobile/android/base/java/org/mozilla/gecko/firstrun/FirstrunLastPanel.java @@ -0,0 +1,30 @@ +/* -*- Mode: Java; c-basic-offset: 4; tab-width: 4; indent-tabs-mode: nil; -*- + * 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/. */ + +package org.mozilla.gecko.firstrun; + +import android.os.Bundle; +import android.support.v4.app.Fragment; +import android.view.LayoutInflater; +import android.view.View; +import android.view.ViewGroup; +import org.mozilla.gecko.R; + +public class FirstrunLastPanel extends FirstrunPanel { + + @Override + public View onCreateView(LayoutInflater inflater, ViewGroup container, Bundle savedInstance) { + final ViewGroup root = (ViewGroup) super.onCreateView(inflater, container, savedInstance); + + root.findViewById(R.id.firstrun_link).setOnClickListener(new View.OnClickListener() { + @Override + public void onClick(View v) { + close(); + } + }); + + return root; + } +} diff --git a/mobile/android/base/java/org/mozilla/gecko/firstrun/FirstrunPager.java b/mobile/android/base/java/org/mozilla/gecko/firstrun/FirstrunPager.java index 01668978fa7b..d9465dd1939c 100644 --- a/mobile/android/base/java/org/mozilla/gecko/firstrun/FirstrunPager.java +++ b/mobile/android/base/java/org/mozilla/gecko/firstrun/FirstrunPager.java @@ -65,15 +65,7 @@ public class FirstrunPager extends RtlViewPager { public void load(Context appContext, FragmentManager fm, final boolean useLocalValues, final FirstrunAnimationContainer.OnFinishListener onFinishListener) { - final List<FirstrunPagerConfig.FirstrunPanelConfig> panels; - - if (Restrictions.isRestrictedProfile(appContext)) { - panels = FirstrunPagerConfig.getRestricted(appContext); - } else if (FirefoxAccounts.firefoxAccountsExist(appContext)) { - panels = FirstrunPagerConfig.forFxAUser(appContext, useLocalValues); - } else { - panels = FirstrunPagerConfig.getDefault(appContext, useLocalValues); - } + final List<FirstrunTorPagerConfig.FirstrunTorPanelConfig> panels = FirstrunTorPagerConfig.getDefault(appContext); setAdapter(new ViewPagerAdapter(fm, panels)); this.pagerNavigation = new FirstrunPanel.PagerNavigation() { @@ -137,14 +129,14 @@ public class FirstrunPager extends RtlViewPager { } protected class ViewPagerAdapter extends FragmentPagerAdapter { - private final List<FirstrunPagerConfig.FirstrunPanelConfig> panels; + private final List<FirstrunTorPagerConfig.FirstrunTorPanelConfig> panels; private final Fragment[] fragments; - public ViewPagerAdapter(FragmentManager fm, List<FirstrunPagerConfig.FirstrunPanelConfig> panels) { + public ViewPagerAdapter(FragmentManager fm, List<FirstrunTorPagerConfig.FirstrunTorPanelConfig> panels) { super(fm); this.panels = panels; this.fragments = new Fragment[panels.size()]; - for (FirstrunPagerConfig.FirstrunPanelConfig panel : panels) { + for (FirstrunTorPagerConfig.FirstrunTorPanelConfig panel : panels) { mDecor.onAddPagerView(panel.getTitle()); } @@ -157,7 +149,7 @@ public class FirstrunPager extends RtlViewPager { public Fragment getItem(int i) { Fragment fragment = this.fragments[i]; if (fragment == null) { - FirstrunPagerConfig.FirstrunPanelConfig panelConfig = panels.get(i); + FirstrunTorPagerConfig.FirstrunTorPanelConfig panelConfig = panels.get(i); fragment = Fragment.instantiate(context, panelConfig.getClassname(), panelConfig.getArgs()); ((FirstrunPanel) fragment).setPagerNavigation(pagerNavigation); fragments[i] = fragment; diff --git a/mobile/android/base/java/org/mozilla/gecko/firstrun/FirstrunPagerConfig.java b/mobile/android/base/java/org/mozilla/gecko/firstrun/FirstrunPagerConfig.java index 2e5f54f3bd79..d04d179cdd0b 100644 --- a/mobile/android/base/java/org/mozilla/gecko/firstrun/FirstrunPagerConfig.java +++ b/mobile/android/base/java/org/mozilla/gecko/firstrun/FirstrunPagerConfig.java @@ -20,6 +20,7 @@ class FirstrunPagerConfig { static final String KEY_IMAGE = "panelImage"; static final String KEY_MESSAGE = "panelMessage"; static final String KEY_SUBTEXT = "panelDescription"; + static final String KEY_CTATEXT = "panelCtaText"; static List<FirstrunPanelConfig> getDefault(Context context, final boolean useLocalValues) { final List<FirstrunPanelConfig> panels = new LinkedList<>(); diff --git a/mobile/android/base/java/org/mozilla/gecko/firstrun/FirstrunPanel.java b/mobile/android/base/java/org/mozilla/gecko/firstrun/FirstrunPanel.java index 23f05ce23800..d9a3b06c88f8 100644 --- a/mobile/android/base/java/org/mozilla/gecko/firstrun/FirstrunPanel.java +++ b/mobile/android/base/java/org/mozilla/gecko/firstrun/FirstrunPanel.java @@ -36,10 +36,12 @@ public class FirstrunPanel extends Fragment { final int image = args.getInt(FirstrunPagerConfig.KEY_IMAGE); final String message = args.getString(FirstrunPagerConfig.KEY_MESSAGE); final String subtext = args.getString(FirstrunPagerConfig.KEY_SUBTEXT); + final String ctatext = args.getString(FirstrunPagerConfig.KEY_CTATEXT); ((ImageView) root.findViewById(R.id.firstrun_image)).setImageDrawable(getResources().getDrawable(image)); ((TextView) root.findViewById(R.id.firstrun_text)).setText(message); ((TextView) root.findViewById(R.id.firstrun_subtext)).setText(subtext); + ((TextView) root.findViewById(R.id.firstrun_link)).setText(ctatext); final TextView messageView = root.findViewById(R.id.firstrun_text); if (NO_MESSAGE.equals(message)) { diff --git a/mobile/android/base/java/org/mozilla/gecko/firstrun/FirstrunTorPagerConfig.java b/mobile/android/base/java/org/mozilla/gecko/firstrun/FirstrunTorPagerConfig.java new file mode 100644 index 000000000000..9881ba01dda3 --- /dev/null +++ b/mobile/android/base/java/org/mozilla/gecko/firstrun/FirstrunTorPagerConfig.java @@ -0,0 +1,81 @@ +/* -*- Mode: Java; c-basic-offset: 4; tab-width: 4; indent-tabs-mode: nil; -*- + * 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/. */ + +package org.mozilla.gecko.firstrun; + +import android.content.Context; +import android.os.Bundle; +import android.util.Log; +import org.mozilla.gecko.GeckoSharedPrefs; +import org.mozilla.gecko.R; +import org.mozilla.gecko.Telemetry; +import org.mozilla.gecko.TelemetryContract; +import org.mozilla.gecko.Experiments; + +import java.util.LinkedList; +import java.util.List; + +public class FirstrunTorPagerConfig { + public static final String LOGTAG = "FirstrunPagerConfigTor"; + + public static final String KEY_IMAGE = "panelImage"; + public static final String KEY_MESSAGE = "panelMessage"; + public static final String KEY_SUBTEXT = "panelDescription"; + public static final String KEY_CTATEXT = "panelCtaText"; + + private static Context mContext; + + public static List<FirstrunTorPanelConfig> getDefault(Context context) { + mContext = context; + final List<FirstrunTorPanelConfig> panels = new LinkedList<>(); + panels.add(SimplePanelConfigs.welcomeTorPanelConfig); + panels.add(SimplePanelConfigs.privacyPanelConfig); + panels.add(SimplePanelConfigs.torNetworkPanelConfig); + panels.add(SimplePanelConfigs.secSettingsPanelConfig); + panels.add(SimplePanelConfigs.tipsPanelConfig); + panels.add(SimplePanelConfigs.onionServicesPanelConfig); + + return panels; + } + + public static class FirstrunTorPanelConfig { + + private String classname; + private String title; + private Bundle args; + + public FirstrunTorPanelConfig(String classname, int title, int image, int message, int subtext, int ctatext) { + this.classname = classname; + this.title = mContext.getResources().getString(title); + + this.args = new Bundle(); + this.args.putInt(KEY_IMAGE, image); + this.args.putString(KEY_MESSAGE, mContext.getResources().getString(message)); + this.args.putString(KEY_SUBTEXT, mContext.getResources().getString(subtext)); + this.args.putString(KEY_CTATEXT, mContext.getResources().getString(ctatext)); + } + + public String getClassname() { + return this.classname; + } + + public String getTitle() { + return this.title; + } + + public Bundle getArgs() { + return args; + } + } + + private static class SimplePanelConfigs { + public static final FirstrunTorPanelConfig welcomeTorPanelConfig = new FirstrunTorPanelConfig(FirstrunPanel.class.getName(), R.string.firstrun_welcome_tab_title, R.drawable.figure_welcome, R.string.firstrun_welcome_title, R.string.firstrun_welcome_message, R.string.firstrun_welcome_next); + public static final FirstrunTorPanelConfig privacyPanelConfig = new FirstrunTorPanelConfig(FirstrunPanel.class.getName(), R.string.firstrun_privacy_tab_title, R.drawable.figure_privacy, R.string.firstrun_privacy_title, R.string.firstrun_privacy_message, R.string.firstrun_privacy_next); + public static final FirstrunTorPanelConfig torNetworkPanelConfig = new FirstrunTorPanelConfig(FirstrunPanel.class.getName(), R.string.firstrun_tornetwork_tab_title, R.drawable.figure_network, R.string.firstrun_tornetwork_title, R.string.firstrun_tornetwork_message, R.string.firstrun_tornetwork_next); + public static final FirstrunTorPanelConfig secSettingsPanelConfig = new FirstrunTorPanelConfig(FirstrunPanel.class.getName(), R.string.firstrun_secsettings_tab_title, R.drawable.figure_security, R.string.firstrun_secsettings_title, R.string.firstrun_secsettings_message, R.string.firstrun_secsettings_next); + public static final FirstrunTorPanelConfig tipsPanelConfig = new FirstrunTorPanelConfig(FirstrunPanel.class.getName(), R.string.firstrun_tips_tab_title, R.drawable.figure_experience, R.string.firstrun_tips_title, R.string.firstrun_tips_message, R.string.firstrun_tips_next); + public static final FirstrunTorPanelConfig onionServicesPanelConfig = new FirstrunTorPanelConfig(LastPanel.class.getName(), R.string.firstrun_onionservices_tab_title, R.drawable.figure_onion, R.string.firstrun_onionservices_title, R.string.firstrun_onionservices_message, R.string.firstrun_onionservices_next); + } +} diff --git a/mobile/android/base/java/org/mozilla/gecko/firstrun/LastPanel.java b/mobile/android/base/java/org/mozilla/gecko/firstrun/LastPanel.java index 54d99a3ceeda..55e262eea476 100644 --- a/mobile/android/base/java/org/mozilla/gecko/firstrun/LastPanel.java +++ b/mobile/android/base/java/org/mozilla/gecko/firstrun/LastPanel.java @@ -7,6 +7,7 @@ package org.mozilla.gecko.firstrun; import android.graphics.Bitmap; import android.os.Bundle; +import android.view.Gravity; import android.view.LayoutInflater; import android.view.View; import android.view.ViewGroup; @@ -14,8 +15,6 @@ import android.widget.ImageView; import android.widget.TextView; import org.mozilla.gecko.R; -import org.mozilla.gecko.Telemetry; -import org.mozilla.gecko.TelemetryContract; public class LastPanel extends FirstrunPanel { @Override @@ -26,10 +25,11 @@ public class LastPanel extends FirstrunPanel { final int image = args.getInt(FirstrunPagerConfig.KEY_IMAGE); final String message = args.getString(FirstrunPagerConfig.KEY_MESSAGE); final String subtext = args.getString(FirstrunPagerConfig.KEY_SUBTEXT); + final String ctatext = args.getString(FirstrunPagerConfig.KEY_CTATEXT); ((ImageView) root.findViewById(R.id.firstrun_image)).setImageDrawable(getResources().getDrawable(image)); ((TextView) root.findViewById(R.id.firstrun_subtext)).setText(subtext); - ((TextView) root.findViewById(R.id.firstrun_link)).setText(R.string.firstrun_welcome_button_browser); + ((TextView) root.findViewById(R.id.firstrun_link)).setText(ctatext); final TextView messageView = root.findViewById(R.id.firstrun_text); if (NO_MESSAGE.equals(message)) { @@ -42,7 +42,6 @@ public class LastPanel extends FirstrunPanel { root.findViewById(R.id.firstrun_link).setOnClickListener(new View.OnClickListener() { @Override public void onClick(View v) { - Telemetry.sendUIEvent(TelemetryContract.Event.ACTION, TelemetryContract.Method.BUTTON, "firstrun-next"); close(); } }); diff --git a/mobile/android/base/locales/en-US/android_strings.dtd b/mobile/android/base/locales/en-US/android_strings.dtd index 643818d2bc7a..0e67ce1ce628 100644 --- a/mobile/android/base/locales/en-US/android_strings.dtd +++ b/mobile/android/base/locales/en-US/android_strings.dtd @@ -8,7 +8,7 @@ <!ENTITY firstrun_urlbar_subtext2 "A modern mobile browser from Mozilla, the non-profit committed to a free and open web."> <!ENTITY newfirstrun_urlbar_subtext "Fast, private, and on your side."> <!ENTITY firstrun_panel_title_privacy "Privacy"> -<!ENTITY firstrun_privacy_message "Browse like no one\'s watching"> +<!--!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."> <!ENTITY newfirstrun_privacy_subtext "Private browsing blocks ad trackers that follow you online."> <!ENTITY firstrun_panel_title_customize "Customize"> diff --git a/mobile/android/base/locales/en-US/torbrowser_strings.dtd b/mobile/android/base/locales/en-US/torbrowser_strings.dtd index b43134a0260b..f5a2ad2cd7fd 100644 --- a/mobile/android/base/locales/en-US/torbrowser_strings.dtd +++ b/mobile/android/base/locales/en-US/torbrowser_strings.dtd @@ -4,4 +4,30 @@ <!ENTITY firstrun_urlbar_subtext2 "A modern mobile browser from The Tor Project, the non-profit committed to a free and open web."> +<!-- Location note: Tor First run messages --> +<!ENTITY firstrun_welcome_tab_title "Welcome"> +<!ENTITY firstrun_welcome_title "You\'re ready."> +<!ENTITY firstrun_welcome_message "Tor Browser offers the highest standard of privacy and security while browsing the web. You\'re now protected against tracking, surveillance, and censorship. This quick onboarding will show you how."> +<!ENTITY firstrun_welcome_next "Start now"> +<!ENTITY firstrun_privacy_tab_title "Privacy"> +<!ENTITY firstrun_privacy_title "Snub trackers and snoopers."> +<!ENTITY firstrun_privacy_message "Tor Browser isolates cookies and deletes your browser history after your session. These modifications ensure your privacy and security are protected in the browser. Click ‘Tor Network’ to learn how we protect you on the network level."> +<!ENTITY firstrun_privacy_next "Go to Tor Network"> +<!ENTITY firstrun_tornetwork_tab_title "Tor Network"> +<!ENTITY firstrun_tornetwork_title "Travel a decentralized network."> +<!ENTITY firstrun_tornetwork_message "Tor Browser connects you to the Tor network run by thousands of volunteers around the world. Unlike a VPN, there\'s no one point of failure or centralized entity you need to trust in order to enjoy the internet privately."> +<!ENTITY firstrun_tornetwork_next "Next"> +<!ENTITY firstrun_secsettings_tab_title "Security"> +<!ENTITY firstrun_secsettings_title "Choose your experience."> +<!ENTITY firstrun_secsettings_message "We also provide you with additional settings for bumping up your browser security. Our Security Settings allow you to block elements that could be used to attack your computer."> +<!ENTITY firstrun_secsettings_next "Next"> +<!ENTITY firstrun_tips_tab_title "Tips"> +<!ENTITY firstrun_tips_title "Experience Tips."> +<!ENTITY firstrun_tips_message "With all the security and privacy features provided by Tor, your experience while browsing the internet may be a little different. Things may be a bit slower and depending on your security level, some elements may not work or load. You may also be asked to prove you are a human and not a robot."> +<!ENTITY firstrun_tips_next "Next"> +<!ENTITY firstrun_onionservices_tab_title "Onions"> +<!ENTITY firstrun_onionservices_title "Onion Services."> +<!ENTITY firstrun_onionservices_message "Onion services are sites that end with a .onion that provide extra protections to publishers and visitors, including added safeguards against censorship. Onion services allow anyone to provide content and services anonymously."> +<!ENTITY firstrun_onionservices_next "Go to explore"> + <!ENTITY sync_not_supported "Sync is not currently supported in Tor Browser on Android"> diff --git a/mobile/android/base/strings.xml.in b/mobile/android/base/strings.xml.in index 5453bed65e71..546dc31eb9c1 100644 --- a/mobile/android/base/strings.xml.in +++ b/mobile/android/base/strings.xml.in @@ -34,7 +34,7 @@ <string name="firstrun_urlbar_subtext">&firstrun_urlbar_subtext2;</string> <string name="newfirstrun_urlbar_subtext">&newfirstrun_urlbar_subtext;</string> <string name="firstrun_panel_title_privacy">&firstrun_panel_title_privacy;</string> - <string name="firstrun_privacy_message">&firstrun_privacy_message;</string> + <!--string name="firstrun_privacy_message">&firstrun_privacy_message;</string--> <string name="firstrun_privacy_subtext">&firstrun_privacy_subtext;</string> <string name="newfirstrun_privacy_subtext">&newfirstrun_privacy_subtext;</string> <string name="firstrun_panel_title_customize">&firstrun_panel_title_customize;</string> @@ -56,6 +56,36 @@ <string name="sync_not_supported">&sync_not_supported;</string> + <string name="firstrun_welcome_tab_title">&firstrun_welcome_tab_title;</string> + <string name="firstrun_welcome_title">&firstrun_welcome_title;</string> + <string name="firstrun_welcome_message">&firstrun_welcome_message;</string> + <string name="firstrun_welcome_next">&firstrun_welcome_next;</string> + + <string name="firstrun_privacy_tab_title">&firstrun_privacy_tab_title;</string> + <string name="firstrun_privacy_title">&firstrun_privacy_title;</string> + <string name="firstrun_privacy_message">&firstrun_privacy_message;</string> + <string name="firstrun_privacy_next">&firstrun_privacy_next;</string> + + <string name="firstrun_tornetwork_tab_title">&firstrun_tornetwork_tab_title;</string> + <string name="firstrun_tornetwork_title">&firstrun_tornetwork_title;</string> + <string name="firstrun_tornetwork_message">&firstrun_tornetwork_message;</string> + <string name="firstrun_tornetwork_next">&firstrun_tornetwork_next;</string> + + <string name="firstrun_secsettings_tab_title">&firstrun_secsettings_tab_title;</string> + <string name="firstrun_secsettings_title">&firstrun_secsettings_title;</string> + <string name="firstrun_secsettings_message">&firstrun_secsettings_message;</string> + <string name="firstrun_secsettings_next">&firstrun_secsettings_next;</string> + + <string name="firstrun_tips_tab_title">&firstrun_tips_tab_title;</string> + <string name="firstrun_tips_title">&firstrun_tips_title;</string> + <string name="firstrun_tips_message">&firstrun_tips_message;</string> + <string name="firstrun_tips_next">&firstrun_tips_next;</string> + + <string name="firstrun_onionservices_tab_title">&firstrun_onionservices_tab_title;</string> + <string name="firstrun_onionservices_title">&firstrun_onionservices_title;</string> + <string name="firstrun_onionservices_message">&firstrun_onionservices_message;</string> + <string name="firstrun_onionservices_next">&firstrun_onionservices_next;</string> + <string name="bookmarks_title">&bookmarks_title;</string> <string name="history_title">&history_title;</string> diff --git a/mobile/android/branding/alpha/res/drawable-nodpi/figure_experience.png b/mobile/android/branding/alpha/res/drawable-nodpi/figure_experience.png new file mode 100644 index 000000000000..2eeeb1ccbd7d Binary files /dev/null and b/mobile/android/branding/alpha/res/drawable-nodpi/figure_experience.png differ diff --git a/mobile/android/branding/alpha/res/drawable-nodpi/figure_network.png b/mobile/android/branding/alpha/res/drawable-nodpi/figure_network.png new file mode 100644 index 000000000000..62bf5e2d144d Binary files /dev/null and b/mobile/android/branding/alpha/res/drawable-nodpi/figure_network.png differ diff --git a/mobile/android/branding/alpha/res/drawable-nodpi/figure_onion.png b/mobile/android/branding/alpha/res/drawable-nodpi/figure_onion.png new file mode 100644 index 000000000000..cbd8236f82e9 Binary files /dev/null and b/mobile/android/branding/alpha/res/drawable-nodpi/figure_onion.png differ diff --git a/mobile/android/branding/alpha/res/drawable-nodpi/figure_privacy.png b/mobile/android/branding/alpha/res/drawable-nodpi/figure_privacy.png new file mode 100644 index 000000000000..d9d56229aa8a Binary files /dev/null and b/mobile/android/branding/alpha/res/drawable-nodpi/figure_privacy.png differ diff --git a/mobile/android/branding/alpha/res/drawable-nodpi/figure_security.png b/mobile/android/branding/alpha/res/drawable-nodpi/figure_security.png new file mode 100644 index 000000000000..0a0d47f75370 Binary files /dev/null and b/mobile/android/branding/alpha/res/drawable-nodpi/figure_security.png differ diff --git a/mobile/android/branding/alpha/res/drawable-nodpi/figure_welcome.png b/mobile/android/branding/alpha/res/drawable-nodpi/figure_welcome.png new file mode 100644 index 000000000000..274dea5c31a6 Binary files /dev/null and b/mobile/android/branding/alpha/res/drawable-nodpi/figure_welcome.png differ diff --git a/mobile/android/branding/alpha/res/drawable-nodpi/home_tab_menu_strip_tor.9.png b/mobile/android/branding/alpha/res/drawable-nodpi/home_tab_menu_strip_tor.9.png new file mode 100644 index 000000000000..a92420d11b8e Binary files /dev/null and b/mobile/android/branding/alpha/res/drawable-nodpi/home_tab_menu_strip_tor.9.png differ diff --git a/mobile/android/branding/nightly/res/drawable-nodpi/figure_experience.png b/mobile/android/branding/nightly/res/drawable-nodpi/figure_experience.png new file mode 100644 index 000000000000..2eeeb1ccbd7d Binary files /dev/null and b/mobile/android/branding/nightly/res/drawable-nodpi/figure_experience.png differ diff --git a/mobile/android/branding/nightly/res/drawable-nodpi/figure_network.png b/mobile/android/branding/nightly/res/drawable-nodpi/figure_network.png new file mode 100644 index 000000000000..62bf5e2d144d Binary files /dev/null and b/mobile/android/branding/nightly/res/drawable-nodpi/figure_network.png differ diff --git a/mobile/android/branding/nightly/res/drawable-nodpi/figure_onion.png b/mobile/android/branding/nightly/res/drawable-nodpi/figure_onion.png new file mode 100644 index 000000000000..cbd8236f82e9 Binary files /dev/null and b/mobile/android/branding/nightly/res/drawable-nodpi/figure_onion.png differ diff --git a/mobile/android/branding/nightly/res/drawable-nodpi/figure_privacy.png b/mobile/android/branding/nightly/res/drawable-nodpi/figure_privacy.png new file mode 100644 index 000000000000..d9d56229aa8a Binary files /dev/null and b/mobile/android/branding/nightly/res/drawable-nodpi/figure_privacy.png differ diff --git a/mobile/android/branding/nightly/res/drawable-nodpi/figure_security.png b/mobile/android/branding/nightly/res/drawable-nodpi/figure_security.png new file mode 100644 index 000000000000..0a0d47f75370 Binary files /dev/null and b/mobile/android/branding/nightly/res/drawable-nodpi/figure_security.png differ diff --git a/mobile/android/branding/nightly/res/drawable-nodpi/figure_welcome.png b/mobile/android/branding/nightly/res/drawable-nodpi/figure_welcome.png new file mode 100644 index 000000000000..274dea5c31a6 Binary files /dev/null and b/mobile/android/branding/nightly/res/drawable-nodpi/figure_welcome.png differ diff --git a/mobile/android/branding/nightly/res/drawable-nodpi/home_tab_menu_strip_tor.9.png b/mobile/android/branding/nightly/res/drawable-nodpi/home_tab_menu_strip_tor.9.png new file mode 100644 index 000000000000..a92420d11b8e Binary files /dev/null and b/mobile/android/branding/nightly/res/drawable-nodpi/home_tab_menu_strip_tor.9.png differ diff --git a/mobile/android/branding/official/res/drawable-nodpi/figure_experience.png b/mobile/android/branding/official/res/drawable-nodpi/figure_experience.png new file mode 100644 index 000000000000..2eeeb1ccbd7d Binary files /dev/null and b/mobile/android/branding/official/res/drawable-nodpi/figure_experience.png differ diff --git a/mobile/android/branding/official/res/drawable-nodpi/figure_network.png b/mobile/android/branding/official/res/drawable-nodpi/figure_network.png new file mode 100644 index 000000000000..62bf5e2d144d Binary files /dev/null and b/mobile/android/branding/official/res/drawable-nodpi/figure_network.png differ diff --git a/mobile/android/branding/official/res/drawable-nodpi/figure_onion.png b/mobile/android/branding/official/res/drawable-nodpi/figure_onion.png new file mode 100644 index 000000000000..cbd8236f82e9 Binary files /dev/null and b/mobile/android/branding/official/res/drawable-nodpi/figure_onion.png differ diff --git a/mobile/android/branding/official/res/drawable-nodpi/figure_privacy.png b/mobile/android/branding/official/res/drawable-nodpi/figure_privacy.png new file mode 100644 index 000000000000..d9d56229aa8a Binary files /dev/null and b/mobile/android/branding/official/res/drawable-nodpi/figure_privacy.png differ diff --git a/mobile/android/branding/official/res/drawable-nodpi/figure_security.png b/mobile/android/branding/official/res/drawable-nodpi/figure_security.png new file mode 100644 index 000000000000..0a0d47f75370 Binary files /dev/null and b/mobile/android/branding/official/res/drawable-nodpi/figure_security.png differ diff --git a/mobile/android/branding/official/res/drawable-nodpi/figure_welcome.png b/mobile/android/branding/official/res/drawable-nodpi/figure_welcome.png new file mode 100644 index 000000000000..274dea5c31a6 Binary files /dev/null and b/mobile/android/branding/official/res/drawable-nodpi/figure_welcome.png differ diff --git a/mobile/android/branding/official/res/drawable-nodpi/home_tab_menu_strip_tor.9.png b/mobile/android/branding/official/res/drawable-nodpi/home_tab_menu_strip_tor.9.png new file mode 100644 index 000000000000..a92420d11b8e Binary files /dev/null and b/mobile/android/branding/official/res/drawable-nodpi/home_tab_menu_strip_tor.9.png differ
1 0
0 0
[tor-browser/tor-browser-68.1.0esr-9.0-1] Bug 25741 - TBA: Always Quit, do not restore the last session
by gk@torproject.org 01 Sep '19

01 Sep '19
commit 8273c9c80ee6670d947dfc13b5f7e461967c2504 Author: Matthew Finkel <Matthew.Finkel(a)gmail.com> Date: Wed Apr 11 20:42:04 2018 +0000 Bug 25741 - TBA: Always Quit, do not restore the last session --- mobile/android/app/src/main/res/xml/preferences_advanced.xml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/mobile/android/app/src/main/res/xml/preferences_advanced.xml b/mobile/android/app/src/main/res/xml/preferences_advanced.xml index db035eb66206..622ce38a370b 100644 --- a/mobile/android/app/src/main/res/xml/preferences_advanced.xml +++ b/mobile/android/app/src/main/res/xml/preferences_advanced.xml @@ -27,7 +27,7 @@ <ListPreference android:key="android.not_a_preference.restoreSession3" android:title="@string/pref_restore" - android:defaultValue="always" + android:defaultValue="quit" android:entries="@array/pref_restore_entries" android:entryValues="@array/pref_restore_values" android:persistent="true" />
1 0
0 0
[tor-browser/tor-browser-68.1.0esr-9.0-1] Bug 25741 - TBA: top sites changed, used bookmarks icon temporarily.
by gk@torproject.org 01 Sep '19

01 Sep '19
commit 5e45176359a9131f70254e2b02af01bcd66f46c8 Author: Amogh Pradeep <amoghbl1(a)gmail.com> Date: Thu Jun 18 04:14:18 2015 -0400 Bug 25741 - TBA: top sites changed, used bookmarks icon temporarily. Adjust the Top Sites shown when a user taps on the URL bar. Signed-off-by: Amogh Pradeep <amoghbl1(a)gmail.com> --- .../res/drawable-hdpi/suggestedsites_checktor.png | Bin 0 -> 1286 bytes .../suggestedsites_guardianproject.png | Bin 0 -> 1286 bytes .../drawable-hdpi/suggestedsites_torproject.png | Bin 0 -> 1286 bytes .../res/drawable-xhdpi/suggestedsites_checktor.png | Bin 0 -> 1626 bytes .../suggestedsites_guardianproject.png | Bin 0 -> 1626 bytes .../drawable-xhdpi/suggestedsites_torproject.png | Bin 0 -> 1626 bytes .../drawable-xxhdpi/suggestedsites_checktor.png | Bin 0 -> 1626 bytes .../suggestedsites_guardianproject.png | Bin 0 -> 1626 bytes .../drawable-xxhdpi/suggestedsites_torproject.png | Bin 0 -> 1626 bytes .../mozilla/gecko/util/UnusedResourcesUtil.java | 3 +++ .../components/search/searchplugins/duckduckgo.xml | 6 ++--- .../components/search/searchplugins/list.json | 26 +++++++++++++++--- mobile/locales/en-US/chrome/region.properties | 30 +++++++++++++-------- 13 files changed, 47 insertions(+), 18 deletions(-) diff --git a/mobile/android/app/src/main/res/drawable-hdpi/suggestedsites_checktor.png b/mobile/android/app/src/main/res/drawable-hdpi/suggestedsites_checktor.png new file mode 100644 index 000000000000..a87c16e3d566 Binary files /dev/null and b/mobile/android/app/src/main/res/drawable-hdpi/suggestedsites_checktor.png differ diff --git a/mobile/android/app/src/main/res/drawable-hdpi/suggestedsites_guardianproject.png b/mobile/android/app/src/main/res/drawable-hdpi/suggestedsites_guardianproject.png new file mode 100644 index 000000000000..a87c16e3d566 Binary files /dev/null and b/mobile/android/app/src/main/res/drawable-hdpi/suggestedsites_guardianproject.png differ diff --git a/mobile/android/app/src/main/res/drawable-hdpi/suggestedsites_torproject.png b/mobile/android/app/src/main/res/drawable-hdpi/suggestedsites_torproject.png new file mode 100644 index 000000000000..a87c16e3d566 Binary files /dev/null and b/mobile/android/app/src/main/res/drawable-hdpi/suggestedsites_torproject.png differ diff --git a/mobile/android/app/src/main/res/drawable-xhdpi/suggestedsites_checktor.png b/mobile/android/app/src/main/res/drawable-xhdpi/suggestedsites_checktor.png new file mode 100644 index 000000000000..fa7f676310df Binary files /dev/null and b/mobile/android/app/src/main/res/drawable-xhdpi/suggestedsites_checktor.png differ diff --git a/mobile/android/app/src/main/res/drawable-xhdpi/suggestedsites_guardianproject.png b/mobile/android/app/src/main/res/drawable-xhdpi/suggestedsites_guardianproject.png new file mode 100644 index 000000000000..fa7f676310df Binary files /dev/null and b/mobile/android/app/src/main/res/drawable-xhdpi/suggestedsites_guardianproject.png differ diff --git a/mobile/android/app/src/main/res/drawable-xhdpi/suggestedsites_torproject.png b/mobile/android/app/src/main/res/drawable-xhdpi/suggestedsites_torproject.png new file mode 100644 index 000000000000..fa7f676310df Binary files /dev/null and b/mobile/android/app/src/main/res/drawable-xhdpi/suggestedsites_torproject.png differ diff --git a/mobile/android/app/src/main/res/drawable-xxhdpi/suggestedsites_checktor.png b/mobile/android/app/src/main/res/drawable-xxhdpi/suggestedsites_checktor.png new file mode 100644 index 000000000000..fa7f676310df Binary files /dev/null and b/mobile/android/app/src/main/res/drawable-xxhdpi/suggestedsites_checktor.png differ diff --git a/mobile/android/app/src/main/res/drawable-xxhdpi/suggestedsites_guardianproject.png b/mobile/android/app/src/main/res/drawable-xxhdpi/suggestedsites_guardianproject.png new file mode 100644 index 000000000000..fa7f676310df Binary files /dev/null and b/mobile/android/app/src/main/res/drawable-xxhdpi/suggestedsites_guardianproject.png differ diff --git a/mobile/android/app/src/main/res/drawable-xxhdpi/suggestedsites_torproject.png b/mobile/android/app/src/main/res/drawable-xxhdpi/suggestedsites_torproject.png new file mode 100644 index 000000000000..fa7f676310df Binary files /dev/null and b/mobile/android/app/src/main/res/drawable-xxhdpi/suggestedsites_torproject.png differ diff --git a/mobile/android/base/java/org/mozilla/gecko/util/UnusedResourcesUtil.java b/mobile/android/base/java/org/mozilla/gecko/util/UnusedResourcesUtil.java index 4056bd1a2ba5..af21ca27aadf 100644 --- a/mobile/android/base/java/org/mozilla/gecko/util/UnusedResourcesUtil.java +++ b/mobile/android/base/java/org/mozilla/gecko/util/UnusedResourcesUtil.java @@ -62,10 +62,13 @@ final class UnusedResourcesUtil { public static final int[] USED_IN_SUGGESTEDSITES = { R.drawable.suggestedsites_amazon, + R.drawable.suggestedsites_checktor, R.drawable.suggestedsites_facebook, + R.drawable.suggestedsites_guardianproject, R.drawable.suggestedsites_restricted_fxsupport, R.drawable.suggestedsites_restricted_mozilla, R.drawable.suggestedsites_twitter, + R.drawable.suggestedsites_torproject, R.drawable.suggestedsites_webmaker, R.drawable.suggestedsites_wikipedia, R.drawable.suggestedsites_youtube, diff --git a/mobile/android/components/search/searchplugins/duckduckgo.xml b/mobile/android/components/search/searchplugins/duckduckgo.xml index 2e5d1d2802c4..9ff1b91a027a 100644 --- a/mobile/android/components/search/searchplugins/duckduckgo.xml +++ b/mobile/android/components/search/searchplugins/duckduckgo.xml @@ -11,13 +11,13 @@ <Param name="type" value="list"/> </Url> <!-- this is effectively x-moz-phonesearch, but search service expects a text/html entry --> -<Url type="text/html" method="GET" template="https://duckduckgo.com/"> +<Url type="text/html" method="GET" template="https://duckduckgo.com/html/"> <Param name="q" value="{searchTerms}" /> <Param name="t" value="fpas" /> </Url> -<Url type="application/x-moz-tabletsearch" method="GET" template="https://duckduckgo.com/"> +<Url type="application/x-moz-tabletsearch" method="GET" template="https://duckduckgo.com/html/"> <Param name="q" value="{searchTerms}" /> <Param name="t" value="ftas" /> </Url> -<SearchForm>https://duckduckgo.com</SearchForm> +<SearchForm>https://duckduckgo.com/html/</SearchForm> </SearchPlugin> diff --git a/mobile/android/components/search/searchplugins/list.json b/mobile/android/components/search/searchplugins/list.json index 587a3ccba7ad..008039f48e01 100644 --- a/mobile/android/components/search/searchplugins/list.json +++ b/mobile/android/components/search/searchplugins/list.json @@ -1,14 +1,32 @@ { "default": { - "searchDefault": "Google", - "searchOrder": ["Google", "Bing"], + "searchDefault": "DuckDuckGo", + "searchOrder": ["DuckDuckGo", "Google"], "visibleDefaultEngines": [ - "google-b-m", "bing", "amazondotcom", "ddg", "twitter", "wikipedia" + "ddg", "google", "bing", "amazondotcom", "twitter", "wikipedia" ] }, "regionOverrides": { "US": { - "google-b-m": "google-b-1-m" + "ddg": "duckduckgo" + }, + "KZ": { + "ddg": "duckduckgo" + }, + "BY": { + "ddg": "duckduckgo" + }, + "RU": { + "ddg": "duckduckgo" + }, + "TR": { + "ddg": "duckduckgo" + }, + "UA": { + "ddg": "duckduckgo" + }, + "CN": { + "ddg": "duckduckgo" } }, "locales": { diff --git a/mobile/locales/en-US/chrome/region.properties b/mobile/locales/en-US/chrome/region.properties index a392e1f2fc5a..861c0ee495e3 100644 --- a/mobile/locales/en-US/chrome/region.properties +++ b/mobile/locales/en-US/chrome/region.properties @@ -27,19 +27,27 @@ browser.contentHandlers.types.0.uri=https://add.my.yahoo.com/rss?url=%s # browser.suggestedsites.NAME.title=Displayed name # browser.suggestedsites.NAME.url=Website URL # browser.suggestedsites.NAME.bgcolor= Color (hex format) -# -# Note that if you remove or add items to this set, you need to adjust -# mobile/android/tests/browser/robocop/testDistribution.java -# to reflect the new set of IDs reported as tiles data. -# -browser.suggestedsites.list.0=facebook -browser.suggestedsites.list.1=youtube -browser.suggestedsites.list.2=amazon + +browser.suggestedsites.list.0=checktor +browser.suggestedsites.list.1=torproject +browser.suggestedsites.list.2=guardianproject browser.suggestedsites.list.3=wikipedia -browser.suggestedsites.list.4=twitter +browser.suggestedsites.list.4=facebook + +browser.suggestedsites.checktor.title=Check Tor Connection +browser.suggestedsites.checktor.url=https://check.torproject.org/ +browser.suggestedsites.checktor.bgcolor=#ffecf0f3 + +browser.suggestedsites.torproject.title=The Tor Project +browser.suggestedsites.torproject.url=https://www.torproject.org/ +browser.suggestedsites.torproject.bgcolor=#ffecf0f3 + +browser.suggestedsites.guardianproject.title=The Guardian Project +browser.suggestedsites.guardianproject.url=https://guardianproject.info/ +browser.suggestedsites.guardianproject.bgcolor=#ffecf0f3 -browser.suggestedsites.facebook.title=Facebook -browser.suggestedsites.facebook.url=https://m.facebook.com/ +browser.suggestedsites.facebook.title=Facebook Onion Service +browser.suggestedsites.facebook.url=https://m.facebookcorewwwi.onion browser.suggestedsites.facebook.bgcolor=#3B5998 browser.suggestedsites.youtube.title=YouTube
1 0
0 0
[tor-browser/tor-browser-68.1.0esr-9.0-1] Orfox: hook up default panic trigger to "quit and clear"
by gk@torproject.org 01 Sep '19

01 Sep '19
commit bd41c7cefcc3e36c45d780b8c03f1d369f8ad4e1 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> Also: Bug 28507: Implement fallback to delete private data in the browser startup When the TBA is forcefully closed, its private data is not deleted, even if the history.clear_on_exit is set. As fallback, this patch calls the Sanitize:ClearData event in the browser startup to clean the private data if needed. --- mobile/android/base/AndroidManifest.xml.in | 7 +++ .../base/java/org/mozilla/gecko/GeckoApp.java | 72 ++++++++++++++-------- 2 files changed, 52 insertions(+), 27 deletions(-) diff --git a/mobile/android/base/AndroidManifest.xml.in b/mobile/android/base/AndroidManifest.xml.in index e61a3411b2e0..48809195dc57 100644 --- a/mobile/android/base/AndroidManifest.xml.in +++ b/mobile/android/base/AndroidManifest.xml.in @@ -171,6 +171,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 9143536400e3..c988923e960f 100644 --- a/mobile/android/base/java/org/mozilla/gecko/GeckoApp.java +++ b/mobile/android/base/java/org/mozilla/gecko/GeckoApp.java @@ -139,6 +139,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"; @@ -581,42 +582,50 @@ 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 GeckoBundle createSanitizeData() { + final SharedPreferences prefs = getSharedPreferencesForProfile(); + final Set<String> clearSet = PrefUtils.getStringSet( + prefs, ClearOnShutdownPref.PREF, new HashSet<String>()); - final GeckoBundle res = new GeckoBundle(2); - res.putBundle("sanitize", clearObj); + final GeckoBundle clearObj = new GeckoBundle(clearSet.size()); + for (final String clear : clearSet) { + clearObj.putBoolean(clear, true); + } + return clearObj; + } - // 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")) { + private void quitAndClear() { + // Make sure the Guest Browsing notification goes away when we quit. + GuestSession.hideNotification(this); - final String sessionRestore = - getSessionRestorePreference(getSharedPreferences()); - res.putBoolean("dontSaveSession", "quit".equals(sessionRestore)); - } + final GeckoBundle clearObj = createSanitizeData(); + 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 @@ -1160,6 +1169,13 @@ public abstract class GeckoApp extends GeckoActivity mTextSelection.create(); final Bundle finalSavedInstanceState = savedInstanceState; + + // When the browser is forcefully closed, its private data is not + // deleted, even if the history.clear_on_exit is set. Here we are calling + // the Sanitize:ClearData in the startup to make sure the private + // data was cleared. + EventDispatcher.getInstance().dispatch("Sanitize:ClearData", createSanitizeData()); + ThreadUtils.postToBackgroundThread(new Runnable() { @Override public void run() { @@ -1602,6 +1618,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-68.1.0esr-9.0-1] Bug 25741 - TBA: Clear state when the app exits, by default
by gk@torproject.org 01 Sep '19

01 Sep '19
commit b5bb9a8c09d4c4d9f1606a5c69f1b941e5b3ca3c Author: Matthew Finkel <Matthew.Finkel(a)gmail.com> Date: Wed Apr 11 18:55:25 2018 +0000 Bug 25741 - TBA: Clear state when the app exits, by default Do not delete downloaded files on exit. These correspond with (in order): private.data.openTabs private.data.history private.data.searchHistory private.data.downloadFiles private.data.formdata private.data.cookies_sessions private.data.cache private.data.offlineApps private.data.siteSettings private.data.syncedTabs --- mobile/android/app/src/main/res/values/arrays.xml | 20 ++++++++++---------- 1 file changed, 10 insertions(+), 10 deletions(-) diff --git a/mobile/android/app/src/main/res/values/arrays.xml b/mobile/android/app/src/main/res/values/arrays.xml index af7001b5e41f..83bfd4a3d0a7 100644 --- a/mobile/android/app/src/main/res/values/arrays.xml +++ b/mobile/android/app/src/main/res/values/arrays.xml @@ -71,7 +71,7 @@ <item>true</item> <item>true</item> <item>true</item> - <item>true</item> + <item>false</item> <item>true</item> <item>true</item> <item>true</item> @@ -104,16 +104,16 @@ <item>private.data.syncedTabs</item> </string-array> <string-array name="pref_clear_on_exit_defaults"> + <item>true</item> + <item>true</item> + <item>true</item> <item>false</item> - <item>false</item> - <item>false</item> - <item>false</item> - <item>false</item> - <item>false</item> - <item>false</item> - <item>false</item> - <item>false</item> - <item>false</item> + <item>true</item> + <item>true</item> + <item>true</item> + <item>true</item> + <item>true</item> + <item>true</item> </string-array> <string-array name="pref_restore_entries"> <item>@string/pref_restore_always</item>
1 0
0 0
[tor-browser/tor-browser-68.1.0esr-9.0-1] Bug 25741 - TBA: Do not import bookmarks and history from native browser by default
by gk@torproject.org 01 Sep '19

01 Sep '19
commit d5971ab34f8a0675a19d34d008f09c44d73b7872 Author: Matthew Finkel <Matthew.Finkel(a)gmail.com> Date: Wed Apr 11 18:51:09 2018 +0000 Bug 25741 - TBA: Do not import bookmarks and history from native browser by default --- mobile/android/app/src/main/res/values/arrays.xml | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/mobile/android/app/src/main/res/values/arrays.xml b/mobile/android/app/src/main/res/values/arrays.xml index 8aa0240c66ea..af7001b5e41f 100644 --- a/mobile/android/app/src/main/res/values/arrays.xml +++ b/mobile/android/app/src/main/res/values/arrays.xml @@ -48,8 +48,8 @@ <item>@string/history_title</item> </string-array> <string-array name="pref_import_android_defaults"> - <item>true</item> - <item>true</item> + <item>false</item> + <item>false</item> </string-array> <string-array name="pref_import_android_values"> <item>android_import.data.bookmarks</item>
1 0
0 0
[tor-browser/tor-browser-68.1.0esr-9.0-1] Bug 26528 - Don't allow Fennec to use UpdateService when installed through the app store
by gk@torproject.org 01 Sep '19

01 Sep '19
commit 0f0feb2c29527d262bec46e0c02f8c3b0b72839f Author: Igor Oliveira <igt0(a)torproject.org> Date: Wed Jun 27 12:12:22 2018 -0300 Bug 26528 - Don't allow Fennec to use UpdateService when installed through the app store App stores such as Google Play or F-Droid have their own update service. The Fennec UpdateService should be used just when the user installs it by themselves. --- .../base/java/org/mozilla/gecko/preferences/GeckoPreferences.java | 4 ++-- .../base/java/org/mozilla/gecko/updater/UpdateServiceHelper.java | 2 +- .../geckoview/src/main/java/org/mozilla/gecko/util/ContextUtils.java | 5 +++-- 3 files changed, 6 insertions(+), 5 deletions(-) diff --git a/mobile/android/base/java/org/mozilla/gecko/preferences/GeckoPreferences.java b/mobile/android/base/java/org/mozilla/gecko/preferences/GeckoPreferences.java index 3b9227e52e37..cd4a7ec48e1d 100644 --- a/mobile/android/base/java/org/mozilla/gecko/preferences/GeckoPreferences.java +++ b/mobile/android/base/java/org/mozilla/gecko/preferences/GeckoPreferences.java @@ -698,8 +698,8 @@ public class GeckoPreferences i--; continue; } - } else if (PREFS_UPDATER_AUTODOWNLOAD.equals(key)) { - if (!AppConstants.MOZ_UPDATER || ContextUtils.isInstalledFromGooglePlay(this)) { + } else if (PREFS_UPDATER_AUTODOWNLOAD.equals(key)) { + if (!AppConstants.MOZ_UPDATER || ContextUtils.isInstalledFromAppStore(this)) { preferences.removePreference(pref); i--; continue; diff --git a/mobile/android/base/java/org/mozilla/gecko/updater/UpdateServiceHelper.java b/mobile/android/base/java/org/mozilla/gecko/updater/UpdateServiceHelper.java index df66c914769d..4ea0b6c74f55 100644 --- a/mobile/android/base/java/org/mozilla/gecko/updater/UpdateServiceHelper.java +++ b/mobile/android/base/java/org/mozilla/gecko/updater/UpdateServiceHelper.java @@ -212,7 +212,7 @@ public class UpdateServiceHelper { } public static boolean isUpdaterEnabled(final Context context) { - return AppConstants.MOZ_UPDATER && isEnabled && !ContextUtils.isInstalledFromGooglePlay(context); + return AppConstants.MOZ_UPDATER && isEnabled && !ContextUtils.isInstalledFromAppStore(context); } public static void setUpdateUrl(Context context, String url) { diff --git a/mobile/android/geckoview/src/main/java/org/mozilla/gecko/util/ContextUtils.java b/mobile/android/geckoview/src/main/java/org/mozilla/gecko/util/ContextUtils.java index 4fb88ea41574..248763761378 100644 --- a/mobile/android/geckoview/src/main/java/org/mozilla/gecko/util/ContextUtils.java +++ b/mobile/android/geckoview/src/main/java/org/mozilla/gecko/util/ContextUtils.java @@ -17,6 +17,7 @@ import android.text.TextUtils; public class ContextUtils { private static final String INSTALLER_GOOGLE_PLAY = "com.android.vending"; + private static final String INSTALLER_FDROID = "org.fdroid.fdroid"; private ContextUtils() {} @@ -41,14 +42,14 @@ public class ContextUtils { } } - public static boolean isInstalledFromGooglePlay(final Context context) { + public static boolean isInstalledFromAppStore(final Context context) { final String installerPackageName = context.getPackageManager().getInstallerPackageName(context.getPackageName()); if (TextUtils.isEmpty(installerPackageName)) { return false; } - return INSTALLER_GOOGLE_PLAY.equals(installerPackageName); + return INSTALLER_GOOGLE_PLAY.equals(installerPackageName) || INSTALLER_FDROID.equals(installerPackageName); } public static boolean isApplicationDebuggable(final @NonNull Context context) {
1 0
0 0
[tor-browser/tor-browser-68.1.0esr-9.0-1] Orfox: quit button added
by gk@torproject.org 01 Sep '19

01 Sep '19
commit 23afe32d66453837ddd5943332ff9b2d9579a5c4 Author: Amogh Pradeep <amoghbl1(a)gmail.com> Date: Fri Jul 17 17:01:09 2015 -0400 Orfox: quit button added Signed-off-by: Amogh Pradeep <amoghbl1(a)gmail.com> --- mobile/android/base/java/org/mozilla/gecko/BrowserApp.java | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/mobile/android/base/java/org/mozilla/gecko/BrowserApp.java b/mobile/android/base/java/org/mozilla/gecko/BrowserApp.java index e7d490a552fe..4123acca9bbe 100644 --- a/mobile/android/base/java/org/mozilla/gecko/BrowserApp.java +++ b/mobile/android/base/java/org/mozilla/gecko/BrowserApp.java @@ -3277,7 +3277,7 @@ public class BrowserApp extends GeckoApp !PrefUtils.getStringSet(prefs, ClearOnShutdownPref.PREF, new HashSet<String>()).isEmpty(); - aMenu.findItem(R.id.quit).setVisible(visible); + aMenu.findItem(R.id.quit).setVisible(true); // If tab data is unavailable we disable most of the context menu and related items and // return early.
1 0
0 0
[tor-browser/tor-browser-68.1.0esr-9.0-1] Orfox: Centralized proxy applied to AbstractCommunicator and BaseResources.
by gk@torproject.org 01 Sep '19

01 Sep '19
commit 25134efbece613bf35a6456f1f472bc33e082e60 Author: Amogh Pradeep <amoghbl1(a)gmail.com> Date: Fri Jun 12 02:07:45 2015 -0400 Orfox: Centralized proxy applied to AbstractCommunicator and BaseResources. See Bug 1357997 for partial uplift. Also: Bug 28051 - Use our Orbot for proxying our connections --- .../java/org/mozilla/gecko/util/ProxySelector.java | 25 +++++++++++++++++++++- .../org/mozilla/gecko/sync/net/BaseResource.java | 7 ++++++ .../service/utils/AbstractCommunicator.java | 11 +++++++--- 3 files changed, 39 insertions(+), 4 deletions(-) diff --git a/mobile/android/geckoview/src/main/java/org/mozilla/gecko/util/ProxySelector.java b/mobile/android/geckoview/src/main/java/org/mozilla/gecko/util/ProxySelector.java index 3940d3c84249..9515975f680a 100644 --- a/mobile/android/geckoview/src/main/java/org/mozilla/gecko/util/ProxySelector.java +++ b/mobile/android/geckoview/src/main/java/org/mozilla/gecko/util/ProxySelector.java @@ -29,6 +29,10 @@ import java.net.URLConnection; import java.util.List; public class ProxySelector { + private static final String TOR_PROXY_ADDRESS = "127.0.0.1"; + private static final int TOR_SOCKS_PROXY_PORT = 9150; + private static final int TOR_HTTP_PROXY_PORT = 8218; + public static URLConnection openConnectionWithProxy(final URI uri) throws IOException { java.net.ProxySelector ps = java.net.ProxySelector.getDefault(); Proxy proxy = Proxy.NO_PROXY; @@ -39,7 +43,26 @@ public class ProxySelector { } } - return uri.toURL().openConnection(proxy); + /* Ignore the proxy we found from the VM, only use Tor. We can probably + * safely use the logic in this class in the future. */ + return uri.toURL().openConnection(getProxy()); + } + + public static Proxy getProxy() { + // TODO make configurable + return new Proxy(Proxy.Type.SOCKS, new InetSocketAddress(TOR_PROXY_ADDRESS, TOR_SOCKS_PROXY_PORT)); + } + + public static String getProxyHostAddress() { + return TOR_PROXY_ADDRESS; + } + + public static int getSocksProxyPort() { + return TOR_SOCKS_PROXY_PORT; + } + + public static int getHttpProxyPort() { + return TOR_HTTP_PROXY_PORT; } public ProxySelector() { diff --git a/mobile/android/services/src/main/java/org/mozilla/gecko/sync/net/BaseResource.java b/mobile/android/services/src/main/java/org/mozilla/gecko/sync/net/BaseResource.java index e85ccb855bff..51ebd6ce990f 100644 --- a/mobile/android/services/src/main/java/org/mozilla/gecko/sync/net/BaseResource.java +++ b/mobile/android/services/src/main/java/org/mozilla/gecko/sync/net/BaseResource.java @@ -23,9 +23,11 @@ import org.json.simple.JSONObject; import org.mozilla.gecko.background.common.GlobalConstants; import org.mozilla.gecko.background.common.log.Logger; import org.mozilla.gecko.sync.ExtendedJSONObject; +import org.mozilla.gecko.util.ProxySelector; import ch.boye.httpclientandroidlib.Header; import ch.boye.httpclientandroidlib.HttpEntity; +import ch.boye.httpclientandroidlib.HttpHost; import ch.boye.httpclientandroidlib.HttpResponse; import ch.boye.httpclientandroidlib.HttpVersion; import ch.boye.httpclientandroidlib.client.AuthCache; @@ -40,6 +42,7 @@ import ch.boye.httpclientandroidlib.client.methods.HttpRequestBase; import ch.boye.httpclientandroidlib.client.methods.HttpUriRequest; import ch.boye.httpclientandroidlib.client.protocol.ClientContext; import ch.boye.httpclientandroidlib.conn.ClientConnectionManager; +import ch.boye.httpclientandroidlib.conn.params.ConnRoutePNames; import ch.boye.httpclientandroidlib.conn.scheme.PlainSocketFactory; import ch.boye.httpclientandroidlib.conn.scheme.Scheme; import ch.boye.httpclientandroidlib.conn.scheme.SchemeRegistry; @@ -215,6 +218,10 @@ public class BaseResource implements Resource { // We could reuse these client instances, except that we mess around // with their parameters… so we'd need a pool of some kind. client = new DefaultHttpClient(getConnectionManager()); + /* TBA: We need a HTTP Proxy here */ + HttpHost defaultProxy = new HttpHost(ProxySelector.getProxyHostAddress(), + ProxySelector.getHttpProxyPort()); + client.getParams().setParameter(ConnRoutePNames.DEFAULT_PROXY, defaultProxy); // TODO: Eventually we should use Apache HttpAsyncClient. It's not out of alpha yet. // Until then, we synchronously make the request, then invoke our delegate's callback. diff --git a/mobile/android/stumbler/java/org/mozilla/mozstumbler/service/utils/AbstractCommunicator.java b/mobile/android/stumbler/java/org/mozilla/mozstumbler/service/utils/AbstractCommunicator.java index 4e30cb7deeb7..9b3ee98f89db 100644 --- a/mobile/android/stumbler/java/org/mozilla/mozstumbler/service/utils/AbstractCommunicator.java +++ b/mobile/android/stumbler/java/org/mozilla/mozstumbler/service/utils/AbstractCommunicator.java @@ -7,6 +7,7 @@ package org.mozilla.mozstumbler.service.utils; import android.os.Build; import android.util.Log; +import org.mozilla.gecko.util.ProxySelector; import org.mozilla.mozstumbler.service.AppGlobals; import org.mozilla.mozstumbler.service.Prefs; @@ -16,7 +17,7 @@ import java.io.InputStream; import java.io.OutputStream; import java.net.HttpURLConnection; import java.net.MalformedURLException; -import java.net.URL; +import java.net.URI; public abstract class AbstractCommunicator { @@ -72,8 +73,12 @@ public abstract class AbstractCommunicator { if (sMozApiKey == null || prefs != null) { sMozApiKey = prefs.getMozApiKey(); } - URL url = new URL(getUrlString() + "?key=" + sMozApiKey); - mHttpURLConnection = (HttpURLConnection) url.openConnection(); + + /* TBA: This was a URL, but the connection logic would simply + * convert the URL into a URI, and then later convert the URI back + * into a URL. Creating a URL at the beginning is only wasteful. */ + URI uri = new URI(getUrlString() + "?key=" + sMozApiKey); + mHttpURLConnection = (HttpURLConnection) ProxySelector.openConnectionWithProxy(uri); mHttpURLConnection.setRequestMethod("POST"); } catch (MalformedURLException e) { throw new IllegalArgumentException(e);
1 0
0 0
[tor-browser/tor-browser-68.1.0esr-9.0-1] Bug 25741 - TBA: Disable GeckoNetworkManager
by gk@torproject.org 01 Sep '19

01 Sep '19
commit 075ad0a98f40d38d34cb4b8ddc49a72892662f1e Author: Matthew Finkel <Matthew.Finkel(a)gmail.com> Date: Thu Apr 26 22:22:51 2018 +0000 Bug 25741 - TBA: Disable GeckoNetworkManager The browser should not need information related to the network interface or network state, tor should take care of that. --- .../src/main/java/org/mozilla/geckoview/GeckoRuntime.java | 8 ++++++-- 1 file changed, 6 insertions(+), 2 deletions(-) diff --git a/mobile/android/geckoview/src/main/java/org/mozilla/geckoview/GeckoRuntime.java b/mobile/android/geckoview/src/main/java/org/mozilla/geckoview/GeckoRuntime.java index 6023e2512398..804b8f0000e9 100644 --- a/mobile/android/geckoview/src/main/java/org/mozilla/geckoview/GeckoRuntime.java +++ b/mobile/android/geckoview/src/main/java/org/mozilla/geckoview/GeckoRuntime.java @@ -118,14 +118,18 @@ public final class GeckoRuntime implements Parcelable { Log.d(LOGTAG, "Lifecycle: onResume"); // Monitor network status and send change notifications to Gecko // while active. - GeckoNetworkManager.getInstance().start(GeckoAppShell.getApplicationContext()); + if (BuildConfig.TOR_BROWSER_VERSION != "") { + GeckoNetworkManager.getInstance().start(GeckoAppShell.getApplicationContext()); + } } @OnLifecycleEvent(Lifecycle.Event.ON_PAUSE) void onPause() { Log.d(LOGTAG, "Lifecycle: onPause"); // Stop monitoring network status while inactive. - GeckoNetworkManager.getInstance().stop(); + if (BuildConfig.TOR_BROWSER_VERSION != "") { + GeckoNetworkManager.getInstance().stop(); + } } }
1 0
0 0
  • ← Newer
  • 1
  • ...
  • 1571
  • 1572
  • 1573
  • 1574
  • 1575
  • 1576
  • 1577
  • ...
  • 2073
  • Older →

HyperKitty Powered by HyperKitty version 1.3.12.