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
  • 20432 discussions
[tor-browser/tor-browser-52.7.2esr-8.0-1] add distribution directory and options settings
by gk@torproject.org 20 Mar '18

20 Mar '18
commit 0386bede269ce05d7155fc3b0d8b36e0539b6f78 Author: n8fr8 <nathan(a)freitas.net> Date: Mon Jul 17 21:59:42 2017 -0400 add distribution directory and options settings Signed-off-by: Amogh Pradeep <amoghbl1(a)gmail.com> --- .mozconfig-orfox | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/.mozconfig-orfox b/.mozconfig-orfox index 4b7a40f81123..1db4bd923cd1 100755 --- a/.mozconfig-orfox +++ b/.mozconfig-orfox @@ -9,13 +9,14 @@ ac_add_options --enable-application=mobile/android ac_add_options --target=arm-linux-androideabi ac_add_options --with-android-ndk="$NDK_BASE" #Enter the android ndk location(ndk r10e) ac_add_options --with-android-sdk="$SDK_BASE" #Enter the android sdk location +ac_add_options --with-branding=mobile/android/branding/orfox +ac_add_options --with-android-distribution-directory=mobile/android/orfox/distribution #enable ccache to set amount of cache assigned for build. ac_add_options --with-ccache ac_add_options --enable-optimize #ac_add_options --enable-official-branding -ac_add_options --with-branding=mobile/android/branding/orfox ##ac_add_options --enable-tor-browser-update ##ac_add_options --enable-update-packaging ac_add_options --enable-signmar
1 0
0 0
[tor-browser/tor-browser-52.7.2esr-8.0-1] fix #17 from https://github.com/amoghbl1/tor-browser/issues don't restore tabs by default
by gk@torproject.org 20 Mar '18

