From: Soren Stoutner Date: Wed, 12 Jun 2019 09:04:34 +0000 (-0700) Subject: Fix a crash when two threads try to update the resource requests at the same time... X-Git-Tag: v3.2~15 X-Git-Url: https://gitweb.stoutner.com/?p=PrivacyBrowserAndroid.git;a=commitdiff_plain;h=877ee4a6ba4d034bbd9843e037f6c70635c0a5b0 Fix a crash when two threads try to update the resource requests at the same time. https://redmine.stoutner.com/issues/466 --- diff --git a/app/src/main/assets/tr/images/bookmarks.png b/app/src/main/assets/tr/images/bookmarks.png index 3870913d..d6e39272 100644 Binary files a/app/src/main/assets/tr/images/bookmarks.png and b/app/src/main/assets/tr/images/bookmarks.png differ diff --git a/app/src/main/java/com/stoutner/privacybrowser/activities/RequestsActivity.java b/app/src/main/java/com/stoutner/privacybrowser/activities/RequestsActivity.java index f69b75f6..c7be71c5 100644 --- a/app/src/main/java/com/stoutner/privacybrowser/activities/RequestsActivity.java +++ b/app/src/main/java/com/stoutner/privacybrowser/activities/RequestsActivity.java @@ -50,7 +50,7 @@ import java.util.List; public class RequestsActivity extends AppCompatActivity implements ViewRequestDialog.ViewRequestListener { // The resource requests are populated by `MainWebViewActivity` before `RequestsActivity` is launched. - public static ArrayList resourceRequests; + public static List resourceRequests; // The list view is used in `onCreate()` and `launchViewRequestDialog()`. private ListView requestsListView; diff --git a/app/src/main/java/com/stoutner/privacybrowser/views/NestedScrollWebView.java b/app/src/main/java/com/stoutner/privacybrowser/views/NestedScrollWebView.java index 28053259..ddb1533b 100644 --- a/app/src/main/java/com/stoutner/privacybrowser/views/NestedScrollWebView.java +++ b/app/src/main/java/com/stoutner/privacybrowser/views/NestedScrollWebView.java @@ -38,7 +38,9 @@ import androidx.core.view.ViewCompat; import com.stoutner.privacybrowser.R; import java.util.ArrayList; +import java.util.Collections; import java.util.Date; +import java.util.List; // NestedScrollWebView extends WebView to handle nested scrolls (scrolling the app bar off the screen). public class NestedScrollWebView extends WebView implements NestedScrollingChild2 { @@ -72,7 +74,7 @@ public class NestedScrollWebView extends WebView implements NestedScrollingChild private boolean domainSettingsJavaScriptEnabled; // Track the resource requests. - private ArrayList resourceRequests = new ArrayList<>(); + private List resourceRequests = Collections.synchronizedList(new ArrayList<>()); // Using a synchronized list makes adding resource requests thread safe. private boolean easyListEnabled; private boolean easyPrivacyEnabled; private boolean fanboysAnnoyanceListEnabled; @@ -272,8 +274,8 @@ public class NestedScrollWebView extends WebView implements NestedScrollingChild resourceRequests.add(resourceRequest); } - public ArrayList getResourceRequests() { - // Return the list of resource requests. + public List getResourceRequests() { + // Return the list of resource requests as an array list. return resourceRequests; } diff --git a/fastlane/metadata/android/tr-TR/full_description.txt b/fastlane/metadata/android/tr-TR/full_description.txt index 13bf5958..62d72550 100644 --- a/fastlane/metadata/android/tr-TR/full_description.txt +++ b/fastlane/metadata/android/tr-TR/full_description.txt @@ -1,4 +1,4 @@ -Privacy Browser'in iki ana amacı vardır. +Privacy Browser'ın iki ana amacı vardır. 1. İnternete gönderilen bilgi miktarını en aza indirmek. @@ -6,11 +6,11 @@ Privacy Browser'in iki ana amacı vardır. Çoğu tarayıcı, gizliliğinizi tehlikeye atacak ve sizi izlemelerinize izin verecek büyük miktarda bilgiyi web sitelerine verir. Web siteleri ve reklam ağları, her kullanıcıyı kendilerine özgü bir şekilde tanımlamak ve web genelinde ve ziyaretleri sırasında izlemek için JavaScript, çerezler, DOM depolama, kullanıcı aracıları ve diğer birçok şey gibi teknolojileri kullanır. -Privacy Browser, bir tarayıcının web sitelere sunduğu bilgi miktarını en aza indirecek şekilde tasarlanmıştır. Gizliliğe duyarlı özellikler varsayılan olarak devre dışıdır. Eğer bu teknolojilerden biri, bir web sitenin düzgün çalışması için gerekliyse, kullanıcı yalnızca bu ziyaret için onu etkinleştirebilir. Veya, özel bir web sitesine girerken, belirli özellikleri otomatik olarak açmak ve ayrılırken tekrar kapatmak için domain ayarlarını kullanabilir. +Privacy Browser, bir tarayıcının web sitelere sunduğu bilgi miktarını en aza indirecek şekilde tasarlanmıştır. Gizliliğe duyarlı özellikler varsayılan olarak devre dışıdır. Eğer bu teknolojilerden biri, bir web sitenin düzgün çalışması için gerekliyse, kullanıcı yalnızca o sitenin ziyareti için onu etkinleştirebilir. Veya, özel bir web sitesine girerken, belirli özellikleri otomatik olarak açmak ve ayrılırken tekrar kapatmak için domain ayarlarını kullanabilir. -Privacy Browser şu anda, web sayfalarını oluşturmak için Android’in yerleşik WebView’ını kullanmaktadır .Bu nedenle, güncel WebView versiyonu yüklü olduğunda en iyi şekilde çalışır (bakınız https://www.stoutner.com/privacy-browser/common-settings/webview/). 4.x serisinde, Privacy Browser, Android WebView’ının gelişmiş gizlilik özelliklerine sahip Privacy WebView adlı bölünmüş bir versiyon ile devam edecek. +Privacy Browser şu anda, web sayfalarını oluşturmak için Android’in yerleşik WebView’ını kullanmaktadır. Bu nedenle, güncel WebView versiyonu yüklü olduğunda en iyi şekilde çalışır (bakınız https://www.stoutner.com/privacy-browser/common-settings/webview/). 4.x serisinde, Privacy Browser, Android WebView’ın gelişmiş gizlilik özelliklerine sahip Privacy WebView adlı bölünmüş bir versiyonu ile devam edecek. -Uyarı: Android KitKat (versiyon 4.4x, API 19) eski bir OpenSSL versiyonuna sahiptir, bu da onu, eski protokolleri ve şifre takımlarını kullanan web sayfalarını ziyaret ederken, MITM(Ortadaki Adam, Man In The Middle) saldırılarına açık hale getirir. Bu konu hakkında daha fazla bilgi burada mevcuttur. +Uyarı: Android KitKat (versiyon 4.4x, API 19) eski bir OpenSSL versiyonuna sahiptir, bu da onu, eski protokolleri ve şifre takımlarını kullanan web sayfalarını ziyaret ederken, MITM (Ortadaki Adam, Man In The Middle) saldırılarına açık hale getirir. Bu konu hakkında daha fazla bilgi burada mevcuttur. https://www.stoutner.com/kitkat-security-problems/ Özellikler: diff --git a/fastlane/metadata/android/tr-TR/images/phoneScreenshots/04-Bookmarks.png b/fastlane/metadata/android/tr-TR/images/phoneScreenshots/04-Bookmarks.png new file mode 100644 index 00000000..c396dbc9 Binary files /dev/null and b/fastlane/metadata/android/tr-TR/images/phoneScreenshots/04-Bookmarks.png differ