Loading .gitlab-ci.yml +2 −1 Original line number Original line Diff line number Diff line Loading @@ -17,6 +17,7 @@ build-docker: rules: rules: - if: $CI_PIPELINE_SOURCE != "schedule" - if: $CI_PIPELINE_SOURCE != "schedule" when: manual when: manual allow_failure: false tags: tags: - generic_privileged - generic_privileged variables: variables: Loading @@ -34,7 +35,7 @@ build-docker: image: $CONTAINER_IMAGE image: $CONTAINER_IMAGE rules: rules: - if: $CI_PIPELINE_SOURCE != "schedule" - if: $CI_PIPELINE_SOURCE != "schedule" when: manual needs: ["build-docker"] tags: tags: - build-browser - build-browser artifacts: artifacts: Loading Dockerfile +5 −8 Original line number Original line Diff line number Diff line FROM ubuntu:20.04 FROM ubuntu:22.04 ENV CHROMIUM_DIR "/srv/chromium" ENV CHROMIUM_DIR "/srv/chromium" ENV CHROMIUM_VER "135.0.7049.100" ENV CHROMIUM_VER "138.0.7204.50" ENV DEBIAN_FRONTEND=noninteractive RUN apt-get update && \ RUN apt-get update && \ DEBIAN_FRONTEND=noninteractive \ apt-get install -y software-properties-common apt-get install -y software-properties-common && \ add-apt-repository ppa:deadsnakes/ppa && \ add-apt-repository ppa:git-core/ppa RUN dpkg --add-architecture i386 RUN dpkg --add-architecture i386 RUN apt-get update && \ RUN apt-get update && \ DEBIAN_FRONTEND=noninteractive \ apt-get -f -y install sudo lsb-release cl-base64 bash wget apt-utils ccache jq file \ apt-get -f -y install sudo lsb-release cl-base64 bash wget apt-utils ccache jq python3.10 \ python-is-python3 sed tzdata build-essential lib32gcc-9-dev g++-multilib dos2unix wiggle git curl python-is-python3 sed tzdata build-essential lib32gcc-9-dev g++-multilib dos2unix wiggle git curl RUN mkdir ${CHROMIUM_DIR} RUN mkdir ${CHROMIUM_DIR} Loading build.sh +12 −1 Original line number Original line Diff line number Diff line Loading @@ -103,18 +103,29 @@ setup_ccache() { patch() { patch() { cd $chromium_dir/src cd $chromium_dir/src echo ">> [$(date)] Applying cromite and /e/ patches" echo ">> [$(date)] Applying cromite patches" cromite_patches_list=$(cat "${root_dir}/build/cromite_patches_list.txt") cromite_patches_list=$(cat "${root_dir}/build/cromite_patches_list.txt") for file in $cromite_patches_list; do for file in $cromite_patches_list; do git am -C0 -3 --ignore-whitespace "${root_dir}/build/cromite_patches/$file" git am -C0 -3 --ignore-whitespace "${root_dir}/build/cromite_patches/$file" done done echo ">> [$(date)] Applying /e/ patches" e_patches_list=$(cat "${root_dir}/build/e_patches_list.txt") e_patches_list=$(cat "${root_dir}/build/e_patches_list.txt") for file in $e_patches_list; do for file in $e_patches_list; do git am -C0 -3 --ignore-whitespace "${root_dir}/build/e_patches/$file" git am -C0 -3 --ignore-whitespace "${root_dir}/build/e_patches/$file" done done echo ">> [$(date)] Applying third party patches" while read dir patch; do [ -z "$dir" ] && continue # skip empty lines cd $chromium_dir/src/third_party/$dir git am -C0 -3 --ignore-whitespace "${root_dir}/build/third_party/$patch" cd $chromium_dir/src done < "${root_dir}/build/third_party_patches_list.txt" # Rename Chrome to Browser # Rename Chrome to Browser rename rename Loading build/cromite_patches/AImageReader-CFI-crash-mitigations.patch +25 −28 Original line number Original line Diff line number Diff line Loading @@ -31,8 +31,8 @@ License: GPL-3.0-only - https://spdx.org/licenses/GPL-3.0-only.html gpu/config/gpu_util.cc | 8 ++++++++ gpu/config/gpu_util.cc | 8 ++++++++ gpu/config/gpu_workaround_list.txt | 1 + gpu/config/gpu_workaround_list.txt | 1 + gpu/ipc/service/gpu_init.cc | 8 ++++++++ gpu/ipc/service/gpu_init.cc | 8 ++++++++ gpu/ipc/service/stream_texture_android.cc | 10 +++++++++- media/gpu/android/video_frame_factory_impl.cc | 4 +++- 12 files changed, 87 insertions(+), 1 deletion(-) 12 files changed, 81 insertions(+), 1 deletion(-) create mode 100644 cromite_flags/media/base/media_switches_cc/AImageReader-CFI-crash-mitigations.inc create mode 100644 cromite_flags/media/base/media_switches_cc/AImageReader-CFI-crash-mitigations.inc create mode 100644 cromite_flags/media/base/media_switches_h/AImageReader-CFI-crash-mitigations.inc create mode 100644 cromite_flags/media/base/media_switches_h/AImageReader-CFI-crash-mitigations.inc Loading Loading @@ -90,10 +90,10 @@ diff --git a/base/android/android_image_reader_compat.h b/base/android/android_i diff --git a/chrome/browser/flag-metadata.json b/chrome/browser/flag-metadata.json diff --git a/chrome/browser/flag-metadata.json b/chrome/browser/flag-metadata.json --- a/chrome/browser/flag-metadata.json --- a/chrome/browser/flag-metadata.json +++ b/chrome/browser/flag-metadata.json +++ b/chrome/browser/flag-metadata.json @@ -3268,6 +3268,10 @@ @@ -3509,6 +3509,10 @@ "name": "enable-identity-in-auth-error", "chrome-signin-team@google.com" "owners": [ "jlebel@chromium.org", "chrome-signin-team@google.com" ], ], "expiry_milestone": 135 "expiry_milestone": 138 + },{ + },{ + "name": "enable-image-reader", // Bromite: do not expire + "name": "enable-image-reader", // Bromite: do not expire + "owners": [ "vikassoni@chromium.org", "liberato@chromium.org" ], // flag + "owners": [ "vikassoni@chromium.org", "liberato@chromium.org" ], // flag Loading @@ -119,7 +119,7 @@ new file mode 100644 diff --git a/gpu/config/gpu_driver_bug_list.json b/gpu/config/gpu_driver_bug_list.json 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 --- a/gpu/config/gpu_driver_bug_list.json +++ b/gpu/config/gpu_driver_bug_list.json +++ b/gpu/config/gpu_driver_bug_list.json @@ -2593,6 +2593,22 @@ @@ -2613,6 +2613,22 @@ "no_downscaled_overlay_promotion" "no_downscaled_overlay_promotion" ] ] }, }, Loading Loading @@ -171,7 +171,7 @@ diff --git a/gpu/config/gpu_finch_features.h b/gpu/config/gpu_finch_features.h diff --git a/gpu/config/gpu_util.cc b/gpu/config/gpu_util.cc diff --git a/gpu/config/gpu_util.cc b/gpu/config/gpu_util.cc --- a/gpu/config/gpu_util.cc --- a/gpu/config/gpu_util.cc +++ b/gpu/config/gpu_util.cc +++ b/gpu/config/gpu_util.cc @@ -126,6 +126,9 @@ GpuFeatureStatus GetAndroidSurfaceControlFeatureStatus( @@ -127,6 +127,9 @@ GpuFeatureStatus GetAndroidSurfaceControlFeatureStatus( #if !BUILDFLAG(IS_ANDROID) #if !BUILDFLAG(IS_ANDROID) return kGpuFeatureStatusDisabled; return kGpuFeatureStatusDisabled; #else #else Loading Loading @@ -215,7 +215,7 @@ diff --git a/gpu/ipc/service/gpu_init.cc b/gpu/ipc/service/gpu_init.cc #endif #endif #if BUILDFLAG(ENABLE_VULKAN) #if BUILDFLAG(ENABLE_VULKAN) @@ -692,6 +693,13 @@ bool GpuInit::InitializeAndStartSandbox(base::CommandLine* command_line, @@ -687,6 +688,13 @@ bool GpuInit::InitializeAndStartSandbox(base::CommandLine* command_line, } } #endif // BUILDFLAG(IS_WIN) #endif // BUILDFLAG(IS_WIN) Loading @@ -229,24 +229,21 @@ diff --git a/gpu/ipc/service/gpu_init.cc b/gpu/ipc/service/gpu_init.cc if (gpu_feature_info_.status_values[GPU_FEATURE_TYPE_VULKAN] != if (gpu_feature_info_.status_values[GPU_FEATURE_TYPE_VULKAN] != kGpuFeatureStatusEnabled || kGpuFeatureStatusEnabled || !InitializeVulkan()) { !InitializeVulkan()) { diff --git a/gpu/ipc/service/stream_texture_android.cc b/gpu/ipc/service/stream_texture_android.cc diff --git a/media/gpu/android/video_frame_factory_impl.cc b/media/gpu/android/video_frame_factory_impl.cc --- a/gpu/ipc/service/stream_texture_android.cc --- a/media/gpu/android/video_frame_factory_impl.cc +++ b/gpu/ipc/service/stream_texture_android.cc +++ b/media/gpu/android/video_frame_factory_impl.cc @@ -50,7 +50,15 @@ std::unique_ptr<ui::ScopedMakeCurrent> MakeCurrent( @@ -35,10 +35,12 @@ namespace { } gpu::TextureOwner::Mode GetTextureOwnerMode( TextureOwner::Mode GetTextureOwnerMode() { VideoFrameFactory::OverlayMode overlay_mode) { + const bool enabled = base::android::EnableAndroidImageReader() && + base::FeatureList::IsEnabled(features::kAImageReaderMediaPlayer); switch (overlay_mode) { case VideoFrameFactory::OverlayMode::kDontRequestPromotionHints: case VideoFrameFactory::OverlayMode::kRequestPromotionHints: - return base::android::EnableAndroidImageReader() - return base::android::EnableAndroidImageReader() + const bool a_image_reader_supported = + return enabled + base::android::AndroidImageReader::GetInstance().IsSupported(); ? gpu::TextureOwner::Mode::kAImageReaderInsecure + : gpu::TextureOwner::Mode::kSurfaceTextureInsecure; + // TODO(vikassoni) : Currently we have 2 different flags to enable/disable case VideoFrameFactory::OverlayMode::kSurfaceControlSecure: + // 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 && base::android::EnableAndroidImageReader() && + base::FeatureList::IsEnabled(features::kAImageReaderMediaPlayer) ? TextureOwner::Mode::kAImageReaderInsecure : TextureOwner::Mode::kSurfaceTextureInsecure; } -- -- build/cromite_patches/Add-AllowUserCertificates-flag.patch +17 −17 Original line number Original line Diff line number Diff line Loading @@ -20,7 +20,7 @@ License: GPL-3.0-only - https://spdx.org/licenses/GPL-3.0-only.html diff --git a/chrome/android/java/src/org/chromium/chrome/browser/app/ChromeActivity.java b/chrome/android/java/src/org/chromium/chrome/browser/app/ChromeActivity.java diff --git a/chrome/android/java/src/org/chromium/chrome/browser/app/ChromeActivity.java b/chrome/android/java/src/org/chromium/chrome/browser/app/ChromeActivity.java --- a/chrome/android/java/src/org/chromium/chrome/browser/app/ChromeActivity.java --- a/chrome/android/java/src/org/chromium/chrome/browser/app/ChromeActivity.java +++ b/chrome/android/java/src/org/chromium/chrome/browser/app/ChromeActivity.java +++ b/chrome/android/java/src/org/chromium/chrome/browser/app/ChromeActivity.java @@ -227,6 +227,7 @@ import org.chromium.content_public.browser.LoadUrlParams; @@ -233,6 +233,7 @@ import org.chromium.content_public.browser.LoadUrlParams; import org.chromium.content_public.browser.SelectionPopupController; import org.chromium.content_public.browser.SelectionPopupController; import org.chromium.content_public.browser.WebContents; import org.chromium.content_public.browser.WebContents; import org.chromium.content_public.common.ContentSwitches; import org.chromium.content_public.common.ContentSwitches; Loading @@ -28,7 +28,7 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/app/ChromeActiv import org.chromium.printing.PrintManagerDelegateImpl; import org.chromium.printing.PrintManagerDelegateImpl; import org.chromium.printing.PrintingController; import org.chromium.printing.PrintingController; import org.chromium.printing.PrintingControllerImpl; import org.chromium.printing.PrintingControllerImpl; @@ -969,6 +970,8 @@ public abstract class ChromeActivity extends AsyncInitializationActivity @@ -981,6 +982,8 @@ public abstract class ChromeActivity extends AsyncInitializationActivity super.onStartWithNative(); super.onStartWithNative(); ChromeActivitySessionTracker.getInstance().onStartWithNative(getProfileProviderSupplier()); ChromeActivitySessionTracker.getInstance().onStartWithNative(getProfileProviderSupplier()); Loading @@ -40,7 +40,7 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/app/ChromeActiv diff --git a/chrome/browser/flags/android/chrome_feature_list.cc b/chrome/browser/flags/android/chrome_feature_list.cc diff --git a/chrome/browser/flags/android/chrome_feature_list.cc b/chrome/browser/flags/android/chrome_feature_list.cc --- a/chrome/browser/flags/android/chrome_feature_list.cc --- a/chrome/browser/flags/android/chrome_feature_list.cc +++ b/chrome/browser/flags/android/chrome_feature_list.cc +++ b/chrome/browser/flags/android/chrome_feature_list.cc @@ -160,6 +160,7 @@ const base::Feature* const kFeaturesExposedToJava[] = { @@ -169,6 +169,7 @@ const base::Feature* const kFeaturesExposedToJava[] = { &feed::kFeedPerformanceStudy, &feed::kFeedPerformanceStudy, &feed::kFeedShowSignInCommand, &feed::kFeedShowSignInCommand, &feed::kFeedSignedOutViewDemotion, &feed::kFeedSignedOutViewDemotion, Loading @@ -51,31 +51,31 @@ diff --git a/chrome/browser/flags/android/chrome_feature_list.cc b/chrome/browse diff --git a/chrome/browser/flags/android/java/src/org/chromium/chrome/browser/flags/ChromeFeatureList.java b/chrome/browser/flags/android/java/src/org/chromium/chrome/browser/flags/ChromeFeatureList.java diff --git a/chrome/browser/flags/android/java/src/org/chromium/chrome/browser/flags/ChromeFeatureList.java b/chrome/browser/flags/android/java/src/org/chromium/chrome/browser/flags/ChromeFeatureList.java --- a/chrome/browser/flags/android/java/src/org/chromium/chrome/browser/flags/ChromeFeatureList.java --- a/chrome/browser/flags/android/java/src/org/chromium/chrome/browser/flags/ChromeFeatureList.java +++ b/chrome/browser/flags/android/java/src/org/chromium/chrome/browser/flags/ChromeFeatureList.java +++ b/chrome/browser/flags/android/java/src/org/chromium/chrome/browser/flags/ChromeFeatureList.java @@ -158,6 +158,7 @@ public abstract class ChromeFeatureList { @@ -162,6 +162,7 @@ public abstract class ChromeFeatureList { // Feature names. "AccountForSuppressedKeyboardInsets"; /* Alphabetical: */ public static final String ADAPTIVE_BUTTON_IN_TOP_TOOLBAR_CUSTOMIZATION_V2 = public static final String ACT_USER_BYPASS_UX = "ActUserBypassUx"; "AdaptiveButtonInTopToolbarCustomizationV2"; + public static final String ALLOW_USER_CERTIFICATES = "AllowUserCertificates"; + public static final String ALLOW_USER_CERTIFICATES = "AllowUserCertificates"; public static final String ADAPTIVE_BUTTON_IN_TOP_TOOLBAR_PAGE_SUMMARY = public static final String ADAPTIVE_BUTTON_IN_TOP_TOOLBAR_PAGE_SUMMARY = "AdaptiveButtonInTopToolbarPageSummary"; "AdaptiveButtonInTopToolbarPageSummary"; public static final String ADAPTIVE_BUTTON_IN_TOP_TOOLBAR_CUSTOMIZATION_V2 = public static final String ALLOW_TAB_CLOSING_UPON_MINIMIZATION = @@ -643,6 +644,8 @@ public abstract class ChromeFeatureList { @@ -679,6 +680,8 @@ public abstract class ChromeFeatureList { public static final CachedFlag sAndroidMinimalUiLargeScreen = public static final CachedFlag sAndroidWindowPopupLargeScreen = newCachedFlag(ANDROID_MINIMAL_UI_LARGE_SCREEN, false); newCachedFlag(ANDROID_WINDOW_POPUP_LARGE_SCREEN, false); public static final CachedFlag sAppSpecificHistory = newCachedFlag(APP_SPECIFIC_HISTORY, true); public static final CachedFlag sAppSpecificHistory = newCachedFlag(APP_SPECIFIC_HISTORY, true); + public static final CachedFlag sAllowUserCertificates = + public static final CachedFlag sAllowUserCertificates = + newCachedFlag(ALLOW_USER_CERTIFICATES, false); + newCachedFlag(ALLOW_USER_CERTIFICATES, false); public static final CachedFlag sAsyncNotificationManager = public static final CachedFlag sAsyncNotificationManager = newCachedFlag(ASYNC_NOTIFICATION_MANAGER, false, true); newCachedFlag(ASYNC_NOTIFICATION_MANAGER, false, true); public static final CachedFlag sAsyncNotificationManagerForDownload = public static final CachedFlag sAsyncNotificationManagerForDownload = @@ -878,6 +881,7 @@ public abstract class ChromeFeatureList { @@ -940,6 +943,7 @@ public abstract class ChromeFeatureList { public static final List<CachedFlag> sFlagsCachedFullBrowserChromium = sAccountForSuppressedKeyboardInsets, List.of( sAllowTabClosingUponMinimization, sAndroidAppIntegration, sAndroidAppIntegration, + sAllowUserCertificates, + sAllowUserCertificates, sAndroidAppIntegrationModule, sAndroidAppIntegrationModule, sAndroidAppIntegrationMultiDataSource, sAndroidAppIntegrationV2, sAndroidAppIntegrationV2, sAndroidAppIntegrationWithFavicon, diff --git a/cromite_flags/chrome/browser/about_flags_cc/Add-AllowUserCertificates-flag.inc b/cromite_flags/chrome/browser/about_flags_cc/Add-AllowUserCertificates-flag.inc diff --git a/cromite_flags/chrome/browser/about_flags_cc/Add-AllowUserCertificates-flag.inc b/cromite_flags/chrome/browser/about_flags_cc/Add-AllowUserCertificates-flag.inc new file mode 100644 new file mode 100644 --- /dev/null --- /dev/null Loading Loading @@ -111,7 +111,7 @@ new file mode 100644 diff --git a/net/android/java/src/org/chromium/net/X509Util.java b/net/android/java/src/org/chromium/net/X509Util.java diff --git a/net/android/java/src/org/chromium/net/X509Util.java b/net/android/java/src/org/chromium/net/X509Util.java --- a/net/android/java/src/org/chromium/net/X509Util.java --- a/net/android/java/src/org/chromium/net/X509Util.java +++ b/net/android/java/src/org/chromium/net/X509Util.java +++ b/net/android/java/src/org/chromium/net/X509Util.java @@ -542,6 +542,8 @@ public class X509Util { @@ -537,6 +537,8 @@ public class X509Util { return userRootBytes.toArray(new byte[0][]); return userRootBytes.toArray(new byte[0][]); } } Loading @@ -120,7 +120,7 @@ diff --git a/net/android/java/src/org/chromium/net/X509Util.java b/net/android/j public static AndroidCertVerifyResult verifyServerCertificates( public static AndroidCertVerifyResult verifyServerCertificates( byte[][] certChain, byte[][] certChain, String authType, String authType, @@ -642,6 +644,9 @@ public class X509Util { @@ -637,6 +639,9 @@ public class X509Util { X509Certificate root = verifiedChain.get(verifiedChain.size() - 1); X509Certificate root = verifiedChain.get(verifiedChain.size() - 1); isIssuedByKnownRoot = isKnownRoot(root); isIssuedByKnownRoot = isKnownRoot(root); } } Loading Loading
.gitlab-ci.yml +2 −1 Original line number Original line Diff line number Diff line Loading @@ -17,6 +17,7 @@ build-docker: rules: rules: - if: $CI_PIPELINE_SOURCE != "schedule" - if: $CI_PIPELINE_SOURCE != "schedule" when: manual when: manual allow_failure: false tags: tags: - generic_privileged - generic_privileged variables: variables: Loading @@ -34,7 +35,7 @@ build-docker: image: $CONTAINER_IMAGE image: $CONTAINER_IMAGE rules: rules: - if: $CI_PIPELINE_SOURCE != "schedule" - if: $CI_PIPELINE_SOURCE != "schedule" when: manual needs: ["build-docker"] tags: tags: - build-browser - build-browser artifacts: artifacts: Loading
Dockerfile +5 −8 Original line number Original line Diff line number Diff line FROM ubuntu:20.04 FROM ubuntu:22.04 ENV CHROMIUM_DIR "/srv/chromium" ENV CHROMIUM_DIR "/srv/chromium" ENV CHROMIUM_VER "135.0.7049.100" ENV CHROMIUM_VER "138.0.7204.50" ENV DEBIAN_FRONTEND=noninteractive RUN apt-get update && \ RUN apt-get update && \ DEBIAN_FRONTEND=noninteractive \ apt-get install -y software-properties-common apt-get install -y software-properties-common && \ add-apt-repository ppa:deadsnakes/ppa && \ add-apt-repository ppa:git-core/ppa RUN dpkg --add-architecture i386 RUN dpkg --add-architecture i386 RUN apt-get update && \ RUN apt-get update && \ DEBIAN_FRONTEND=noninteractive \ apt-get -f -y install sudo lsb-release cl-base64 bash wget apt-utils ccache jq file \ apt-get -f -y install sudo lsb-release cl-base64 bash wget apt-utils ccache jq python3.10 \ python-is-python3 sed tzdata build-essential lib32gcc-9-dev g++-multilib dos2unix wiggle git curl python-is-python3 sed tzdata build-essential lib32gcc-9-dev g++-multilib dos2unix wiggle git curl RUN mkdir ${CHROMIUM_DIR} RUN mkdir ${CHROMIUM_DIR} Loading
build.sh +12 −1 Original line number Original line Diff line number Diff line Loading @@ -103,18 +103,29 @@ setup_ccache() { patch() { patch() { cd $chromium_dir/src cd $chromium_dir/src echo ">> [$(date)] Applying cromite and /e/ patches" echo ">> [$(date)] Applying cromite patches" cromite_patches_list=$(cat "${root_dir}/build/cromite_patches_list.txt") cromite_patches_list=$(cat "${root_dir}/build/cromite_patches_list.txt") for file in $cromite_patches_list; do for file in $cromite_patches_list; do git am -C0 -3 --ignore-whitespace "${root_dir}/build/cromite_patches/$file" git am -C0 -3 --ignore-whitespace "${root_dir}/build/cromite_patches/$file" done done echo ">> [$(date)] Applying /e/ patches" e_patches_list=$(cat "${root_dir}/build/e_patches_list.txt") e_patches_list=$(cat "${root_dir}/build/e_patches_list.txt") for file in $e_patches_list; do for file in $e_patches_list; do git am -C0 -3 --ignore-whitespace "${root_dir}/build/e_patches/$file" git am -C0 -3 --ignore-whitespace "${root_dir}/build/e_patches/$file" done done echo ">> [$(date)] Applying third party patches" while read dir patch; do [ -z "$dir" ] && continue # skip empty lines cd $chromium_dir/src/third_party/$dir git am -C0 -3 --ignore-whitespace "${root_dir}/build/third_party/$patch" cd $chromium_dir/src done < "${root_dir}/build/third_party_patches_list.txt" # Rename Chrome to Browser # Rename Chrome to Browser rename rename Loading
build/cromite_patches/AImageReader-CFI-crash-mitigations.patch +25 −28 Original line number Original line Diff line number Diff line Loading @@ -31,8 +31,8 @@ License: GPL-3.0-only - https://spdx.org/licenses/GPL-3.0-only.html gpu/config/gpu_util.cc | 8 ++++++++ gpu/config/gpu_util.cc | 8 ++++++++ gpu/config/gpu_workaround_list.txt | 1 + gpu/config/gpu_workaround_list.txt | 1 + gpu/ipc/service/gpu_init.cc | 8 ++++++++ gpu/ipc/service/gpu_init.cc | 8 ++++++++ gpu/ipc/service/stream_texture_android.cc | 10 +++++++++- media/gpu/android/video_frame_factory_impl.cc | 4 +++- 12 files changed, 87 insertions(+), 1 deletion(-) 12 files changed, 81 insertions(+), 1 deletion(-) create mode 100644 cromite_flags/media/base/media_switches_cc/AImageReader-CFI-crash-mitigations.inc create mode 100644 cromite_flags/media/base/media_switches_cc/AImageReader-CFI-crash-mitigations.inc create mode 100644 cromite_flags/media/base/media_switches_h/AImageReader-CFI-crash-mitigations.inc create mode 100644 cromite_flags/media/base/media_switches_h/AImageReader-CFI-crash-mitigations.inc Loading Loading @@ -90,10 +90,10 @@ diff --git a/base/android/android_image_reader_compat.h b/base/android/android_i diff --git a/chrome/browser/flag-metadata.json b/chrome/browser/flag-metadata.json diff --git a/chrome/browser/flag-metadata.json b/chrome/browser/flag-metadata.json --- a/chrome/browser/flag-metadata.json --- a/chrome/browser/flag-metadata.json +++ b/chrome/browser/flag-metadata.json +++ b/chrome/browser/flag-metadata.json @@ -3268,6 +3268,10 @@ @@ -3509,6 +3509,10 @@ "name": "enable-identity-in-auth-error", "chrome-signin-team@google.com" "owners": [ "jlebel@chromium.org", "chrome-signin-team@google.com" ], ], "expiry_milestone": 135 "expiry_milestone": 138 + },{ + },{ + "name": "enable-image-reader", // Bromite: do not expire + "name": "enable-image-reader", // Bromite: do not expire + "owners": [ "vikassoni@chromium.org", "liberato@chromium.org" ], // flag + "owners": [ "vikassoni@chromium.org", "liberato@chromium.org" ], // flag Loading @@ -119,7 +119,7 @@ new file mode 100644 diff --git a/gpu/config/gpu_driver_bug_list.json b/gpu/config/gpu_driver_bug_list.json 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 --- a/gpu/config/gpu_driver_bug_list.json +++ b/gpu/config/gpu_driver_bug_list.json +++ b/gpu/config/gpu_driver_bug_list.json @@ -2593,6 +2593,22 @@ @@ -2613,6 +2613,22 @@ "no_downscaled_overlay_promotion" "no_downscaled_overlay_promotion" ] ] }, }, Loading Loading @@ -171,7 +171,7 @@ diff --git a/gpu/config/gpu_finch_features.h b/gpu/config/gpu_finch_features.h diff --git a/gpu/config/gpu_util.cc b/gpu/config/gpu_util.cc diff --git a/gpu/config/gpu_util.cc b/gpu/config/gpu_util.cc --- a/gpu/config/gpu_util.cc --- a/gpu/config/gpu_util.cc +++ b/gpu/config/gpu_util.cc +++ b/gpu/config/gpu_util.cc @@ -126,6 +126,9 @@ GpuFeatureStatus GetAndroidSurfaceControlFeatureStatus( @@ -127,6 +127,9 @@ GpuFeatureStatus GetAndroidSurfaceControlFeatureStatus( #if !BUILDFLAG(IS_ANDROID) #if !BUILDFLAG(IS_ANDROID) return kGpuFeatureStatusDisabled; return kGpuFeatureStatusDisabled; #else #else Loading Loading @@ -215,7 +215,7 @@ diff --git a/gpu/ipc/service/gpu_init.cc b/gpu/ipc/service/gpu_init.cc #endif #endif #if BUILDFLAG(ENABLE_VULKAN) #if BUILDFLAG(ENABLE_VULKAN) @@ -692,6 +693,13 @@ bool GpuInit::InitializeAndStartSandbox(base::CommandLine* command_line, @@ -687,6 +688,13 @@ bool GpuInit::InitializeAndStartSandbox(base::CommandLine* command_line, } } #endif // BUILDFLAG(IS_WIN) #endif // BUILDFLAG(IS_WIN) Loading @@ -229,24 +229,21 @@ diff --git a/gpu/ipc/service/gpu_init.cc b/gpu/ipc/service/gpu_init.cc if (gpu_feature_info_.status_values[GPU_FEATURE_TYPE_VULKAN] != if (gpu_feature_info_.status_values[GPU_FEATURE_TYPE_VULKAN] != kGpuFeatureStatusEnabled || kGpuFeatureStatusEnabled || !InitializeVulkan()) { !InitializeVulkan()) { diff --git a/gpu/ipc/service/stream_texture_android.cc b/gpu/ipc/service/stream_texture_android.cc diff --git a/media/gpu/android/video_frame_factory_impl.cc b/media/gpu/android/video_frame_factory_impl.cc --- a/gpu/ipc/service/stream_texture_android.cc --- a/media/gpu/android/video_frame_factory_impl.cc +++ b/gpu/ipc/service/stream_texture_android.cc +++ b/media/gpu/android/video_frame_factory_impl.cc @@ -50,7 +50,15 @@ std::unique_ptr<ui::ScopedMakeCurrent> MakeCurrent( @@ -35,10 +35,12 @@ namespace { } gpu::TextureOwner::Mode GetTextureOwnerMode( TextureOwner::Mode GetTextureOwnerMode() { VideoFrameFactory::OverlayMode overlay_mode) { + const bool enabled = base::android::EnableAndroidImageReader() && + base::FeatureList::IsEnabled(features::kAImageReaderMediaPlayer); switch (overlay_mode) { case VideoFrameFactory::OverlayMode::kDontRequestPromotionHints: case VideoFrameFactory::OverlayMode::kRequestPromotionHints: - return base::android::EnableAndroidImageReader() - return base::android::EnableAndroidImageReader() + const bool a_image_reader_supported = + return enabled + base::android::AndroidImageReader::GetInstance().IsSupported(); ? gpu::TextureOwner::Mode::kAImageReaderInsecure + : gpu::TextureOwner::Mode::kSurfaceTextureInsecure; + // TODO(vikassoni) : Currently we have 2 different flags to enable/disable case VideoFrameFactory::OverlayMode::kSurfaceControlSecure: + // 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 && base::android::EnableAndroidImageReader() && + base::FeatureList::IsEnabled(features::kAImageReaderMediaPlayer) ? TextureOwner::Mode::kAImageReaderInsecure : TextureOwner::Mode::kSurfaceTextureInsecure; } -- --
build/cromite_patches/Add-AllowUserCertificates-flag.patch +17 −17 Original line number Original line Diff line number Diff line Loading @@ -20,7 +20,7 @@ License: GPL-3.0-only - https://spdx.org/licenses/GPL-3.0-only.html diff --git a/chrome/android/java/src/org/chromium/chrome/browser/app/ChromeActivity.java b/chrome/android/java/src/org/chromium/chrome/browser/app/ChromeActivity.java diff --git a/chrome/android/java/src/org/chromium/chrome/browser/app/ChromeActivity.java b/chrome/android/java/src/org/chromium/chrome/browser/app/ChromeActivity.java --- a/chrome/android/java/src/org/chromium/chrome/browser/app/ChromeActivity.java --- a/chrome/android/java/src/org/chromium/chrome/browser/app/ChromeActivity.java +++ b/chrome/android/java/src/org/chromium/chrome/browser/app/ChromeActivity.java +++ b/chrome/android/java/src/org/chromium/chrome/browser/app/ChromeActivity.java @@ -227,6 +227,7 @@ import org.chromium.content_public.browser.LoadUrlParams; @@ -233,6 +233,7 @@ import org.chromium.content_public.browser.LoadUrlParams; import org.chromium.content_public.browser.SelectionPopupController; import org.chromium.content_public.browser.SelectionPopupController; import org.chromium.content_public.browser.WebContents; import org.chromium.content_public.browser.WebContents; import org.chromium.content_public.common.ContentSwitches; import org.chromium.content_public.common.ContentSwitches; Loading @@ -28,7 +28,7 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/app/ChromeActiv import org.chromium.printing.PrintManagerDelegateImpl; import org.chromium.printing.PrintManagerDelegateImpl; import org.chromium.printing.PrintingController; import org.chromium.printing.PrintingController; import org.chromium.printing.PrintingControllerImpl; import org.chromium.printing.PrintingControllerImpl; @@ -969,6 +970,8 @@ public abstract class ChromeActivity extends AsyncInitializationActivity @@ -981,6 +982,8 @@ public abstract class ChromeActivity extends AsyncInitializationActivity super.onStartWithNative(); super.onStartWithNative(); ChromeActivitySessionTracker.getInstance().onStartWithNative(getProfileProviderSupplier()); ChromeActivitySessionTracker.getInstance().onStartWithNative(getProfileProviderSupplier()); Loading @@ -40,7 +40,7 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/app/ChromeActiv diff --git a/chrome/browser/flags/android/chrome_feature_list.cc b/chrome/browser/flags/android/chrome_feature_list.cc diff --git a/chrome/browser/flags/android/chrome_feature_list.cc b/chrome/browser/flags/android/chrome_feature_list.cc --- a/chrome/browser/flags/android/chrome_feature_list.cc --- a/chrome/browser/flags/android/chrome_feature_list.cc +++ b/chrome/browser/flags/android/chrome_feature_list.cc +++ b/chrome/browser/flags/android/chrome_feature_list.cc @@ -160,6 +160,7 @@ const base::Feature* const kFeaturesExposedToJava[] = { @@ -169,6 +169,7 @@ const base::Feature* const kFeaturesExposedToJava[] = { &feed::kFeedPerformanceStudy, &feed::kFeedPerformanceStudy, &feed::kFeedShowSignInCommand, &feed::kFeedShowSignInCommand, &feed::kFeedSignedOutViewDemotion, &feed::kFeedSignedOutViewDemotion, Loading @@ -51,31 +51,31 @@ diff --git a/chrome/browser/flags/android/chrome_feature_list.cc b/chrome/browse diff --git a/chrome/browser/flags/android/java/src/org/chromium/chrome/browser/flags/ChromeFeatureList.java b/chrome/browser/flags/android/java/src/org/chromium/chrome/browser/flags/ChromeFeatureList.java diff --git a/chrome/browser/flags/android/java/src/org/chromium/chrome/browser/flags/ChromeFeatureList.java b/chrome/browser/flags/android/java/src/org/chromium/chrome/browser/flags/ChromeFeatureList.java --- a/chrome/browser/flags/android/java/src/org/chromium/chrome/browser/flags/ChromeFeatureList.java --- a/chrome/browser/flags/android/java/src/org/chromium/chrome/browser/flags/ChromeFeatureList.java +++ b/chrome/browser/flags/android/java/src/org/chromium/chrome/browser/flags/ChromeFeatureList.java +++ b/chrome/browser/flags/android/java/src/org/chromium/chrome/browser/flags/ChromeFeatureList.java @@ -158,6 +158,7 @@ public abstract class ChromeFeatureList { @@ -162,6 +162,7 @@ public abstract class ChromeFeatureList { // Feature names. "AccountForSuppressedKeyboardInsets"; /* Alphabetical: */ public static final String ADAPTIVE_BUTTON_IN_TOP_TOOLBAR_CUSTOMIZATION_V2 = public static final String ACT_USER_BYPASS_UX = "ActUserBypassUx"; "AdaptiveButtonInTopToolbarCustomizationV2"; + public static final String ALLOW_USER_CERTIFICATES = "AllowUserCertificates"; + public static final String ALLOW_USER_CERTIFICATES = "AllowUserCertificates"; public static final String ADAPTIVE_BUTTON_IN_TOP_TOOLBAR_PAGE_SUMMARY = public static final String ADAPTIVE_BUTTON_IN_TOP_TOOLBAR_PAGE_SUMMARY = "AdaptiveButtonInTopToolbarPageSummary"; "AdaptiveButtonInTopToolbarPageSummary"; public static final String ADAPTIVE_BUTTON_IN_TOP_TOOLBAR_CUSTOMIZATION_V2 = public static final String ALLOW_TAB_CLOSING_UPON_MINIMIZATION = @@ -643,6 +644,8 @@ public abstract class ChromeFeatureList { @@ -679,6 +680,8 @@ public abstract class ChromeFeatureList { public static final CachedFlag sAndroidMinimalUiLargeScreen = public static final CachedFlag sAndroidWindowPopupLargeScreen = newCachedFlag(ANDROID_MINIMAL_UI_LARGE_SCREEN, false); newCachedFlag(ANDROID_WINDOW_POPUP_LARGE_SCREEN, false); public static final CachedFlag sAppSpecificHistory = newCachedFlag(APP_SPECIFIC_HISTORY, true); public static final CachedFlag sAppSpecificHistory = newCachedFlag(APP_SPECIFIC_HISTORY, true); + public static final CachedFlag sAllowUserCertificates = + public static final CachedFlag sAllowUserCertificates = + newCachedFlag(ALLOW_USER_CERTIFICATES, false); + newCachedFlag(ALLOW_USER_CERTIFICATES, false); public static final CachedFlag sAsyncNotificationManager = public static final CachedFlag sAsyncNotificationManager = newCachedFlag(ASYNC_NOTIFICATION_MANAGER, false, true); newCachedFlag(ASYNC_NOTIFICATION_MANAGER, false, true); public static final CachedFlag sAsyncNotificationManagerForDownload = public static final CachedFlag sAsyncNotificationManagerForDownload = @@ -878,6 +881,7 @@ public abstract class ChromeFeatureList { @@ -940,6 +943,7 @@ public abstract class ChromeFeatureList { public static final List<CachedFlag> sFlagsCachedFullBrowserChromium = sAccountForSuppressedKeyboardInsets, List.of( sAllowTabClosingUponMinimization, sAndroidAppIntegration, sAndroidAppIntegration, + sAllowUserCertificates, + sAllowUserCertificates, sAndroidAppIntegrationModule, sAndroidAppIntegrationModule, sAndroidAppIntegrationMultiDataSource, sAndroidAppIntegrationV2, sAndroidAppIntegrationV2, sAndroidAppIntegrationWithFavicon, diff --git a/cromite_flags/chrome/browser/about_flags_cc/Add-AllowUserCertificates-flag.inc b/cromite_flags/chrome/browser/about_flags_cc/Add-AllowUserCertificates-flag.inc diff --git a/cromite_flags/chrome/browser/about_flags_cc/Add-AllowUserCertificates-flag.inc b/cromite_flags/chrome/browser/about_flags_cc/Add-AllowUserCertificates-flag.inc new file mode 100644 new file mode 100644 --- /dev/null --- /dev/null Loading Loading @@ -111,7 +111,7 @@ new file mode 100644 diff --git a/net/android/java/src/org/chromium/net/X509Util.java b/net/android/java/src/org/chromium/net/X509Util.java diff --git a/net/android/java/src/org/chromium/net/X509Util.java b/net/android/java/src/org/chromium/net/X509Util.java --- a/net/android/java/src/org/chromium/net/X509Util.java --- a/net/android/java/src/org/chromium/net/X509Util.java +++ b/net/android/java/src/org/chromium/net/X509Util.java +++ b/net/android/java/src/org/chromium/net/X509Util.java @@ -542,6 +542,8 @@ public class X509Util { @@ -537,6 +537,8 @@ public class X509Util { return userRootBytes.toArray(new byte[0][]); return userRootBytes.toArray(new byte[0][]); } } Loading @@ -120,7 +120,7 @@ diff --git a/net/android/java/src/org/chromium/net/X509Util.java b/net/android/j public static AndroidCertVerifyResult verifyServerCertificates( public static AndroidCertVerifyResult verifyServerCertificates( byte[][] certChain, byte[][] certChain, String authType, String authType, @@ -642,6 +644,9 @@ public class X509Util { @@ -637,6 +639,9 @@ public class X509Util { X509Certificate root = verifiedChain.get(verifiedChain.size() - 1); X509Certificate root = verifiedChain.get(verifiedChain.size() - 1); isIssuedByKnownRoot = isKnownRoot(root); isIssuedByKnownRoot = isKnownRoot(root); } } Loading