20 Mar '18
commit e311353ec9e015992ae672834cfa9de796cb0ece Author: n8fr8 <nathan(a)freitas.net> Date: Mon Jul 17 13:33:42 2017 -0400 fix #17 from https://github.com/amoghbl1/tor-browser/issues don't restore tabs by default fix #11 from https://github.com/amoghbl1/tor-browser/issues turn off health report by default search history disabled by default fixes #12 sets private data to clear by default disable camera permissions as part of WebRTC disable #15 more work on #15 to remove permissions disable search history for v11+ as well work on #15 to disable location permissions ensure search history is off by default make sure voice and qr is disabled by default make sure autoplay is off by default Signed-off-by: Amogh Pradeep <amoghbl1(a)gmail.com> --- .../android/base/FennecManifest_permissions.xml.in | 12 ++++++++++- .../java/org/mozilla/gecko/home/BrowserSearch.java | 2 +- .../org/mozilla/gecko/home/SearchEngineRow.java | 2 +- .../mozilla/gecko/toolbar/ToolbarEditLayout.java | 4 ++-- mobile/android/base/resources/values/arrays.xml | 24 +++++++++++----------- .../base/resources/xml-v11/preferences_search.xml | 2 +- .../base/resources/xml/preferences_advanced.xml | 6 ++++-- .../base/resources/xml/preferences_privacy.xml | 2 +- .../base/resources/xml/preferences_search.xml | 2 +- .../android/geckoview/src/main/AndroidManifest.xml | 4 ++++ mobile/android/modules/RuntimePermissions.jsm | 2 +- .../SearchAndroidManifest_permissions.xml.in | 2 ++ modules/libpref/init/all.js | 2 +- 13 files changed, 42 insertions(+), 24 deletions(-) diff --git a/mobile/android/base/FennecManifest_permissions.xml.in b/mobile/android/base/FennecManifest_permissions.xml.in index cf3365582cb3..e711ce6a19de 100644 --- a/mobile/android/base/FennecManifest_permissions.xml.in +++ b/mobile/android/base/FennecManifest_permissions.xml.in @@ -17,9 +17,15 @@ (potentially) of the push feature. --> #include GcmAndroidManifest_permissions.xml.in +#ifdef MOZ_WIFI_STATE <uses-permission android:name="android.permission.CHANGE_WIFI_STATE"/> <uses-permission android:name="android.permission.ACCESS_WIFI_STATE"/> +#endif + +#ifdef MOZ_LOCATION <uses-permission android:name="android.permission.ACCESS_FINE_LOCATION"/> +#endif + <uses-permission android:name="android.permission.ACCESS_NETWORK_STATE"/> <uses-permission android:name="android.permission.INTERNET"/> <uses-permission android:name="android.permission.RECEIVE_BOOT_COMPLETED"/> @@ -34,12 +40,16 @@ <uses-permission android:name="android.permission.WAKE_LOCK"/> <uses-permission android:name="android.permission.VIBRATE"/> + #ifdef MOZ_ANDROID_DOWNLOADS_INTEGRATION <uses-permission android:name="android.permission.DOWNLOAD_WITHOUT_NOTIFICATION" /> #endif +#ifdef MOZ_LOCATION <uses-feature android:name="android.hardware.location" android:required="false"/> <uses-feature android:name="android.hardware.location.gps" android:required="false"/> +#endif + <uses-feature android:name="android.hardware.touchscreen"/> <!-- Tab Queue --> @@ -56,10 +66,10 @@ <uses-feature android:name="android.hardware.audio.low_latency" android:required="false"/> <uses-feature android:name="android.hardware.camera.any" android:required="false"/> <uses-feature android:name="android.hardware.microphone" android:required="false"/> -#endif <uses-permission android:name="android.permission.CAMERA" /> <uses-feature android:name="android.hardware.camera" android:required="false"/> <uses-feature android:name="android.hardware.camera.autofocus" android:required="false"/> +#endif <!-- App requires OpenGL ES 2.0 --> <uses-feature android:glEsVersion="0x00020000" android:required="true" /> diff --git a/mobile/android/base/java/org/mozilla/gecko/home/BrowserSearch.java b/mobile/android/base/java/org/mozilla/gecko/home/BrowserSearch.java index 7732932fe3e5..4f029fcc331b 100644 --- a/mobile/android/base/java/org/mozilla/gecko/home/BrowserSearch.java +++ b/mobile/android/base/java/org/mozilla/gecko/home/BrowserSearch.java @@ -275,7 +275,7 @@ public class BrowserSearch extends HomeFragment super.onResume(); final SharedPreferences prefs = GeckoSharedPrefs.forApp(getContext()); - mSavedSearchesEnabled = prefs.getBoolean(GeckoPreferences.PREFS_HISTORY_SAVED_SEARCH, true); + mSavedSearchesEnabled = prefs.getBoolean(GeckoPreferences.PREFS_HISTORY_SAVED_SEARCH, false); // Fetch engines if we need to. if (mSearchEngines.isEmpty() || !Locale.getDefault().equals(mLastLocale)) { diff --git a/mobile/android/base/java/org/mozilla/gecko/home/SearchEngineRow.java b/mobile/android/base/java/org/mozilla/gecko/home/SearchEngineRow.java index 5b97a8f5f7e9..39e9bc2865b7 100644 --- a/mobile/android/base/java/org/mozilla/gecko/home/SearchEngineRow.java +++ b/mobile/android/base/java/org/mozilla/gecko/home/SearchEngineRow.java @@ -391,7 +391,7 @@ class SearchEngineRow extends AnimatedHeightLayout { final int recycledSuggestionCount = mSuggestionView.getChildCount(); final SharedPreferences prefs = GeckoSharedPrefs.forApp(getContext()); - final boolean savedSearchesEnabled = prefs.getBoolean(GeckoPreferences.PREFS_HISTORY_SAVED_SEARCH, true); + final boolean savedSearchesEnabled = prefs.getBoolean(GeckoPreferences.PREFS_HISTORY_SAVED_SEARCH, false); // Remove duplicates of search engine suggestions from saved searches. List<String> searchHistorySuggestions = (rawSearchHistorySuggestions != null) ? rawSearchHistorySuggestions : new ArrayList<String>(); diff --git a/mobile/android/base/java/org/mozilla/gecko/toolbar/ToolbarEditLayout.java b/mobile/android/base/java/org/mozilla/gecko/toolbar/ToolbarEditLayout.java index c9731a4014d6..c0cee5eeaadd 100644 --- a/mobile/android/base/java/org/mozilla/gecko/toolbar/ToolbarEditLayout.java +++ b/mobile/android/base/java/org/mozilla/gecko/toolbar/ToolbarEditLayout.java @@ -278,7 +278,7 @@ public class ToolbarEditLayout extends ThemedLinearLayout { return false; } return GeckoSharedPrefs.forApp(context) - .getBoolean(GeckoPreferences.PREFS_VOICE_INPUT_ENABLED, true); + .getBoolean(GeckoPreferences.PREFS_VOICE_INPUT_ENABLED, false); } private void launchVoiceRecognizer() { @@ -315,7 +315,7 @@ public class ToolbarEditLayout extends ThemedLinearLayout { return false; } return GeckoSharedPrefs.forApp(context) - .getBoolean(GeckoPreferences.PREFS_QRCODE_ENABLED, true); + .getBoolean(GeckoPreferences.PREFS_QRCODE_ENABLED, false); } private void launchQRCodeReader() { diff --git a/mobile/android/base/resources/values/arrays.xml b/mobile/android/base/resources/values/arrays.xml index d220ca9bb4e0..8369d817da8d 100644 --- a/mobile/android/base/resources/values/arrays.xml +++ b/mobile/android/base/resources/values/arrays.xml @@ -70,8 +70,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> @@ -126,16 +126,16 @@ <item>private.data.passwords</item> </string-array> <string-array name="pref_clear_on_exit_defaults"> - <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> + <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> diff --git a/mobile/android/base/resources/xml-v11/preferences_search.xml b/mobile/android/base/resources/xml-v11/preferences_search.xml index 937b05b617c6..a58bb7cece44 100644 --- a/mobile/android/base/resources/xml-v11/preferences_search.xml +++ b/mobile/android/base/resources/xml-v11/preferences_search.xml @@ -27,7 +27,7 @@ <CheckBoxPreference android:key="android.not_a_preference.search.search_history.enabled" android:title="@string/pref_history_search_suggestions" - android:defaultValue="true" + android:defaultValue="false" android:persistent="true" /> </PreferenceScreen> diff --git a/mobile/android/base/resources/xml/preferences_advanced.xml b/mobile/android/base/resources/xml/preferences_advanced.xml index 32cdf0b915b5..ca8318b83767 100644 --- a/mobile/android/base/resources/xml/preferences_advanced.xml +++ b/mobile/android/base/resources/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" /> @@ -62,7 +62,9 @@ <SwitchPreference android:key="media.autoplay.enabled" android:title="@string/pref_media_autoplay_enabled" - android:summary="@string/pref_media_autoplay_enabled_summary" /> + android:summary="@string/pref_media_autoplay_enabled_summary" + android:defaultValue="false" + /> </PreferenceCategory> diff --git a/mobile/android/base/resources/xml/preferences_privacy.xml b/mobile/android/base/resources/xml/preferences_privacy.xml index 7b3215cb2665..1d4593ec2523 100644 --- a/mobile/android/base/resources/xml/preferences_privacy.xml +++ b/mobile/android/base/resources/xml/preferences_privacy.xml @@ -99,7 +99,7 @@ <CheckBoxPreference android:key="android.not_a_preference.healthreport.uploadEnabled" android:title="@string/datareporting_fhr_title" android:summary="@string/datareporting_fhr_summary2" - android:defaultValue="true" /> + android:defaultValue="false" /> <org.mozilla.gecko.preferences.AlignRightLinkPreference android:key="android.not_a_preference.healthreport.link" android:title="@string/datareporting_abouthr_title" diff --git a/mobile/android/base/resources/xml/preferences_search.xml b/mobile/android/base/resources/xml/preferences_search.xml index 440167fe5e2a..fc8c258821e1 100644 --- a/mobile/android/base/resources/xml/preferences_search.xml +++ b/mobile/android/base/resources/xml/preferences_search.xml @@ -34,7 +34,7 @@ <CheckBoxPreference android:key="android.not_a_preference.search.search_history.enabled" android:title="@string/pref_history_search_suggestions" - android:defaultValue="true" + android:defaultValue="false" android:persistent="true" /> </PreferenceScreen> diff --git a/mobile/android/geckoview/src/main/AndroidManifest.xml b/mobile/android/geckoview/src/main/AndroidManifest.xml index 4e2aaf447128..8584018cab39 100644 --- a/mobile/android/geckoview/src/main/AndroidManifest.xml +++ b/mobile/android/geckoview/src/main/AndroidManifest.xml @@ -3,7 +3,9 @@ <uses-permission android:name="android.permission.CHANGE_WIFI_STATE"/> <uses-permission android:name="android.permission.ACCESS_WIFI_STATE"/> +#ifdef MOZ_LOCATION <uses-permission android:name="android.permission.ACCESS_FINE_LOCATION"/> +#endif <uses-permission android:name="android.permission.ACCESS_NETWORK_STATE"/> <uses-permission android:name="android.permission.INTERNET"/> <uses-permission android:name="android.permission.RECEIVE_BOOT_COMPLETED"/> @@ -18,8 +20,10 @@ <uses-permission android:name="android.permission.WAKE_LOCK"/> <uses-permission android:name="android.permission.VIBRATE"/> +#ifdef MOZ_LOCATION <uses-feature android:name="android.hardware.location" android:required="false"/> <uses-feature android:name="android.hardware.location.gps" android:required="false"/> +#endif <uses-feature android:name="android.hardware.touchscreen"/> <!--#ifdef MOZ_WEBRTC--> diff --git a/mobile/android/modules/RuntimePermissions.jsm b/mobile/android/modules/RuntimePermissions.jsm index 42d8024b1a60..21c6102cafdb 100644 --- a/mobile/android/modules/RuntimePermissions.jsm +++ b/mobile/android/modules/RuntimePermissions.jsm @@ -38,4 +38,4 @@ var RuntimePermissions = { return Messaging.sendRequestForResult(msg); } -}; \ No newline at end of file +}; diff --git a/mobile/android/search/manifests/SearchAndroidManifest_permissions.xml.in b/mobile/android/search/manifests/SearchAndroidManifest_permissions.xml.in index a0abb99faebb..2575e5fe1bc4 100644 --- a/mobile/android/search/manifests/SearchAndroidManifest_permissions.xml.in +++ b/mobile/android/search/manifests/SearchAndroidManifest_permissions.xml.in @@ -1,3 +1,5 @@ +#ifdef MOZ_LOCATION <uses-permission android:name="android.permission.ACCESS_FINE_LOCATION" /> +#endif <uses-permission android:name="android.permission.ACCESS_NETWORK_STATE" /> <uses-permission android:name="android.permission.INTERNET" /> diff --git a/modules/libpref/init/all.js b/modules/libpref/init/all.js index 198028eeb96c..766e665c074a 100644 --- a/modules/libpref/init/all.js +++ b/modules/libpref/init/all.js @@ -591,7 +591,7 @@ pref("media.encoder.webm.enabled", true); #endif // Whether to autostart a media element with an |autoplay| attribute -pref("media.autoplay.enabled", true); +pref("media.autoplay.enabled", false); // The default number of decoded video frames that are enqueued in // MediaDecoderReader's mVideoQueue.
1 0
0 0
[tor-browser/tor-browser-52.7.2esr-8.0-1] change defaults for Orfox
by gk@torproject.org 20 Mar '18

