Release 86.0.4240.73
This commit is contained in:
parent
565b2f70a9
commit
8839e61ea5
11 changed files with 532 additions and 8 deletions
|
@ -1,3 +1,7 @@
|
|||
# 86.0.4240.73
|
||||
* re-introduce ARM64 AImageReader mitigations (fixes https://github.com/bromite/bromite/issues/766)
|
||||
* re-introduce menu items for autocomplete, autofill assistant and contextual search (fixes https://github.com/bromite/bromite/issues/763)
|
||||
|
||||
# 86.0.4240.70
|
||||
* fixed crash on unused menu item tap (fixes https://github.com/bromite/bromite/issues/760)
|
||||
* fixed issue on new installations without DoH configuration (fixes https://github.com/bromite/bromite/issues/761)
|
||||
|
|
|
@ -1 +1 @@
|
|||
86.0.4240.70
|
||||
86.0.4240.73
|
||||
|
|
|
@ -127,6 +127,10 @@ Disable-DRM-media-origin-IDs-preprovisioning.patch
|
|||
Disable-smart-selection-by-default.patch
|
||||
Enable-user-agent-freeze-by-default.patch
|
||||
disable-browser-autologin-by-default.patch
|
||||
Revert-gpu-android-Remove-setup-for-disabling-AImageReader.patch
|
||||
Revert-Remove-flags-to-enable-disable-AImageReader.patch
|
||||
Disable-AImageReader-for-ARM64-P-and-ARM64-Q.patch
|
||||
Restore-GPU-bug-blacklist-for-AImageReader-on-ARM-CPUs.patch
|
||||
Update-i18n-zh_CN-support.patch
|
||||
Add-a-flag-to-allow-screenshots-in-Incognito-mode.patch
|
||||
Add-menu-item-to-view-source.patch
|
||||
|
@ -144,4 +148,5 @@ Block-all-connection-requests-with-qjz9zk-in-the-domain-name-or-with-a-trk-schem
|
|||
Hardening-against-incognito-mode-detection.patch
|
||||
Remove-weblayer-dependency-on-Play-Services.patch
|
||||
Timezone-customization.patch
|
||||
Move-some-account-settings-back-to-privacy-settings.patch
|
||||
Automated-domain-substitution.patch
|
||||
|
|
|
@ -175,7 +175,7 @@ new file mode 100644
|
|||
diff --git a/chrome/android/java/res/xml/main_preferences.xml b/chrome/android/java/res/xml/main_preferences.xml
|
||||
--- a/chrome/android/java/res/xml/main_preferences.xml
|
||||
+++ b/chrome/android/java/res/xml/main_preferences.xml
|
||||
@@ -88,6 +88,11 @@
|
||||
@@ -89,6 +89,11 @@
|
||||
android:key="privacy"
|
||||
android:order="18"
|
||||
android:title="@string/prefs_privacy"/>
|
||||
|
|
|
@ -0,0 +1,42 @@
|
|||
From: csagan5 <32685696+csagan5@users.noreply.github.com>
|
||||
Date: Thu, 20 Feb 2020 22:44:06 +0100
|
||||
Subject: Disable AImageReader for ARM64/P and ARM64/Q
|
||||
|
||||
---
|
||||
gpu/config/gpu_finch_features.cc | 4 ++++
|
||||
media/base/media_switches.cc | 4 ++++
|
||||
2 files changed, 8 insertions(+)
|
||||
|
||||
diff --git a/gpu/config/gpu_finch_features.cc b/gpu/config/gpu_finch_features.cc
|
||||
--- a/gpu/config/gpu_finch_features.cc
|
||||
+++ b/gpu/config/gpu_finch_features.cc
|
||||
@@ -15,7 +15,11 @@ namespace features {
|
||||
|
||||
// Use android AImageReader when playing videos with MediaPlayer.
|
||||
const base::Feature kAImageReaderMediaPlayer{"AImageReaderMediaPlayer",
|
||||
+#ifdef ARCH_CPU_ARM64
|
||||
+ base::FEATURE_DISABLED_BY_DEFAULT};
|
||||
+#else
|
||||
base::FEATURE_ENABLED_BY_DEFAULT};
|
||||
+#endif
|
||||
|
||||
#if defined(OS_ANDROID)
|
||||
// Used to limit GL version to 2.0 for skia raster on Android.
|
||||
diff --git a/media/base/media_switches.cc b/media/base/media_switches.cc
|
||||
--- a/media/base/media_switches.cc
|
||||
+++ b/media/base/media_switches.cc
|
||||
@@ -549,7 +549,11 @@ const base::Feature kMediaDrmPreprovisioningAtStartup{
|
||||
|
||||
// Enables the Android Image Reader path for Video decoding(for AVDA and MCVD)
|
||||
const base::Feature kAImageReaderVideoOutput{"AImageReaderVideoOutput",
|
||||
+#ifdef ARCH_CPU_ARM64
|
||||
+ base::FEATURE_DISABLED_BY_DEFAULT};
|
||||
+#else
|
||||
base::FEATURE_ENABLED_BY_DEFAULT};
|
||||
+#endif
|
||||
|
||||
// Prevents using SurfaceLayer for videos. This is meant to be used by embedders
|
||||
// that cannot support SurfaceLayer at the moment.
|
||||
--
|
||||
2.17.1
|
||||
|
|
@ -3,14 +3,24 @@ Date: Mon, 11 Nov 2019 23:09:48 +0100
|
|||
Subject: Disable sync services menu entry
|
||||
|
||||
---
|
||||
chrome/android/java/res/xml/main_preferences.xml | 8 --------
|
||||
chrome/android/java/res/xml/privacy_preferences.xml | 5 -----
|
||||
2 files changed, 13 deletions(-)
|
||||
chrome/android/java/res/xml/main_preferences.xml | 11 ++---------
|
||||
chrome/android/java/res/xml/privacy_preferences.xml | 5 -----
|
||||
2 files changed, 2 insertions(+), 14 deletions(-)
|
||||
|
||||
diff --git a/chrome/android/java/res/xml/main_preferences.xml b/chrome/android/java/res/xml/main_preferences.xml
|
||||
--- a/chrome/android/java/res/xml/main_preferences.xml
|
||||
+++ b/chrome/android/java/res/xml/main_preferences.xml
|
||||
@@ -23,14 +23,6 @@
|
||||
@@ -13,7 +13,8 @@
|
||||
<PreferenceCategory
|
||||
android:key="account_section"
|
||||
android:order="1"
|
||||
- android:title="@string/prefs_section_account"/>
|
||||
+ android:title="@string/prefs_section_account"
|
||||
+ app:isPreferenceVisible="false"/>
|
||||
<PreferenceCategory
|
||||
android:key="account_and_google_services_section"
|
||||
android:order="2"
|
||||
@@ -23,14 +24,6 @@
|
||||
android:key="sign_in"
|
||||
android:order="3"
|
||||
android:title="@string/sign_in_to_chrome"/>
|
||||
|
|
|
@ -0,0 +1,144 @@
|
|||
From: csagan5 <32685696+csagan5@users.noreply.github.com>
|
||||
Date: Sun, 4 Oct 2020 12:58:17 +0200
|
||||
Subject: Move some account settings back to privacy settings
|
||||
|
||||
Search suggestions, autofill assistant and contextual search
|
||||
---
|
||||
.../java/res/xml/privacy_preferences.xml | 19 ++++++
|
||||
.../privacy/settings/PrivacySettings.java | 59 ++++++++++++++++++-
|
||||
2 files changed, 77 insertions(+), 1 deletion(-)
|
||||
|
||||
diff --git a/chrome/android/java/res/xml/privacy_preferences.xml b/chrome/android/java/res/xml/privacy_preferences.xml
|
||||
--- a/chrome/android/java/res/xml/privacy_preferences.xml
|
||||
+++ b/chrome/android/java/res/xml/privacy_preferences.xml
|
||||
@@ -58,4 +58,23 @@
|
||||
android:summary="@string/clear_browsing_data_summary"
|
||||
android:fragment="org.chromium.chrome.browser.browsing_data.ClearBrowsingDataTabsFragment"
|
||||
android:order="5"/>
|
||||
+
|
||||
+ <PreferenceCategory
|
||||
+ android:key="services_category"
|
||||
+ android:title="@string/services_category_title">
|
||||
+ <org.chromium.components.browser_ui.settings.ChromeSwitchPreference
|
||||
+ android:key="search_suggestions"
|
||||
+ android:title="@string/autocomplete_searches_and_urls_title"
|
||||
+ android:summary="@string/autocomplete_searches_and_urls_summary"
|
||||
+ android:persistent="false"/>
|
||||
+ <org.chromium.components.browser_ui.settings.ChromeSwitchPreference
|
||||
+ android:key="autofill_assistant"
|
||||
+ android:title="@string/prefs_autofill_assistant_title"
|
||||
+ android:summary="@string/prefs_autofill_assistant_summary"
|
||||
+ android:persistent="false"/>
|
||||
+ <org.chromium.components.browser_ui.settings.ChromeBasePreference
|
||||
+ android:key="contextual_search"
|
||||
+ android:title="@string/contextual_search_title"
|
||||
+ android:fragment="org.chromium.chrome.browser.contextualsearch.ContextualSearchPreferenceFragment"/>
|
||||
+ </PreferenceCategory>
|
||||
</PreferenceScreen>
|
||||
diff --git a/chrome/android/java/src/org/chromium/chrome/browser/privacy/settings/PrivacySettings.java b/chrome/android/java/src/org/chromium/chrome/browser/privacy/settings/PrivacySettings.java
|
||||
--- a/chrome/android/java/src/org/chromium/chrome/browser/privacy/settings/PrivacySettings.java
|
||||
+++ b/chrome/android/java/src/org/chromium/chrome/browser/privacy/settings/PrivacySettings.java
|
||||
@@ -37,6 +37,13 @@ import org.chromium.ui.text.SpanApplier;
|
||||
|
||||
import org.chromium.base.Log;
|
||||
|
||||
+import androidx.annotation.Nullable;
|
||||
+import androidx.preference.PreferenceCategory;
|
||||
+import org.chromium.chrome.browser.contextualsearch.ContextualSearchManager;
|
||||
+import org.chromium.chrome.browser.preferences.SharedPreferencesManager;
|
||||
+import org.chromium.components.browser_ui.settings.ChromeSwitchPreference;
|
||||
+import org.chromium.chrome.browser.preferences.ChromePreferenceKeys;
|
||||
+
|
||||
/**
|
||||
* Fragment to keep track of the all the privacy related preferences.
|
||||
*/
|
||||
@@ -57,6 +64,18 @@ public class PrivacySettings
|
||||
public static final String PREF_ALLOW_CUSTOM_TAB_INTENTS = "allow_custom_tab_intents";
|
||||
public static final String PREF_INCOGNITO_TAB_HISTORY_ENABLED = "incognito_history_enabled";
|
||||
|
||||
+ // moved from SyncAndServicesSettings.java
|
||||
+ private static final String PREF_SERVICES_CATEGORY = "services_category";
|
||||
+ private static final String PREF_SEARCH_SUGGESTIONS = "search_suggestions";
|
||||
+ private static final String PREF_CONTEXTUAL_SEARCH = "contextual_search";
|
||||
+ public static final String PREF_AUTOFILL_ASSISTANT = "autofill_assistant";
|
||||
+ private ChromeSwitchPreference mSearchSuggestions;
|
||||
+ private @Nullable ChromeSwitchPreference mAutofillAssistant;
|
||||
+ private @Nullable Preference mContextualSearch;
|
||||
+ private final SharedPreferencesManager mSharedPreferencesManager =
|
||||
+ SharedPreferencesManager.getInstance();
|
||||
+ private final PrefService prefService = UserPrefs.get(Profile.getLastUsedRegularProfile());
|
||||
+
|
||||
@Override
|
||||
public void onCreatePreferences(Bundle savedInstanceState, String rootKey) {
|
||||
PrivacyPreferencesManager privacyPrefManager = PrivacyPreferencesManager.getInstance();
|
||||
@@ -78,6 +97,29 @@ public class PrivacySettings
|
||||
|
||||
mManagedPreferenceDelegate = createManagedPreferenceDelegate();
|
||||
|
||||
+ mSearchSuggestions = (ChromeSwitchPreference) findPreference(PREF_SEARCH_SUGGESTIONS);
|
||||
+ mSearchSuggestions.setOnPreferenceChangeListener(this);
|
||||
+ mSearchSuggestions.setManagedPreferenceDelegate(mManagedPreferenceDelegate);
|
||||
+
|
||||
+ mAutofillAssistant = (ChromeSwitchPreference) findPreference(PREF_AUTOFILL_ASSISTANT);
|
||||
+ if (shouldShowAutofillAssistantPreference()) {
|
||||
+ mAutofillAssistant.setOnPreferenceChangeListener(this);
|
||||
+ mAutofillAssistant.setManagedPreferenceDelegate(mManagedPreferenceDelegate);
|
||||
+ mAutofillAssistant.setChecked(mSharedPreferencesManager.readBoolean(
|
||||
+ ChromePreferenceKeys.AUTOFILL_ASSISTANT_ENABLED, false));
|
||||
+ } else {
|
||||
+ PreferenceCategory servicesCategory =
|
||||
+ (PreferenceCategory) findPreference(PREF_SERVICES_CATEGORY);
|
||||
+ servicesCategory.removePreference(mAutofillAssistant);
|
||||
+ mAutofillAssistant = null;
|
||||
+ }
|
||||
+
|
||||
+ mContextualSearch = findPreference(PREF_CONTEXTUAL_SEARCH);
|
||||
+ boolean isContextualSearchEnabled =
|
||||
+ !ContextualSearchManager.isContextualSearchDisabled();
|
||||
+ mContextualSearch.setSummary(
|
||||
+ isContextualSearchEnabled ? R.string.text_on : R.string.text_off);
|
||||
+
|
||||
ChromeBaseCheckBoxPreference canMakePaymentPref =
|
||||
(ChromeBaseCheckBoxPreference) findPreference(PREF_CAN_MAKE_PAYMENT);
|
||||
canMakePaymentPref.setOnPreferenceChangeListener(this);
|
||||
@@ -110,6 +152,11 @@ public class PrivacySettings
|
||||
} else if (PREF_CAN_MAKE_PAYMENT.equals(key)) {
|
||||
UserPrefs.get(Profile.getLastUsedRegularProfile())
|
||||
.setBoolean(Pref.CAN_MAKE_PAYMENT_ENABLED, (boolean) newValue);
|
||||
+ } else if (PREF_SEARCH_SUGGESTIONS.equals(key)) {
|
||||
+ prefService.setBoolean(Pref.SEARCH_SUGGEST_ENABLED, (boolean) newValue);
|
||||
+ } else if (PREF_AUTOFILL_ASSISTANT.equals(key)) {
|
||||
+ mSharedPreferencesManager.writeBoolean(
|
||||
+ ChromePreferenceKeys.AUTOFILL_ASSISTANT_ENABLED, (boolean) newValue);
|
||||
} else if (PREF_NETWORK_PREDICTIONS.equals(key)) {
|
||||
PrivacyPreferencesManager.getInstance().setNetworkPredictionEnabled((boolean) newValue);
|
||||
} else if (PREF_ALLOW_CUSTOM_TAB_INTENTS.equals(key)) {
|
||||
@@ -124,6 +171,16 @@ public class PrivacySettings
|
||||
return true;
|
||||
}
|
||||
|
||||
+ /**
|
||||
+ * This checks whether Autofill Assistant is enabled and was shown at least once (only then
|
||||
+ * will the AA switch be assigned a value).
|
||||
+ */
|
||||
+ private boolean shouldShowAutofillAssistantPreference() {
|
||||
+ return ChromeFeatureList.isEnabled(ChromeFeatureList.AUTOFILL_ASSISTANT)
|
||||
+ && mSharedPreferencesManager.contains(
|
||||
+ ChromePreferenceKeys.AUTOFILL_ASSISTANT_ENABLED);
|
||||
+ }
|
||||
+
|
||||
@Override
|
||||
public void onResume() {
|
||||
super.onResume();
|
||||
@@ -134,7 +191,7 @@ public class PrivacySettings
|
||||
* Updates the summaries for several preferences.
|
||||
*/
|
||||
public void updateSummaries() {
|
||||
- PrefService prefService = UserPrefs.get(Profile.getLastUsedRegularProfile());
|
||||
+ mSearchSuggestions.setChecked(prefService.getBoolean(Pref.SEARCH_SUGGEST_ENABLED));
|
||||
|
||||
CheckBoxPreference canMakePaymentPref =
|
||||
(CheckBoxPreference) findPreference(PREF_CAN_MAKE_PAYMENT);
|
||||
--
|
||||
2.17.1
|
||||
|
|
@ -102,7 +102,7 @@ diff --git a/chrome/android/java/AndroidManifest.xml b/chrome/android/java/Andro
|
|||
diff --git a/chrome/android/java/res/xml/main_preferences.xml b/chrome/android/java/res/xml/main_preferences.xml
|
||||
--- a/chrome/android/java/res/xml/main_preferences.xml
|
||||
+++ b/chrome/android/java/res/xml/main_preferences.xml
|
||||
@@ -19,10 +19,6 @@
|
||||
@@ -20,10 +20,6 @@
|
||||
android:order="2"
|
||||
android:title="@string/prefs_section_account_and_google_services"
|
||||
app:isPreferenceVisible="false"/>
|
||||
|
@ -113,7 +113,7 @@ diff --git a/chrome/android/java/res/xml/main_preferences.xml b/chrome/android/j
|
|||
<org.chromium.components.browser_ui.settings.ChromeBasePreference
|
||||
android:key="manage_sync"
|
||||
android:order="5"
|
||||
@@ -107,11 +103,6 @@
|
||||
@@ -108,11 +104,6 @@
|
||||
android:key="languages"
|
||||
android:order="21"
|
||||
android:title="@string/language_settings"/>
|
||||
|
|
|
@ -0,0 +1,41 @@
|
|||
From: csagan5 <32685696+csagan5@users.noreply.github.com>
|
||||
Date: Sat, 15 Feb 2020 08:20:40 +0100
|
||||
Subject: Restore GPU bug blacklist for AImageReader on ARM CPUs
|
||||
|
||||
Restore the AImageReader blacklist for ARM/ARM64 devices which causes
|
||||
crashes on Android 9 and 10 (at different code locations).
|
||||
|
||||
See discussion at https://github.com/bromite/bromite/issues/445
|
||||
---
|
||||
gpu/config/gpu_driver_bug_list.json | 16 ++++++++++++++++
|
||||
1 file changed, 16 insertions(+)
|
||||
|
||||
diff --git a/gpu/config/gpu_driver_bug_list.json b/gpu/config/gpu_driver_bug_list.json
|
||||
--- a/gpu/config/gpu_driver_bug_list.json
|
||||
+++ b/gpu/config/gpu_driver_bug_list.json
|
||||
@@ -3286,6 +3286,22 @@
|
||||
"dont_delete_source_texture_for_egl_image"
|
||||
]
|
||||
},
|
||||
+ {
|
||||
+ "id":335,
|
||||
+ "cr_bugs": [1051705],
|
||||
+ "description": "Disable AImageReader on ARM GPUs",
|
||||
+ "os": {
|
||||
+ "type": "android",
|
||||
+ "version": {
|
||||
+ "op": "<",
|
||||
+ "value": "10"
|
||||
+ }
|
||||
+ },
|
||||
+ "gl_vendor": "ARM.*",
|
||||
+ "features": [
|
||||
+ "disable_aimagereader"
|
||||
+ ]
|
||||
+ },
|
||||
{
|
||||
"id": 336,
|
||||
"cr_bugs": [625785],
|
||||
--
|
||||
2.17.1
|
||||
|
|
@ -0,0 +1,151 @@
|
|||
From: csagan5 <32685696+csagan5@users.noreply.github.com>
|
||||
Date: Tue, 5 May 2020 07:26:55 +0200
|
||||
Subject: Revert "Remove flags to enable/disable AImageReader."
|
||||
|
||||
This reverts commit 463fa0f2e3b9e418bc26e2c8954463f0b0f76634.
|
||||
---
|
||||
.../service/image_reader_gl_owner_unittest.cc | 5 +++++
|
||||
gpu/config/gpu_finch_features.cc | 4 ++++
|
||||
gpu/config/gpu_finch_features.h | 1 +
|
||||
gpu/ipc/service/stream_texture_android.cc | 11 ++++++++++-
|
||||
media/base/media_switches.cc | 4 ++++
|
||||
media/base/media_switches.h | 1 +
|
||||
media/gpu/android/video_frame_factory_impl.cc | 5 ++++-
|
||||
7 files changed, 29 insertions(+), 2 deletions(-)
|
||||
|
||||
diff --git a/gpu/command_buffer/service/image_reader_gl_owner_unittest.cc b/gpu/command_buffer/service/image_reader_gl_owner_unittest.cc
|
||||
--- a/gpu/command_buffer/service/image_reader_gl_owner_unittest.cc
|
||||
+++ b/gpu/command_buffer/service/image_reader_gl_owner_unittest.cc
|
||||
@@ -8,10 +8,12 @@
|
||||
#include <memory>
|
||||
#include <utility>
|
||||
|
||||
+#include "base/test/scoped_feature_list.h"
|
||||
#include "base/test/task_environment.h"
|
||||
#include "gpu/command_buffer/service/abstract_texture.h"
|
||||
#include "gpu/command_buffer/service/image_reader_gl_owner.h"
|
||||
#include "gpu/command_buffer/service/mock_abstract_texture.h"
|
||||
+#include "media/base/media_switches.h"
|
||||
#include "media/base/android/media_codec_util.h"
|
||||
#include "testing/gtest/include/gtest/gtest.h"
|
||||
#include "ui/gl/gl_bindings.h"
|
||||
@@ -31,6 +33,8 @@ class ImageReaderGLOwnerTest : public testing::Test {
|
||||
if (!IsImageReaderSupported())
|
||||
return;
|
||||
|
||||
+ scoped_feature_list_.InitAndEnableFeature(media::kAImageReaderVideoOutput);
|
||||
+
|
||||
gl::init::InitializeStaticGLBindingsImplementation(
|
||||
gl::kGLImplementationEGLGLES2, false);
|
||||
gl::init::InitializeGLOneOffPlatformImplementation(false, false, true);
|
||||
@@ -70,6 +74,7 @@ class ImageReaderGLOwnerTest : public testing::Test {
|
||||
return base::android::AndroidImageReader::GetInstance().IsSupported();
|
||||
}
|
||||
|
||||
+ base::test::ScopedFeatureList scoped_feature_list_;
|
||||
scoped_refptr<TextureOwner> image_reader_;
|
||||
GLuint texture_id_ = 0;
|
||||
|
||||
diff --git a/gpu/config/gpu_finch_features.cc b/gpu/config/gpu_finch_features.cc
|
||||
--- a/gpu/config/gpu_finch_features.cc
|
||||
+++ b/gpu/config/gpu_finch_features.cc
|
||||
@@ -13,6 +13,10 @@
|
||||
|
||||
namespace features {
|
||||
|
||||
+// Use android AImageReader when playing videos with MediaPlayer.
|
||||
+const base::Feature kAImageReaderMediaPlayer{"AImageReaderMediaPlayer",
|
||||
+ base::FEATURE_ENABLED_BY_DEFAULT};
|
||||
+
|
||||
#if defined(OS_ANDROID)
|
||||
// Used to limit GL version to 2.0 for skia raster on Android.
|
||||
const base::Feature kUseGles2ForOopR{"UseGles2ForOopR",
|
||||
diff --git a/gpu/config/gpu_finch_features.h b/gpu/config/gpu_finch_features.h
|
||||
--- a/gpu/config/gpu_finch_features.h
|
||||
+++ b/gpu/config/gpu_finch_features.h
|
||||
@@ -17,6 +17,7 @@ namespace features {
|
||||
// All features in alphabetical order. The features should be documented
|
||||
// alongside the definition of their values in the .cc file.
|
||||
#if defined(OS_ANDROID)
|
||||
+GPU_EXPORT extern const base::Feature kAImageReaderMediaPlayer;
|
||||
GPU_EXPORT extern const base::Feature kUseGles2ForOopR;
|
||||
GPU_EXPORT extern const base::Feature kAndroidSurfaceControl;
|
||||
GPU_EXPORT extern const base::Feature kAImageReader;
|
||||
diff --git a/gpu/ipc/service/stream_texture_android.cc b/gpu/ipc/service/stream_texture_android.cc
|
||||
--- a/gpu/ipc/service/stream_texture_android.cc
|
||||
+++ b/gpu/ipc/service/stream_texture_android.cc
|
||||
@@ -6,6 +6,7 @@
|
||||
|
||||
#include <string.h>
|
||||
|
||||
+#include "base/android/android_image_reader_compat.h"
|
||||
#include "base/android/scoped_hardware_buffer_fence_sync.h"
|
||||
#include "base/bind.h"
|
||||
#include "base/feature_list.h"
|
||||
@@ -47,7 +48,15 @@ std::unique_ptr<ui::ScopedMakeCurrent> MakeCurrent(
|
||||
}
|
||||
|
||||
TextureOwner::Mode GetTextureOwnerMode() {
|
||||
- return features::IsAImageReaderEnabled()
|
||||
+ const bool a_image_reader_supported =
|
||||
+ base::android::AndroidImageReader::GetInstance().IsSupported();
|
||||
+
|
||||
+ // TODO(vikassoni) : Currently we have 2 different flags to enable/disable
|
||||
+ // AImageReader - one for MCVD and other for MediaPlayer here. Merge those 2
|
||||
+ // flags into a single flag. Keeping the 2 flags separate for now since finch
|
||||
+ // experiment using this flag is in progress.
|
||||
+ return a_image_reader_supported && features::IsAImageReaderEnabled() &&
|
||||
+ base::FeatureList::IsEnabled(features::kAImageReaderMediaPlayer)
|
||||
? TextureOwner::Mode::kAImageReaderInsecure
|
||||
: TextureOwner::Mode::kSurfaceTextureInsecure;
|
||||
}
|
||||
diff --git a/media/base/media_switches.cc b/media/base/media_switches.cc
|
||||
--- a/media/base/media_switches.cc
|
||||
+++ b/media/base/media_switches.cc
|
||||
@@ -547,6 +547,10 @@ const base::Feature kMediaDrmPreprovisioning{"MediaDrmPreprovisioning",
|
||||
const base::Feature kMediaDrmPreprovisioningAtStartup{
|
||||
"MediaDrmPreprovisioningAtStartup", base::FEATURE_ENABLED_BY_DEFAULT};
|
||||
|
||||
+// Enables the Android Image Reader path for Video decoding(for AVDA and MCVD)
|
||||
+const base::Feature kAImageReaderVideoOutput{"AImageReaderVideoOutput",
|
||||
+ base::FEATURE_ENABLED_BY_DEFAULT};
|
||||
+
|
||||
// Prevents using SurfaceLayer for videos. This is meant to be used by embedders
|
||||
// that cannot support SurfaceLayer at the moment.
|
||||
const base::Feature kDisableSurfaceLayerForVideo{
|
||||
diff --git a/media/base/media_switches.h b/media/base/media_switches.h
|
||||
--- a/media/base/media_switches.h
|
||||
+++ b/media/base/media_switches.h
|
||||
@@ -192,6 +192,7 @@ MEDIA_EXPORT extern const base::Feature kMediaControlsExpandGesture;
|
||||
MEDIA_EXPORT extern const base::Feature kMediaDrmPersistentLicense;
|
||||
MEDIA_EXPORT extern const base::Feature kMediaDrmPreprovisioning;
|
||||
MEDIA_EXPORT extern const base::Feature kMediaDrmPreprovisioningAtStartup;
|
||||
+MEDIA_EXPORT extern const base::Feature kAImageReaderVideoOutput;
|
||||
MEDIA_EXPORT extern const base::Feature kDisableSurfaceLayerForVideo;
|
||||
MEDIA_EXPORT extern const base::Feature kCanPlayHls;
|
||||
MEDIA_EXPORT extern const base::Feature kPictureInPictureAPI;
|
||||
diff --git a/media/gpu/android/video_frame_factory_impl.cc b/media/gpu/android/video_frame_factory_impl.cc
|
||||
--- a/media/gpu/android/video_frame_factory_impl.cc
|
||||
+++ b/media/gpu/android/video_frame_factory_impl.cc
|
||||
@@ -6,6 +6,7 @@
|
||||
|
||||
#include <memory>
|
||||
|
||||
+#include "base/android/android_image_reader_compat.h"
|
||||
#include "base/bind.h"
|
||||
#include "base/bind_helpers.h"
|
||||
#include "base/callback.h"
|
||||
@@ -65,7 +66,9 @@ gpu::TextureOwner::Mode GetTextureOwnerMode(
|
||||
switch (overlay_mode) {
|
||||
case VideoFrameFactory::OverlayMode::kDontRequestPromotionHints:
|
||||
case VideoFrameFactory::OverlayMode::kRequestPromotionHints:
|
||||
- return features::IsAImageReaderEnabled()
|
||||
+ return base::android::AndroidImageReader::GetInstance().IsSupported() &&
|
||||
+ features::IsAImageReaderEnabled() &&
|
||||
+ base::FeatureList::IsEnabled(media::kAImageReaderVideoOutput)
|
||||
? gpu::TextureOwner::Mode::kAImageReaderInsecure
|
||||
: gpu::TextureOwner::Mode::kSurfaceTextureInsecure;
|
||||
case VideoFrameFactory::OverlayMode::kSurfaceControlSecure:
|
||||
--
|
||||
2.17.1
|
||||
|
|
@ -0,0 +1,127 @@
|
|||
From: csagan5 <32685696+csagan5@users.noreply.github.com>
|
||||
Date: Tue, 5 May 2020 07:22:20 +0200
|
||||
Subject: Revert "gpu/android: Remove setup for disabling AImageReader."
|
||||
|
||||
This reverts commit dcd5a39518246eb999f1cc63bf1ec95d93fd5b2f.
|
||||
---
|
||||
base/android/android_image_reader_compat.cc | 8 +++++++-
|
||||
base/android/android_image_reader_compat.h | 4 ++++
|
||||
gpu/config/gpu_util.cc | 8 ++++++++
|
||||
gpu/config/gpu_workaround_list.txt | 1 +
|
||||
gpu/ipc/service/gpu_init.cc | 11 +++++++++++
|
||||
5 files changed, 31 insertions(+), 1 deletion(-)
|
||||
|
||||
diff --git a/base/android/android_image_reader_compat.cc b/base/android/android_image_reader_compat.cc
|
||||
--- a/base/android/android_image_reader_compat.cc
|
||||
+++ b/base/android/android_image_reader_compat.cc
|
||||
@@ -22,6 +22,8 @@
|
||||
namespace base {
|
||||
namespace android {
|
||||
|
||||
+bool AndroidImageReader::disable_support_ = false;
|
||||
+
|
||||
AndroidImageReader& AndroidImageReader::GetInstance() {
|
||||
// C++11 static local variable initialization is
|
||||
// thread-safe.
|
||||
@@ -29,8 +31,12 @@ AndroidImageReader& AndroidImageReader::GetInstance() {
|
||||
return *instance;
|
||||
}
|
||||
|
||||
+void AndroidImageReader::DisableSupport() {
|
||||
+ disable_support_ = true;
|
||||
+}
|
||||
+
|
||||
bool AndroidImageReader::IsSupported() {
|
||||
- return is_supported_;
|
||||
+ return !disable_support_ && is_supported_;
|
||||
}
|
||||
|
||||
AndroidImageReader::AndroidImageReader() {
|
||||
diff --git a/base/android/android_image_reader_compat.h b/base/android/android_image_reader_compat.h
|
||||
--- a/base/android/android_image_reader_compat.h
|
||||
+++ b/base/android/android_image_reader_compat.h
|
||||
@@ -22,6 +22,9 @@ class BASE_EXPORT AndroidImageReader {
|
||||
// Thread safe GetInstance.
|
||||
static AndroidImageReader& GetInstance();
|
||||
|
||||
+ // Disable image reader support.
|
||||
+ static void DisableSupport();
|
||||
+
|
||||
// Check if the image reader usage is supported. This function returns TRUE
|
||||
// if android version is >=OREO, image reader support is not disabled and all
|
||||
// the required functions are loaded.
|
||||
@@ -64,6 +67,7 @@ class BASE_EXPORT AndroidImageReader {
|
||||
AndroidImageReader();
|
||||
bool LoadFunctions();
|
||||
|
||||
+ static bool disable_support_;
|
||||
bool is_supported_;
|
||||
pAImage_delete AImage_delete_;
|
||||
pAImage_deleteAsync AImage_deleteAsync_;
|
||||
diff --git a/gpu/config/gpu_util.cc b/gpu/config/gpu_util.cc
|
||||
--- a/gpu/config/gpu_util.cc
|
||||
+++ b/gpu/config/gpu_util.cc
|
||||
@@ -111,6 +111,9 @@ GpuFeatureStatus GetAndroidSurfaceControlFeatureStatus(
|
||||
#if !defined(OS_ANDROID)
|
||||
return kGpuFeatureStatusDisabled;
|
||||
#else
|
||||
+ if (blocklisted_features.count(GPU_FEATURE_TYPE_ANDROID_SURFACE_CONTROL))
|
||||
+ return kGpuFeatureStatusBlocklisted;
|
||||
+
|
||||
if (!gpu_preferences.enable_android_surface_control)
|
||||
return kGpuFeatureStatusDisabled;
|
||||
|
||||
@@ -374,6 +377,11 @@ void AdjustGpuFeatureStatusToWorkarounds(GpuFeatureInfo* gpu_feature_info) {
|
||||
gpu_feature_info->status_values[GPU_FEATURE_TYPE_ACCELERATED_WEBGL2] =
|
||||
kGpuFeatureStatusBlocklisted;
|
||||
}
|
||||
+
|
||||
+ if (gpu_feature_info->IsWorkaroundEnabled(DISABLE_AIMAGEREADER)) {
|
||||
+ gpu_feature_info->status_values[GPU_FEATURE_TYPE_ANDROID_SURFACE_CONTROL] =
|
||||
+ kGpuFeatureStatusBlocklisted;
|
||||
+ }
|
||||
}
|
||||
|
||||
// Estimates roughly user total disk space by counting in the drives where
|
||||
diff --git a/gpu/config/gpu_workaround_list.txt b/gpu/config/gpu_workaround_list.txt
|
||||
--- a/gpu/config/gpu_workaround_list.txt
|
||||
+++ b/gpu/config/gpu_workaround_list.txt
|
||||
@@ -13,6 +13,7 @@ decode_encode_srgb_for_generatemipmap
|
||||
depth_stencil_renderbuffer_resize_emulation
|
||||
disable_2d_canvas_auto_flush
|
||||
disable_accelerated_av1_decode
|
||||
+disable_aimagereader
|
||||
disable_accelerated_vp8_decode
|
||||
disable_accelerated_vp8_encode
|
||||
disable_accelerated_vp9_decode
|
||||
diff --git a/gpu/ipc/service/gpu_init.cc b/gpu/ipc/service/gpu_init.cc
|
||||
--- a/gpu/ipc/service/gpu_init.cc
|
||||
+++ b/gpu/ipc/service/gpu_init.cc
|
||||
@@ -708,6 +708,12 @@ void GpuInit::InitializeInProcess(base::CommandLine* command_line,
|
||||
AdjustInfoToSwiftShader();
|
||||
}
|
||||
|
||||
+#if defined(OS_ANDROID)
|
||||
+ // Disable AImageReader if the workaround is enabled.
|
||||
+ if (gpu_feature_info_.IsWorkaroundEnabled(DISABLE_AIMAGEREADER)) {
|
||||
+ base::android::AndroidImageReader::DisableSupport();
|
||||
+ }
|
||||
+#endif
|
||||
#if defined(USE_OZONE)
|
||||
if (features::IsUsingOzonePlatform()) {
|
||||
const std::vector<gfx::BufferFormat>
|
||||
@@ -727,6 +733,11 @@ void GpuInit::InitializeInProcess(base::CommandLine* command_line,
|
||||
gl::DirectCompositionSurfaceWin::DisableDecodeSwapChain();
|
||||
#endif
|
||||
|
||||
+ // Disable AImageReader if the workaround is enabled.
|
||||
+ if (gpu_feature_info_.IsWorkaroundEnabled(DISABLE_AIMAGEREADER)) {
|
||||
+ base::android::AndroidImageReader::DisableSupport();
|
||||
+ }
|
||||
+
|
||||
UMA_HISTOGRAM_ENUMERATION("GPU.GLImplementation", gl::GetGLImplementation());
|
||||
}
|
||||
#endif // OS_ANDROID
|
||||
--
|
||||
2.17.1
|
||||
|
Loading…
Add table
Reference in a new issue