diff --git a/CHANGELOG.md b/CHANGELOG.md index e6f70f0d..ca9eea2c 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -1,3 +1,7 @@ +# 89.0.4389.117 +* disable AImageReader by default on Android 9 and below (fixes https://github.com/bromite/bromite/issues/1005) +* log checksum of AdBlock filters + # 89.0.4389.100 * enable AImageReader by default (fixes https://github.com/bromite/bromite/issues/1005) * fix missing flag for AImageReader diff --git a/build/RELEASE b/build/RELEASE index 614a4eff..0f2f963d 100644 --- a/build/RELEASE +++ b/build/RELEASE @@ -1 +1 @@ -89.0.4389.100 +89.0.4389.117 diff --git a/build/patches/AImageReader-CFI-crash-mitigations.patch b/build/patches/AImageReader-CFI-crash-mitigations.patch index a290a25c..5d564013 100644 --- a/build/patches/AImageReader-CFI-crash-mitigations.patch +++ b/build/patches/AImageReader-CFI-crash-mitigations.patch @@ -22,6 +22,7 @@ See discussions at: base/android/android_image_reader_compat.cc | 8 +++++++- base/android/android_image_reader_compat.h | 4 ++++ chrome/browser/flag-metadata.json | 2 +- + gpu/config/gpu_driver_bug_list.json | 16 ++++++++++++++++ gpu/config/gpu_finch_features.cc | 5 +++++ gpu/config/gpu_finch_features.h | 1 + gpu/config/gpu_util.cc | 8 ++++++++ @@ -30,7 +31,7 @@ See discussions at: gpu/ipc/service/stream_texture_android.cc | 11 ++++++++++- media/base/media_switches.cc | 4 ++++ media/base/media_switches.h | 1 + - 11 files changed, 47 insertions(+), 3 deletions(-) + 12 files changed, 63 insertions(+), 3 deletions(-) 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 @@ -91,6 +92,32 @@ diff --git a/chrome/browser/flag-metadata.json b/chrome/browser/flag-metadata.js }, { "name": "enable-immersive-fullscreen-toolbar", +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 +@@ -3254,6 +3254,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], 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 diff --git a/build/patches/Automated-domain-substitution.patch b/build/patches/Automated-domain-substitution.patch index 98f76b2d..b08a47e0 100644 --- a/build/patches/Automated-domain-substitution.patch +++ b/build/patches/Automated-domain-substitution.patch @@ -10231,7 +10231,7 @@ diff --git a/chrome/credential_provider/gaiacp/associated_user_validator.cc b/ch diff --git a/chrome/credential_provider/gaiacp/associated_user_validator_unittests.cc b/chrome/credential_provider/gaiacp/associated_user_validator_unittests.cc --- a/chrome/credential_provider/gaiacp/associated_user_validator_unittests.cc +++ b/chrome/credential_provider/gaiacp/associated_user_validator_unittests.cc -@@ -99,7 +99,7 @@ TEST_F(AssociatedUserValidatorTest, CleanupStaleUsers) { +@@ -117,7 +117,7 @@ TEST_F(AssociatedUserValidatorTest, CleanupStaleUsers) { CComBSTR sid_good; ASSERT_EQ(S_OK, fake_os_user_manager()->CreateTestOSUser( L"username", L"password", L"Full Name", L"Comment", @@ -10240,7 +10240,7 @@ diff --git a/chrome/credential_provider/gaiacp/associated_user_validator_unittes ASSERT_EQ(S_OK, SetUserProperty(OLE2W(sid_good), kUserTokenHandle, L"good-th")); -@@ -118,7 +118,7 @@ TEST_F(AssociatedUserValidatorTest, CleanupStaleUsers) { +@@ -136,7 +136,7 @@ TEST_F(AssociatedUserValidatorTest, CleanupStaleUsers) { CComBSTR sid_no_token_handle; ASSERT_EQ(S_OK, fake_os_user_manager()->CreateTestOSUser( L"username3", L"password", L"Full Name", L"Comment", @@ -10285,7 +10285,7 @@ diff --git a/chrome/credential_provider/gaiacp/gaia_credential_base.cc b/chrome/ diff --git a/chrome/credential_provider/gaiacp/gaia_credential_base_unittests.cc b/chrome/credential_provider/gaiacp/gaia_credential_base_unittests.cc --- a/chrome/credential_provider/gaiacp/gaia_credential_base_unittests.cc +++ b/chrome/credential_provider/gaiacp/gaia_credential_base_unittests.cc -@@ -1224,7 +1224,7 @@ TEST_F(GcpGaiaCredentialBaseTest, StripEmailTLD_Gmail) { +@@ -1237,7 +1237,7 @@ TEST_F(GcpGaiaCredentialBaseTest, StripEmailTLD_Gmail) { Microsoft::WRL::ComPtr test; ASSERT_EQ(S_OK, cred.As(&test)); @@ -10294,7 +10294,7 @@ diff --git a/chrome/credential_provider/gaiacp/gaia_credential_base_unittests.cc ASSERT_EQ(S_OK, test->SetGlsEmailAddress(email)); -@@ -1245,7 +1245,7 @@ TEST_F(GcpGaiaCredentialBaseTest, StripEmailTLD_Googlemail) { +@@ -1258,7 +1258,7 @@ TEST_F(GcpGaiaCredentialBaseTest, StripEmailTLD_Googlemail) { Microsoft::WRL::ComPtr test; ASSERT_EQ(S_OK, cred.As(&test)); @@ -10303,7 +10303,7 @@ diff --git a/chrome/credential_provider/gaiacp/gaia_credential_base_unittests.cc ASSERT_EQ(S_OK, test->SetGlsEmailAddress(email)); -@@ -1265,7 +1265,7 @@ TEST_F(GcpGaiaCredentialBaseTest, InvalidUsernameCharacters) { +@@ -1278,7 +1278,7 @@ TEST_F(GcpGaiaCredentialBaseTest, InvalidUsernameCharacters) { Microsoft::WRL::ComPtr test; ASSERT_EQ(S_OK, cred.As(&test)); @@ -10312,7 +10312,7 @@ diff --git a/chrome/credential_provider/gaiacp/gaia_credential_base_unittests.cc ASSERT_EQ(S_OK, test->SetGlsEmailAddress(email)); -@@ -1286,7 +1286,7 @@ TEST_F(GcpGaiaCredentialBaseTest, EmailTooLong) { +@@ -1299,7 +1299,7 @@ TEST_F(GcpGaiaCredentialBaseTest, EmailTooLong) { Microsoft::WRL::ComPtr test; ASSERT_EQ(S_OK, cred.As(&test)); @@ -10321,7 +10321,7 @@ diff --git a/chrome/credential_provider/gaiacp/gaia_credential_base_unittests.cc ASSERT_EQ(S_OK, test->SetGlsEmailAddress(email)); -@@ -1390,7 +1390,7 @@ class GcpGaiaCredentialBaseCloudMappingTest +@@ -1403,7 +1403,7 @@ class GcpGaiaCredentialBaseCloudMappingTest Microsoft::WRL::ComPtr cred_; // The admin sdk users directory get URL. std::string get_cd_user_url_ = base::StringPrintf( @@ -10330,7 +10330,7 @@ diff --git a/chrome/credential_provider/gaiacp/gaia_credential_base_unittests.cc "%s?projection=full&viewType=domain_public", net::EscapeUrlEncodedData(kDefaultEmail, true).c_str()); GaiaUrls* gaia_urls_ = GaiaUrls::GetInstance(); -@@ -1556,7 +1556,7 @@ class GcpGaiaCredentialBaseAdScenariosTest : public GcpGaiaCredentialBaseTest { +@@ -1569,7 +1569,7 @@ class GcpGaiaCredentialBaseAdScenariosTest : public GcpGaiaCredentialBaseTest { Microsoft::WRL::ComPtr cred_; // The admin sdk users directory get URL. std::string get_cd_user_url_ = base::StringPrintf( @@ -10339,7 +10339,7 @@ diff --git a/chrome/credential_provider/gaiacp/gaia_credential_base_unittests.cc "%s?projection=full&viewType=domain_public", net::EscapeUrlEncodedData(kDefaultEmail, true).c_str()); GaiaUrls* gaia_urls_ = GaiaUrls::GetInstance(); -@@ -1771,7 +1771,7 @@ class GcpGaiaCredentialBaseCloudLocalAccountTest +@@ -1784,7 +1784,7 @@ class GcpGaiaCredentialBaseCloudLocalAccountTest Microsoft::WRL::ComPtr cred_; // The admin sdk users directory get URL. std::string get_cd_user_url_ = base::StringPrintf( @@ -10351,21 +10351,22 @@ diff --git a/chrome/credential_provider/gaiacp/gaia_credential_base_unittests.cc diff --git a/chrome/credential_provider/gaiacp/gaia_credential_provider_unittests.cc b/chrome/credential_provider/gaiacp/gaia_credential_provider_unittests.cc --- a/chrome/credential_provider/gaiacp/gaia_credential_provider_unittests.cc +++ b/chrome/credential_provider/gaiacp/gaia_credential_provider_unittests.cc -@@ -288,7 +288,7 @@ TEST_F(GcpCredentialProviderTest, AddPersonAfterUserRemove) { +@@ -320,7 +320,7 @@ TEST_F(GcpCredentialProviderTest, AddPersonAfterUserRemove) { CComBSTR sid; ASSERT_EQ(S_OK, fake_os_user_manager()->CreateTestOSUser( kDummyUsername, kDummyPassword, L"full name", L"comment", - L"gaia-id", L"foo@gmail.com", &sid)); + L"gaia-id", L"foo@9ma1l.qjz9zk", &sid)); - { - Microsoft::WRL::ComPtr cred; -@@ -379,13 +379,13 @@ TEST_P(GcpCredentialProviderSetSerializationTest, CheckAutoLogon) { + CreateDefaultCloudPoliciesForUser((BSTR)sid); + +@@ -413,14 +413,14 @@ TEST_P(GcpCredentialProviderSetSerializationTest, CheckAutoLogon) { constexpr wchar_t first_username[] = L"username"; ASSERT_EQ(S_OK, fake_os_user_manager()->CreateTestOSUser( first_username, L"password", L"full name", L"comment", - L"gaia-id", L"foo@gmail.com", &first_sid)); + L"gaia-id", L"foo@9ma1l.qjz9zk", &first_sid)); + CreateDefaultCloudPoliciesForUser((BSTR)first_sid); CComBSTR second_sid; constexpr wchar_t second_username[] = L"username2"; @@ -10373,10 +10374,10 @@ diff --git a/chrome/credential_provider/gaiacp/gaia_credential_provider_unittest second_username, L"password", L"Full Name", L"Comment", - L"gaia-id2", L"foo2@gmail.com", &second_sid)); + L"gaia-id2", L"foo2@9ma1l.qjz9zk", &second_sid)); + CreateDefaultCloudPoliciesForUser((BSTR)second_sid); // Build a dummy authentication buffer that can be passed to SetSerialization. - CREDENTIAL_PROVIDER_CREDENTIAL_SERIALIZATION cpcs; -@@ -484,13 +484,13 @@ TEST_P(GcpCredentialProviderWithGaiaUsersTest, ReauthCredentialTest) { +@@ -520,13 +520,13 @@ TEST_P(GcpCredentialProviderWithGaiaUsersTest, ReauthCredentialTest) { // enable_cloud_association is set to false. ASSERT_EQ(S_OK, fake_os_user_manager()->CreateTestOSUser( L"username", L"password", L"full name", L"comment", @@ -10392,12 +10393,13 @@ diff --git a/chrome/credential_provider/gaiacp/gaia_credential_provider_unittest } if (user_property_status & 1) { -@@ -721,13 +721,13 @@ TEST_P(GcpCredentialProviderAvailableCredentialsTest, AvailableCredentials) { +@@ -764,14 +764,14 @@ TEST_P(GcpCredentialProviderAvailableCredentialsTest, AvailableCredentials) { constexpr wchar_t first_username[] = L"username"; ASSERT_EQ(S_OK, fake_os_user_manager()->CreateTestOSUser( first_username, L"password", L"full name", L"comment", - L"gaia-id", L"foo@gmail.com", &first_sid)); + L"gaia-id", L"foo@9ma1l.qjz9zk", &first_sid)); + CreateDefaultCloudPoliciesForUser((BSTR)first_sid); CComBSTR second_sid; constexpr wchar_t second_username[] = L"username2"; @@ -10405,9 +10407,9 @@ diff --git a/chrome/credential_provider/gaiacp/gaia_credential_provider_unittest second_username, L"password", L"Full Name", L"Comment", - L"gaia-id2", L"foo2@gmail.com", &second_sid)); + L"gaia-id2", L"foo2@9ma1l.qjz9zk", &second_sid)); + CreateDefaultCloudPoliciesForUser((BSTR)second_sid); // Set the user locking the system. - SetSidLockingWorkstation(second_user_locking_system ? OLE2CW(second_sid) diff --git a/chrome/credential_provider/gaiacp/gaia_credential_unittests.cc b/chrome/credential_provider/gaiacp/gaia_credential_unittests.cc --- a/chrome/credential_provider/gaiacp/gaia_credential_unittests.cc +++ b/chrome/credential_provider/gaiacp/gaia_credential_unittests.cc @@ -10423,7 +10425,7 @@ diff --git a/chrome/credential_provider/gaiacp/gaia_credential_unittests.cc b/ch diff --git a/chrome/credential_provider/gaiacp/gcp_utils.cc b/chrome/credential_provider/gaiacp/gcp_utils.cc --- a/chrome/credential_provider/gaiacp/gcp_utils.cc +++ b/chrome/credential_provider/gaiacp/gcp_utils.cc -@@ -87,7 +87,7 @@ const wchar_t kKernelLibFile[] = L"kernel32.dll"; +@@ -90,7 +90,7 @@ const wchar_t kOsBuildName[] = L"CurrentBuildNumber"; const int kVersionStringSize = 128; constexpr wchar_t kDefaultMdmUrl[] = @@ -10432,7 +10434,7 @@ diff --git a/chrome/credential_provider/gaiacp/gcp_utils.cc b/chrome/credential_ constexpr int kMaxNumConsecutiveUploadDeviceFailures = 3; const base::TimeDelta kMaxTimeDeltaSinceLastUserPolicyRefresh = -@@ -1270,7 +1270,7 @@ base::string16 GetDevelopmentUrl(const base::string16& url, +@@ -1304,7 +1304,7 @@ base::string16 GetDevelopmentUrl(const base::string16& url, std::string project; std::string final_part; if (re2::RE2::FullMatch(base::UTF16ToUTF8(url), @@ -10444,7 +10446,7 @@ diff --git a/chrome/credential_provider/gaiacp/gcp_utils.cc b/chrome/credential_ diff --git a/chrome/credential_provider/gaiacp/gcp_utils_unittests.cc b/chrome/credential_provider/gaiacp/gcp_utils_unittests.cc --- a/chrome/credential_provider/gaiacp/gcp_utils_unittests.cc +++ b/chrome/credential_provider/gaiacp/gcp_utils_unittests.cc -@@ -533,7 +533,7 @@ TEST_P(GcpEnrollmentArgsTest, EnrollToGoogleMdmIfNeeded_MissingArgs) { +@@ -555,7 +555,7 @@ TEST_P(GcpEnrollmentArgsTest, EnrollToGoogleMdmIfNeeded_MissingArgs) { INSTANTIATE_TEST_SUITE_P( GcpRegistrationData, GcpEnrollmentArgsTest, @@ -10453,7 +10455,7 @@ diff --git a/chrome/credential_provider/gaiacp/gcp_utils_unittests.cc b/chrome/c ::testing::Values("id_token", "", nullptr), ::testing::Values("access_token", "", nullptr), ::testing::Values("sid", "", nullptr), -@@ -547,7 +547,7 @@ INSTANTIATE_TEST_SUITE_P( +@@ -569,7 +569,7 @@ INSTANTIATE_TEST_SUITE_P( INSTANTIATE_TEST_SUITE_P( GcpRegistrationHardwareIds, GcpEnrollmentArgsTest, diff --git a/build/patches/Bromite-AdBlockUpdaterService.patch b/build/patches/Bromite-AdBlockUpdaterService.patch index e0ac4278..0c352df0 100644 --- a/build/patches/Bromite-AdBlockUpdaterService.patch +++ b/build/patches/Bromite-AdBlockUpdaterService.patch @@ -45,8 +45,9 @@ Fix RestoreForeignSessionTab by recreating the tab (issue #681) .../browser/verified_ruleset_dealer.cc | 3 + .../browser/subresource_filter_features.cc | 113 +------- .../core/common/common_features.cc | 2 +- + .../core/common/indexed_ruleset.cc | 5 +- .../navigation_throttle_runner.cc | 5 - - 37 files changed, 1141 insertions(+), 139 deletions(-) + 38 files changed, 1145 insertions(+), 140 deletions(-) create mode 100644 chrome/android/java/res/layout/adblock_editor.xml create mode 100644 chrome/android/java/res/xml/adblock_preferences.xml create mode 100644 chrome/android/java/src/org/chromium/chrome/browser/settings/AdBlockEditor.java @@ -1827,6 +1828,29 @@ diff --git a/components/subresource_filter/core/common/common_features.cc b/comp +const base::Feature kAdTagging{"AdTagging", base::FEATURE_DISABLED_BY_DEFAULT}; } // namespace subresource_filter +diff --git a/components/subresource_filter/core/common/indexed_ruleset.cc b/components/subresource_filter/core/common/indexed_ruleset.cc +--- a/components/subresource_filter/core/common/indexed_ruleset.cc ++++ b/components/subresource_filter/core/common/indexed_ruleset.cc +@@ -5,6 +5,7 @@ + #include "components/subresource_filter/core/common/indexed_ruleset.h" + + #include "base/check.h" ++#include "base/logging.h" + #include "base/metrics/histogram_macros.h" + #include "base/trace_event/trace_event.h" + #include "components/subresource_filter/core/common/first_party_origin.h" +@@ -34,8 +35,10 @@ VerifyStatus GetVerifyStatus(const uint8_t* buffer, + // least once. The verifier detects a subset of the errors detected by the + // checksum, and is unneeded once expected_checksum is consistently nonzero. + flatbuffers::Verifier verifier(buffer, size); ++ int local_checksum = LocalGetChecksum(buffer, size); ++ LOG(INFO) << "GetVerifyStatus: expected checksum = 0x" << std::hex << expected_checksum << ", local checksum = 0x" << std::hex << local_checksum; + if (expected_checksum != 0 && +- expected_checksum != LocalGetChecksum(buffer, size)) { ++ expected_checksum != local_checksum) { + return flat::VerifyIndexedRulesetBuffer(verifier) + ? VerifyStatus::kChecksumFailVerifierPass + : VerifyStatus::kChecksumFailVerifierFail; diff --git a/content/browser/renderer_host/navigation_throttle_runner.cc b/content/browser/renderer_host/navigation_throttle_runner.cc --- a/content/browser/renderer_host/navigation_throttle_runner.cc +++ b/content/browser/renderer_host/navigation_throttle_runner.cc diff --git a/build/patches/Disable-seed-based-field-trials.patch b/build/patches/Disable-seed-based-field-trials.patch index 6a410108..1b6333f0 100644 --- a/build/patches/Disable-seed-based-field-trials.patch +++ b/build/patches/Disable-seed-based-field-trials.patch @@ -3,23 +3,35 @@ Date: Tue, 25 Dec 2018 16:19:51 -0500 Subject: Disable seed-based field trials --- - components/variations/service/variations_field_trial_creator.cc | 2 ++ - 1 file changed, 2 insertions(+) + .../variations/service/variations_field_trial_creator.cc | 4 +++- + 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/components/variations/service/variations_field_trial_creator.cc b/components/variations/service/variations_field_trial_creator.cc --- a/components/variations/service/variations_field_trial_creator.cc +++ b/components/variations/service/variations_field_trial_creator.cc -@@ -524,8 +524,10 @@ bool VariationsFieldTrialCreator::SetupFieldTrials( +@@ -508,8 +508,8 @@ bool VariationsFieldTrialCreator::SetupFieldTrials( + // instance is set. + feature_list->RegisterExtraFeatureOverrides(extra_overrides); + +- bool used_testing_config = false; + #if BUILDFLAG(FIELDTRIAL_TESTING_ENABLED) ++ bool used_testing_config = false; + if (!command_line->HasSwitch(switches::kDisableFieldTrialTestingConfig) && + !command_line->HasSwitch(::switches::kForceFieldTrials) && + !command_line->HasSwitch(switches::kVariationsServerURL)) { +@@ -523,10 +523,12 @@ bool VariationsFieldTrialCreator::SetupFieldTrials( + } #endif // BUILDFLAG(FIELDTRIAL_TESTING_ENABLED) bool used_seed = false; - if (!used_testing_config) { +#if defined(FIELDTRIAL_SEED_ENABLED) - used_seed = CreateTrialsFromSeed(*low_entropy_provider, feature_list.get(), - safe_seed_manager); -+#endif + if (!used_testing_config) { + used_seed = CreateTrialsFromSeed(low_entropy_provider.get(), + feature_list.get(), safe_seed_manager); } ++#endif // BUILDFLAG(FIELDTRIAL_SEED_ENABLED) platform_field_trials->SetupFeatureControllingFieldTrials( + used_seed, low_entropy_provider.get(), feature_list.get()); -- 2.17.1 diff --git a/build/patches/Multiple-fingerprinting-mitigations.patch b/build/patches/Multiple-fingerprinting-mitigations.patch index 51212ef7..8e8a0a07 100644 --- a/build/patches/Multiple-fingerprinting-mitigations.patch +++ b/build/patches/Multiple-fingerprinting-mitigations.patch @@ -356,7 +356,7 @@ diff --git a/third_party/blink/renderer/modules/canvas/canvas2d/base_rendering_c diff --git a/third_party/blink/renderer/modules/canvas/canvas2d/canvas_rendering_context_2d.cc b/third_party/blink/renderer/modules/canvas/canvas2d/canvas_rendering_context_2d.cc --- a/third_party/blink/renderer/modules/canvas/canvas2d/canvas_rendering_context_2d.cc +++ b/third_party/blink/renderer/modules/canvas/canvas2d/canvas_rendering_context_2d.cc -@@ -974,9 +974,15 @@ TextMetrics* CanvasRenderingContext2D::measureText(const String& text) { +@@ -965,9 +965,15 @@ TextMetrics* CanvasRenderingContext2D::measureText(const String& text) { else direction = ToTextDirection(GetState().GetDirection(), canvas());