20 Mar '18
commit 8030bcae3d0bb222cae6cee66fb5c1846cec8282 Author: n8fr8 <nathan(a)freitas.net> Date: Mon Jul 17 22:17:16 2017 -0400 change defaults for Orfox Signed-off-by: Amogh Pradeep <amoghbl1(a)gmail.com> --- mobile/android/moz.configure | 18 +++++++++--------- 1 file changed, 9 insertions(+), 9 deletions(-) diff --git a/mobile/android/moz.configure b/mobile/android/moz.configure index 0ab0b113e274..c92919b5e767 100644 --- a/mobile/android/moz.configure +++ b/mobile/android/moz.configure @@ -19,23 +19,23 @@ project_flag('MOZ_ANDROID_GCM', project_flag('MOZ_ANDROID_DOWNLOADS_INTEGRATION', help='Enable system download manager on Android', - default=True) + default=False) project_flag('MOZ_ANDROID_BEAM', help='Enable NFC permission on Android', - default=True) + default=False) project_flag('MOZ_ANDROID_SEARCH_ACTIVITY', help='Include Search Activity on Android', - default=True) + default=False) project_flag('MOZ_ANDROID_MLS_STUMBLER', help='Include Mozilla Location Service Stumbler on Android', - default=True) + default=False) project_flag('MOZ_ANDROID_DOWNLOAD_CONTENT_SERVICE', help='Background service for downloading additional content at runtime', - default=True) + default=False) project_flag('MOZ_ANDROID_CUSTOM_TABS', help='Enable support for Android custom tabs', @@ -57,14 +57,14 @@ set_config('MOZ_ANDROID_ACTIVITY_STREAM', option(env='MOZ_ANDROID_PACKAGE_INSTALL_BOUNCER', help='Build and package the install bouncer APK', - default=True) + default=False) set_config('MOZ_ANDROID_PACKAGE_INSTALL_BOUNCER', - depends_if('MOZ_ANDROID_PACKAGE_INSTALL_BOUNCER')(lambda _: True)) + depends_if('MOZ_ANDROID_PACKAGE_INSTALL_BOUNCER')(lambda _: False)) imply_option('MOZ_SOCIAL', False) -imply_option('MOZ_SERVICES_HEALTHREPORT', True) -imply_option('MOZ_ANDROID_HISTORY', True) +imply_option('MOZ_SERVICES_HEALTHREPORT', False) +imply_option('MOZ_ANDROID_HISTORY', False) set_config('ANDROID_SUPPORT_LIBRARY_VERSION', '23.4.0') add_old_configure_assignment('ANDROID_SUPPORT_LIBRARY_VERSION', '23.4.0')
1 0
0 0
[tor-browser/tor-browser-52.7.2esr-8.0-1] set default browser to DuckDuckGo modify DDG URL to the non-javascript site
by gk@torproject.org 20 Mar '18

20 Mar '18
commit 750e3372e1a4887337ab6460ef3bb950c72b36f3 Author: n8fr8 <nathan(a)freitas.net> Date: Mon Jul 17 00:08:50 2017 -0400 set default browser to DuckDuckGo modify DDG URL to the non-javascript site Signed-off-by: Amogh Pradeep <amoghbl1(a)gmail.com> --- mobile/locales/en-US/chrome/region.properties | 10 +++++----- mobile/locales/en-US/searchplugins/duckduckgo.xml | 6 +++--- 2 files changed, 8 insertions(+), 8 deletions(-) diff --git a/mobile/locales/en-US/chrome/region.properties b/mobile/locales/en-US/chrome/region.properties index 201152118819..d194cdac4131 100644 --- a/mobile/locales/en-US/chrome/region.properties +++ b/mobile/locales/en-US/chrome/region.properties @@ -3,17 +3,17 @@ # file, You can obtain one at http://mozilla.org/MPL/2.0/. # Default search engine -browser.search.defaultenginename=Google +browser.search.defaultenginename=DuckDuckGo # Search engine order (order displayed in the search bar dropdown). -browser.search.order.1=Google -browser.search.order.2=Yahoo +browser.search.order.1=DuckDuckGo +browser.search.order.2=Google browser.search.order.3=Bing # These override the equivalents above when the client detects that it is in # US market only. -browser.search.defaultenginename.US=Yahoo -browser.search.order.US.1=Yahoo +browser.search.defaultenginename.US=DuckDuckGo +browser.search.order.US.1=DuckDuckGo browser.search.order.US.2=Google browser.search.order.US.3=Bing diff --git a/mobile/locales/en-US/searchplugins/duckduckgo.xml b/mobile/locales/en-US/searchplugins/duckduckgo.xml index 9e96ae21a005..824b42a05c9d 100644 --- a/mobile/locales/en-US/searchplugins/duckduckgo.xml +++ b/mobile/locales/en-US/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>
1 0
0 0
[tor-browser/tor-browser-52.7.2esr-8.0-1] Orfox: disable screenshots and prevent page from being in "recent apps"
by gk@torproject.org 20 Mar '18

20 Mar '18
commit d14a1e47739a99ef6265ab09aa4d2c26be086c20 Author: Hans-Christoph Steiner <hans(a)eds.org> Date: Sat Nov 21 00:10:06 2015 +0100 Orfox: disable screenshots and prevent page from being in "recent apps" Signed-off-by: Amogh Pradeep <amoghbl1(a)gmail.com> --- mobile/android/base/java/org/mozilla/gecko/GeckoApp.java | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/mobile/android/base/java/org/mozilla/gecko/GeckoApp.java b/mobile/android/base/java/org/mozilla/gecko/GeckoApp.java index 05fa2bbf812e..2f989576c1a9 100644 --- a/mobile/android/base/java/org/mozilla/gecko/GeckoApp.java +++ b/mobile/android/base/java/org/mozilla/gecko/GeckoApp.java @@ -95,6 +95,7 @@ import android.view.View; import android.view.ViewGroup; import android.view.ViewTreeObserver; import android.view.Window; +import android.view.WindowManager; import android.widget.AbsoluteLayout; import android.widget.AdapterView; import android.widget.Button; @@ -1257,6 +1258,9 @@ public abstract class GeckoApp GeckoScreenOrientation.getInstance().update(getResources().getConfiguration().orientation); + // disable screenshots and pic in "recent apps" + getWindow().addFlags(WindowManager.LayoutParams.FLAG_SECURE); + setContentView(getLayout()); // Set up Gecko layout.
1 0
0 0
[tor-browser/tor-browser-52.7.2esr-8.0-1] Orfox: hook up default panic trigger to "quit and clear"
by gk@torproject.org 20 Mar '18

20 Mar '18
commit 4f8bad4120d0d20148840adae41ad712812c4ddc Author: Hans-Christoph Steiner <hans(a)eds.org> Date: Sat Nov 21 00:24:09 2015 +0100 Orfox: hook up default panic trigger to "quit and clear" Signed-off-by: Amogh Pradeep <amoghbl1(a)gmail.com> --- mobile/android/base/AndroidManifest.xml.in | 7 ++ .../base/java/org/mozilla/gecko/GeckoApp.java | 76 ++++++++++++---------- 2 files changed, 49 insertions(+), 34 deletions(-) diff --git a/mobile/android/base/AndroidManifest.xml.in b/mobile/android/base/AndroidManifest.xml.in index 2ec98c35ab54..1aa50a08463d 100644 --- a/mobile/android/base/AndroidManifest.xml.in +++ b/mobile/android/base/AndroidManifest.xml.in @@ -155,6 +155,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 2f989576c1a9..1bf4f1d77de5 100644 --- a/mobile/android/base/java/org/mozilla/gecko/GeckoApp.java +++ b/mobile/android/base/java/org/mozilla/gecko/GeckoApp.java @@ -152,6 +152,8 @@ public abstract class GeckoApp public static final String INTENT_REGISTER_STUMBLER_LISTENER = "org.mozilla.gecko.STUMBLER_REGISTER_LOCAL_LISTENER"; + public static final String ACTION_PANIC_TRIGGER = "info.guardianproject.panic.action.TRIGGER"; + public static final String EXTRA_STATE_BUNDLE = "stateBundle"; public static final String LAST_SELECTED_TAB = "lastSelectedTab"; @@ -520,48 +522,52 @@ public abstract class GeckoApp @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 = GeckoSharedPrefs.forProfile(this); - final Set<String> clearSet = - PrefUtils.getStringSet(prefs, ClearOnShutdownPref.PREF, new HashSet<String>()); + return super.onOptionsItemSelected(item); + } - final JSONObject clearObj = new JSONObject(); - for (String clear : clearSet) { - try { - clearObj.put(clear, true); - } catch (JSONException ex) { - Log.e(LOGTAG, "Error adding clear object " + clear, ex); - } - } + private void quitAndClear() { + // Make sure the Guest Browsing notification goes away when we quit. + GuestSession.hideNotification(this); - final JSONObject res = new JSONObject(); - try { - res.put("sanitize", clearObj); - } catch (JSONException ex) { - Log.e(LOGTAG, "Error adding sanitize object", ex); - } + final SharedPreferences prefs = GeckoSharedPrefs.forProfile(this); + final Set<String> clearSet = + PrefUtils.getStringSet(prefs, ClearOnShutdownPref.PREF, new HashSet<String>()); - // If the user 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.has("private.data.history")) { - final String sessionRestore = getSessionRestorePreference(getSharedPreferences()); - try { - res.put("dontSaveSession", "quit".equals(sessionRestore)); - } catch (JSONException ex) { - Log.e(LOGTAG, "Error adding session restore data", ex); - } + final JSONObject clearObj = new JSONObject(); + for (String clear : clearSet) { + try { + clearObj.put(clear, true); + } catch(JSONException ex) { + Log.e(LOGTAG, "Error adding clear object " + clear, ex); } + } - GeckoAppShell.notifyObservers("Browser:Quit", res.toString()); - // We don't call doShutdown() 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 JSONObject res = new JSONObject(); + try { + res.put("sanitize", clearObj); + } catch(JSONException ex) { + Log.e(LOGTAG, "Error adding sanitize object", ex); } - return super.onOptionsItemSelected(item); + // If the user 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.has("private.data.history")) { + final String sessionRestore = getSessionRestorePreference(getSharedPreferences()); + try { + res.put("dontSaveSession", "quit".equals(sessionRestore)); + } catch(JSONException ex) { + Log.e(LOGTAG, "Error adding session restore data", ex); + } + } + + GeckoAppShell.notifyObservers("Browser:Quit", res.toString()); + // We don't call doShutdown() 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 @@ -1625,6 +1631,8 @@ public abstract class GeckoApp // Copy extras. settingsIntent.putExtras(intent.getUnsafe()); startActivity(settingsIntent); + } else if (ACTION_PANIC_TRIGGER.equals(action)) { + quitAndClear(); } //app state callbacks
1 0
0 0
[tor-browser/tor-browser-52.7.2esr-8.0-1] Orfox: Strings fix, probably a WONTAPPLY ESR59.
by gk@torproject.org 20 Mar '18

20 Mar '18
commit 6f851d8b0d02fba238dab78d12044f290a8dc8dd Author: Amogh Pradeep <amoghbl1(a)gmail.com> Date: Thu Jun 29 15:37:08 2017 -0700 Orfox: Strings fix, probably a WONTAPPLY ESR59. Signed-off-by: Amogh Pradeep <amoghbl1(a)gmail.com> --- mobile/android/base/strings.xml.in | 4 ---- 1 file changed, 4 deletions(-) diff --git a/mobile/android/base/strings.xml.in b/mobile/android/base/strings.xml.in index ec39107f8f60..adc431789713 100644 --- a/mobile/android/base/strings.xml.in +++ b/mobile/android/base/strings.xml.in @@ -30,10 +30,6 @@ #include ../services/strings.xml.in #include ../orfox/strings.xml.in - <string name="no_space_to_start_error">&no_space_to_start_error;</string> - <string name="error_loading_file">&error_loading_file;</string> - - <string name="firstrun_panel_title_welcome">&firstrun_panel_title_welcome;</string> <string name="firstrun_urlbar_message">&firstrun_urlbar_message;</string>
1 0
0 0
[tor-browser/tor-browser-52.7.2esr-8.0-1] Orfox: remove Tab:Load event queuing and only use Intent queuing
by gk@torproject.org 20 Mar '18

20 Mar '18
commit 274ae1ec2dcacb68e860f7aa1d10a10504877507 Author: Hans-Christoph Steiner <hans(a)eds.org> Date: Fri Sep 18 11:03:18 2015 +0200 Orfox: remove Tab:Load event queuing and only use Intent queuing Tab:Load queuing is too flaky, since the Fennec UI will block waiting for Gecko to confirm that it received the event. For more on this: refs #5530 https://dev.guardianproject.info/issues/5530 https://lists.mayfirst.org/pipermail/guardian-dev/2015-September/004499.html Signed-off-by: Amogh Pradeep <amoghbl1(a)gmail.com> --- mobile/android/base/java/org/mozilla/gecko/BrowserApp.java | 7 +------ 1 file changed, 1 insertion(+), 6 deletions(-) diff --git a/mobile/android/base/java/org/mozilla/gecko/BrowserApp.java b/mobile/android/base/java/org/mozilla/gecko/BrowserApp.java index 34f93ee56cdb..8cb69ce011ab 100644 --- a/mobile/android/base/java/org/mozilla/gecko/BrowserApp.java +++ b/mobile/android/base/java/org/mozilla/gecko/BrowserApp.java @@ -1080,12 +1080,7 @@ public class BrowserApp extends GeckoApp @Override public void onReceive(Context context, Intent intent) { if (TextUtils.equals(intent.getAction(), OrbotHelper.ACTION_STATUS)) { - String status = intent.getStringExtra(OrbotHelper.EXTRA_STATUS); - Tabs.getInstance().setTorStatus(status); - - if (status.equals(OrbotHelper.STATUS_ON)) { - GeckoAppShell.sendPendingUrlIntents(BrowserApp.this); - } + GeckoAppShell.setTorStatus(intent); } } };
1 0
0 0
[tor-browser/tor-browser-52.7.2esr-8.0-1] Orfox: NetCipher enabled, checks if orbot is installed
by gk@torproject.org 20 Mar '18

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

20 Mar '18
commit 25f95adb4015299cee5c6c8a14c3f3c849e7ad22 Author: Amogh Pradeep <amoghbl1(a)gmail.com> Date: Fri Jul 17 17:01:09 2015 -0400 Orfox: quit button added, functionality changed to bring it up to date with current GeckoApp.java class, earlier version seemed to have problems with quitting 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 5eddca3cf726..9023618669ef 100644 --- a/mobile/android/base/java/org/mozilla/gecko/BrowserApp.java +++ b/mobile/android/base/java/org/mozilla/gecko/BrowserApp.java @@ -3428,7 +3428,7 @@ public class BrowserApp extends GeckoApp !PrefUtils.getStringSet(GeckoSharedPrefs.forProfile(this), 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
  • ← Newer
  • 1
  • ...
  • 1686
  • 1687
  • 1688
  • 1689
  • 1690
  • 1691
  • 1692
  • ...
  • 2044
  • Older →

HyperKitty Powered by HyperKitty version 1.3.12.