diff --git a/.build_config b/.build_config index 37486b6..0d51f9a 100755 --- a/.build_config +++ b/.build_config @@ -9,7 +9,7 @@ trichrome_webview_target=trichrome_webview_apk trichrome_webview_64_target=trichrome_webview_64_apk all=all -chromium_version=90.0.4430.212 -ungoogled_chromium_version=90.0.4430.212 +chromium_version=91.0.4472.77 +ungoogled_chromium_version=91.0.4472.77 ungoogled_chromium_revision=1 ungoogled_chromium_android_revision=1 diff --git a/CHANGELOG.md b/CHANGELOG.md index d556a10..1618eee 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -1,3 +1,7 @@ +# 91.0.4472.77-1 +* Trichrome `apk` support can end any time due to Google decided to remove the ability of not using split modules, as well as stripe the ability of building `apk`s directly for some time now. After that, you will have to manually install an `aab` file using `bundletool` and a specific `aapt2` file. I will try to keep fixing it as long as I can but it can stop working any time from now on. + * Adding to their recent move of limiting APIs, I reflect [the call from the Fedora chromium package maintainer](https://src.fedoraproject.org/rpms/chromium/blob/c4e9feabf040cc2f0c4bac40e8d06fbaf8923c33/f/chromium.spec#_178) that at this point, if you really value _free software as in freedom_, you would be better off use something else instead, like `Fennec F-Droid`. + # 90.0.4430.212-1 * Upstream security fixes diff --git a/android_flags.debug.gn b/android_flags.debug.gn index d7c955b..4afd610 100644 --- a/android_flags.debug.gn +++ b/android_flags.debug.gn @@ -1,4 +1,4 @@ -blink_symbol_level=2 +blink_symbol_level=1 clang_use_chrome_plugins=false enable_js_type_check=false enable_hangout_services_extension=false @@ -23,7 +23,7 @@ is_debug=true is_official_build=false optimize_webui=false safe_browsing_mode=0 -symbol_level=2 +symbol_level=1 treat_warnings_as_errors=false use_official_google_api_keys=false use_unofficial_version_number=false diff --git a/android_flags.gn b/android_flags.gn index 2c930af..784c1a8 100644 --- a/android_flags.gn +++ b/android_flags.gn @@ -10,8 +10,6 @@ dfmify_dev_ui=false disable_android_lint=true disable_autofill_assistant_dfm=true disable_tab_ui_dfm=true -enable_chrome_child_modules=false -enable_chrome_module=false enable_gvr_services=false enable_swiftshader=false exclude_unwind_tables=false diff --git a/bundle_generate_apk.sh b/bundle_generate_apk.sh index 02dafcc..7a81bf5 100755 --- a/bundle_generate_apk.sh +++ b/bundle_generate_apk.sh @@ -94,14 +94,6 @@ case "$TARGET" in FILENAME="TrichromeChrome64" FILENAME_OUT="TrichromeChrome" ;; - "$trichrome_webview_target") - FILENAME="TrichromeWebView" - FILENAME_OUT="TrichromeWebView" - ;; - "$trichrome_webview_64_target") - FILENAME="TrichromeWebView64" - FILENAME_OUT="TrichromeWebView" - ;; *) echo "Filename parsing error" exit 3 diff --git a/misc/android_studio_setup.sh b/misc/android_studio_setup.sh index 7d2f441..93a99a8 100644 --- a/misc/android_studio_setup.sh +++ b/misc/android_studio_setup.sh @@ -52,8 +52,8 @@ popd # Need different GN flags than a release build pushd src -output_folder=out/Debug_apk -#output_folder=out/Debug_apk_x86 +# output_folder=out/Debug_apk +output_folder=out/Debug_apk_x86 mkdir -p ${output_folder} cat ../android_flags.debug.gn ../android_flags.gn > ${output_folder}/args.gn printf '\ntarget_cpu="x86"\n' >> ${output_folder}/args.gn diff --git a/patches/Bromite/AImageReader-CFI-crash-mitigations.patch b/patches/Bromite/AImageReader-CFI-crash-mitigations.patch index feeb036..4f82da1 100644 --- a/patches/Bromite/AImageReader-CFI-crash-mitigations.patch +++ b/patches/Bromite/AImageReader-CFI-crash-mitigations.patch @@ -79,7 +79,7 @@ See discussions at: AndroidImageReader(); --- a/chrome/browser/flag-metadata.json +++ b/chrome/browser/flag-metadata.json -@@ -1904,7 +1904,7 @@ +@@ -1940,7 +1940,7 @@ { "name": "enable-image-reader", "owners": [ "vikassoni", "liberato" ], @@ -90,7 +90,7 @@ See discussions at: "name": "enable-immersive-fullscreen-toolbar", --- a/gpu/config/gpu_driver_bug_list.json +++ b/gpu/config/gpu_driver_bug_list.json -@@ -3237,6 +3237,22 @@ +@@ -3207,6 +3207,22 @@ ] }, { @@ -163,7 +163,7 @@ See discussions at: // Estimates roughly user total disk space by counting in the drives where --- a/gpu/config/gpu_workaround_list.txt +++ b/gpu/config/gpu_workaround_list.txt -@@ -13,6 +13,7 @@ decode_encode_srgb_for_generatemipmap +@@ -14,6 +14,7 @@ decode_encode_srgb_for_generatemipmap depth_stencil_renderbuffer_resize_emulation disable_2d_canvas_auto_flush disable_accelerated_av1_decode @@ -173,7 +173,7 @@ See discussions at: disable_accelerated_vp8_decode --- a/gpu/ipc/service/gpu_init.cc +++ b/gpu/ipc/service/gpu_init.cc -@@ -488,6 +488,11 @@ bool GpuInit::InitializeAndStartSandbox( +@@ -502,6 +502,11 @@ bool GpuInit::InitializeAndStartSandbox( } } @@ -214,7 +214,7 @@ See discussions at: } --- a/media/base/media_switches.cc +++ b/media/base/media_switches.cc -@@ -624,6 +624,10 @@ const base::Feature kMediaDrmPreprovisio +@@ -631,6 +631,10 @@ const base::Feature kMediaDrmPreprovisio const base::Feature kMediaDrmPreprovisioningAtStartup{ "MediaDrmPreprovisioningAtStartup", base::FEATURE_ENABLED_BY_DEFAULT}; @@ -227,7 +227,7 @@ See discussions at: const base::Feature kDisableSurfaceLayerForVideo{ --- a/media/base/media_switches.h +++ b/media/base/media_switches.h -@@ -210,6 +210,7 @@ MEDIA_EXPORT extern const base::Feature +@@ -205,6 +205,7 @@ MEDIA_EXPORT extern const base::Feature MEDIA_EXPORT extern const base::Feature kMediaDrmPersistentLicense; MEDIA_EXPORT extern const base::Feature kMediaDrmPreprovisioning; MEDIA_EXPORT extern const base::Feature kMediaDrmPreprovisioningAtStartup; diff --git a/patches/Bromite/Add-a-proxy-configuration-page.patch b/patches/Bromite/Add-a-proxy-configuration-page.patch index e9d8594..ecd5f00 100644 --- a/patches/Bromite/Add-a-proxy-configuration-page.patch +++ b/patches/Bromite/Add-a-proxy-configuration-page.patch @@ -10,8 +10,8 @@ Store proxy settings in LocalState instead of Profile, so that proxy is used for SimpleURLLoaders as well. --- chrome/android/java/res/values/values.xml | 3 - chrome/android/java/res/xml/privacy_preferences.xml | 11 - chrome/android/java/src/org/chromium/chrome/browser/privacy/settings/PrivacySettings.java | 3 + chrome/android/java/res/xml/privacy_preferences.xml | 4 + chrome/android/java/src/org/chromium/chrome/browser/privacy/settings/PrivacySettings.java | 1 chrome/browser/autocomplete/chrome_autocomplete_provider_client.cc | 2 chrome/browser/browser_resources.grd | 6 chrome/browser/net/proxy_service_factory.cc | 23 @@ -33,7 +33,7 @@ for SimpleURLLoaders as well. components/proxy_config/proxy_config_dictionary.h | 7 net/proxy_resolution/proxy_config.cc | 52 + net/proxy_resolution/proxy_config.h | 3 - 24 files changed, 999 insertions(+), 18 deletions(-) + 24 files changed, 994 insertions(+), 14 deletions(-) create mode 100644 chrome/browser/resources/proxy_config.css create mode 100644 chrome/browser/resources/proxy_config.html create mode 100644 chrome/browser/resources/proxy_config.js @@ -42,7 +42,7 @@ for SimpleURLLoaders as well. --- a/chrome/android/java/res/values/values.xml +++ b/chrome/android/java/res/values/values.xml -@@ -32,6 +32,9 @@ +@@ -29,6 +29,9 @@ 0 1 @@ -54,56 +54,32 @@ for SimpleURLLoaders as well. 800 --- a/chrome/android/java/res/xml/privacy_preferences.xml +++ b/chrome/android/java/res/xml/privacy_preferences.xml -@@ -39,21 +39,26 @@ +@@ -38,6 +38,10 @@ + android:key="secure_dns" android:title="@string/settings_secure_dns_title" - android:fragment="org.chromium.chrome.browser.privacy.secure_dns.SecureDnsSettings" - android:order="5"/> + android:fragment="org.chromium.chrome.browser.privacy.secure_dns.SecureDnsSettings"/> + ++ app:url="@string/proxy_url"/> -+ android:order="7"/> - -+ android:order="8"/> - -+ android:order="9"/> - + android:fragment="org.chromium.chrome.browser.privacy.settings.DoNotTrackSettings" + android:key="do_not_track" --- 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 -@@ -57,10 +57,11 @@ public class PrivacySettings +@@ -57,6 +57,7 @@ public class PrivacySettings private static final String PREF_SAFE_BROWSING = "safe_browsing"; private static final String PREF_CLEAR_BROWSING_DATA = "clear_browsing_data"; private static final String PREF_CLOSE_TABS_ON_EXIT = "close_tabs_on_exit"; + private static final String PREF_PROXY_OPTIONS = "proxy"; private static final String PREF_PRIVACY_SANDBOX = "privacy_sandbox"; - private static final String[] NEW_PRIVACY_PREFERENCE_ORDER = {PREF_CLEAR_BROWSING_DATA, - PREF_SAFE_BROWSING, PREF_CAN_MAKE_PAYMENT, PREF_NETWORK_PREDICTIONS, PREF_USAGE_STATS, -- PREF_SECURE_DNS, PREF_CLOSE_TABS_ON_EXIT, PREF_DO_NOT_TRACK, PREF_PRIVACY_SANDBOX}; -+ PREF_SECURE_DNS, PREF_CLOSE_TABS_ON_EXIT, PREF_PROXY_OPTIONS, PREF_DO_NOT_TRACK, PREF_PRIVACY_SANDBOX}; private ManagedPreferenceDelegate mManagedPreferenceDelegate; - --- a/chrome/browser/autocomplete/chrome_autocomplete_provider_client.cc +++ b/chrome/browser/autocomplete/chrome_autocomplete_provider_client.cc -@@ -331,6 +331,8 @@ std::vector +@@ -343,6 +343,8 @@ std::vector ChromeAutocompleteProviderClient::GetBuiltinsToProvideAsUserTypes() { - std::vector builtins_to_provide; + std::vector builtins_to_provide; builtins_to_provide.push_back( + base::ASCIIToUTF16(chrome::kChromeUIProxyConfigURL)); + builtins_to_provide.push_back( @@ -112,7 +88,7 @@ for SimpleURLLoaders as well. builtins_to_provide.push_back( --- a/chrome/browser/browser_resources.grd +++ b/chrome/browser/browser_resources.grd -@@ -162,6 +162,12 @@ +@@ -88,6 +88,12 @@ @@ -189,7 +165,7 @@ for SimpleURLLoaders as well. }; --- a/chrome/browser/prefs/browser_prefs.cc +++ b/chrome/browser/prefs/browser_prefs.cc -@@ -155,6 +155,8 @@ +@@ -154,6 +154,8 @@ #include "printing/buildflags/buildflags.h" #include "rlz/buildflags/buildflags.h" @@ -198,7 +174,7 @@ for SimpleURLLoaders as well. #if BUILDFLAG(ENABLE_BACKGROUND_MODE) #include "chrome/browser/background/background_mode_manager.h" #endif -@@ -744,6 +746,8 @@ void RegisterLocalState(PrefRegistrySimp +@@ -742,6 +744,8 @@ void RegisterLocalState(PrefRegistrySimp PluginsResourceService::RegisterPrefs(registry); #endif @@ -209,7 +185,7 @@ for SimpleURLLoaders as well. --- a/chrome/browser/prefs/chrome_command_line_pref_store.cc +++ b/chrome/browser/prefs/chrome_command_line_pref_store.cc -@@ -153,7 +153,7 @@ void ChromeCommandLinePrefStore::ApplyPr +@@ -156,7 +156,7 @@ void ChromeCommandLinePrefStore::ApplyPr SetValue( proxy_config::prefs::kProxy, std::make_unique(ProxyConfigDictionary::CreateFixedServers( @@ -633,7 +609,7 @@ for SimpleURLLoaders as well. +})(); --- a/chrome/browser/ui/BUILD.gn +++ b/chrome/browser/ui/BUILD.gn -@@ -256,6 +256,8 @@ static_library("ui") { +@@ -257,6 +257,8 @@ static_library("ui") { "webui/metrics_handler.h", "webui/net_export_ui.cc", "webui/net_export_ui.h", @@ -644,7 +620,7 @@ for SimpleURLLoaders as well. "webui/ntp_tiles_internals_ui.cc", --- a/chrome/browser/ui/webui/chrome_web_ui_controller_factory.cc +++ b/chrome/browser/ui/webui/chrome_web_ui_controller_factory.cc -@@ -53,6 +53,7 @@ +@@ -52,6 +52,7 @@ #include "chrome/browser/ui/webui/omnibox/omnibox_ui.h" #include "chrome/browser/ui/webui/policy/policy_ui.h" #include "chrome/browser/ui/webui/predictors/predictors_ui.h" @@ -652,7 +628,7 @@ for SimpleURLLoaders as well. #include "chrome/browser/ui/webui/quota_internals/quota_internals_ui.h" #include "chrome/browser/ui/webui/signin_internals_ui.h" #include "chrome/browser/ui/webui/sync_internals/sync_internals_ui.h" -@@ -556,6 +557,8 @@ WebUIFactoryFunction GetWebUIFactoryFunc +@@ -574,6 +575,8 @@ WebUIFactoryFunction GetWebUIFactoryFunc return &NewWebUI; if (url.host_piece() == chrome::kChromeUINetExportHost) return &NewWebUI; @@ -1128,7 +1104,7 @@ for SimpleURLLoaders as well. const char kChromeUIChromeURLsHost[] = "chrome-urls"; const char kChromeUIChromeURLsURL[] = "chrome://chrome-urls/"; const char kChromeUIComponentsHost[] = "components"; -@@ -327,6 +329,7 @@ bool IsSystemWebUIHost(base::StringPiece +@@ -335,6 +337,7 @@ bool IsSystemWebUIHost(base::StringPiece kChromeUIMobileSetupHost, kChromeUIMultiDeviceSetupHost, kChromeUINetworkHost, @@ -1136,7 +1112,7 @@ for SimpleURLLoaders as well. kChromeUIOobeHost, kChromeUIOSCreditsHost, kChromeUIOSSettingsHost, -@@ -539,6 +542,7 @@ const char* const kChromeHostURLs[] = { +@@ -551,6 +554,7 @@ const char* const kChromeHostURLs[] = { #if !defined(OS_ANDROID) #if !BUILDFLAG(IS_CHROMEOS_ASH) kChromeUIAppLauncherPageHost, diff --git a/patches/Bromite/Add-bookmark-import-export-actions.patch b/patches/Bromite/Add-bookmark-import-export-actions.patch index 33f6694..2a4b5b7 100644 --- a/patches/Bromite/Add-bookmark-import-export-actions.patch +++ b/patches/Bromite/Add-bookmark-import-export-actions.patch @@ -16,13 +16,13 @@ Completely remove contacts picker permission from the file dialog chrome/android/java/src/org/chromium/chrome/browser/bookmarks/BookmarkBridge.java | 278 +++++++++ chrome/android/java/src/org/chromium/chrome/browser/bookmarks/BookmarkDelegate.java | 10 chrome/android/java/src/org/chromium/chrome/browser/bookmarks/BookmarkManager.java | 22 - chrome/android/java/src/org/chromium/chrome/browser/bookmarks/BookmarkPage.java | 9 + chrome/android/java/src/org/chromium/chrome/browser/bookmarks/BookmarkPage.java | 8 chrome/android/java/src/org/chromium/chrome/browser/native_page/NativePageFactory.java | 2 chrome/browser/BUILD.gn | 6 chrome/browser/about_flags.cc | 6 chrome/browser/android/bookmarks/bookmark_bridge.cc | 284 ++++++++++ chrome/browser/android/bookmarks/bookmark_bridge.h | 28 - chrome/browser/bookmarks/bookmark_html_writer.cc | 6 + chrome/browser/bookmarks/bookmark_html_writer.cc | 8 chrome/browser/download/android/java/src/org/chromium/chrome/browser/download/dialogs/DownloadLocationCustomView.java | 7 chrome/browser/download/android/java/src/org/chromium/chrome/browser/download/dialogs/DownloadLocationDialogCoordinator.java | 10 chrome/browser/flag_descriptions.cc | 5 @@ -38,12 +38,13 @@ Completely remove contacts picker permission from the file dialog chrome/utility/BUILD.gn | 7 chrome/utility/importer/bookmark_html_reader.cc | 27 chrome/utility/importer/bookmark_html_reader.h | 8 + content/browser/BUILD.gn | 1 ui/android/java/src/org/chromium/ui/base/SelectFileDialog.java | 18 ui/android/java/strings/android_ui_strings.grd | 3 ui/shell_dialogs/select_file_dialog.h | 2 ui/shell_dialogs/select_file_dialog_android.cc | 6 ui/shell_dialogs/select_file_dialog_android.h | 2 - 37 files changed, 877 insertions(+), 22 deletions(-) + 38 files changed, 878 insertions(+), 23 deletions(-) --- a/base/android/content_uri_utils.cc +++ b/base/android/content_uri_utils.cc @@ -127,7 +128,7 @@ Completely remove contacts picker permission from the file dialog * --- a/chrome/android/java/AndroidManifest.xml +++ b/chrome/android/java/AndroidManifest.xml -@@ -39,7 +39,6 @@ by a child template that "extends" this +@@ -38,7 +38,6 @@ by a child template that "extends" this {% endif %} @@ -221,7 +222,7 @@ Completely remove contacts picker permission from the file dialog static final int EDIT_BOOKMARK_REQUEST_CODE = 14; public static final String INTENT_VISIT_BOOKMARK_ID = "BookmarkEditActivity.VisitBookmarkId"; -@@ -38,6 +43,20 @@ public class BookmarkActivity extends Sn +@@ -40,6 +45,20 @@ public class BookmarkActivity extends Sn if (TextUtils.isEmpty(url)) url = UrlConstants.BOOKMARKS_URL; mBookmarkManager.updateForUrl(url); setContentView(mBookmarkManager.getView()); @@ -242,7 +243,7 @@ Completely remove contacts picker permission from the file dialog } @Override -@@ -54,6 +73,7 @@ public class BookmarkActivity extends Sn +@@ -56,6 +75,7 @@ public class BookmarkActivity extends Sn @Override protected void onActivityResult(int requestCode, int resultCode, Intent data) { super.onActivityResult(requestCode, resultCode, data); @@ -250,7 +251,7 @@ Completely remove contacts picker permission from the file dialog if (requestCode == EDIT_BOOKMARK_REQUEST_CODE && resultCode == RESULT_OK) { BookmarkId bookmarkId = BookmarkId.getBookmarkIdFromString(data.getStringExtra( INTENT_VISIT_BOOKMARK_ID)); -@@ -61,6 +81,14 @@ public class BookmarkActivity extends Sn +@@ -63,6 +83,14 @@ public class BookmarkActivity extends Sn } } @@ -622,7 +623,7 @@ Completely remove contacts picker permission from the file dialog private BookmarkUndoController mUndoController; private final ObserverList mUIObservers = new ObserverList<>(); private BasicNativePage mNativePage; -@@ -329,6 +333,14 @@ public class BookmarkManager +@@ -332,6 +336,14 @@ public class BookmarkManager } /** @@ -637,7 +638,7 @@ Completely remove contacts picker permission from the file dialog * @return Current URL representing the UI state of bookmark manager. If no state has been shown * yet in this session, on phone return last used state stored in preference; on tablet * return the url previously set by {@link #updateForUrl(String)}. -@@ -507,6 +519,16 @@ public class BookmarkManager +@@ -510,6 +522,16 @@ public class BookmarkManager } @Override @@ -666,16 +667,16 @@ Completely remove contacts picker permission from the file dialog /** * A native page holding a {@link BookmarkManager} on _tablet_. -@@ -29,11 +32,15 @@ public class BookmarkPage extends BasicN +@@ -29,12 +32,15 @@ public class BookmarkPage extends BasicN * @param host A NativePageHost to load urls. */ - public BookmarkPage( -- ComponentName componentName, SnackbarManager snackbarManager, NativePageHost host) { -+ ComponentName componentName, SnackbarManager snackbarManager, NativePageHost host, -+ ChromeActivity activity) { + public BookmarkPage(ComponentName componentName, SnackbarManager snackbarManager, +- boolean isIncognito, NativePageHost host) { ++ boolean isIncognito, NativePageHost host, ChromeActivity activity) { super(host); - mManager = new BookmarkManager(host.getContext(), componentName, false, snackbarManager); + mManager = new BookmarkManager( + host.getContext(), componentName, false, isIncognito, snackbarManager); mManager.setBasicNativePage(this); + mManager.setWindow(activity.getWindowAndroid(), + new ModalDialogManager( @@ -685,10 +686,10 @@ Completely remove contacts picker permission from the file dialog initWithView(mManager.getView()); --- a/chrome/android/java/src/org/chromium/chrome/browser/native_page/NativePageFactory.java +++ b/chrome/android/java/src/org/chromium/chrome/browser/native_page/NativePageFactory.java -@@ -96,7 +96,7 @@ public class NativePageFactory { - +@@ -100,7 +100,7 @@ public class NativePageFactory { protected NativePage buildBookmarksPage(Tab tab) { return new BookmarkPage(mActivity.getComponentName(), mActivity.getSnackbarManager(), + mActivity.getTabModelSelector().isIncognitoSelected(), - new TabShim(tab, mActivity)); + new TabShim(tab, mActivity), mActivity); } @@ -696,7 +697,7 @@ Completely remove contacts picker permission from the file dialog protected NativePage buildDownloadsPage(Tab tab) { --- a/chrome/browser/BUILD.gn +++ b/chrome/browser/BUILD.gn -@@ -1891,6 +1891,8 @@ static_library("browser") { +@@ -1838,6 +1838,8 @@ static_library("browser") { "webapps/chrome_webapps_client.h", "window_placement/window_placement_permission_context.cc", "window_placement/window_placement_permission_context.h", @@ -705,7 +706,7 @@ Completely remove contacts picker permission from the file dialog ] configs += [ -@@ -2978,6 +2980,8 @@ static_library("browser") { +@@ -2934,6 +2936,8 @@ static_library("browser") { "autofill/manual_filling_view_interface.h", "banners/android/chrome_app_banner_manager_android.cc", "banners/android/chrome_app_banner_manager_android.h", @@ -714,7 +715,7 @@ Completely remove contacts picker permission from the file dialog "browser_process_platform_part_android.cc", "browser_process_platform_part_android.h", "chrome_browser_field_trials_mobile.cc", -@@ -3472,8 +3476,6 @@ static_library("browser") { +@@ -3443,8 +3447,6 @@ static_library("browser") { "badging/badge_manager_factory.h", "banners/app_banner_manager_desktop.cc", "banners/app_banner_manager_desktop.h", @@ -725,9 +726,9 @@ Completely remove contacts picker permission from the file dialog "browsing_data/chrome_browsing_data_lifetime_manager_factory.cc", --- a/chrome/browser/about_flags.cc +++ b/chrome/browser/about_flags.cc -@@ -7297,6 +7297,12 @@ const FeatureEntry kFeatureEntries[] = { - FEATURE_VALUE_TYPE( - optimization_guide::features::kOptimizationGuideModelDownloading)}, +@@ -7299,6 +7299,12 @@ const FeatureEntry kFeatureEntries[] = { + FEATURE_VALUE_TYPE(features::kDesktopPWAsAppIconShortcutsMenuUI)}, + #endif + {"export-bookmarks-use-saf", + flag_descriptions::kBookmarksExportUseSafName, @@ -740,7 +741,7 @@ Completely remove contacts picker permission from the file dialog // Histograms" in tools/metrics/histograms/README.md (run the --- a/chrome/browser/android/bookmarks/bookmark_bridge.cc +++ b/chrome/browser/android/bookmarks/bookmark_bridge.cc -@@ -39,6 +39,7 @@ +@@ -38,6 +38,7 @@ #include "components/bookmarks/common/android/bookmark_type.h" #include "components/bookmarks/common/bookmark_pref_names.h" #include "components/bookmarks/managed/managed_bookmark_service.h" @@ -748,7 +749,7 @@ Completely remove contacts picker permission from the file dialog #include "components/dom_distiller/core/url_utils.h" #include "components/prefs/pref_service.h" #include "components/query_parser/query_parser.h" -@@ -48,6 +49,24 @@ +@@ -47,6 +48,24 @@ #include "content/public/browser/browser_thread.h" #include "content/public/browser/web_contents.h" @@ -773,7 +774,7 @@ Completely remove contacts picker permission from the file dialog using base::android::AttachCurrentThread; using base::android::ConvertUTF8ToJavaString; using base::android::ConvertUTF16ToJavaString; -@@ -64,8 +83,93 @@ using bookmarks::BookmarkNode; +@@ -63,8 +82,93 @@ using bookmarks::BookmarkNode; using bookmarks::BookmarkType; using content::BrowserThread; @@ -867,7 +868,7 @@ Completely remove contacts picker permission from the file dialog const int kInvalidId = -1; class BookmarkTitleComparer { -@@ -150,6 +254,10 @@ BookmarkBridge::~BookmarkBridge() { +@@ -149,6 +253,10 @@ BookmarkBridge::~BookmarkBridge() { if (partner_bookmarks_shim_) partner_bookmarks_shim_->RemoveObserver(this); reading_list_manager_->RemoveObserver(this); @@ -878,7 +879,7 @@ Completely remove contacts picker permission from the file dialog } void BookmarkBridge::Destroy(JNIEnv*, const JavaParamRef&) { -@@ -540,6 +648,182 @@ jint BookmarkBridge::GetTotalBookmarkCou +@@ -539,6 +647,182 @@ jint BookmarkBridge::GetTotalBookmarkCou return count; } @@ -898,15 +899,15 @@ Completely remove contacts picker permission from the file dialog + //NOTE: extension and description are not used on Android, thus not set + ui::SelectFileDialog::FileTypeInfo file_type_info; + -+ const std::vector v_accept_types = { base::UTF8ToUTF16("text/html") }; ++ const std::vector v_accept_types = { base::UTF8ToUTF16("text/html") }; + + // Android needs the original MIME types and an additional capture value. -+ std::pair, bool> accept_types = ++ std::pair, bool> accept_types = + std::make_pair(v_accept_types, /* use_media_capture */ false); + + select_file_dialog_->SelectFile( + ui::SelectFileDialog::SELECT_OPEN_FILE, -+ base::string16(), ++ std::u16string(), + export_path_, + &file_type_info, + 0, @@ -927,7 +928,7 @@ Completely remove contacts picker permission from the file dialog + ui::WindowAndroid::FromJavaWindowAndroid(java_window); + CHECK(window); + -+ base::string16 export_path = ++ std::u16string export_path = + base::android::ConvertJavaStringToUTF16(env, j_export_path); + + export_path_ = base::FilePath::FromUTF16Unsafe(export_path); @@ -946,9 +947,9 @@ Completely remove contacts picker permission from the file dialog + +// Attempts to create a TemplateURL from the provided data. |title| is optional. +// If TemplateURL creation fails, returns null. -+std::unique_ptr CreateTemplateURL(const base::string16& url, -+ const base::string16& keyword, -+ const base::string16& title) { ++std::unique_ptr CreateTemplateURL(const std::u16string& url, ++ const std::u16string& keyword, ++ const std::u16string& title) { + if (url.empty() || keyword.empty()) + return nullptr; + TemplateURLData data; @@ -1064,7 +1065,7 @@ Completely remove contacts picker permission from the file dialog --- a/chrome/browser/android/bookmarks/bookmark_bridge.h +++ b/chrome/browser/android/bookmarks/bookmark_bridge.h @@ -17,6 +17,7 @@ - #include "base/strings/string16.h" + #include "base/scoped_observer.h" #include "base/strings/utf_string_conversions.h" #include "chrome/browser/android/bookmarks/partner_bookmarks_shim.h" +#include "chrome/browser/bookmarks/bookmark_html_writer.h" @@ -1156,15 +1157,17 @@ Completely remove contacts picker permission from the file dialog #include "chrome/browser/bookmarks/bookmark_model_factory.h" #include "chrome/browser/favicon/favicon_service_factory.h" #include "chrome/browser/profiles/profile.h" -@@ -241,6 +242,11 @@ class Writer : public base::RefCountedTh +@@ -240,7 +241,12 @@ class Writer : public base::RefCountedTh + // Opens the file, returning true on success. bool OpenFile() { int flags = base::File::FLAG_CREATE_ALWAYS | base::File::FLAG_WRITE; - file_.reset(new base::File(path_, flags)); +- file_ = std::make_unique(path_, flags); + if (path_.IsContentUri()) { + file_ = std::make_unique(base::OpenContentUriForWrite(path_)); + } else { -+ file_.reset(new base::File(path_, flags)); ++ file_ = std::make_unique(path_, flags); + } ++ if (!file_->IsValid()) { PLOG(ERROR) << "Could not create " << path_; return false; @@ -1236,7 +1239,7 @@ Completely remove contacts picker permission from the file dialog // name conflict or disk error. --- a/chrome/browser/flag_descriptions.cc +++ b/chrome/browser/flag_descriptions.cc -@@ -5182,6 +5182,11 @@ const char kWebrtcPipeWireCapturerDescri +@@ -5229,6 +5229,11 @@ const char kWebrtcPipeWireCapturerDescri "capturing the desktop content on the Wayland display server."; #endif // #if defined(WEBRTC_USE_PIPEWIRE) @@ -1250,7 +1253,7 @@ Completely remove contacts picker permission from the file dialog // alphabetical order just like the header file. --- a/chrome/browser/flag_descriptions.h +++ b/chrome/browser/flag_descriptions.h -@@ -3054,6 +3054,9 @@ extern const char kWebrtcPipeWireCapture +@@ -3069,6 +3069,9 @@ extern const char kWebrtcPipeWireCapture extern const char kWebrtcPipeWireCapturerDescription[]; #endif // #if defined(WEBRTC_USE_PIPEWIRE) @@ -1262,8 +1265,8 @@ Completely remove contacts picker permission from the file dialog // alphabetical order. See top instructions for more. --- a/chrome/browser/flags/android/chrome_feature_list.cc +++ b/chrome/browser/flags/android/chrome_feature_list.cc -@@ -141,6 +141,7 @@ const base::Feature* kFeaturesExposedToJ - &kAppLaunchpad, +@@ -142,6 +142,7 @@ const base::Feature* kFeaturesExposedToJ + &kBackgroundThreadPool, &kBentoOffline, &kBookmarkBottomSheet, + &kBookmarksExportUseSaf, @@ -1283,7 +1286,7 @@ Completely remove contacts picker permission from the file dialog const JavaParamRef& jfeature_name) { --- a/chrome/browser/flags/android/chrome_feature_list.h +++ b/chrome/browser/flags/android/chrome_feature_list.h -@@ -155,6 +155,7 @@ extern const base::Feature kVoiceSearchA +@@ -157,6 +157,7 @@ extern const base::Feature kVoiceSearchA extern const base::Feature kVoiceButtonInTopToolbar; extern const base::Feature kVrBrowsingFeedback; extern const base::Feature kPrefetchNotificationSchedulingIntegration; @@ -1293,7 +1296,7 @@ Completely remove contacts picker permission from the file dialog } // namespace chrome --- 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 -@@ -493,6 +493,7 @@ public abstract class ChromeFeatureList +@@ -489,6 +489,7 @@ public abstract class ChromeFeatureList public static final String WEB_AUTH_PHONE_SUPPORT = "WebAuthenticationPhoneSupport"; public static final String WEB_FEED = "WebFeed"; public static final String XSURFACE_METRICS_REPORTING = "XsurfaceMetricsReporting"; @@ -1328,7 +1331,7 @@ Completely remove contacts picker permission from the file dialog +void ProfileWriter::AddBookmarksWithModel( + BookmarkModel* model, + const std::vector& bookmarks, -+ const base::string16& top_level_folder_name) { ++ const std::u16string& top_level_folder_name) { + if (bookmarks.empty()) + return; + @@ -1338,28 +1341,28 @@ Completely remove contacts picker permission from the file dialog --- a/chrome/browser/importer/profile_writer.h +++ b/chrome/browser/importer/profile_writer.h @@ -12,6 +12,7 @@ - #include "base/strings/string16.h" + #include "base/memory/ref_counted.h" #include "base/time/time.h" #include "build/build_config.h" +#include "components/bookmarks/browser/bookmark_model.h" #include "components/favicon_base/favicon_usage_data.h" #include "components/history/core/browser/history_types.h" #include "components/search_engines/template_url_service.h" -@@ -70,6 +71,11 @@ class ProfileWriter : public base::RefCo - const std::vector& bookmarks, - const base::string16& top_level_folder_name); +@@ -69,6 +70,11 @@ class ProfileWriter : public base::RefCo + virtual void AddBookmarks(const std::vector& bookmarks, + const std::u16string& top_level_folder_name); + virtual void AddBookmarksWithModel( + bookmarks::BookmarkModel* model, + const std::vector& bookmarks, -+ const base::string16& top_level_folder_name); ++ const std::u16string& top_level_folder_name); + virtual void AddFavicons(const favicon_base::FaviconUsageDataList& favicons); // Adds the TemplateURLs in |template_urls| to the local store. --- a/chrome/browser/preferences/android/java/src/org/chromium/chrome/browser/preferences/ChromePreferenceKeys.java +++ b/chrome/browser/preferences/android/java/src/org/chromium/chrome/browser/preferences/ChromePreferenceKeys.java -@@ -91,6 +91,8 @@ public final class ChromePreferenceKeys +@@ -109,6 +109,8 @@ public final class ChromePreferenceKeys public static final String BOOKMARKS_LAST_USED_URL = "enhanced_bookmark_last_used_url"; public static final String BOOKMARKS_LAST_USED_PARENT = "enhanced_bookmark_last_used_parent_folder"; @@ -1368,14 +1371,14 @@ Completely remove contacts picker permission from the file dialog /** * Whether Chrome is set as the default browser. -@@ -899,6 +901,7 @@ public final class ChromePreferenceKeys - AUTOFILL_ASSISTANT_NUMBER_OF_LITE_SCRIPTS_CANCELED, +@@ -976,6 +978,7 @@ public final class ChromePreferenceKeys AUTOFILL_ASSISTANT_PROACTIVE_HELP, - APPLICATION_OVERRIDE_LANGUAGE, + APP_LAUNCH_LAST_KNOWN_ACTIVE_TAB_STATE, + APP_LAUNCH_SEARCH_ENGINE_HAD_LOGO, + BOOKMARKS_LAST_EXPORT_URI, + APPLICATION_OVERRIDE_LANGUAGE, + CHROME_SURVEY_PROMPT_DISPLAYED_TIMESTAMP.pattern(), CLIPBOARD_SHARED_URI, - CONDITIONAL_TAB_STRIP_CONTINUOUS_DISMISS_COUNTER, - CONDITIONAL_TAB_STRIP_FEATURE_STATUS, --- a/chrome/browser/ui/android/strings/android_chrome_strings.grd +++ b/chrome/browser/ui/android/strings/android_chrome_strings.grd @@ -242,6 +242,24 @@ CHAR-LIMIT guidelines: @@ -1405,7 +1408,7 @@ Completely remove contacts picker permission from the file dialog --- a/chrome/common/BUILD.gn +++ b/chrome/common/BUILD.gn -@@ -403,6 +403,9 @@ static_library("common") { +@@ -405,6 +405,9 @@ static_library("common") { sources += [ "media/chrome_media_drm_bridge_client.cc", "media/chrome_media_drm_bridge_client.h", @@ -1417,7 +1420,7 @@ Completely remove contacts picker permission from the file dialog } else { --- a/chrome/utility/BUILD.gn +++ b/chrome/utility/BUILD.gn -@@ -79,8 +79,6 @@ static_library("utility") { +@@ -78,8 +78,6 @@ static_library("utility") { if (!is_android) { sources += [ @@ -1426,7 +1429,7 @@ Completely remove contacts picker permission from the file dialog "importer/bookmarks_file_importer.cc", "importer/bookmarks_file_importer.h", "importer/external_process_importer_bridge.cc", -@@ -180,6 +178,11 @@ static_library("utility") { +@@ -179,6 +177,11 @@ static_library("utility") { } } @@ -1499,7 +1502,7 @@ Completely remove contacts picker permission from the file dialog content, "\n", base::TRIM_WHITESPACE, base::SPLIT_WANT_ALL); @@ -126,6 +144,7 @@ void ImportBookmarksFile( - std::vector path; + std::vector path; size_t toolbar_folder_index = 0; std::string charset = "UTF-8"; // If no charset is specified, assume utf-8. + @@ -1521,7 +1524,7 @@ Completely remove contacts picker permission from the file dialog } --- a/chrome/utility/importer/bookmark_html_reader.h +++ b/chrome/utility/importer/bookmark_html_reader.h -@@ -51,6 +51,14 @@ void ImportBookmarksFile( +@@ -50,6 +50,14 @@ void ImportBookmarksFile( std::vector* search_engines, favicon_base::FaviconUsageDataList* favicons); @@ -1538,7 +1541,7 @@ Completely remove contacts picker permission from the file dialog // than true bookmarks. --- a/ui/android/java/src/org/chromium/ui/base/SelectFileDialog.java +++ b/ui/android/java/src/org/chromium/ui/base/SelectFileDialog.java -@@ -35,6 +35,7 @@ import org.chromium.base.task.AsyncTask; +@@ -38,6 +38,7 @@ import org.chromium.base.task.AsyncTask; import org.chromium.base.task.PostTask; import org.chromium.base.task.TaskTraits; import org.chromium.ui.R; @@ -1546,7 +1549,7 @@ Completely remove contacts picker permission from the file dialog import org.chromium.ui.UiUtils; import java.io.File; -@@ -53,6 +54,7 @@ public class SelectFileDialog implements +@@ -56,6 +57,7 @@ public class SelectFileDialog implements private static final String TAG = "SelectFileDialog"; private static final String IMAGE_TYPE = "image"; private static final String VIDEO_TYPE = "video"; @@ -1554,7 +1557,7 @@ Completely remove contacts picker permission from the file dialog private static final String AUDIO_TYPE = "audio"; private static final String ALL_TYPES = "*/*"; -@@ -143,6 +145,11 @@ public class SelectFileDialog implements +@@ -239,6 +241,11 @@ public class SelectFileDialog implements mFileTypes = fileTypes; } @@ -1566,7 +1569,7 @@ Completely remove contacts picker permission from the file dialog /** * Creates and starts an intent based on the passed fileTypes and capture value. * @param fileTypes MIME types requested (i.e. "image/*") -@@ -170,7 +177,7 @@ public class SelectFileDialog implements +@@ -266,7 +273,7 @@ public class SelectFileDialog implements List missingPermissions = new ArrayList<>(); String storagePermission = Manifest.permission.READ_EXTERNAL_STORAGE; boolean shouldUsePhotoPicker = shouldUsePhotoPicker(); @@ -1575,7 +1578,7 @@ Completely remove contacts picker permission from the file dialog if (!window.hasPermission(storagePermission)) missingPermissions.add(storagePermission); } else { if (((mSupportsImageCapture && shouldShowImageTypes()) -@@ -198,7 +205,7 @@ public class SelectFileDialog implements +@@ -294,7 +301,7 @@ public class SelectFileDialog implements } // TODO(finnur): Remove once we figure out the cause of crbug.com/950024. @@ -1584,7 +1587,7 @@ Completely remove contacts picker permission from the file dialog if (permissions.length != requestPermissions.length) { throw new RuntimeException( String.format("Permissions arrays misaligned: %d != %d", -@@ -212,7 +219,7 @@ public class SelectFileDialog implements +@@ -308,7 +315,7 @@ public class SelectFileDialog implements } } @@ -1593,7 +1596,7 @@ Completely remove contacts picker permission from the file dialog onFileNotSelected(); return; } -@@ -358,6 +365,7 @@ public class SelectFileDialog implements +@@ -504,6 +511,7 @@ public class SelectFileDialog implements } if (!mimeTypes.contains(mimeType)) mimeTypes.add(mimeType); } @@ -1601,7 +1604,7 @@ Completely remove contacts picker permission from the file dialog return mimeTypes; } -@@ -659,6 +667,10 @@ public class SelectFileDialog implements +@@ -792,6 +800,10 @@ public class SelectFileDialog implements return countAcceptTypesFor(superType) == mFileTypes.size(); } @@ -1626,7 +1629,7 @@ Completely remove contacts picker permission from the file dialog --- a/ui/shell_dialogs/select_file_dialog.h +++ b/ui/shell_dialogs/select_file_dialog.h -@@ -204,6 +204,8 @@ class SHELL_DIALOGS_EXPORT SelectFileDia +@@ -203,6 +203,8 @@ class SHELL_DIALOGS_EXPORT SelectFileDia void* params); bool HasMultipleFileTypeChoices(); @@ -1661,3 +1664,13 @@ Completely remove contacts picker permission from the file dialog protected: ~SelectFileDialogImpl() override; +--- a/content/browser/BUILD.gn ++++ b/content/browser/BUILD.gn +@@ -78,6 +78,7 @@ source_set("browser") { + "//components/payments/mojom", + "//components/power_scheduler", + "//components/services/filesystem:lib", ++ "//components/services/quarantine:quarantine", + "//components/services/storage", + "//components/services/storage:filesystem_proxy_factory", + "//components/services/storage/dom_storage:local_storage_proto", diff --git a/patches/Bromite/Add-exit-menu-item.patch b/patches/Bromite/Add-exit-menu-item.patch index 45f3e8d..5988cee 100644 --- a/patches/Bromite/Add-exit-menu-item.patch +++ b/patches/Bromite/Add-exit-menu-item.patch @@ -13,8 +13,8 @@ Corrected Exit functionality --- a/chrome/android/java/res/menu/main_menu.xml +++ b/chrome/android/java/res/menu/main_menu.xml -@@ -119,6 +119,9 @@ - android:icon="@drawable/vr_headset" /> +@@ -115,6 +115,9 @@ + android:icon="@drawable/gm_filled_cardboard_24" /> + -@@ -145,6 +148,9 @@ +@@ -141,6 +144,9 @@ @@ -35,7 +35,7 @@ Corrected Exit functionality --- a/chrome/android/java/src/org/chromium/chrome/browser/ChromeTabbedActivity.java +++ b/chrome/android/java/src/org/chromium/chrome/browser/ChromeTabbedActivity.java -@@ -191,6 +191,8 @@ import java.lang.annotation.RetentionPol +@@ -198,6 +198,8 @@ import java.lang.annotation.RetentionPol import java.util.List; import java.util.Locale; @@ -44,7 +44,7 @@ Corrected Exit functionality /** * This is the main activity for ChromeMobile when not running in document mode. All the tabs * are accessible via a chrome specific tab switching UI. -@@ -1858,6 +1860,8 @@ public class ChromeTabbedActivity extend +@@ -1907,6 +1909,8 @@ public class ChromeTabbedActivity extend } else if (id == R.id.close_tab) { getCurrentTabModel().closeTab(currentTab, true, false, true); RecordUserAction.record("MobileTabClosed"); @@ -55,15 +55,15 @@ Corrected Exit functionality getTabModelSelector().closeAllTabs(); --- a/chrome/android/java/src/org/chromium/chrome/browser/app/ChromeActivity.java +++ b/chrome/android/java/src/org/chromium/chrome/browser/app/ChromeActivity.java -@@ -57,6 +57,7 @@ import org.chromium.base.supplier.Unowne +@@ -58,6 +58,7 @@ import org.chromium.base.supplier.Unowne import org.chromium.chrome.R; import org.chromium.chrome.browser.ActivityTabProvider; import org.chromium.chrome.browser.AppHooks; +import org.chromium.chrome.browser.ApplicationLifetime; import org.chromium.chrome.browser.ChromeActivitySessionTracker; - import org.chromium.chrome.browser.ChromeApplication; - import org.chromium.chrome.browser.ChromeWindow; -@@ -2200,6 +2201,11 @@ public abstract class ChromeActivity Settings diff --git a/patches/Bromite/Add-flag-to-disable-WebGL.patch b/patches/Bromite/Add-flag-to-disable-WebGL.patch index 1d1974c..8fe145d 100644 --- a/patches/Bromite/Add-flag-to-disable-WebGL.patch +++ b/patches/Bromite/Add-flag-to-disable-WebGL.patch @@ -10,7 +10,7 @@ Subject: Add flag to disable WebGL --- a/chrome/browser/about_flags.cc +++ b/chrome/browser/about_flags.cc -@@ -2625,6 +2625,9 @@ const FeatureEntry kFeatureEntries[] = { +@@ -2606,6 +2606,9 @@ const FeatureEntry kFeatureEntries[] = { flag_descriptions::kAccelerated2dCanvasName, flag_descriptions::kAccelerated2dCanvasDescription, kOsAll, SINGLE_DISABLE_VALUE_TYPE(switches::kDisableAccelerated2dCanvas)}, @@ -22,7 +22,7 @@ Subject: Add flag to disable WebGL SINGLE_VALUE_TYPE(cc::switches::kShowCompositedLayerBorders)}, --- a/chrome/browser/flag_descriptions.cc +++ b/chrome/browser/flag_descriptions.cc -@@ -562,6 +562,10 @@ const char kEnableAudioFocusEnforcementN +@@ -584,6 +584,10 @@ const char kEnableAudioFocusEnforcementN const char kEnableAudioFocusEnforcementDescription[] = "Enables enforcement of a single media session having audio focus at " "any one time. Requires #enable-media-session-service to be enabled too."; @@ -35,7 +35,7 @@ Subject: Add flag to disable WebGL "Enable the account data storage for autofill"; --- a/chrome/browser/flag_descriptions.h +++ b/chrome/browser/flag_descriptions.h -@@ -347,6 +347,9 @@ extern const char kDisallowDocWrittenScr +@@ -357,6 +357,9 @@ extern const char kDocumentTransitionDes extern const char kEnableAccessibilityObjectModelName[]; extern const char kEnableAccessibilityObjectModelDescription[]; diff --git a/patches/Bromite/Add-flags-to-disable-device-motion-orientation-APIs.patch b/patches/Bromite/Add-flags-to-disable-device-motion-orientation-APIs.patch index db359ad..d8559aa 100644 --- a/patches/Bromite/Add-flags-to-disable-device-motion-orientation-APIs.patch +++ b/patches/Bromite/Add-flags-to-disable-device-motion-orientation-APIs.patch @@ -19,7 +19,7 @@ legacy acceleration events. --- a/chrome/browser/about_flags.cc +++ b/chrome/browser/about_flags.cc -@@ -2851,6 +2851,12 @@ const FeatureEntry kFeatureEntries[] = { +@@ -2838,6 +2838,12 @@ const FeatureEntry kFeatureEntries[] = { {"enable-gpu-rasterization", flag_descriptions::kGpuRasterizationName, flag_descriptions::kGpuRasterizationDescription, kOsAll, MULTI_VALUE_TYPE(kEnableGpuRasterizationChoices)}, @@ -34,9 +34,9 @@ legacy acceleration events. MULTI_VALUE_TYPE(kEnableOopRasterizationChoices)}, --- a/chrome/browser/flag_descriptions.cc +++ b/chrome/browser/flag_descriptions.cc -@@ -821,6 +821,14 @@ const char kWinrtSensorsImplementationDe - "Enables usage of the Windows.Devices.Sensors WinRT APIs on Windows for " - "sensors"; +@@ -844,6 +844,14 @@ const char kWinrtGeolocationImplementati + "Enables usage of the Windows.Devices.Geolocation WinRT APIs on Windows " + "for geolocation"; +const char kEnableDeviceMotionName[] = "Enable device motion"; +const char kEnableDeviceMotionDescription[] = @@ -51,9 +51,9 @@ legacy acceleration events. const char kEnableGenericSensorExtraClassesDescription[] = --- a/chrome/browser/flag_descriptions.h +++ b/chrome/browser/flag_descriptions.h -@@ -494,6 +494,12 @@ extern const char kWinrtGeolocationImple - extern const char kWinrtSensorsImplementationName[]; - extern const char kWinrtSensorsImplementationDescription[]; +@@ -505,6 +505,12 @@ extern const char kNotificationsViaHelpe + extern const char kWinrtGeolocationImplementationName[]; + extern const char kWinrtGeolocationImplementationDescription[]; +extern const char kEnableDeviceMotionName[]; +extern const char kEnableDeviceMotionDescription[]; @@ -78,7 +78,7 @@ legacy acceleration events. #else --- a/content/public/common/content_features.cc +++ b/content/public/common/content_features.cc -@@ -886,6 +886,16 @@ const base::Feature kWebOtpBackendAuto{" +@@ -890,6 +890,16 @@ const base::Feature kWebOtpBackendAuto{" // The JavaScript API for payments on the web. const base::Feature kWebPayments{"WebPayments", base::FEATURE_ENABLED_BY_DEFAULT}; @@ -97,7 +97,7 @@ legacy acceleration events. const base::Feature kWebPaymentsMinimalUI{"WebPaymentsMinimalUI", --- a/content/public/common/content_features.h +++ b/content/public/common/content_features.h -@@ -209,6 +209,8 @@ CONTENT_EXPORT extern const base::Featur +@@ -212,6 +212,8 @@ CONTENT_EXPORT extern const base::Featur CONTENT_EXPORT extern const base::Feature kWebXrHitTest; CONTENT_EXPORT extern const base::Feature kWebXrIncubations; @@ -108,7 +108,7 @@ legacy acceleration events. CONTENT_EXPORT extern const base::Feature --- a/third_party/blink/public/platform/web_runtime_features.h +++ b/third_party/blink/public/platform/web_runtime_features.h -@@ -100,6 +100,8 @@ class WebRuntimeFeatures { +@@ -97,6 +97,8 @@ class WebRuntimeFeatures { BLINK_PLATFORM_EXPORT static void EnableCookiesWithoutSameSiteMustBeSecure( bool); BLINK_PLATFORM_EXPORT static void EnableCanvas2dImageChromium(bool); @@ -119,7 +119,7 @@ legacy acceleration events. BLINK_PLATFORM_EXPORT static void EnableSameSiteByDefaultCookies(bool); --- a/third_party/blink/renderer/modules/modules_initializer.cc +++ b/third_party/blink/renderer/modules/modules_initializer.cc -@@ -222,9 +222,13 @@ void ModulesInitializer::OnClearWindowOb +@@ -231,9 +231,13 @@ void ModulesInitializer::OnClearWindowOb Document& document, const Settings& settings) const { LocalDOMWindow& window = *document.domWindow(); @@ -138,7 +138,7 @@ legacy acceleration events. // TODO(nhiroki): Figure out why ServiceWorkerContainer needs to be eagerly --- a/third_party/blink/renderer/platform/exported/web_runtime_features.cc +++ b/third_party/blink/renderer/platform/exported/web_runtime_features.cc -@@ -195,6 +195,14 @@ void WebRuntimeFeatures::EnableKeyboardA +@@ -187,6 +187,14 @@ void WebRuntimeFeatures::EnableKeyboardA RuntimeEnabledFeatures::SetKeyboardAccessibleTooltipEnabled(enable); } @@ -155,7 +155,7 @@ legacy acceleration events. } --- a/third_party/blink/renderer/platform/runtime_enabled_features.json5 +++ b/third_party/blink/renderer/platform/runtime_enabled_features.json5 -@@ -1438,6 +1438,14 @@ +@@ -1424,6 +1424,14 @@ status: "experimental", }, { diff --git a/patches/Bromite/Add-option-to-not-persist-tabs-across-sessions.patch b/patches/Bromite/Add-option-to-not-persist-tabs-across-sessions.patch index 6b4090a..1a150ea 100644 --- a/patches/Bromite/Add-option-to-not-persist-tabs-across-sessions.patch +++ b/patches/Bromite/Add-option-to-not-persist-tabs-across-sessions.patch @@ -3,60 +3,29 @@ Date: Sat, 7 Sep 2019 15:07:42 +0200 Subject: Add option to not persist tabs across sessions --- - chrome/android/java/res/xml/privacy_preferences.xml | 16 ++++++--- - chrome/android/java/src/org/chromium/chrome/browser/ChromeTabbedActivity.java | 4 +- - chrome/android/java/src/org/chromium/chrome/browser/privacy/settings/PrivacySettings.java | 17 ++++++++-- - chrome/browser/ui/android/strings/android_chrome_strings.grd | 6 +++ - 4 files changed, 35 insertions(+), 8 deletions(-) + chrome/android/java/res/xml/privacy_preferences.xml | 5 +++ + chrome/android/java/src/org/chromium/chrome/browser/ChromeTabbedActivity.java | 4 ++ + chrome/android/java/src/org/chromium/chrome/browser/privacy/settings/PrivacySettings.java | 15 +++++++++- + chrome/browser/ui/android/strings/android_chrome_strings.grd | 6 ++++ + 4 files changed, 28 insertions(+), 2 deletions(-) --- a/chrome/android/java/res/xml/privacy_preferences.xml +++ b/chrome/android/java/res/xml/privacy_preferences.xml -@@ -23,31 +23,37 @@ +@@ -29,6 +29,11 @@ + android:key="usage_stats_reporting" android:title="@string/usage_stats_setting_title" - android:persistent="false" - android:order="2"/> + android:persistent="false"/> + - -+ android:order="4"/> ++ android:defaultValue="false"/> -+ android:order="5"/> - -+ android:order="6"/> - -+ android:order="7"/> - -+ android:order="8"/> - --- a/chrome/android/java/src/org/chromium/chrome/browser/ChromeTabbedActivity.java +++ b/chrome/android/java/src/org/chromium/chrome/browser/ChromeTabbedActivity.java -@@ -1129,8 +1129,10 @@ public class ChromeTabbedActivity extend +@@ -1150,8 +1150,10 @@ public class ChromeTabbedActivity extend boolean hadCipherData = CipherFactory.getInstance().restoreFromBundle(getSavedInstanceState()); @@ -87,20 +56,15 @@ Subject: Add option to not persist tabs across sessions import org.chromium.chrome.R; import org.chromium.chrome.browser.feedback.HelpAndFeedbackLauncherImpl; import org.chromium.chrome.browser.flags.ChromeFeatureList; -@@ -53,10 +56,11 @@ public class PrivacySettings +@@ -53,6 +56,7 @@ public class PrivacySettings private static final String PREF_DO_NOT_TRACK = "do_not_track"; private static final String PREF_SAFE_BROWSING = "safe_browsing"; private static final String PREF_CLEAR_BROWSING_DATA = "clear_browsing_data"; + private static final String PREF_CLOSE_TABS_ON_EXIT = "close_tabs_on_exit"; private static final String PREF_PRIVACY_SANDBOX = "privacy_sandbox"; - private static final String[] NEW_PRIVACY_PREFERENCE_ORDER = {PREF_CLEAR_BROWSING_DATA, - PREF_SAFE_BROWSING, PREF_CAN_MAKE_PAYMENT, PREF_NETWORK_PREDICTIONS, PREF_USAGE_STATS, -- PREF_SECURE_DNS, PREF_DO_NOT_TRACK, PREF_PRIVACY_SANDBOX}; -+ PREF_SECURE_DNS, PREF_CLOSE_TABS_ON_EXIT, PREF_DO_NOT_TRACK, PREF_PRIVACY_SANDBOX}; private ManagedPreferenceDelegate mManagedPreferenceDelegate; - -@@ -166,7 +170,11 @@ public class PrivacySettings +@@ -145,7 +149,11 @@ public class PrivacySettings @Override public boolean onPreferenceChange(Preference preference, Object newValue) { String key = preference.getKey(); @@ -113,7 +77,7 @@ Subject: Add option to not persist tabs across sessions UserPrefs.get(Profile.getLastUsedRegularProfile()) .setBoolean(Pref.CAN_MAKE_PAYMENT_ENABLED, (boolean) newValue); } else if (PREF_NETWORK_PREDICTIONS.equals(key)) { -@@ -236,6 +244,11 @@ public class PrivacySettings +@@ -215,6 +223,11 @@ public class PrivacySettings privacySandboxPreference.setSummary( PrivacySandboxSettingsFragment.getStatusString(getContext())); } @@ -127,7 +91,7 @@ Subject: Add option to not persist tabs across sessions private ChromeManagedPreferenceDelegate createManagedPreferenceDelegate() { --- a/chrome/browser/ui/android/strings/android_chrome_strings.grd +++ b/chrome/browser/ui/android/strings/android_chrome_strings.grd -@@ -3815,6 +3815,12 @@ Data from your Incognito session will on +@@ -3923,6 +3923,12 @@ Data from your Incognito session will on IMAGE diff --git a/patches/Bromite/Change-default-webRTC-policy-to-not-use-any-address.patch b/patches/Bromite/Change-default-webRTC-policy-to-not-use-any-address.patch index 15c17b6..2519749 100644 --- a/patches/Bromite/Change-default-webRTC-policy-to-not-use-any-address.patch +++ b/patches/Bromite/Change-default-webRTC-policy-to-not-use-any-address.patch @@ -11,7 +11,7 @@ See also: https://github.com/bromite/bromite/issues/553 --- a/third_party/blink/renderer/modules/peerconnection/peer_connection_dependency_factory.cc +++ b/third_party/blink/renderer/modules/peerconnection/peer_connection_dependency_factory.cc -@@ -462,12 +462,13 @@ PeerConnectionDependencyFactory::CreateP +@@ -466,12 +466,13 @@ PeerConnectionDependencyFactory::CreateP port_config.enable_nonproxied_udp = false; break; case DEFAULT: diff --git a/patches/Bromite/Disable-DRM-media-origin-IDs-preprovisioning.patch b/patches/Bromite/Disable-DRM-media-origin-IDs-preprovisioning.patch index 6447f88..a7069c6 100644 --- a/patches/Bromite/Disable-DRM-media-origin-IDs-preprovisioning.patch +++ b/patches/Bromite/Disable-DRM-media-origin-IDs-preprovisioning.patch @@ -8,7 +8,7 @@ Subject: Disable DRM media origin IDs preprovisioning --- a/media/base/media_switches.cc +++ b/media/base/media_switches.cc -@@ -615,7 +615,7 @@ const base::Feature kMediaDrmPersistentL +@@ -622,7 +622,7 @@ const base::Feature kMediaDrmPersistentL // MediaDrmBridge. If disabled, MediaDrmBridge will get unprovisioned origin IDs // which will trigger provisioning process after MediaDrmBridge is created. const base::Feature kMediaDrmPreprovisioning{"MediaDrmPreprovisioning", diff --git a/patches/Bromite/DoH-secure-mode-by-default.patch b/patches/Bromite/DoH-secure-mode-by-default.patch index 82c0a2d..9318dd3 100644 --- a/patches/Bromite/DoH-secure-mode-by-default.patch +++ b/patches/Bromite/DoH-secure-mode-by-default.patch @@ -3,13 +3,13 @@ Date: Sat, 26 Sep 2020 14:23:19 +0100 Subject: DoH secure mode by default --- - .../browser/net/stub_resolver_config_reader.cc | 17 +---------------- - 1 file changed, 1 insertion(+), 16 deletions(-) + chrome/android/java/src/org/chromium/chrome/browser/policy/EnterpriseInfo.java | 2 - + chrome/browser/net/stub_resolver_config_reader.cc | 17 ---------- + 2 files changed, 2 insertions(+), 17 deletions(-) -diff --git a/chrome/browser/net/stub_resolver_config_reader.cc b/chrome/browser/net/stub_resolver_config_reader.cc --- a/chrome/browser/net/stub_resolver_config_reader.cc +++ b/chrome/browser/net/stub_resolver_config_reader.cc -@@ -154,7 +154,7 @@ StubResolverConfigReader::StubResolverConfigReader(PrefService* local_state, +@@ -154,7 +154,7 @@ StubResolverConfigReader::StubResolverCo if (entries.count("dns-over-https@1")) { // The user has "Enabled" selected. local_state_->SetString(prefs::kDnsOverHttpsMode, @@ -18,7 +18,7 @@ diff --git a/chrome/browser/net/stub_resolver_config_reader.cc b/chrome/browser/ } else if (entries.count("dns-over-https@2")) { // The user has "Disabled" selected. local_state_->SetString(prefs::kDnsOverHttpsMode, -@@ -328,22 +328,7 @@ SecureDnsConfig StubResolverConfigReader::GetAndUpdateConfiguration( +@@ -328,22 +328,7 @@ SecureDnsConfig StubResolverConfigReader check_parental_controls = false; } @@ -41,6 +41,14 @@ diff --git a/chrome/browser/net/stub_resolver_config_reader.cc b/chrome/browser/ parental_controls_checked_ = true; } --- -2.17.1 - +--- a/chrome/android/java/src/org/chromium/chrome/browser/policy/EnterpriseInfo.java ++++ b/chrome/android/java/src/org/chromium/chrome/browser/policy/EnterpriseInfo.java +@@ -43,7 +43,7 @@ public class EnterpriseInfo { + private OwnedState mOwnedState; + private Queue> mCallbackList; + +- private boolean mSkipAsyncCheckForTesting; ++ private boolean mSkipAsyncCheckForTesting = true; + + /** A simple tuple to hold onto named fields about the state of ownership. */ + public static class OwnedState { diff --git a/patches/Bromite/Inject-scripts-for-AMP-tracking-ads-and-video.patch b/patches/Bromite/Inject-scripts-for-AMP-tracking-ads-and-video.patch index 1180c08..1f80fa0 100644 --- a/patches/Bromite/Inject-scripts-for-AMP-tracking-ads-and-video.patch +++ b/patches/Bromite/Inject-scripts-for-AMP-tracking-ads-and-video.patch @@ -38,8 +38,8 @@ Send a random key press to circumvent idle status detection +#include "extensions/video_bg_play.h" #include "third_party/blink/renderer/core/page/scrolling/snap_coordinator.h" #include "third_party/blink/renderer/core/page/scrolling/text_fragment_anchor.h" - #include "third_party/blink/renderer/core/page/scrolling/text_fragment_selector_generator.h" -@@ -341,6 +342,8 @@ + #include "third_party/blink/renderer/core/page/scrolling/text_fragment_handler.h" +@@ -344,6 +345,8 @@ #include "third_party/blink/renderer/platform/wtf/text/string_buffer.h" #include "third_party/blink/renderer/platform/wtf/text/text_encoding_registry.h" @@ -48,7 +48,7 @@ Send a random key press to circumvent idle status detection #ifndef NDEBUG using WeakDocumentSet = blink::HeapHashSet>; static WeakDocumentSet& liveDocumentSet(); -@@ -6868,6 +6871,61 @@ void Document::setAllowDeclarativeShadow +@@ -6879,6 +6882,61 @@ void Document::setAllowDeclarativeShadow val ? AllowState::kAllow : AllowState::kDeny; } @@ -110,19 +110,19 @@ Send a random key press to circumvent idle status detection void Document::FinishedParsing() { DCHECK(!GetScriptableDocumentParser() || !parser_->IsParsing()); DCHECK(!GetScriptableDocumentParser() || ready_state_ != kLoading); -@@ -6920,6 +6978,9 @@ void Document::FinishedParsing() { +@@ -6931,6 +6989,9 @@ void Document::FinishedParsing() { frame->Loader().FinishedParsing(); + if (!IsPrefetchOnly()) { + injectScripts(); + } - TRACE_EVENT_INSTANT1("devtools.timeline", "MarkDOMContent", - TRACE_EVENT_SCOPE_THREAD, "data", - inspector_mark_load_event::Data(frame)); + DEVTOOLS_TIMELINE_TRACE_EVENT_INSTANT( + "MarkDOMContent", inspector_mark_load_event::Data, frame); + probe::DomContentLoadedEventFired(frame); --- a/third_party/blink/renderer/core/dom/document.h +++ b/third_party/blink/renderer/core/dom/document.h -@@ -1725,6 +1725,9 @@ class CORE_EXPORT Document : public Cont +@@ -1730,6 +1730,9 @@ class CORE_EXPORT Document : public Cont void AddAXContext(AXContext*); void RemoveAXContext(AXContext*); diff --git a/patches/Bromite/Remove-account-permissions-from-manifest.patch b/patches/Bromite/Remove-account-permissions-from-manifest.patch index 0a2b315..e650d34 100644 --- a/patches/Bromite/Remove-account-permissions-from-manifest.patch +++ b/patches/Bromite/Remove-account-permissions-from-manifest.patch @@ -9,7 +9,7 @@ Subject: Remove all sync and account permissions/features from manifest --- a/chrome/android/java/AndroidManifest.xml +++ b/chrome/android/java/AndroidManifest.xml -@@ -47,24 +47,18 @@ by a child template that "extends" this +@@ -46,24 +46,18 @@ by a child template that "extends" this @@ -34,8 +34,8 @@ Subject: Remove all sync and account permissions/features from manifest {% set enable_vr = enable_vr|default(0) %} {% if enable_vr == "true" %} -@@ -101,8 +95,6 @@ by a child template that "extends" this - +@@ -98,8 +92,6 @@ by a child template that "extends" this + - diff --git a/patches/Bromite/Revert-flags-remove-disable-pull-to-refresh-effect.patch b/patches/Bromite/Revert-flags-remove-disable-pull-to-refresh-effect.patch index 7025732..10a65ec 100644 --- a/patches/Bromite/Revert-flags-remove-disable-pull-to-refresh-effect.patch +++ b/patches/Bromite/Revert-flags-remove-disable-pull-to-refresh-effect.patch @@ -12,7 +12,7 @@ This reverts commit 4e598f38a0e6dd3dbede009c6a99b2a520a94e1f. --- a/chrome/browser/about_flags.cc +++ b/chrome/browser/about_flags.cc -@@ -3267,6 +3267,10 @@ const FeatureEntry kFeatureEntries[] = { +@@ -3257,6 +3257,10 @@ const FeatureEntry kFeatureEntries[] = { SINGLE_VALUE_TYPE(switches::kHostedAppQuitNotification)}, #endif // OS_MAC #if defined(OS_ANDROID) @@ -25,7 +25,7 @@ This reverts commit 4e598f38a0e6dd3dbede009c6a99b2a520a94e1f. flag_descriptions::kTranslateForceTriggerOnEnglishDescription, kOsAndroid, --- a/chrome/browser/flag-metadata.json +++ b/chrome/browser/flag-metadata.json -@@ -1097,6 +1097,11 @@ +@@ -1108,6 +1108,11 @@ "expiry_milestone": -1 }, { @@ -39,7 +39,7 @@ This reverts commit 4e598f38a0e6dd3dbede009c6a99b2a520a94e1f. "expiry_milestone": 83 --- a/chrome/browser/flag_descriptions.cc +++ b/chrome/browser/flag_descriptions.cc -@@ -3240,6 +3240,10 @@ const char kReadLaterDescription[] = +@@ -3305,6 +3305,10 @@ const char kReadLaterDescription[] = "Allow users to save tabs for later. Enables a new button and menu for " "accessing tabs saved for later."; @@ -52,7 +52,7 @@ This reverts commit 4e598f38a0e6dd3dbede009c6a99b2a520a94e1f. "Determines what pages the Reader Mode infobar is shown on."; --- a/chrome/browser/flag_descriptions.h +++ b/chrome/browser/flag_descriptions.h -@@ -1876,6 +1876,9 @@ extern const char kQueryTilesMoreTrendin +@@ -1911,6 +1911,9 @@ extern const char kQueryTilesMoreTrendin extern const char kQueryTilesSwapTrendingName[]; extern const char kQueryTilesSwapTrendingDescription[]; diff --git a/patches/Other/debug-fix.patch b/patches/Other/debug-fix.patch index 70fc136..15f374b 100644 --- a/patches/Other/debug-fix.patch +++ b/patches/Other/debug-fix.patch @@ -20,7 +20,7 @@ Subject: Remove DCHECK and other lines causing Debug builds to fail --- a/components/signin/internal/identity_manager/primary_account_manager.cc +++ b/components/signin/internal/identity_manager/primary_account_manager.cc -@@ -130,18 +130,6 @@ void PrimaryAccountManager::SetSyncPrima +@@ -135,18 +135,6 @@ void PrimaryAccountManager::SetSyncPrima DCHECK(!account_info.account_id.empty()); DCHECK(!HasPrimaryAccount(signin::ConsentLevel::kSync)); @@ -41,7 +41,7 @@ Subject: Remove DCHECK and other lines causing Debug builds to fail --- a/build/config/compiler/BUILD.gn +++ b/build/config/compiler/BUILD.gn -@@ -237,7 +237,7 @@ config("compiler") { +@@ -243,7 +243,7 @@ config("compiler") { cflags_cc = [] cflags_objc = [] cflags_objcc = [] @@ -50,7 +50,7 @@ Subject: Remove DCHECK and other lines causing Debug builds to fail defines = [] configs = [] -@@ -1806,7 +1806,7 @@ config("no_rtti") { +@@ -1809,7 +1809,7 @@ config("no_rtti") { # to heap-allocated memory are passed over shared library boundaries. config("export_dynamic") { # TODO(crbug.com/1052397): Revisit after target_os flip is completed. @@ -59,8 +59,8 @@ Subject: Remove DCHECK and other lines causing Debug builds to fail ldflags = [ "-rdynamic" ] } } -@@ -2027,8 +2027,6 @@ if (is_win) { - +@@ -2026,8 +2026,6 @@ if (is_win) { + common_optimize_on_cflags += [ # Put data and code in their own sections, so that unused symbols # can be removed at link time with --gc-sections. - "-fdata-sections", @@ -68,7 +68,7 @@ Subject: Remove DCHECK and other lines causing Debug builds to fail ] common_optimize_on_ldflags += [ -@@ -2036,7 +2034,6 @@ if (is_win) { +@@ -2035,7 +2033,6 @@ if (is_win) { # See http://lwn.net/Articles/192624/ . # -O2 enables string tail merge optimization in gold and lld. "-Wl,-O2", @@ -76,7 +76,7 @@ Subject: Remove DCHECK and other lines causing Debug builds to fail ] } } -@@ -2414,7 +2411,7 @@ config("symbols") { +@@ -2413,7 +2410,7 @@ config("symbols") { # sections (llvm.org/PR34820). cflags += [ "-ggnu-pubnames" ] } @@ -97,7 +97,7 @@ Subject: Remove DCHECK and other lines causing Debug builds to fail SchemaValidatingPolicyHandler::~SchemaValidatingPolicyHandler() {} --- a/components/signin/internal/identity_manager/profile_oauth2_token_service_builder.cc +++ b/components/signin/internal/identity_manager/profile_oauth2_token_service_builder.cc -@@ -178,7 +178,6 @@ std::unique_ptr( --- a/components/omnibox/browser/autocomplete_match.cc +++ b/components/omnibox/browser/autocomplete_match.cc -@@ -1398,16 +1398,6 @@ bool AutocompleteMatch::IsEmptyAutocompl +@@ -1477,16 +1477,6 @@ bool AutocompleteMatch::IsEmptyAutocompl split_autocompletion.Empty(); } @@ -123,10 +123,10 @@ Subject: Remove DCHECK and other lines causing Debug builds to fail - // static void AutocompleteMatch::ValidateClassifications( - const base::string16& text, + const std::u16string& text, --- a/components/omnibox/browser/autocomplete_result.cc +++ b/components/omnibox/browser/autocomplete_result.cc -@@ -716,13 +716,6 @@ void AutocompleteResult::CopyFrom(const +@@ -712,13 +712,6 @@ void AutocompleteResult::CopyFrom(const #endif } @@ -142,19 +142,19 @@ Subject: Remove DCHECK and other lines causing Debug builds to fail const AutocompleteInput& input, --- a/components/omnibox/browser/shortcuts_backend.cc +++ b/components/omnibox/browser/shortcuts_backend.cc -@@ -119,9 +119,6 @@ void ShortcutsBackend::RemoveObserver(Sh +@@ -120,9 +120,6 @@ void ShortcutsBackend::RemoveObserver(Sh - void ShortcutsBackend::AddOrUpdateShortcut(const base::string16& text, + void ShortcutsBackend::AddOrUpdateShortcut(const std::u16string& text, const AutocompleteMatch& match) { -#if DCHECK_IS_ON() - match.Validate(); -#endif // DCHECK_IS_ON() - const base::string16 text_lowercase(base::i18n::ToLower(text)); + const std::u16string text_lowercase(base::i18n::ToLower(text)); const base::Time now(base::Time::Now()); for (ShortcutMap::const_iterator it( --- a/components/omnibox/browser/autocomplete_controller.cc +++ b/components/omnibox/browser/autocomplete_controller.cc -@@ -744,9 +744,6 @@ void AutocompleteController::UpdateResul +@@ -732,9 +732,6 @@ void AutocompleteController::UpdateResul // Need to validate before invoking CopyOldMatches as the old matches are not // valid against the current input. @@ -178,7 +178,7 @@ Subject: Remove DCHECK and other lines causing Debug builds to fail bool InputEventStreamValidator::ValidateImpl( --- a/services/network/network_context.cc +++ b/services/network/network_context.cc -@@ -964,7 +964,6 @@ void NetworkContext::QueueReport( +@@ -976,7 +976,6 @@ void NetworkContext::QueueReport( const net::NetworkIsolationKey& network_isolation_key, const base::Optional& user_agent, base::Value body) { diff --git a/patches/Unobtainium/kill-Auth.patch b/patches/Unobtainium/kill-Auth.patch index 4574fda..aa99e61 100644 --- a/patches/Unobtainium/kill-Auth.patch +++ b/patches/Unobtainium/kill-Auth.patch @@ -3,45 +3,10 @@ Date: Fri, 22 Jun 2018 17:06:15 +0200 Subject: kill Auth --- - chrome/browser/signin/services/android/java/src/org/chromium/chrome/browser/signin/services/SigninHelper.java | 19 ---- - components/signin/public/android/java/src/org/chromium/components/signin/SystemAccountManagerDelegate.java | 42 ---------- - 2 files changed, 3 insertions(+), 58 deletions(-) + components/signin/public/android/java/src/org/chromium/components/signin/AccountRenameChecker.java | 15 -- + components/signin/public/android/java/src/org/chromium/components/signin/SystemAccountManagerDelegate.java | 54 ---------- + 2 files changed, 4 insertions(+), 65 deletions(-) ---- a/chrome/browser/signin/services/android/java/src/org/chromium/chrome/browser/signin/services/SigninHelper.java -+++ b/chrome/browser/signin/services/android/java/src/org/chromium/chrome/browser/signin/services/SigninHelper.java -@@ -10,10 +10,6 @@ import android.util.Pair; - - import androidx.annotation.VisibleForTesting; - --import com.google.android.gms.auth.AccountChangeEvent; --import com.google.android.gms.auth.GoogleAuthException; --import com.google.android.gms.auth.GoogleAuthUtil; -- - import org.chromium.base.ApplicationState; - import org.chromium.base.ApplicationStatus; - import org.chromium.base.ContextUtils; -@@ -55,21 +51,6 @@ public class SigninHelper implements App - implements SigninHelper.AccountChangeEventChecker { - @Override - public List getAccountChangeEvents(Context context, int index, String accountName) { -- try { -- List accountChangeEvents = -- GoogleAuthUtil.getAccountChangeEvents(context, index, accountName); -- List changedNames = new ArrayList<>(accountChangeEvents.size()); -- for (AccountChangeEvent event : accountChangeEvents) { -- if (event.getChangeType() == GoogleAuthUtil.CHANGE_TYPE_ACCOUNT_RENAMED_TO) { -- changedNames.add(event.getChangeData()); -- } else { -- changedNames.add(null); -- } -- } -- return changedNames; -- } catch (IOException | GoogleAuthException e) { -- Log.w(TAG, "Failed to get change events", e); -- } - return new ArrayList<>(0); - } - } --- a/components/signin/public/android/java/src/org/chromium/components/signin/SystemAccountManagerDelegate.java +++ b/components/signin/public/android/java/src/org/chromium/components/signin/SystemAccountManagerDelegate.java @@ -26,11 +26,6 @@ import android.os.SystemClock; @@ -56,7 +21,7 @@ Subject: kill Auth import org.chromium.base.ApiCompatibilityUtils; import org.chromium.base.Callback; -@@ -120,18 +115,7 @@ public class SystemAccountManagerDelegat +@@ -120,14 +115,7 @@ public class SystemAccountManagerDelegat // so don't report any accounts if Google Play Services are out of date. checkCanUseGooglePlayServices(); @@ -67,16 +32,12 @@ Subject: kill Auth - Account[] accounts = mAccountManager.getAccountsByType(GoogleAuthUtil.GOOGLE_ACCOUNT_TYPE); - long elapsed = SystemClock.elapsedRealtime() - now; - recordElapsedTimeHistogram("Signin.AndroidGetAccountsTime_AccountManager", elapsed); -- if (ThreadUtils.runningOnUiThread()) { -- recordElapsedTimeHistogram( -- "Signin.AndroidGetAccountsTimeUiThread_AccountManager", elapsed); -- } - return accounts; + return new Account[] {}; } @Override -@@ -139,17 +123,8 @@ public class SystemAccountManagerDelegat +@@ -135,30 +123,12 @@ public class SystemAccountManagerDelegat throws AuthException { assert !ThreadUtils.runningOnUiThread(); assert AccountUtils.GOOGLE_ACCOUNT_TYPE.equals(account.type); @@ -96,7 +57,20 @@ Subject: kill Auth } @Override -@@ -202,17 +177,6 @@ public class SystemAccountManagerDelegat + public void invalidateAuthToken(String authToken) throws AuthException { +- try { +- GoogleAuthUtil.clearToken(ContextUtils.getApplicationContext(), authToken); +- } catch (GooglePlayServicesAvailabilityException ex) { +- throw new AuthException(AuthException.NONTRANSIENT, ex); +- } catch (GoogleAuthException ex) { +- throw new AuthException(AuthException.NONTRANSIENT, ex); +- } catch (IOException ex) { +- throw new AuthException(AuthException.TRANSIENT, ex); +- } + } + + @Override +@@ -199,17 +169,6 @@ public class SystemAccountManagerDelegat @SuppressLint("MissingPermission") @Override public void createAddAccountIntent(Callback callback) { @@ -114,3 +88,48 @@ Subject: kill Auth } // No permission is needed on 23+ and Chrome always has MANAGE_ACCOUNTS permission on lower APIs +@@ -249,12 +208,7 @@ public class SystemAccountManagerDelegat + @Nullable + @Override + public String getAccountGaiaId(String accountEmail) { +- try { +- return GoogleAuthUtil.getAccountId(ContextUtils.getApplicationContext(), accountEmail); +- } catch (IOException | GoogleAuthException ex) { +- Log.e(TAG, "SystemAccountManagerDelegate.getAccountGaiaId", ex); +- return null; +- } ++ return null; + } + + @Override +--- a/components/signin/public/android/java/src/org/chromium/components/signin/AccountRenameChecker.java ++++ b/components/signin/public/android/java/src/org/chromium/components/signin/AccountRenameChecker.java +@@ -10,10 +10,6 @@ import android.content.Context; + import androidx.annotation.Nullable; + import androidx.annotation.WorkerThread; + +-import com.google.android.gms.auth.AccountChangeEvent; +-import com.google.android.gms.auth.GoogleAuthException; +-import com.google.android.gms.auth.GoogleAuthUtil; +- + import org.chromium.base.ContextUtils; + import org.chromium.base.Log; + +@@ -36,17 +32,6 @@ public final class AccountRenameChecker + @Nullable + String getNewNameOfRenamedAccount(String accountEmail) { + final Context context = ContextUtils.getApplicationContext(); +- try { +- final List accountChangeEvents = +- GoogleAuthUtil.getAccountChangeEvents(context, 0, accountEmail); +- for (AccountChangeEvent event : accountChangeEvents) { +- if (event.getChangeType() == GoogleAuthUtil.CHANGE_TYPE_ACCOUNT_RENAMED_TO) { +- return event.getChangeData(); +- } +- } +- } catch (IOException | GoogleAuthException e) { +- Log.w(TAG, "Failed to get change events", e); +- } + return null; + } + } diff --git a/patches/Unobtainium/kill-GCM.patch b/patches/Unobtainium/kill-GCM.patch index e00bcb8..c0cde8b 100644 --- a/patches/Unobtainium/kill-GCM.patch +++ b/patches/Unobtainium/kill-GCM.patch @@ -18,12 +18,12 @@ Subject: kill GCM @@ -15,7 +15,6 @@ chrome_java_sources = [ "java/src/org/chromium/chrome/browser/ChromeActionModeHandler.java", "java/src/org/chromium/chrome/browser/ChromeActivitySessionTracker.java", - "java/src/org/chromium/chrome/browser/ChromeApplication.java", + "java/src/org/chromium/chrome/browser/ChromeApplicationImpl.java", - "java/src/org/chromium/chrome/browser/ChromeBackgroundServiceImpl.java", "java/src/org/chromium/chrome/browser/ChromeBackupAgentImpl.java", "java/src/org/chromium/chrome/browser/ChromeBackupWatcher.java", "java/src/org/chromium/chrome/browser/ChromeBaseAppCompatActivity.java", -@@ -1205,10 +1204,6 @@ chrome_java_sources = [ +@@ -1172,10 +1171,6 @@ chrome_java_sources = [ "java/src/org/chromium/chrome/browser/searchwidget/SearchWidgetProvider.java", "java/src/org/chromium/chrome/browser/send_tab_to_self/SendTabToSelfShareActivity.java", "java/src/org/chromium/chrome/browser/services/AccountsChangedReceiver.java", @@ -36,7 +36,7 @@ Subject: kill GCM "java/src/org/chromium/chrome/browser/settings/SettingsLauncherImpl.java", --- a/chrome/android/java/AndroidManifest.xml +++ b/chrome/android/java/AndroidManifest.xml -@@ -87,23 +87,18 @@ by a child template that "extends" this +@@ -86,21 +86,16 @@ by a child template that "extends" this @@ -54,13 +54,11 @@ Subject: kill GCM - - - -@@ -944,25 +939,6 @@ by a child template that "extends" this +@@ -951,25 +946,6 @@ by a child template that "extends" this android:configChanges="orientation|keyboardHidden|keyboard|screenSize|mcc|mnc|screenLayout|smallestScreenSize" android:hardwareAccelerated="false" /> @@ -86,7 +84,7 @@ Subject: kill GCM @@ -146,7 +144,7 @@ Subject: kill GCM --- a/components/gcm_driver/instance_id/android/BUILD.gn +++ b/components/gcm_driver/instance_id/android/BUILD.gn -@@ -28,7 +28,6 @@ android_library("instance_id_driver_java +@@ -27,7 +27,6 @@ android_library("instance_id_driver_java sources = [ "java/src/org/chromium/components/gcm_driver/instance_id/InstanceIDBridge.java", diff --git a/patches/Unobtainium/kill-Translate.patch b/patches/Unobtainium/kill-Translate.patch index fd7d2c6..fd9988a 100644 --- a/patches/Unobtainium/kill-Translate.patch +++ b/patches/Unobtainium/kill-Translate.patch @@ -8,7 +8,7 @@ Subject: kill Translate --- a/chrome/android/java/src/org/chromium/chrome/browser/firstrun/FirstRunActivity.java +++ b/chrome/android/java/src/org/chromium/chrome/browser/firstrun/FirstRunActivity.java -@@ -27,7 +27,11 @@ import org.chromium.chrome.browser.datar +@@ -33,7 +33,11 @@ import org.chromium.chrome.browser.fonts import org.chromium.chrome.browser.metrics.UmaUtils; import org.chromium.chrome.browser.net.spdyproxy.DataReductionProxySettings; import org.chromium.chrome.browser.search_engines.TemplateUrlServiceFactory; @@ -20,7 +20,7 @@ Subject: kill Translate import org.chromium.ui.base.LocalizationUtils; import java.util.ArrayList; -@@ -160,6 +164,8 @@ public class FirstRunActivity extends Fi +@@ -184,6 +188,8 @@ public class FirstRunActivity extends Fi assert areNativeAndPoliciesInitialized(); mFirstRunFlowSequencer.onNativeAndPoliciesInitialized(mFreProperties); @@ -29,7 +29,7 @@ Subject: kill Translate boolean notifyAdapter = false; // An optional Data Saver page. if (mFreProperties.getBoolean(SHOW_DATA_REDUCTION_PAGE)) { -@@ -605,4 +611,9 @@ public class FirstRunActivity extends Fi +@@ -671,4 +677,9 @@ public class FirstRunActivity extends Fi assert sObserver == null; sObserver = observer; } diff --git a/patches/Vanadium/0003-switch-to-fstack-protector-strong.patch b/patches/Vanadium/0003-switch-to-fstack-protector-strong.patch index 71e05da..d64a30d 100644 --- a/patches/Vanadium/0003-switch-to-fstack-protector-strong.patch +++ b/patches/Vanadium/0003-switch-to-fstack-protector-strong.patch @@ -9,7 +9,7 @@ Subject: [PATCH 03/73] switch to -fstack-protector-strong --- a/build/config/compiler/BUILD.gn +++ b/build/config/compiler/BUILD.gn -@@ -302,16 +302,12 @@ config("compiler") { +@@ -315,16 +315,12 @@ config("compiler") { cflags += [ "-fstack-protector" ] } } else if ((is_posix && !is_chromeos_ash && !is_nacl) || is_fuchsia) { diff --git a/patches/Vanadium/0031-disable-media-router-media-remoting-by-default.patch b/patches/Vanadium/0031-disable-media-router-media-remoting-by-default.patch index a2bcf6a..24495bf 100644 --- a/patches/Vanadium/0031-disable-media-router-media-remoting-by-default.patch +++ b/patches/Vanadium/0031-disable-media-router-media-remoting-by-default.patch @@ -9,7 +9,7 @@ Subject: [PATCH 31/73] disable media router media remoting by default --- a/chrome/browser/profiles/profile.cc +++ b/chrome/browser/profiles/profile.cc -@@ -323,7 +323,7 @@ void Profile::RegisterProfilePrefs(user_ +@@ -341,7 +341,7 @@ void Profile::RegisterProfilePrefs(user_ media_router::prefs::kMediaRouterEnableCloudServices, false, user_prefs::PrefRegistrySyncable::SYNCABLE_PREF); registry->RegisterBooleanPref( diff --git a/patches/Vanadium/0032-disable-media-router-by-default.patch b/patches/Vanadium/0032-disable-media-router-by-default.patch index 7d47929..5015716 100644 --- a/patches/Vanadium/0032-disable-media-router-by-default.patch +++ b/patches/Vanadium/0032-disable-media-router-by-default.patch @@ -26,8 +26,8 @@ Subject: [PATCH 32/73] disable media router by default - // Check the enterprise policy. - const PrefService::Preference* pref = GetMediaRouterPref(context); - if (pref->IsManaged() && !pref->IsDefaultValue()) { -- bool allowed; -- CHECK(pref->GetValue()->GetAsBoolean(&allowed)); +- CHECK(pref->GetValue()->is_bool()); +- bool allowed = pref->GetValue()->GetBool(); - stored_pref_values->insert(std::make_pair(context, allowed)); - return allowed; - } @@ -48,7 +48,7 @@ Subject: [PATCH 32/73] disable media router by default #endif // defined(OS_ANDROID) || BUILDFLAG(ENABLE_EXTENSIONS) --- a/chrome/browser/profiles/profile_impl.cc +++ b/chrome/browser/profiles/profile_impl.cc -@@ -447,7 +447,7 @@ void ProfileImpl::RegisterProfilePrefs( +@@ -448,7 +448,7 @@ void ProfileImpl::RegisterProfilePrefs( #endif registry->RegisterBooleanPref(prefs::kForceEphemeralProfiles, false); diff --git a/patches/series b/patches/series index 8a14bff..7cc8e70 100644 --- a/patches/series +++ b/patches/series @@ -34,7 +34,6 @@ ungoogled-chromium-android/Disable-lite-mode-prompt.patch ungoogled-chromium-android/Disable-prefetch.patch ungoogled-chromium-android/Add-more-search-engines.patch ungoogled-chromium-android/Add-folder-button-bookmark.patch -ungoogled-chromium-android/Mark-http-as-dangerous-mixed-content-warning.patch ungoogled-chromium-android/Enable-update-notification.patch ungoogled-chromium-android/Enable-ProactivelySwapBrowsingInstance.patch ungoogled-chromium-android/Disable-homepage-by-default.patch diff --git a/patches/src-fix/fix-prefs.patch b/patches/src-fix/fix-prefs.patch index 8d6325a..3344b29 100644 --- a/patches/src-fix/fix-prefs.patch +++ b/patches/src-fix/fix-prefs.patch @@ -3,26 +3,14 @@ Date: Thu, 20 Feb 2020 22:24:35 -0500 Subject: fix build error with prefs.h --- - chrome/android/java/src/org/chromium/chrome/browser/signin/SigninFragmentBase.java | 3 +-- + chrome/android/java/src/org/chromium/chrome/browser/signin/SyncConsentFragmentBase.java | 3 +-- chrome/browser/preferences/BUILD.gn | 1 - chrome/browser/signin/ui/android/java/src/org/chromium/chrome/browser/signin/ui/SigninPromoUtil.java | 3 +-- 3 files changed, 2 insertions(+), 5 deletions(-) ---- a/chrome/android/java/src/org/chromium/chrome/browser/signin/SigninFragmentBase.java -+++ b/chrome/android/java/src/org/chromium/chrome/browser/signin/SigninFragmentBase.java -@@ -443,8 +443,7 @@ public abstract class SigninFragmentBase - private void runStateMachineAndSignin(boolean settingsClicked) { - mConfirmSyncDataStateMachine = new ConfirmSyncDataStateMachine( - new ConfirmSyncDataStateMachineDelegate(getChildFragmentManager()), -- UserPrefs.get(Profile.getLastUsedRegularProfile()) -- .getString(Pref.GOOGLE_SERVICES_LAST_USERNAME), -+ "", - mSelectedAccountName, new ConfirmSyncDataStateMachine.Listener() { - @Override - public void onConfirm(boolean wipeData) { --- a/chrome/browser/preferences/BUILD.gn +++ b/chrome/browser/preferences/BUILD.gn -@@ -37,7 +37,6 @@ java_cpp_strings("java_pref_names_srcjar +@@ -36,7 +36,6 @@ java_cpp_strings("java_pref_names_srcjar "//components/offline_pages/core/prefetch/prefetch_prefs.cc", "//components/password_manager/core/common/password_manager_pref_names.cc", "//components/payments/core/payment_prefs.cc", @@ -32,13 +20,25 @@ Subject: fix build error with prefs.h --- a/chrome/browser/signin/ui/android/java/src/org/chromium/chrome/browser/signin/ui/SigninPromoUtil.java +++ b/chrome/browser/signin/ui/android/java/src/org/chromium/chrome/browser/signin/ui/SigninPromoUtil.java -@@ -53,8 +53,7 @@ public final class SigninPromoUtil { - SigninPreferencesManager preferencesManager = SigninPreferencesManager.getInstance(); - int currentMajorVersion = ChromeVersionInfo.getProductMajorVersion(); - boolean wasSignedIn = -- TextUtils.isEmpty(UserPrefs.get(Profile.getLastUsedRegularProfile()) -- .getString(Pref.GOOGLE_SERVICES_LAST_USERNAME)); -+ true; - if (!shouldLaunchSigninPromo(preferencesManager, currentMajorVersion, wasSignedIn)) { +@@ -71,8 +71,7 @@ public final class SigninPromoUtil { return false; } + +- if (TextUtils.isEmpty( +- UserPrefs.get(profile).getString(Pref.GOOGLE_SERVICES_LAST_USERNAME))) { ++ if (true) { + // Don't show if user has manually signed out. + return false; + } +--- a/chrome/android/java/src/org/chromium/chrome/browser/signin/SyncConsentFragmentBase.java ++++ b/chrome/android/java/src/org/chromium/chrome/browser/signin/SyncConsentFragmentBase.java +@@ -435,8 +435,7 @@ public abstract class SyncConsentFragmen + private void runStateMachineAndSignin(boolean settingsClicked) { + mConfirmSyncDataStateMachine = new ConfirmSyncDataStateMachine( + new ConfirmSyncDataStateMachineDelegate(getChildFragmentManager()), +- UserPrefs.get(Profile.getLastUsedRegularProfile()) +- .getString(Pref.GOOGLE_SERVICES_LAST_USERNAME), ++ "", + mSelectedAccountName, new ConfirmSyncDataStateMachine.Listener() { + @Override + public void onConfirm(boolean wipeData) { diff --git a/patches/src-fix/fix-safe-browsing-prefs.patch b/patches/src-fix/fix-safe-browsing-prefs.patch index 5d34c44..2d6d5c5 100644 --- a/patches/src-fix/fix-safe-browsing-prefs.patch +++ b/patches/src-fix/fix-safe-browsing-prefs.patch @@ -10,22 +10,20 @@ Subject: Fix build error caused by the removal of safe_browsing_prefs.h chrome/android/java/src/org/chromium/chrome/browser/ntp/cards/promo/enhanced_protection/EnhancedProtectionPromoUtils.java | 4 chrome/android/java/src/org/chromium/chrome/browser/privacy/settings/PrivacySettings.java | 8 chrome/android/java/src/org/chromium/chrome/browser/safe_browsing/SafeBrowsingSettingsLauncher.java | 7 - chrome/android/java/src/org/chromium/chrome/browser/sync/settings/GoogleServicesSettings.java | 30 - + chrome/android/java/src/org/chromium/chrome/browser/sync/settings/GoogleServicesSettings.java | 7 chrome/android/java/src/org/chromium/chrome/browser/sync/settings/SignInPreference.java | 6 - chrome/android/java/src/org/chromium/chrome/browser/sync/settings/SyncAndServicesSettings.java | 20 - chrome/browser/android/tab_web_contents_delegate_android.cc | 2 chrome/browser/password_manager/chrome_password_manager_client.cc | 2 chrome/browser/preferences/BUILD.gn | 1 chrome/browser/safe_browsing/BUILD.gn | 1 chrome/browser/safe_browsing/android/BUILD.gn | 1 chrome/browser/safe_browsing/android/java/src/org/chromium/chrome/browser/safe_browsing/SafeBrowsingBridge.java | 31 - - chrome/browser/safe_browsing/android/java/src/org/chromium/chrome/browser/safe_browsing/settings/RadioButtonGroupSafeBrowsingPreference.java | 37 - - chrome/browser/safe_browsing/android/java/src/org/chromium/chrome/browser/safe_browsing/settings/SafeBrowsingSettingsFragment.java | 170 -------- + chrome/browser/safe_browsing/android/java/src/org/chromium/chrome/browser/safe_browsing/settings/RadioButtonGroupSafeBrowsingPreference.java | 28 - + chrome/browser/safe_browsing/android/java/src/org/chromium/chrome/browser/safe_browsing/settings/SafeBrowsingSettingsFragment.java | 168 -------- chrome/browser/safe_browsing/android/java/src/org/chromium/chrome/browser/safe_browsing/settings/StandardProtectionSettingsFragment.java | 8 - components/safe_browsing/content/browser/client_side_detection_host.cc | 5 - components/safe_browsing/content/browser/client_side_detection_host.h | 2 + components/safe_browsing/content/browser/client_side_detection_host.cc | 9 + components/safe_browsing/content/browser/client_side_detection_host.h | 3 components/safe_browsing/content/browser/client_side_detection_service.cc | 29 - - components/safe_browsing/core/features.cc | 2 weblayer/browser/browser_context_impl.cc | 2 weblayer/browser/browser_process.cc | 11 weblayer/browser/browser_process.h | 4 @@ -33,22 +31,23 @@ Subject: Fix build error caused by the removal of safe_browsing_prefs.h weblayer/browser/content_browser_client_impl.cc | 18 weblayer/browser/profile_impl.cc | 16 weblayer/browser/safe_browsing/client_side_detection_service_delegate.cc | 12 + weblayer/browser/safe_browsing/real_time_url_lookup_service_factory.cc | 7 weblayer/browser/safe_browsing/safe_browsing_blocking_page.cc | 8 weblayer/browser/safe_browsing/safe_browsing_service.cc | 200 ---------- weblayer/browser/safe_browsing/safe_browsing_tab_observer.cc | 11 weblayer/browser/subresource_filter_client_impl.cc | 2 - 34 files changed, 67 insertions(+), 607 deletions(-) + 33 files changed, 59 insertions(+), 571 deletions(-) --- a/chrome/android/BUILD.gn +++ b/chrome/android/BUILD.gn -@@ -340,7 +340,6 @@ android_library("chrome_java") { +@@ -347,7 +347,6 @@ android_library("chrome_java") { "//chrome/browser/privacy:java", "//chrome/browser/privacy_sandbox/android:java", "//chrome/browser/profiles/android:java", - "//chrome/browser/safe_browsing/android:java", "//chrome/browser/safety_check/android:java", + "//chrome/browser/search_engines/android:java", "//chrome/browser/settings:java", - "//chrome/browser/share:java", --- a/android_webview/browser/aw_browser_context.cc +++ b/android_webview/browser/aw_browser_context.cc @@ -236,7 +236,7 @@ base::FilePath AwBrowserContext::GetCont @@ -93,73 +92,9 @@ Subject: Fix build error caused by the removal of safe_browsing_prefs.h "cpn_safe_browsing_wv"); // help_center_article_link ErrorUiType errorType = ---- a/chrome/android/java/src/org/chromium/chrome/browser/sync/settings/SyncAndServicesSettings.java -+++ b/chrome/android/java/src/org/chromium/chrome/browser/sync/settings/SyncAndServicesSettings.java -@@ -47,7 +47,6 @@ import org.chromium.chrome.browser.prefe - import org.chromium.chrome.browser.preferences.SharedPreferencesManager; - import org.chromium.chrome.browser.privacy.settings.PrivacyPreferencesManagerImpl; - import org.chromium.chrome.browser.profiles.Profile; --import org.chromium.chrome.browser.safe_browsing.SafeBrowsingBridge; - import org.chromium.chrome.browser.settings.ChromeManagedPreferenceDelegate; - import org.chromium.chrome.browser.settings.SettingsActivity; - import org.chromium.chrome.browser.signin.services.IdentityServicesProvider; -@@ -400,18 +399,10 @@ public class SyncAndServicesSettings ext - } else if (PREF_SEARCH_SUGGESTIONS.equals(key)) { - mPrefService.setBoolean(Pref.SEARCH_SUGGEST_ENABLED, (boolean) newValue); - } else if (PREF_SAFE_BROWSING.equals(key)) { -- assert !mIsSafeBrowsingPreferenceRemoved; -- mPrefService.setBoolean(Pref.SAFE_BROWSING_ENABLED, (boolean) newValue); -- // Toggling the safe browsing preference impacts the leak detection and the -- // safe browsing reporting preferences as well. -- PostTask.postTask(UiThreadTaskTraits.DEFAULT, -- this::updateLeakDetectionAndSafeBrowsingReportingPreferences); - } else if (PREF_PASSWORD_LEAK_DETECTION.equals(key)) { - assert !mIsSafeBrowsingPreferenceRemoved; - mPrefService.setBoolean(Pref.PASSWORD_LEAK_DETECTION_ENABLED, (boolean) newValue); - } else if (PREF_SAFE_BROWSING_SCOUT_REPORTING.equals(key)) { -- assert !mIsSafeBrowsingPreferenceRemoved; -- SafeBrowsingBridge.setSafeBrowsingExtendedReportingEnabled((boolean) newValue); - } else if (PREF_NAVIGATION_ERROR.equals(key)) { - mPrefService.setBoolean(Pref.ALTERNATE_ERROR_PAGES_ENABLED, (boolean) newValue); - } else if (PREF_USAGE_AND_CRASH_REPORTING.equals(key)) { -@@ -592,8 +583,6 @@ public class SyncAndServicesSettings ext - mSearchSuggestions.setChecked(mPrefService.getBoolean(Pref.SEARCH_SUGGEST_ENABLED)); - mNavigationError.setChecked(mPrefService.getBoolean(Pref.ALTERNATE_ERROR_PAGES_ENABLED)); - if (!mIsSafeBrowsingPreferenceRemoved) { -- mSafeBrowsing.setChecked(mPrefService.getBoolean(Pref.SAFE_BROWSING_ENABLED)); -- updateLeakDetectionAndSafeBrowsingReportingPreferences(); - } - - mUsageAndCrashReporting.setChecked( -@@ -663,10 +652,9 @@ public class SyncAndServicesSettings ext - */ - private void updateLeakDetectionAndSafeBrowsingReportingPreferences() { - assert !mIsSafeBrowsingPreferenceRemoved; -- boolean safe_browsing_enabled = mPrefService.getBoolean(Pref.SAFE_BROWSING_ENABLED); -+ boolean safe_browsing_enabled = false; - mSafeBrowsingReporting.setEnabled(safe_browsing_enabled); -- mSafeBrowsingReporting.setChecked(safe_browsing_enabled -- && SafeBrowsingBridge.isSafeBrowsingExtendedReportingEnabled()); -+ mSafeBrowsingReporting.setChecked(safe_browsing_enabled); - - boolean has_token_for_leak_check = PasswordUIView.hasAccountForLeakCheckRequest(); - boolean leak_detection_enabled = -@@ -694,10 +682,10 @@ public class SyncAndServicesSettings ext - return mPrefService.isManagedPreference(Pref.SEARCH_SUGGEST_ENABLED); - } - if (PREF_SAFE_BROWSING_SCOUT_REPORTING.equals(key)) { -- return SafeBrowsingBridge.isSafeBrowsingExtendedReportingManaged(); -+ return false; - } - if (PREF_SAFE_BROWSING.equals(key)) { -- return mPrefService.isManagedPreference(Pref.SAFE_BROWSING_ENABLED); -+ return false; - } - if (PREF_PASSWORD_LEAK_DETECTION.equals(key)) { - return mPrefService.isManagedPreference(Pref.PASSWORD_LEAK_DETECTION_ENABLED); --- a/weblayer/browser/browser_context_impl.cc +++ b/weblayer/browser/browser_context_impl.cc -@@ -20,7 +20,6 @@ +@@ -21,7 +21,6 @@ #include "components/prefs/json_pref_store.h" #include "components/prefs/pref_service.h" #include "components/prefs/pref_service_factory.h" @@ -167,7 +102,7 @@ Subject: Fix build error caused by the removal of safe_browsing_prefs.h #include "components/security_interstitials/content/stateful_ssl_host_state_delegate.h" #include "components/site_isolation/pref_names.h" #include "components/site_isolation/site_isolation_policy.h" -@@ -268,7 +267,6 @@ void BrowserContextImpl::RegisterPrefs( +@@ -280,7 +279,6 @@ void BrowserContextImpl::RegisterPrefs( StatefulSSLHostStateDelegate::RegisterProfilePrefs(pref_registry); HostContentSettingsMap::RegisterProfilePrefs(pref_registry); @@ -177,23 +112,15 @@ Subject: Fix build error caused by the removal of safe_browsing_prefs.h blocked_content::SafeBrowsingTriggeredPopupBlocker::RegisterProfilePrefs( --- a/chrome/android/java/src/org/chromium/chrome/browser/sync/settings/GoogleServicesSettings.java +++ b/chrome/android/java/src/org/chromium/chrome/browser/sync/settings/GoogleServicesSettings.java -@@ -29,7 +29,6 @@ import org.chromium.chrome.browser.prefe - import org.chromium.chrome.browser.preferences.SharedPreferencesManager; - import org.chromium.chrome.browser.privacy.settings.PrivacyPreferencesManagerImpl; - import org.chromium.chrome.browser.profiles.Profile; --import org.chromium.chrome.browser.safe_browsing.SafeBrowsingBridge; - import org.chromium.chrome.browser.settings.ChromeManagedPreferenceDelegate; - import org.chromium.chrome.browser.signin.services.IdentityServicesProvider; - import org.chromium.chrome.browser.signin.services.SigninManager; -@@ -219,7 +218,6 @@ public class GoogleServicesSettings - identityManager.getPrimaryAccountInfo(ConsentLevel.NOT_REQUIRED) != null +@@ -176,7 +176,6 @@ public class GoogleServicesSettings + identityManager.getPrimaryAccountInfo(ConsentLevel.SIGNIN) != null && !((boolean) newValue); if (!shouldSignUserOut) { - mPrefService.setBoolean(Pref.SIGNIN_ALLOWED, (boolean) newValue); return true; } -@@ -230,7 +228,6 @@ public class GoogleServicesSettings +@@ -187,7 +186,6 @@ public class GoogleServicesSettings IdentityServicesProvider.get() .getSigninManager(Profile.getLastUsedRegularProfile()) .signOut(SignoutReason.USER_CLICKED_SIGNOUT_SETTINGS, null, false); @@ -201,54 +128,16 @@ Subject: Fix build error caused by the removal of safe_browsing_prefs.h return true; } -@@ -243,19 +240,9 @@ public class GoogleServicesSettings - return false; - } else if (PREF_SEARCH_SUGGESTIONS.equals(key)) { - mPrefService.setBoolean(Pref.SEARCH_SUGGEST_ENABLED, (boolean) newValue); -- } else if (PREF_SAFE_BROWSING.equals(key)) { -- assert !mIsSecurityPreferenceRemoved; -- mPrefService.setBoolean(Pref.SAFE_BROWSING_ENABLED, (boolean) newValue); -- // Toggling the safe browsing preference impacts the leak detection and the -- // safe browsing reporting preferences as well. -- PostTask.postTask(UiThreadTaskTraits.DEFAULT, -- this::updateLeakDetectionAndSafeBrowsingReportingPreferences); - } else if (PREF_PASSWORD_LEAK_DETECTION.equals(key)) { - assert !mIsSecurityPreferenceRemoved; - mPrefService.setBoolean(Pref.PASSWORD_LEAK_DETECTION_ENABLED, (boolean) newValue); -- } else if (PREF_SAFE_BROWSING_SCOUT_REPORTING.equals(key)) { -- assert !mIsSecurityPreferenceRemoved; -- SafeBrowsingBridge.setSafeBrowsingExtendedReportingEnabled((boolean) newValue); - } else if (PREF_NAVIGATION_ERROR.equals(key)) { - mPrefService.setBoolean(Pref.ALTERNATE_ERROR_PAGES_ENABLED, (boolean) newValue); - } else if (PREF_USAGE_AND_CRASH_REPORTING.equals(key)) { -@@ -275,13 +262,8 @@ public class GoogleServicesSettings +@@ -219,7 +217,7 @@ public class GoogleServicesSettings } private void updatePreferences() { - mAllowSignin.setChecked(mPrefService.getBoolean(Pref.SIGNIN_ALLOWED)); ++ mAllowSignin.setChecked(false); mSearchSuggestions.setChecked(mPrefService.getBoolean(Pref.SEARCH_SUGGEST_ENABLED)); mNavigationError.setChecked(mPrefService.getBoolean(Pref.ALTERNATE_ERROR_PAGES_ENABLED)); -- if (!mIsSecurityPreferenceRemoved) { -- mSafeBrowsing.setChecked(mPrefService.getBoolean(Pref.SAFE_BROWSING_ENABLED)); -- updateLeakDetectionAndSafeBrowsingReportingPreferences(); -- } - mUsageAndCrashReporting.setChecked( - mPrivacyPrefManager.isUsageAndCrashReportingPermittedByUser()); -@@ -306,10 +288,9 @@ public class GoogleServicesSettings - */ - private void updateLeakDetectionAndSafeBrowsingReportingPreferences() { - assert !mIsSecurityPreferenceRemoved; -- boolean safe_browsing_enabled = mPrefService.getBoolean(Pref.SAFE_BROWSING_ENABLED); -+ boolean safe_browsing_enabled = false; - mSafeBrowsingReporting.setEnabled(safe_browsing_enabled); -- mSafeBrowsingReporting.setChecked(safe_browsing_enabled -- && SafeBrowsingBridge.isSafeBrowsingExtendedReportingEnabled()); -+ mSafeBrowsingReporting.setChecked(safe_browsing_enabled); - - boolean has_token_for_leak_check = PasswordUIView.hasAccountForLeakCheckRequest(); - boolean leak_detection_enabled = -@@ -331,7 +312,7 @@ public class GoogleServicesSettings +@@ -244,7 +242,7 @@ public class GoogleServicesSettings return preference -> { String key = preference.getKey(); if (PREF_ALLOW_SIGNIN.equals(key)) { @@ -257,20 +146,7 @@ Subject: Fix build error caused by the removal of safe_browsing_prefs.h } if (PREF_NAVIGATION_ERROR.equals(key)) { return mPrefService.isManagedPreference(Pref.ALTERNATE_ERROR_PAGES_ENABLED); -@@ -340,10 +321,10 @@ public class GoogleServicesSettings - return mPrefService.isManagedPreference(Pref.SEARCH_SUGGEST_ENABLED); - } - if (PREF_SAFE_BROWSING_SCOUT_REPORTING.equals(key)) { -- return SafeBrowsingBridge.isSafeBrowsingExtendedReportingManaged(); -+ return false; - } - if (PREF_SAFE_BROWSING.equals(key)) { -- return mPrefService.isManagedPreference(Pref.SAFE_BROWSING_ENABLED); -+ return false; - } - if (PREF_PASSWORD_LEAK_DETECTION.equals(key)) { - return mPrefService.isManagedPreference(Pref.PASSWORD_LEAK_DETECTION_ENABLED); -@@ -407,7 +388,6 @@ public class GoogleServicesSettings +@@ -311,7 +309,6 @@ public class GoogleServicesSettings } }, forceWipeUserData); @@ -280,7 +156,7 @@ Subject: Fix build error caused by the removal of safe_browsing_prefs.h } --- a/chrome/browser/safe_browsing/BUILD.gn +++ b/chrome/browser/safe_browsing/BUILD.gn -@@ -342,7 +342,6 @@ static_library("safe_browsing") { +@@ -344,7 +344,6 @@ static_library("safe_browsing") { deps += [ "//components/safe_browsing/android:remote_database_manager" ] } deps += [ @@ -290,7 +166,7 @@ Subject: Fix build error caused by the removal of safe_browsing_prefs.h ] --- a/chrome/browser/preferences/BUILD.gn +++ b/chrome/browser/preferences/BUILD.gn -@@ -37,7 +37,6 @@ java_cpp_strings("java_pref_names_srcjar +@@ -36,7 +36,6 @@ java_cpp_strings("java_pref_names_srcjar "//components/offline_pages/core/prefetch/prefetch_prefs.cc", "//components/password_manager/core/common/password_manager_pref_names.cc", "//components/payments/core/payment_prefs.cc", @@ -311,7 +187,7 @@ Subject: Fix build error caused by the removal of safe_browsing_prefs.h void TabWebContentsDelegateAndroid::RunFileChooser( --- a/weblayer/browser/content_browser_client_impl.cc +++ b/weblayer/browser/content_browser_client_impl.cc -@@ -493,8 +493,7 @@ ContentBrowserClientImpl::CreateURLLoade +@@ -498,8 +498,7 @@ ContentBrowserClientImpl::CreateURLLoade #if defined(OS_ANDROID) BrowserContextImpl* browser_context_impl = static_cast(browser_context); @@ -321,7 +197,7 @@ Subject: Fix build error caused by the removal of safe_browsing_prefs.h if (is_safe_browsing_enabled) { bool is_real_time_lookup_enabled = -@@ -821,16 +820,6 @@ ContentBrowserClientImpl::CreateThrottle +@@ -835,16 +834,6 @@ ContentBrowserClientImpl::CreateThrottle #if defined(OS_ANDROID) if (handle->IsInMainFrame()) { @@ -338,7 +214,7 @@ Subject: Fix build error caused by the removal of safe_browsing_prefs.h } #endif return throttles; -@@ -891,11 +880,6 @@ void ContentBrowserClientImpl::ExposeInt +@@ -905,11 +894,6 @@ void ContentBrowserClientImpl::ExposeInt }; registry->AddInterface(base::BindRepeating(create_spellcheck_host), content::GetUIThreadTaskRunner({})); @@ -597,7 +473,7 @@ Subject: Fix build error caused by the removal of safe_browsing_prefs.h } // namespace weblayer --- a/weblayer/browser/profile_impl.cc +++ b/weblayer/browser/profile_impl.cc -@@ -48,7 +48,6 @@ +@@ -49,7 +49,6 @@ #include "base/android/jni_array.h" #include "base/android/jni_string.h" #include "base/android/scoped_java_ref.h" @@ -605,7 +481,7 @@ Subject: Fix build error caused by the removal of safe_browsing_prefs.h #include "components/unified_consent/pref_names.h" #include "ui/gfx/android/java_bitmap.h" #include "weblayer/browser/android/metrics/weblayer_metrics_service_client.h" -@@ -594,11 +593,6 @@ void ProfileImpl::SetBooleanSetting(Sett +@@ -638,11 +637,6 @@ void ProfileImpl::SetBooleanSetting(Sett auto* pref_service = GetBrowserContext()->pref_service(); switch (type) { case SettingType::BASIC_SAFE_BROWSING_ENABLED: @@ -617,7 +493,7 @@ Subject: Fix build error caused by the removal of safe_browsing_prefs.h break; case SettingType::UKM_ENABLED: { #if defined(OS_ANDROID) -@@ -613,10 +607,6 @@ void ProfileImpl::SetBooleanSetting(Sett +@@ -657,10 +651,6 @@ void ProfileImpl::SetBooleanSetting(Sett break; } case SettingType::EXTENDED_REPORTING_SAFE_BROWSING_ENABLED: @@ -628,7 +504,7 @@ Subject: Fix build error caused by the removal of safe_browsing_prefs.h break; case SettingType::REAL_TIME_SAFE_BROWSING_ENABLED: #if defined(OS_ANDROID) -@@ -635,16 +625,12 @@ bool ProfileImpl::GetBooleanSetting(Sett +@@ -679,16 +669,12 @@ bool ProfileImpl::GetBooleanSetting(Sett switch (type) { case SettingType::BASIC_SAFE_BROWSING_ENABLED: #if defined(OS_ANDROID) @@ -684,7 +560,7 @@ Subject: Fix build error caused by the removal of safe_browsing_prefs.h DISALLOW_COPY_AND_ASSIGN(BrowserProcess); --- a/chrome/browser/safe_browsing/android/BUILD.gn +++ b/chrome/browser/safe_browsing/android/BUILD.gn -@@ -105,7 +105,6 @@ android_resources("java_resources") { +@@ -104,7 +104,6 @@ android_resources("java_resources") { java_cpp_enum("safe_browsing_enums") { sources = [ @@ -797,27 +673,22 @@ Subject: Fix build error caused by the removal of safe_browsing_prefs.h private RadioButtonWithDescription mNoProtection; - private @SafeBrowsingState int mSafeBrowsingState; + private int mSafeBrowsingState; - private boolean mIsEnhancedProtectionEnabled; private @SettingsAccessPoint int mAccessPoint; private OnSafeBrowsingModeDetailsRequested mSafeBrowsingModeDetailsRequestedListener; -@@ -70,27 +69,16 @@ public class RadioButtonGroupSafeBrowsin - * @param isEnhancedProtectionEnabled Whether to show the Enhanced Protection button. + private ManagedPreferenceDelegate mManagedPrefDelegate; +@@ -69,22 +68,14 @@ public class RadioButtonGroupSafeBrowsin * @param accessPoint Where this preference was triggered to be created. */ -- public void init(@SafeBrowsingState int safeBrowsingState, boolean isEnhancedProtectionEnabled, -+ public void init(int safeBrowsingState, boolean isEnhancedProtectionEnabled, - @SettingsAccessPoint int accessPoint) { + public void init( +- @SafeBrowsingState int safeBrowsingState, @SettingsAccessPoint int accessPoint) { ++ int safeBrowsingState, @SettingsAccessPoint int accessPoint) { mSafeBrowsingState = safeBrowsingState; - mIsEnhancedProtectionEnabled = isEnhancedProtectionEnabled; mAccessPoint = accessPoint; -- assert ((mSafeBrowsingState != SafeBrowsingState.ENHANCED_PROTECTION) -- || mIsEnhancedProtectionEnabled) -- : "Safe Browsing state shouldn't be enhanced protection when the flag is disabled."; } @Override public void onCheckedChanged(RadioGroup group, int checkedId) { -- if (mIsEnhancedProtectionEnabled && checkedId == mEnhancedProtection.getId()) { +- if (checkedId == mEnhancedProtection.getId()) { - mSafeBrowsingState = SafeBrowsingState.ENHANCED_PROTECTION; - } else if (checkedId == mStandardProtection.getId()) { - mSafeBrowsingState = SafeBrowsingState.STANDARD_PROTECTION; @@ -830,10 +701,10 @@ Subject: Fix build error caused by the removal of safe_browsing_prefs.h callChangeListener(mSafeBrowsingState); } -@@ -133,11 +121,7 @@ public class RadioButtonGroupSafeBrowsin +@@ -123,11 +114,7 @@ public class RadioButtonGroupSafeBrowsin assert mSafeBrowsingModeDetailsRequestedListener != null : "The listener should be set if the aux button is clickable."; - if (mIsEnhancedProtectionEnabled && clickedButtonId == mEnhancedProtection.getId()) { + if (clickedButtonId == mEnhancedProtection.getId()) { - mSafeBrowsingModeDetailsRequestedListener.onSafeBrowsingModeDetailsRequested( - SafeBrowsingState.ENHANCED_PROTECTION); } else if (clickedButtonId == mStandardProtection.getId()) { @@ -842,24 +713,16 @@ Subject: Fix build error caused by the removal of safe_browsing_prefs.h } else { assert false : "Should not be reached."; } -@@ -166,20 +150,17 @@ public class RadioButtonGroupSafeBrowsin +@@ -156,15 +143,12 @@ public class RadioButtonGroupSafeBrowsin * @param checkedState Set the radio button of checkedState to checked, and set the radio * buttons of other states to unchecked. */ - public void setCheckedState(@SafeBrowsingState int checkedState) { + public void setCheckedState(int checkedState) { mSafeBrowsingState = checkedState; -- assert ((checkedState != SafeBrowsingState.ENHANCED_PROTECTION) -- || mIsEnhancedProtectionEnabled) -- : "Checked state shouldn't be enhanced protection when the flag is disabled."; - if (mIsEnhancedProtectionEnabled) { -- mEnhancedProtection.setChecked(checkedState == SafeBrowsingState.ENHANCED_PROTECTION); -+ mEnhancedProtection.setChecked(false); - } +- mEnhancedProtection.setChecked(checkedState == SafeBrowsingState.ENHANCED_PROTECTION); - mStandardProtection.setChecked(checkedState == SafeBrowsingState.STANDARD_PROTECTION); - mNoProtection.setChecked(checkedState == SafeBrowsingState.NO_SAFE_BROWSING); -+ mStandardProtection.setChecked(false); -+ mNoProtection.setChecked(true); } @VisibleForTesting @@ -908,7 +771,7 @@ Subject: Fix build error caused by the removal of safe_browsing_prefs.h static boolean isPromoDismissedInSharedPreference() { --- a/chrome/android/java/src/org/chromium/chrome/browser/sync/settings/SignInPreference.java +++ b/chrome/android/java/src/org/chromium/chrome/browser/sync/settings/SignInPreference.java -@@ -125,11 +125,7 @@ public class SignInPreference +@@ -124,11 +124,7 @@ public class SignInPreference .getSigninManager(Profile.getLastUsedRegularProfile()) .isSigninDisabledByPolicy()) { // TODO(https://crbug.com/1133739): Clean up after revising isSigninDisabledByPolicy. @@ -954,19 +817,19 @@ Subject: Fix build error caused by the removal of safe_browsing_prefs.h import org.chromium.chrome.browser.settings.ChromeManagedPreferenceDelegate; import org.chromium.chrome.browser.settings.SettingsLauncherImpl; import org.chromium.chrome.browser.signin.services.IdentityServicesProvider; -@@ -103,11 +101,7 @@ public class PrivacySettings - if (ChromeFeatureList.isEnabled(ChromeFeatureList.SAFE_BROWSING_SECTION_UI)) { - getActivity().setTitle(R.string.prefs_privacy_security); - Preference safeBrowsingPreference = findPreference(PREF_SAFE_BROWSING); -- safeBrowsingPreference.setSummary( -- SafeBrowsingSettingsFragment.getSafeBrowsingSummaryString(getContext())); - safeBrowsingPreference.setOnPreferenceClickListener((preference) -> { -- preference.getExtras().putInt(SafeBrowsingSettingsFragment.ACCESS_POINT, -- SettingsAccessPoint.PARENT_SETTINGS); - return false; - }); - } else { -@@ -219,8 +213,6 @@ public class PrivacySettings +@@ -85,11 +83,7 @@ public class PrivacySettings + } + + Preference safeBrowsingPreference = findPreference(PREF_SAFE_BROWSING); +- safeBrowsingPreference.setSummary( +- SafeBrowsingSettingsFragment.getSafeBrowsingSummaryString(getContext())); + safeBrowsingPreference.setOnPreferenceClickListener((preference) -> { +- preference.getExtras().putInt( +- SafeBrowsingSettingsFragment.ACCESS_POINT, SettingsAccessPoint.PARENT_SETTINGS); + return false; + }); + +@@ -198,8 +192,6 @@ public class PrivacySettings Preference safeBrowsingPreference = findPreference(PREF_SAFE_BROWSING); if (safeBrowsingPreference != null && safeBrowsingPreference.isVisible()) { @@ -999,10 +862,10 @@ Subject: Fix build error caused by the removal of safe_browsing_prefs.h } --- a/chrome/browser/safe_browsing/android/java/src/org/chromium/chrome/browser/safe_browsing/settings/SafeBrowsingSettingsFragment.java +++ b/chrome/browser/safe_browsing/android/java/src/org/chromium/chrome/browser/safe_browsing/settings/SafeBrowsingSettingsFragment.java -@@ -14,10 +14,6 @@ import org.chromium.base.IntentUtils; +@@ -13,10 +13,6 @@ import androidx.preference.Preference; + import org.chromium.base.IntentUtils; import org.chromium.base.metrics.RecordHistogram; import org.chromium.base.metrics.RecordUserAction; - import org.chromium.chrome.browser.flags.ChromeFeatureList; -import org.chromium.chrome.browser.safe_browsing.SafeBrowsingBridge; -import org.chromium.chrome.browser.safe_browsing.SafeBrowsingState; -import org.chromium.chrome.browser.safe_browsing.metrics.SettingsAccessPoint; @@ -1010,7 +873,7 @@ Subject: Fix build error caused by the removal of safe_browsing_prefs.h import org.chromium.chrome.browser.settings.ChromeManagedPreferenceDelegate; import org.chromium.components.browser_ui.settings.FragmentSettingsLauncher; import org.chromium.components.browser_ui.settings.ManagedPreferenceDelegate; -@@ -40,26 +36,12 @@ public class SafeBrowsingSettingsFragmen +@@ -39,26 +35,12 @@ public class SafeBrowsingSettingsFragmen // An instance of SettingsLauncher that is used to launch Safe Browsing subsections. private SettingsLauncher mSettingsLauncher; private RadioButtonGroupSafeBrowsingPreference mSafeBrowsingPreference; @@ -1037,7 +900,7 @@ Subject: Fix build error caused by the removal of safe_browsing_prefs.h return context.getString(R.string.prefs_safe_browsing_summary, safeBrowsingStateString); } -@@ -67,7 +49,7 @@ public class SafeBrowsingSettingsFragmen +@@ -66,7 +48,7 @@ public class SafeBrowsingSettingsFragmen * Creates an argument bundle to open the Safe Browsing settings page. * @param accessPoint The access point for opening the Safe Browsing settings page. */ @@ -1046,7 +909,7 @@ Subject: Fix build error caused by the removal of safe_browsing_prefs.h Bundle result = new Bundle(); result.putInt(ACCESS_POINT, accessPoint); return result; -@@ -75,26 +57,6 @@ public class SafeBrowsingSettingsFragmen +@@ -74,24 +56,6 @@ public class SafeBrowsingSettingsFragmen @Override protected void onCreatePreferencesInternal(Bundle bundle, String s) { @@ -1057,8 +920,6 @@ Subject: Fix build error caused by the removal of safe_browsing_prefs.h - - mSafeBrowsingPreference = findPreference(PREF_SAFE_BROWSING); - mSafeBrowsingPreference.init(SafeBrowsingBridge.getSafeBrowsingState(), -- ChromeFeatureList.isEnabled( -- ChromeFeatureList.SAFE_BROWSING_ENHANCED_PROTECTION_ENABLED), - mAccessPoint); - mSafeBrowsingPreference.setSafeBrowsingModeDetailsRequestedListener(this); - mSafeBrowsingPreference.setManagedPreferenceDelegate(managedPreferenceDelegate); @@ -1073,7 +934,7 @@ Subject: Fix build error caused by the removal of safe_browsing_prefs.h } @Override -@@ -103,17 +65,8 @@ public class SafeBrowsingSettingsFragmen +@@ -100,17 +64,8 @@ public class SafeBrowsingSettingsFragmen } @Override @@ -1092,7 +953,7 @@ Subject: Fix build error caused by the removal of safe_browsing_prefs.h } @Override -@@ -123,12 +76,6 @@ public class SafeBrowsingSettingsFragmen +@@ -120,12 +75,6 @@ public class SafeBrowsingSettingsFragmen private ChromeManagedPreferenceDelegate createManagedPreferenceDelegate() { return preference -> { @@ -1105,7 +966,7 @@ Subject: Fix build error caused by the removal of safe_browsing_prefs.h return false; }; } -@@ -137,131 +84,30 @@ public class SafeBrowsingSettingsFragmen +@@ -134,131 +83,30 @@ public class SafeBrowsingSettingsFragmen public boolean onPreferenceChange(Preference preference, Object newValue) { String key = preference.getKey(); assert PREF_SAFE_BROWSING.equals(key) : "Unexpected preference key."; @@ -1245,11 +1106,11 @@ Subject: Fix build error caused by the removal of safe_browsing_prefs.h } --- a/chrome/browser/password_manager/chrome_password_manager_client.cc +++ b/chrome/browser/password_manager/chrome_password_manager_client.cc -@@ -434,7 +434,9 @@ void ChromePasswordManagerClient::ShowTo +@@ -436,7 +436,9 @@ void ChromePasswordManagerClient::ShowTo #if defined(OS_ANDROID) void ChromePasswordManagerClient::OnPasswordSelected( - const base::string16& text) { -+#if defined(PASSWORD_REUSE_DETECTION_ENABLED) + const std::u16string& text) { ++#if defined(SYNC_PASSWORD_REUSE_DETECTION_ENABLED) password_reuse_detection_manager_.OnPaste(text); +#endif } @@ -1257,7 +1118,7 @@ Subject: Fix build error caused by the removal of safe_browsing_prefs.h --- a/weblayer/browser/browsing_data_remover_delegate.cc +++ b/weblayer/browser/browsing_data_remover_delegate.cc -@@ -84,7 +84,7 @@ void BrowsingDataRemoverDelegate::Remove +@@ -96,7 +96,7 @@ void BrowsingDataRemoverDelegate::Remove // between UNPROTECTED_WEB and PROTECTED_WEB. if (remove_mask & content::BrowsingDataRemover::DATA_TYPE_COOKIES) { network::mojom::NetworkContext* safe_browsing_context = nullptr; @@ -1266,20 +1127,9 @@ Subject: Fix build error caused by the removal of safe_browsing_prefs.h auto* sb_service = BrowserProcess::GetInstance()->GetSafeBrowsingService(); if (sb_service) safe_browsing_context = sb_service->GetNetworkContext(); ---- a/components/safe_browsing/core/features.cc -+++ b/components/safe_browsing/core/features.cc -@@ -121,7 +121,7 @@ constexpr base::FeatureParam kShou - &kPasswordProtectionForSignedInUsers, "DeprecateOldProto", false}; - - const base::Feature kSafeBrowsingSectionUIAndroid{ -- "SafeBrowsingSecuritySectionUIAndroid", base::FEATURE_ENABLED_BY_DEFAULT}; -+ "SafeBrowsingSecuritySectionUIAndroid", base::FEATURE_DISABLED_BY_DEFAULT}; - - const base::Feature kSuspiciousSiteTriggerQuotaFeature{ - "SafeBrowsingSuspiciousSiteTriggerQuota", base::FEATURE_ENABLED_BY_DEFAULT}; --- a/components/safe_browsing/content/browser/client_side_detection_service.cc +++ b/components/safe_browsing/content/browser/client_side_detection_service.cc -@@ -74,18 +74,7 @@ ClientSideDetectionService::ClientSideDe +@@ -82,18 +82,7 @@ ClientSideDetectionService::ClientSideDe url_loader_factory_ = delegate_->GetSafeBrowsingURLLoaderFactory(); pref_change_registrar_.Init(delegate_->GetPrefs()); @@ -1299,7 +1149,7 @@ Subject: Fix build error caused by the removal of safe_browsing_prefs.h // Do an initial check of the prefs. OnPrefsUpdated(); } -@@ -100,10 +89,9 @@ void ClientSideDetectionService::Shutdow +@@ -108,10 +97,9 @@ void ClientSideDetectionService::Shutdow void ClientSideDetectionService::OnPrefsUpdated() { DCHECK_CURRENTLY_ON(BrowserThread::UI); @@ -1312,7 +1162,7 @@ Subject: Fix build error caused by the removal of safe_browsing_prefs.h if (enabled == enabled_ && extended_reporting_ == extended_reporting) return; -@@ -210,10 +198,7 @@ void ClientSideDetectionService::StartCl +@@ -221,10 +209,7 @@ void ClientSideDetectionService::StartCl return; } @@ -1324,7 +1174,7 @@ Subject: Fix build error caused by the removal of safe_browsing_prefs.h // Fill in metadata about which model we used. request->set_model_filename(model_loader_->name()); *request->mutable_population() = delegate_->GetUserPopulation(); -@@ -387,7 +372,6 @@ void ClientSideDetectionService::AddPhis +@@ -422,7 +407,6 @@ void ClientSideDetectionService::AddPhis base::ListValue time_list; for (const base::Time& timestamp : phishing_report_times_) time_list.Append(base::Value(timestamp.ToDoubleT())); @@ -1332,7 +1182,7 @@ Subject: Fix build error caused by the removal of safe_browsing_prefs.h } void ClientSideDetectionService::LoadPhishingReportTimesFromPrefs() { -@@ -395,11 +379,6 @@ void ClientSideDetectionService::LoadPhi +@@ -430,11 +414,6 @@ void ClientSideDetectionService::LoadPhi return; phishing_report_times_.clear(); @@ -1346,8 +1196,16 @@ Subject: Fix build error caused by the removal of safe_browsing_prefs.h // static --- a/components/safe_browsing/content/browser/client_side_detection_host.h +++ b/components/safe_browsing/content/browser/client_side_detection_host.h -@@ -22,6 +22,8 @@ - #include "services/service_manager/public/cpp/binder_registry.h" +@@ -17,7 +17,6 @@ + #include "components/safe_browsing/content/common/safe_browsing.mojom-shared.h" + #include "components/safe_browsing/content/common/safe_browsing.mojom.h" + #include "components/safe_browsing/core/browser/safe_browsing_token_fetcher.h" +-#include "components/safe_browsing/core/common/safe_browsing_prefs.h" + #include "components/safe_browsing/core/db/database_manager.h" + #include "content/public/browser/web_contents_observer.h" + #include "mojo/public/cpp/bindings/remote.h" +@@ -25,6 +24,8 @@ + #include "url/gurl.h" +class PrefService; @@ -1357,7 +1215,7 @@ Subject: Fix build error caused by the removal of safe_browsing_prefs.h } --- a/components/safe_browsing/content/browser/client_side_detection_host.cc +++ b/components/safe_browsing/content/browser/client_side_detection_host.cc -@@ -108,7 +108,7 @@ class ClientSideDetectionHost::ShouldCla +@@ -110,7 +110,7 @@ class ClientSideDetectionHost::ShouldCla // Don't start classification if |url_| is allowlisted by enterprise policy. if (host_->delegate_->GetPrefs() && @@ -1366,7 +1224,7 @@ Subject: Fix build error caused by the removal of safe_browsing_prefs.h DontClassifyForPhishing(NO_CLASSIFY_ALLOWLISTED_BY_POLICY); } -@@ -434,8 +434,7 @@ void ClientSideDetectionHost::PhishingDe +@@ -449,15 +449,14 @@ void ClientSideDetectionHost::PhishingDe VLOG(2) << "Phash Score: " << match.vision_matched_phash_score(); VLOG(2) << "EMD Score: " << match.vision_matched_emd_score(); } @@ -1376,9 +1234,26 @@ Subject: Fix build error caused by the removal of safe_browsing_prefs.h // These fields should only be set for SBER users. verdict->clear_screenshot_digest(); verdict->clear_screenshot_phash(); + verdict->clear_phash_dimension_size(); + } + +- if (IsEnhancedProtectionEnabled(*delegate_->GetPrefs()) && ++ if (false && + base::FeatureList::IsEnabled(kClientSideDetectionReferrerChain)) { + delegate_->AddReferrerChain(verdict.get(), current_url_); + } +@@ -546,7 +545,7 @@ bool ClientSideDetectionHost::CanGetAcce + // Return true if the finch feature is enabled for an ESB user, and if the + // primary user account is signed in. + return base::FeatureList::IsEnabled(kClientSideDetectionWithToken) && +- IsEnhancedProtectionEnabled(*pref_service_) && ++ false && + std::move(account_signed_in_callback_).Run(); + } + --- a/weblayer/browser/safe_browsing/safe_browsing_tab_observer.cc +++ b/weblayer/browser/safe_browsing/safe_browsing_tab_observer.cc -@@ -24,16 +24,11 @@ SafeBrowsingTabObserver::SafeBrowsingTab +@@ -45,16 +45,11 @@ SafeBrowsingTabObserver::SafeBrowsingTab PrefService* prefs = browser_context->pref_service(); if (prefs) { pref_change_registrar_.Init(prefs); @@ -1396,7 +1271,7 @@ Subject: Fix build error caused by the removal of safe_browsing_prefs.h BrowserProcess::GetInstance()->GetSafeBrowsingService() && csd_service) { safebrowsing_detection_host_ = -@@ -53,7 +48,7 @@ void SafeBrowsingTabObserver::UpdateSafe +@@ -72,7 +67,7 @@ void SafeBrowsingTabObserver::UpdateSafe static_cast(web_contents_->GetBrowserContext()); PrefService* prefs = browser_context->pref_service(); @@ -1405,7 +1280,7 @@ Subject: Fix build error caused by the removal of safe_browsing_prefs.h safe_browsing::ClientSideDetectionService* csd_service = ClientSideDetectionServiceFactory::GetForBrowserContext(browser_context); if (safe_browsing && csd_service) { -@@ -72,4 +67,4 @@ void SafeBrowsingTabObserver::UpdateSafe +@@ -89,4 +84,4 @@ void SafeBrowsingTabObserver::UpdateSafe WEB_CONTENTS_USER_DATA_KEY_IMPL(SafeBrowsingTabObserver) @@ -1440,7 +1315,7 @@ Subject: Fix build error caused by the removal of safe_browsing_prefs.h safe_browsing::ChromeUserPopulation::UNAVAILABLE); --- a/weblayer/browser/subresource_filter_client_impl.cc +++ b/weblayer/browser/subresource_filter_client_impl.cc -@@ -35,7 +35,7 @@ namespace { +@@ -34,7 +34,7 @@ namespace { // available. Otherwise returns nullptr. const scoped_refptr GetDatabaseManagerFromSafeBrowsingService() { @@ -1449,3 +1324,19 @@ Subject: Fix build error caused by the removal of safe_browsing_prefs.h SafeBrowsingService* safe_browsing_service = BrowserProcess::GetInstance()->GetSafeBrowsingService(); return safe_browsing_service +--- a/weblayer/browser/safe_browsing/real_time_url_lookup_service_factory.cc ++++ b/weblayer/browser/safe_browsing/real_time_url_lookup_service_factory.cc +@@ -59,12 +59,7 @@ KeyedService* RealTimeUrlLookupServiceFa + PrefService* pref_service = + static_cast(context)->pref_service(); + user_population.set_user_population( +- safe_browsing::IsEnhancedProtectionEnabled(*pref_service) +- ? safe_browsing::ChromeUserPopulation::ENHANCED_PROTECTION +- : safe_browsing::IsExtendedReportingEnabled(*pref_service) +- ? safe_browsing::ChromeUserPopulation:: +- EXTENDED_REPORTING +- : safe_browsing::ChromeUserPopulation::SAFE_BROWSING); ++ safe_browsing::ChromeUserPopulation::SAFE_BROWSING); + + user_population.set_profile_management_status( + safe_browsing::GetProfileManagementStatus(nullptr)); diff --git a/patches/src-fix/fix-unkown-warning-clang.patch b/patches/src-fix/fix-unkown-warning-clang.patch index 3fe665f..75e437c 100644 --- a/patches/src-fix/fix-unkown-warning-clang.patch +++ b/patches/src-fix/fix-unkown-warning-clang.patch @@ -7,7 +7,7 @@ author: Wengling Chen --- a/build/config/compiler/BUILD.gn +++ b/build/config/compiler/BUILD.gn -@@ -1585,6 +1585,9 @@ config("default_warnings") { +@@ -1588,6 +1588,9 @@ config("default_warnings") { # Flags NaCl (Clang 3.7) and Xcode 9.2 (Clang clang-900.0.39.2) do not # recognize. cflags += [ diff --git a/patches/ungoogled-chromium-android/Add-always-desktop-option.patch b/patches/ungoogled-chromium-android/Add-always-desktop-option.patch index e3a6f56..9fc329f 100644 --- a/patches/ungoogled-chromium-android/Add-always-desktop-option.patch +++ b/patches/ungoogled-chromium-android/Add-always-desktop-option.patch @@ -2,13 +2,12 @@ description: Add option to enable desktop mode all the time author: Wengling Chen --- - chrome/android/java/res/xml/accessibility_preferences.xml | 5 ++++ - chrome/android/java/src/org/chromium/chrome/browser/accessibility/settings/AccessibilitySettings.java | 10 +++++++++ - chrome/android/java/src/org/chromium/chrome/browser/tabmodel/TabModelSelectorImpl.java | 11 ++++++++++ - chrome/browser/preferences/android/java/src/org/chromium/chrome/browser/preferences/ChromePreferenceKeys.java | 2 + - chrome/browser/preferences/android/java/src/org/chromium/chrome/browser/preferences/GrandfatheredChromePreferenceKeys.java | 1 - chrome/browser/ui/android/strings/android_chrome_strings.grd | 6 +++++ - 6 files changed, 35 insertions(+) + chrome/android/java/res/xml/accessibility_preferences.xml | 5 ++++ + chrome/android/java/src/org/chromium/chrome/browser/accessibility/settings/AccessibilitySettings.java | 10 +++++++++ + chrome/android/java/src/org/chromium/chrome/browser/tabmodel/TabModelSelectorImpl.java | 11 ++++++++++ + chrome/browser/preferences/android/java/src/org/chromium/chrome/browser/preferences/ChromePreferenceKeys.java | 3 ++ + chrome/browser/ui/android/strings/android_chrome_strings.grd | 6 +++++ + 5 files changed, 35 insertions(+) --- a/chrome/android/java/res/xml/accessibility_preferences.xml +++ b/chrome/android/java/res/xml/accessibility_preferences.xml @@ -25,6 +25,11 @@ @@ -25,7 +24,7 @@ author: Wengling Chen android:title="@string/accessibility_captions_title"/> --- a/chrome/browser/ui/android/strings/android_chrome_strings.grd +++ b/chrome/browser/ui/android/strings/android_chrome_strings.grd -@@ -1189,6 +1189,12 @@ Your Google account may have other forms +@@ -1186,6 +1186,12 @@ Your Google account may have other forms Captions @@ -40,7 +39,7 @@ author: Wengling Chen --- a/chrome/browser/preferences/android/java/src/org/chromium/chrome/browser/preferences/ChromePreferenceKeys.java +++ b/chrome/browser/preferences/android/java/src/org/chromium/chrome/browser/preferences/ChromePreferenceKeys.java -@@ -446,6 +446,8 @@ public final class ChromePreferenceKeys +@@ -487,6 +487,8 @@ public final class ChromePreferenceKeys public static final String FONT_USER_FONT_SCALE_FACTOR = "user_font_scale_factor"; public static final String FONT_USER_SET_FORCE_ENABLE_ZOOM = "user_set_force_enable_zoom"; @@ -49,6 +48,14 @@ author: Wengling Chen public static final String HISTORY_SHOW_HISTORY_INFO = "history_home_show_info"; /** Keys used to save settings related to homepage. */ +@@ -1001,6 +1003,7 @@ public final class ChromePreferenceKeys + FIRST_RUN_SKIPPED_BY_POLICY, + FLAGS_CACHED.pattern(), + FLAGS_FIELD_TRIAL_PARAM_CACHED.pattern(), ++ FLAGS_FORCE_DESKTOP_MODE_ENABLED, + FLAGS_LAST_CACHED_MINIMAL_BROWSER_FLAGS_TIME_MILLIS, + HOMEPAGE_LOCATION_POLICY, + HOMEPAGE_USE_CHROME_NTP, --- a/chrome/android/java/src/org/chromium/chrome/browser/accessibility/settings/AccessibilitySettings.java +++ b/chrome/android/java/src/org/chromium/chrome/browser/accessibility/settings/AccessibilitySettings.java @@ -34,6 +34,7 @@ public class AccessibilitySettings @@ -90,10 +97,10 @@ author: Wengling Chen import org.chromium.chrome.browser.compositor.layouts.content.TabContentManager; +import org.chromium.chrome.browser.preferences.ChromePreferenceKeys; +import org.chromium.chrome.browser.preferences.SharedPreferencesManager; + import org.chromium.chrome.browser.flags.ActivityType; import org.chromium.chrome.browser.profiles.Profile; import org.chromium.chrome.browser.tab.SadTab; - import org.chromium.chrome.browser.tab.Tab; -@@ -178,6 +180,15 @@ public class TabModelSelectorImpl extend +@@ -162,6 +164,15 @@ public class TabModelSelectorImpl extend @Override public void onPageLoadFinished(Tab tab, GURL url) { @@ -109,13 +116,3 @@ author: Wengling Chen tab.getId(); } ---- a/chrome/browser/preferences/android/java/src/org/chromium/chrome/browser/preferences/GrandfatheredChromePreferenceKeys.java -+++ b/chrome/browser/preferences/android/java/src/org/chromium/chrome/browser/preferences/GrandfatheredChromePreferenceKeys.java -@@ -99,6 +99,7 @@ public class GrandfatheredChromePreferen - ChromePreferenceKeys.FLAGS_CACHED_START_SURFACE_ENABLED, - ChromePreferenceKeys.FLAGS_CACHED_SWAP_PIXEL_FORMAT_TO_FIX_CONVERT_FROM_TRANSLUCENT, - ChromePreferenceKeys.FLAGS_CACHED_TAB_GROUPS_ANDROID_ENABLED, -+ ChromePreferenceKeys.FLAGS_FORCE_DESKTOP_MODE_ENABLED, - ChromePreferenceKeys.FONT_USER_FONT_SCALE_FACTOR, - ChromePreferenceKeys.FONT_USER_SET_FORCE_ENABLE_ZOOM, - ChromePreferenceKeys.HISTORY_SHOW_HISTORY_INFO, diff --git a/patches/ungoogled-chromium-android/Add-folder-button-bookmark.patch b/patches/ungoogled-chromium-android/Add-folder-button-bookmark.patch index b49c1db..d1ca41b 100644 --- a/patches/ungoogled-chromium-android/Add-folder-button-bookmark.patch +++ b/patches/ungoogled-chromium-android/Add-folder-button-bookmark.patch @@ -178,7 +178,7 @@ Subject: Add new folder button to bookmark activity if (!mIsCreatingFolder) { --- a/chrome/browser/ui/android/strings/android_chrome_strings.grd +++ b/chrome/browser/ui/android/strings/android_chrome_strings.grd -@@ -3078,6 +3078,9 @@ Data from your Incognito session will on +@@ -3131,6 +3131,9 @@ Data from your Incognito session will on Edit folder diff --git a/patches/ungoogled-chromium-android/Add-force-tablet-ui-option.patch b/patches/ungoogled-chromium-android/Add-force-tablet-ui-option.patch index 96ad37b..8714970 100644 --- a/patches/ungoogled-chromium-android/Add-force-tablet-ui-option.patch +++ b/patches/ungoogled-chromium-android/Add-force-tablet-ui-option.patch @@ -2,16 +2,15 @@ description: Add option to force tablet UI author: Wengling Chen --- - chrome/android/java/res/xml/accessibility_preferences.xml | 5 +++++ - chrome/android/java/src/org/chromium/chrome/browser/accessibility/settings/AccessibilitySettings.java | 10 ++++++++++ - chrome/android/java/src/org/chromium/chrome/browser/toolbar/top/ToolbarControlContainer.java | 2 +- - chrome/browser/preferences/android/java/src/org/chromium/chrome/browser/preferences/ChromePreferenceKeys.java | 1 + - chrome/browser/preferences/android/java/src/org/chromium/chrome/browser/preferences/GrandfatheredChromePreferenceKeys.java | 1 + - chrome/browser/ui/android/strings/android_chrome_strings.grd | 6 ++++++ - components/BUILD.gn | 4 ++-- - ui/android/BUILD.gn | 1 + - ui/android/java/src/org/chromium/ui/base/DeviceFormFactor.java | 5 +++++ - 9 files changed, 32 insertions(+), 3 deletions(-) + chrome/android/java/res/xml/accessibility_preferences.xml | 5 +++++ + chrome/android/java/src/org/chromium/chrome/browser/accessibility/settings/AccessibilitySettings.java | 10 ++++++++++ + chrome/android/java/src/org/chromium/chrome/browser/toolbar/top/ToolbarControlContainer.java | 2 +- + chrome/browser/preferences/android/java/src/org/chromium/chrome/browser/preferences/ChromePreferenceKeys.java | 2 ++ + chrome/browser/ui/android/strings/android_chrome_strings.grd | 6 ++++++ + components/BUILD.gn | 4 ++-- + ui/android/BUILD.gn | 1 + + ui/android/java/src/org/chromium/ui/base/DeviceFormFactor.java | 5 +++++ + 8 files changed, 32 insertions(+), 3 deletions(-) --- a/chrome/android/java/res/xml/accessibility_preferences.xml +++ b/chrome/android/java/res/xml/accessibility_preferences.xml @@ -30,6 +30,11 @@ @@ -28,7 +27,7 @@ author: Wengling Chen android:title="@string/accessibility_captions_title"/> --- a/chrome/browser/ui/android/strings/android_chrome_strings.grd +++ b/chrome/browser/ui/android/strings/android_chrome_strings.grd -@@ -1195,6 +1195,12 @@ Your Google account may have other forms +@@ -1192,6 +1192,12 @@ Your Google account may have other forms Force Desktop Mode @@ -76,7 +75,7 @@ author: Wengling Chen } --- a/chrome/browser/preferences/android/java/src/org/chromium/chrome/browser/preferences/ChromePreferenceKeys.java +++ b/chrome/browser/preferences/android/java/src/org/chromium/chrome/browser/preferences/ChromePreferenceKeys.java -@@ -447,6 +447,7 @@ public final class ChromePreferenceKeys +@@ -488,6 +488,7 @@ public final class ChromePreferenceKeys public static final String FONT_USER_SET_FORCE_ENABLE_ZOOM = "user_set_force_enable_zoom"; public static final String FLAGS_FORCE_DESKTOP_MODE_ENABLED = "force_desktop_mode_enabled"; @@ -84,16 +83,14 @@ author: Wengling Chen public static final String HISTORY_SHOW_HISTORY_INFO = "history_home_show_info"; ---- a/chrome/browser/preferences/android/java/src/org/chromium/chrome/browser/preferences/GrandfatheredChromePreferenceKeys.java -+++ b/chrome/browser/preferences/android/java/src/org/chromium/chrome/browser/preferences/GrandfatheredChromePreferenceKeys.java -@@ -100,6 +100,7 @@ public class GrandfatheredChromePreferen - ChromePreferenceKeys.FLAGS_CACHED_SWAP_PIXEL_FORMAT_TO_FIX_CONVERT_FROM_TRANSLUCENT, - ChromePreferenceKeys.FLAGS_CACHED_TAB_GROUPS_ANDROID_ENABLED, - ChromePreferenceKeys.FLAGS_FORCE_DESKTOP_MODE_ENABLED, -+ ChromePreferenceKeys.FLAGS_FORCE_TABLET_UI_ENABLED, - ChromePreferenceKeys.FONT_USER_FONT_SCALE_FACTOR, - ChromePreferenceKeys.FONT_USER_SET_FORCE_ENABLE_ZOOM, - ChromePreferenceKeys.HISTORY_SHOW_HISTORY_INFO, +@@ -1004,6 +1005,7 @@ public final class ChromePreferenceKeys + FLAGS_CACHED.pattern(), + FLAGS_FIELD_TRIAL_PARAM_CACHED.pattern(), + FLAGS_FORCE_DESKTOP_MODE_ENABLED, ++ FLAGS_FORCE_TABLET_UI_ENABLED, + FLAGS_LAST_CACHED_MINIMAL_BROWSER_FLAGS_TIME_MILLIS, + HOMEPAGE_LOCATION_POLICY, + HOMEPAGE_USE_CHROME_NTP, --- a/ui/android/java/src/org/chromium/ui/base/DeviceFormFactor.java +++ b/ui/android/java/src/org/chromium/ui/base/DeviceFormFactor.java @@ -11,6 +11,8 @@ import androidx.annotation.UiThread; @@ -117,17 +114,17 @@ author: Wengling Chen --- a/ui/android/BUILD.gn +++ b/ui/android/BUILD.gn -@@ -362,6 +362,7 @@ android_library("ui_no_recycler_view_jav +@@ -364,6 +364,7 @@ android_library("ui_no_recycler_view_jav + ":ui_java_resources", ":ui_utils_java", "//base:base_java", - "//base:jni_java", + "//chrome/browser/preferences:java", + "//components/url_formatter/android:url_formatter_java", "//third_party/androidx:androidx_annotation_annotation_java", "//third_party/androidx:androidx_appcompat_appcompat_java", - "//third_party/androidx:androidx_appcompat_appcompat_resources_java", --- a/components/BUILD.gn +++ b/components/BUILD.gn -@@ -501,7 +501,7 @@ test("components_unittests") { +@@ -514,7 +514,7 @@ test("components_unittests") { # On LaCrOS, tests use ash-chrome as a window manager, thus the dependency. # On other platforms, no components should depend on Chrome. @@ -136,7 +133,7 @@ author: Wengling Chen assert_no_deps = [ "//chrome/*" ] } -@@ -748,7 +748,7 @@ if (!is_ios && !is_fuchsia) { +@@ -761,7 +761,7 @@ if (!is_ios && !is_fuchsia) { # On LaCrOS, tests use ash-chrome as a window manager, thus the dependency. # On other platforms, no components should depend on Chrome. @@ -147,7 +144,7 @@ author: Wengling Chen } --- a/chrome/android/java/src/org/chromium/chrome/browser/toolbar/top/ToolbarControlContainer.java +++ b/chrome/android/java/src/org/chromium/chrome/browser/toolbar/top/ToolbarControlContainer.java -@@ -107,7 +107,7 @@ public class ToolbarControlContainer ext +@@ -110,7 +110,7 @@ public class ToolbarControlContainer ext // On tablet, draw a fake tab strip and toolbar until the compositor is // ready to draw the real tab strip. (On phone, the toolbar is made entirely // of Android views, which are already initialized.) diff --git a/patches/ungoogled-chromium-android/Add-more-search-engines.patch b/patches/ungoogled-chromium-android/Add-more-search-engines.patch index 1b5f0b8..71b94e4 100644 --- a/patches/ungoogled-chromium-android/Add-more-search-engines.patch +++ b/patches/ungoogled-chromium-android/Add-more-search-engines.patch @@ -1010,11 +1010,11 @@ Subject: Add Startpage.com and Qwant.com search engines &duckduckgo, --- a/components/search_engines/search_engine_type.h +++ b/components/search_engines/search_engine_type.h -@@ -53,6 +53,7 @@ enum SearchEngineType { - SEARCH_ENGINE_SOFTONIC, - SEARCH_ENGINE_SOGOU, - SEARCH_ENGINE_SOSO, -+ SEARCH_ENGINE_STARTPAGE, - SEARCH_ENGINE_SWEETPACKS, - SEARCH_ENGINE_TERRA, - SEARCH_ENGINE_TUT, +@@ -75,6 +75,7 @@ enum SearchEngineType { + SEARCH_ENGINE_PRIVACYWALL = 58, + SEARCH_ENGINE_ECOSIA = 59, + SEARCH_ENGINE_SEARX = 60, ++ SEARCH_ENGINE_STARTPAGE = 61, + + SEARCH_ENGINE_MAX // Bounding value needed for UMA histogram macro. + }; diff --git a/patches/ungoogled-chromium-android/Add-save-data-flag.patch b/patches/ungoogled-chromium-android/Add-save-data-flag.patch index 2a777c9..22df10c 100644 --- a/patches/ungoogled-chromium-android/Add-save-data-flag.patch +++ b/patches/ungoogled-chromium-android/Add-save-data-flag.patch @@ -12,7 +12,7 @@ author: Wengling Chen --- a/chrome/browser/about_flags.cc +++ b/chrome/browser/about_flags.cc -@@ -4622,6 +4622,9 @@ const FeatureEntry kFeatureEntries[] = { +@@ -4608,6 +4608,9 @@ const FeatureEntry kFeatureEntries[] = { FEATURE_WITH_PARAMS_VALUE_TYPE(features::kMBIMode, kMBIModeVariations, "MBIMode")}, @@ -20,11 +20,11 @@ author: Wengling Chen + flag_descriptions::kEnableSaveDataHeaderDescription, kOsAndroid, + FEATURE_VALUE_TYPE(network::features::kEnableSaveDataHeader)}, - {"delay-competing-low-priority-requests", - flag_descriptions::kDelayCompetingLowPriorityRequestsName, + {"intensive-wake-up-throttling", + flag_descriptions::kIntensiveWakeUpThrottlingName, --- a/services/network/public/cpp/features.cc +++ b/services/network/public/cpp/features.cc -@@ -145,6 +145,10 @@ const base::FeatureParam +@@ -152,6 +152,10 @@ const base::FeatureParam const base::Feature kDisableKeepaliveFetch{"DisableKeepaliveFetch", base::FEATURE_DISABLED_BY_DEFAULT}; @@ -37,7 +37,7 @@ author: Wengling Chen // calling mojo::ReportBadMessage (on desktop platforms, where NetworkService --- a/services/network/public/cpp/features.h +++ b/services/network/public/cpp/features.h -@@ -56,6 +56,8 @@ extern const base::FeatureParam COMPONENT_EXPORT(NETWORK_CPP) --- a/chrome/browser/flag_descriptions.cc +++ b/chrome/browser/flag_descriptions.cc -@@ -958,6 +958,10 @@ const char kDisableKeepaliveFetchDescrip +@@ -989,6 +989,10 @@ const char kDisableKeepaliveFetchDescrip "Disable fetch with keepalive set " "(https://fetch.spec.whatwg.org/#request-keepalive-flag)."; @@ -61,7 +61,7 @@ author: Wengling Chen const char kExperimentalAccessibilityLanguageDetectionDescription[] = --- a/chrome/browser/flag_descriptions.h +++ b/chrome/browser/flag_descriptions.h -@@ -545,6 +545,9 @@ extern const char kDiagnosticsAppDescrip +@@ -559,6 +559,9 @@ extern const char kDiagnosticsAppDescrip extern const char kDisableKeepaliveFetchName[]; extern const char kDisableKeepaliveFetchDescription[]; diff --git a/patches/ungoogled-chromium-android/Disable-contextual-search.patch b/patches/ungoogled-chromium-android/Disable-contextual-search.patch index cf48ac1..082d5da 100644 --- a/patches/ungoogled-chromium-android/Disable-contextual-search.patch +++ b/patches/ungoogled-chromium-android/Disable-contextual-search.patch @@ -8,7 +8,7 @@ Subject: Disable contextual search by default --- a/chrome/browser/profiles/profile.cc +++ b/chrome/browser/profiles/profile.cc -@@ -252,7 +252,7 @@ void Profile::RegisterProfilePrefs(user_ +@@ -270,7 +270,7 @@ void Profile::RegisterProfilePrefs(user_ #if defined(OS_ANDROID) registry->RegisterStringPref( prefs::kContextualSearchEnabled, diff --git a/patches/ungoogled-chromium-android/Disable-homepage-by-default.patch b/patches/ungoogled-chromium-android/Disable-homepage-by-default.patch index 6cc5630..31c1ba3 100644 --- a/patches/ungoogled-chromium-android/Disable-homepage-by-default.patch +++ b/patches/ungoogled-chromium-android/Disable-homepage-by-default.patch @@ -8,7 +8,7 @@ Subject: Disable google homepage by default --- a/chrome/android/java/src/org/chromium/chrome/browser/homepage/HomepageManager.java +++ b/chrome/android/java/src/org/chromium/chrome/browser/homepage/HomepageManager.java -@@ -188,7 +188,7 @@ public class HomepageManager implements +@@ -202,7 +202,7 @@ public class HomepageManager implements * @see #isHomepageEnabled */ private boolean getPrefHomepageEnabled() { diff --git a/patches/ungoogled-chromium-android/Enable-ProactivelySwapBrowsingInstance.patch b/patches/ungoogled-chromium-android/Enable-ProactivelySwapBrowsingInstance.patch index 1705cc1..fac14da 100644 --- a/patches/ungoogled-chromium-android/Enable-ProactivelySwapBrowsingInstance.patch +++ b/patches/ungoogled-chromium-android/Enable-ProactivelySwapBrowsingInstance.patch @@ -9,7 +9,7 @@ Subject: Enable experimental ProactivelySwapBrowsingInstance feature --- a/content/public/common/content_features.cc +++ b/content/public/common/content_features.cc -@@ -543,7 +543,7 @@ const base::Feature kPrioritizeBootstrap +@@ -548,7 +548,7 @@ const base::Feature kPrioritizeBootstrap // HTTP(S) navigations when the BrowsingInstance doesn't contain any other // windows. const base::Feature kProactivelySwapBrowsingInstance{ diff --git a/patches/ungoogled-chromium-android/Enable-update-notification.patch b/patches/ungoogled-chromium-android/Enable-update-notification.patch index 1801954..3bf9b75 100644 --- a/patches/ungoogled-chromium-android/Enable-update-notification.patch +++ b/patches/ungoogled-chromium-android/Enable-update-notification.patch @@ -251,7 +251,7 @@ +} --- a/chrome/android/chrome_java_sources.gni +++ b/chrome/android/chrome_java_sources.gni -@@ -936,6 +936,7 @@ chrome_java_sources = [ +@@ -905,6 +905,7 @@ chrome_java_sources = [ "java/src/org/chromium/chrome/browser/omaha/inline/InlineUpdateController.java", "java/src/org/chromium/chrome/browser/omaha/inline/InlineUpdateControllerFactory.java", "java/src/org/chromium/chrome/browser/omaha/inline/NoopInlineUpdateController.java", @@ -389,7 +389,7 @@ constexpr int kDefaultUpdateNotificationMaxInterval = 90; --- a/chrome/android/java/AndroidManifest.xml +++ b/chrome/android/java/AndroidManifest.xml -@@ -1043,7 +1043,7 @@ by a child template that "extends" this +@@ -1061,7 +1061,7 @@ by a child template that "extends" this @@ -400,7 +400,7 @@ @@ -411,7 +411,7 @@ Update Chrome --- a/chrome/browser/flag-metadata.json +++ b/chrome/browser/flag-metadata.json -@@ -1924,7 +1924,7 @@ +@@ -1955,7 +1955,7 @@ { "name": "enable-inline-update-flow", "owners": [ "nyquist", "dtrainor" ], diff --git a/patches/ungoogled-chromium-android/Mark-http-as-dangerous-mixed-content-warning.patch b/patches/ungoogled-chromium-android/Mark-http-as-dangerous-mixed-content-warning.patch deleted file mode 100644 index 12780a6..0000000 --- a/patches/ungoogled-chromium-android/Mark-http-as-dangerous-mixed-content-warning.patch +++ /dev/null @@ -1,19 +0,0 @@ -From: Wengling Chen -Date: Thu, 28 May 2020 01:13:08 -0400 -Subject: Enable legacy TLS warnings and mark-http-as-dangerous by default - ---- - components/security_state/core/features.cc | 2 +- - 1 file changed, 1 insertion(+), 1 deletion(-) - ---- a/components/security_state/core/features.cc -+++ b/components/security_state/core/features.cc -@@ -8,7 +8,7 @@ namespace security_state { - namespace features { - - const base::Feature kLegacyTLSWarnings{"LegacyTLSWarnings", -- base::FEATURE_DISABLED_BY_DEFAULT}; -+ base::FEATURE_ENABLED_BY_DEFAULT}; - - const base::Feature kSafetyTipUI{"SafetyTip", base::FEATURE_ENABLED_BY_DEFAULT}; - diff --git a/patches/ungoogled-chromium-android/Remove-UI-elements.patch b/patches/ungoogled-chromium-android/Remove-UI-elements.patch index a80143d..439218f 100644 --- a/patches/ungoogled-chromium-android/Remove-UI-elements.patch +++ b/patches/ungoogled-chromium-android/Remove-UI-elements.patch @@ -7,42 +7,42 @@ Subject: Remove unused UI elements. Also disables autofill assistant. chrome/android/java/res/menu/main_menu.xml | 3 chrome/android/java/res/menu/save_password_preferences_action_bar_menu.xml | 6 - chrome/android/java/res/xml/main_preferences.xml | 15 -- - chrome/android/java/res/xml/privacy_preferences.xml | 5 + chrome/android/java/res/xml/privacy_preferences.xml | 4 chrome/android/java/src/org/chromium/chrome/browser/KeyboardShortcuts.java | 1 + chrome/android/java/src/org/chromium/chrome/browser/app/ChromeActivity.java | 10 - chrome/android/java/src/org/chromium/chrome/browser/browsing_data/ClearBrowsingDataTabsFragment.java | 5 chrome/android/java/src/org/chromium/chrome/browser/customtabs/BaseCustomTabActivity.java | 2 chrome/android/java/src/org/chromium/chrome/browser/datareduction/settings/DataReductionPreferenceFragment.java | 4 chrome/android/java/src/org/chromium/chrome/browser/directactions/MenuDirectActionHandler.java | 2 chrome/android/java/src/org/chromium/chrome/browser/firstrun/FirstRunStatus.java | 2 chrome/android/java/src/org/chromium/chrome/browser/password_manager/settings/PasswordSettings.java | 4 - chrome/android/java/src/org/chromium/chrome/browser/privacy/settings/PrivacySettings.java | 10 - + chrome/android/java/src/org/chromium/chrome/browser/privacy/settings/PrivacySettings.java | 8 - chrome/android/java/src/org/chromium/chrome/browser/settings/MainSettings.java | 55 ---------- chrome/android/java/src/org/chromium/chrome/browser/settings/SettingsActivity.java | 5 chrome/android/java/src/org/chromium/chrome/browser/site_settings/ChromeSiteSettingsDelegate.java | 2 chrome/android/java/src/org/chromium/chrome/browser/sync/settings/GoogleServicesSettings.java | 3 chrome/android/java/src/org/chromium/chrome/browser/sync/settings/ManageSyncSettings.java | 3 chrome/android/java/src/org/chromium/chrome/browser/sync/settings/SyncAndServicesSettings.java | 3 - chrome/common/chrome_features.cc | 2 components/autofill_assistant/browser/features.cc | 10 - components/feed/core/shared_prefs/pref_names.cc | 4 - 22 files changed, 14 insertions(+), 134 deletions(-) + 22 files changed, 12 insertions(+), 141 deletions(-) --- a/components/feed/core/shared_prefs/pref_names.cc +++ b/components/feed/core/shared_prefs/pref_names.cc -@@ -19,8 +19,8 @@ const char kEnableSnippets[] = "ntp_snip - const char kArticlesListVisible[] = "ntp_snippets.list_visible"; +@@ -20,8 +20,8 @@ const char kArticlesListVisible[] = "ntp + const char kVideoPreviewsType[] = "ntp_snippets.video_previews_type"; void RegisterFeedSharedProfilePrefs(PrefRegistrySimple* registry) { - registry->RegisterBooleanPref(kEnableSnippets, true); - registry->RegisterBooleanPref(kArticlesListVisible, true); + registry->RegisterBooleanPref(kEnableSnippets, false); + registry->RegisterBooleanPref(kArticlesListVisible, false); + registry->RegisterIntegerPref(kVideoPreviewsType, 1); } - } // namespace prefs --- a/chrome/android/features/start_surface/public/java/src/org/chromium/chrome/features/start_surface/StartSurfaceConfiguration.java +++ b/chrome/android/features/start_surface/public/java/src/org/chromium/chrome/features/start_surface/StartSurfaceConfiguration.java -@@ -139,7 +139,7 @@ public class StartSurfaceConfiguration { +@@ -149,7 +149,7 @@ public class StartSurfaceConfiguration { */ public static boolean getFeedArticlesVisibility() { return SharedPreferencesManager.getInstance().readBoolean( @@ -53,7 +53,7 @@ Subject: Remove unused UI elements. Also disables autofill assistant. @VisibleForTesting --- a/chrome/android/java/src/org/chromium/chrome/browser/settings/SettingsActivity.java +++ b/chrome/android/java/src/org/chromium/chrome/browser/settings/SettingsActivity.java -@@ -250,11 +250,6 @@ public class SettingsActivity extends Ch +@@ -254,11 +254,6 @@ public class SettingsActivity extends Ch @Override public boolean onCreateOptionsMenu(Menu menu) { super.onCreateOptionsMenu(menu); @@ -94,21 +94,15 @@ Subject: Remove unused UI elements. Also disables autofill assistant. @Override --- 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 -@@ -52,12 +52,11 @@ public class PrivacySettings +@@ -52,7 +52,6 @@ public class PrivacySettings private static final String PREF_USAGE_STATS = "usage_stats_reporting"; private static final String PREF_DO_NOT_TRACK = "do_not_track"; private static final String PREF_SAFE_BROWSING = "safe_browsing"; - private static final String PREF_SYNC_AND_SERVICES_LINK = "sync_and_services_link"; private static final String PREF_CLEAR_BROWSING_DATA = "clear_browsing_data"; private static final String PREF_PRIVACY_SANDBOX = "privacy_sandbox"; - private static final String[] NEW_PRIVACY_PREFERENCE_ORDER = {PREF_CLEAR_BROWSING_DATA, - PREF_SAFE_BROWSING, PREF_CAN_MAKE_PAYMENT, PREF_NETWORK_PREDICTIONS, PREF_USAGE_STATS, -- PREF_SECURE_DNS, PREF_DO_NOT_TRACK, PREF_PRIVACY_SANDBOX, PREF_SYNC_AND_SERVICES_LINK}; -+ PREF_SECURE_DNS, PREF_DO_NOT_TRACK, PREF_PRIVACY_SANDBOX}; - private ManagedPreferenceDelegate mManagedPreferenceDelegate; - -@@ -126,9 +125,6 @@ public class PrivacySettings +@@ -105,9 +104,6 @@ public class PrivacySettings Preference secureDnsPref = findPreference(PREF_SECURE_DNS); secureDnsPref.setVisible(SecureDnsSettings.isUiEnabled()); @@ -118,7 +112,7 @@ Subject: Remove unused UI elements. Also disables autofill assistant. updateSummaries(); } -@@ -255,10 +251,6 @@ public class PrivacySettings +@@ -234,10 +230,6 @@ public class PrivacySettings @Override public void onCreateOptionsMenu(Menu menu, MenuInflater inflater) { menu.clear(); @@ -131,7 +125,7 @@ Subject: Remove unused UI elements. Also disables autofill assistant. @Override --- a/chrome/android/java/src/org/chromium/chrome/browser/sync/settings/GoogleServicesSettings.java +++ b/chrome/android/java/src/org/chromium/chrome/browser/sync/settings/GoogleServicesSettings.java -@@ -186,9 +186,6 @@ public class GoogleServicesSettings +@@ -144,9 +144,6 @@ public class GoogleServicesSettings @Override public void onCreateOptionsMenu(Menu menu, MenuInflater inflater) { menu.clear(); @@ -143,7 +137,7 @@ Subject: Remove unused UI elements. Also disables autofill assistant. @Override --- a/chrome/android/java/src/org/chromium/chrome/browser/sync/settings/ManageSyncSettings.java +++ b/chrome/android/java/src/org/chromium/chrome/browser/sync/settings/ManageSyncSettings.java -@@ -285,9 +285,6 @@ public class ManageSyncSettings extends +@@ -284,9 +284,6 @@ public class ManageSyncSettings extends @Override public void onCreateOptionsMenu(Menu menu, MenuInflater inflater) { menu.clear(); @@ -155,7 +149,7 @@ Subject: Remove unused UI elements. Also disables autofill assistant. @Override --- a/chrome/android/java/src/org/chromium/chrome/browser/sync/settings/SyncAndServicesSettings.java +++ b/chrome/android/java/src/org/chromium/chrome/browser/sync/settings/SyncAndServicesSettings.java -@@ -311,9 +311,6 @@ public class SyncAndServicesSettings ext +@@ -271,9 +271,6 @@ public class SyncAndServicesSettings ext @Override public void onCreateOptionsMenu(Menu menu, MenuInflater inflater) { menu.clear(); @@ -205,7 +199,7 @@ Subject: Remove unused UI elements. Also disables autofill assistant. android:order="22" --- a/chrome/android/java/src/org/chromium/chrome/browser/settings/MainSettings.java +++ b/chrome/android/java/src/org/chromium/chrome/browser/settings/MainSettings.java -@@ -88,7 +88,6 @@ public class MainSettings extends Prefer +@@ -87,7 +87,6 @@ public class MainSettings extends Prefer private final Map mAllPreferences = new HashMap<>(); private SyncPromoPreference mSyncPromoPreference; private SignInPreference mSignInPreference; @@ -213,7 +207,7 @@ Subject: Remove unused UI elements. Also disables autofill assistant. private @Nullable PasswordCheck mPasswordCheck; public MainSettings() { -@@ -176,7 +175,6 @@ public class MainSettings extends Prefer +@@ -168,7 +167,6 @@ public class MainSettings extends Prefer updatePasswordsPreference(); setManagedPreferenceDelegateForPreference(PREF_SEARCH_ENGINE); @@ -221,9 +215,9 @@ Subject: Remove unused UI elements. Also disables autofill assistant. if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.O) { // If we are on Android O+ the Notifications preference should lead to the Android -@@ -214,17 +212,6 @@ public class MainSettings extends Prefer - .setTitle(SafetyCheckSettingsFragment.getSafetyCheckSettingsElementTitle( - getContext())); +@@ -197,17 +195,6 @@ public class MainSettings extends Prefer + TemplateUrlServiceFactory.get().registerLoadListener(this); + TemplateUrlServiceFactory.get().load(); } - - // Replace the account section header, replace SyncAndServicesSettings with @@ -239,7 +233,7 @@ Subject: Remove unused UI elements. Also disables autofill assistant. } /** -@@ -239,7 +226,6 @@ public class MainSettings extends Prefer +@@ -222,7 +209,6 @@ public class MainSettings extends Prefer } mSyncPromoPreference = (SyncPromoPreference) mAllPreferences.get(PREF_SYNC_PROMO); mSignInPreference = (SignInPreference) mAllPreferences.get(PREF_SIGN_IN); @@ -247,7 +241,7 @@ Subject: Remove unused UI elements. Also disables autofill assistant. } private void setManagedPreferenceDelegateForPreference(String key) { -@@ -248,13 +234,7 @@ public class MainSettings extends Prefer +@@ -231,13 +217,7 @@ public class MainSettings extends Prefer } private void updatePreferences() { @@ -262,7 +256,7 @@ Subject: Remove unused UI elements. Also disables autofill assistant. updateSyncPreference(); updateSearchEnginePreference(); -@@ -273,10 +253,6 @@ public class MainSettings extends Prefer +@@ -256,10 +236,6 @@ public class MainSettings extends Prefer } else { removePreferenceIfPresent(PREF_DEVELOPER); } @@ -273,7 +267,7 @@ Subject: Remove unused UI elements. Also disables autofill assistant. } private Preference addPreferenceIfAbsent(String key) { -@@ -299,9 +275,6 @@ public class MainSettings extends Prefer +@@ -282,9 +258,6 @@ public class MainSettings extends Prefer } private void updateSyncAndServicesPreference() { @@ -283,7 +277,7 @@ Subject: Remove unused UI elements. Also disables autofill assistant. } private void updateManageSyncPreference() { -@@ -312,7 +285,6 @@ public class MainSettings extends Prefer +@@ -295,7 +268,6 @@ public class MainSettings extends Prefer boolean showManageSync = ChromeFeatureList.isEnabled(ChromeFeatureList.MOBILE_IDENTITY_CONSISTENCY) && primaryAccountName != null; @@ -291,7 +285,7 @@ Subject: Remove unused UI elements. Also disables autofill assistant. if (!showManageSync) { return; } -@@ -322,21 +294,6 @@ public class MainSettings extends Prefer +@@ -305,21 +277,6 @@ public class MainSettings extends Prefer .getIdentityManager(Profile.getLastUsedRegularProfile()) .getPrimaryAccountInfo(ConsentLevel.SYNC) != null; @@ -313,7 +307,7 @@ Subject: Remove unused UI elements. Also disables autofill assistant. } private void updateSearchEnginePreference() { -@@ -390,8 +347,6 @@ public class MainSettings extends Prefer +@@ -373,8 +330,6 @@ public class MainSettings extends Prefer String prefName = ChromeFeatureList.isEnabled(ChromeFeatureList.MOBILE_IDENTITY_CONSISTENCY) ? PREF_ACCOUNT_AND_GOOGLE_SERVICES_SECTION : PREF_ACCOUNT_SECTION; @@ -322,7 +316,7 @@ Subject: Remove unused UI elements. Also disables autofill assistant. } // TemplateUrlService.LoadListener implementation. -@@ -415,9 +370,6 @@ public class MainSettings extends Prefer +@@ -398,9 +353,6 @@ public class MainSettings extends Prefer return new ChromeManagedPreferenceDelegate() { @Override public boolean isPreferenceControlledByPolicy(Preference preference) { @@ -332,7 +326,7 @@ Subject: Remove unused UI elements. Also disables autofill assistant. if (PREF_SEARCH_ENGINE.equals(preference.getKey())) { return TemplateUrlServiceFactory.get().isDefaultSearchManaged(); } -@@ -426,11 +378,6 @@ public class MainSettings extends Prefer +@@ -409,11 +361,6 @@ public class MainSettings extends Prefer @Override public boolean isPreferenceClickDisabledByPolicy(Preference preference) { @@ -357,7 +351,7 @@ Subject: Remove unused UI elements. Also disables autofill assistant. return CommandLine.getInstance().hasSwitch( --- a/chrome/android/java/res/menu/main_menu.xml +++ b/chrome/android/java/res/menu/main_menu.xml -@@ -114,9 +114,6 @@ +@@ -110,9 +110,6 @@ @@ -366,7 +360,7 @@ Subject: Remove unused UI elements. Also disables autofill assistant. - android:icon="@drawable/help_outline" /> + android:icon="@drawable/gm_filled_cardboard_24" /> --- a/chrome/android/java/src/org/chromium/chrome/browser/directactions/MenuDirectActionHandler.java +++ b/chrome/android/java/src/org/chromium/chrome/browser/directactions/MenuDirectActionHandler.java @@ -36,7 +36,6 @@ class MenuDirectActionHandler implements @@ -397,7 +391,7 @@ Subject: Remove unused UI elements. Also disables autofill assistant. } --- a/chrome/android/java/src/org/chromium/chrome/browser/customtabs/BaseCustomTabActivity.java +++ b/chrome/android/java/src/org/chromium/chrome/browser/customtabs/BaseCustomTabActivity.java -@@ -497,7 +497,7 @@ public abstract class BaseCustomTabActiv +@@ -499,7 +499,7 @@ public abstract class BaseCustomTabActiv @Override public boolean onMenuOrKeyboardAction(int id, boolean fromMenu) { // Disable creating new tabs, bookmark, history, print, help, focus_url, etc. @@ -408,15 +402,14 @@ Subject: Remove unused UI elements. Also disables autofill assistant. return true; --- a/chrome/android/java/res/xml/privacy_preferences.xml +++ b/chrome/android/java/res/xml/privacy_preferences.xml -@@ -50,9 +50,4 @@ +@@ -41,8 +41,4 @@ + android:key="privacy_sandbox" android:title="@string/prefs_privacy_sandbox" - android:fragment="org.chromium.chrome.browser.privacy_sandbox.PrivacySandboxSettingsFragment" - android:order="7"/> + android:fragment="org.chromium.chrome.browser.privacy_sandbox.PrivacySandboxSettingsFragment"/> - +- app:allowDividerBelow="false"/> --- a/chrome/android/java/src/org/chromium/chrome/browser/password_manager/settings/PasswordSettings.java +++ b/chrome/android/java/src/org/chromium/chrome/browser/password_manager/settings/PasswordSettings.java @@ -462,7 +455,7 @@ Subject: Remove unused UI elements. Also disables autofill assistant. android:contentDescription="@string/password_settings_export_action_description" --- a/chrome/android/java/src/org/chromium/chrome/browser/site_settings/ChromeSiteSettingsDelegate.java +++ b/chrome/android/java/src/org/chromium/chrome/browser/site_settings/ChromeSiteSettingsDelegate.java -@@ -208,7 +208,7 @@ public class ChromeSiteSettingsDelegate +@@ -202,7 +202,7 @@ public class ChromeSiteSettingsDelegate @Override public boolean isHelpAndFeedbackEnabled() { @@ -491,27 +484,40 @@ Subject: Remove unused UI elements. Also disables autofill assistant. // Controls whether to disable onboarding flow for Autofill Assistant const base::Feature kAutofillAssistantDisableOnboardingFlow{ -@@ -30,10 +30,10 @@ const base::Feature kAutofillAssistantDi +@@ -43,7 +43,7 @@ const base::Feature kAutofillAssistantIn // Controls whether to show the "Send feedback" chip while in an error state. const base::Feature kAutofillAssistantFeedbackChip{ - "AutofillAssistantFeedbackChip", base::FEATURE_ENABLED_BY_DEFAULT}; + "AutofillAssistantFeedbackChip", base::FEATURE_DISABLED_BY_DEFAULT}; + // Whether autofill assistant should load the DFM for trigger scripts when + // necessary. Without this feature, trigger scripts will exit if the DFM is not +@@ -53,7 +53,7 @@ const base::Feature kAutofillAssistantLo + base::FEATURE_DISABLED_BY_DEFAULT}; + const base::Feature kAutofillAssistantProactiveHelp{ - "AutofillAssistantProactiveHelp", base::FEATURE_ENABLED_BY_DEFAULT}; + "AutofillAssistantProactiveHelp", base::FEATURE_DISABLED_BY_DEFAULT}; // Use Chrome's TabHelper system to deal with the life cycle of WebContent's // depending Autofill Assistant objects. ---- a/chrome/common/chrome_features.cc -+++ b/chrome/common/chrome_features.cc -@@ -793,7 +793,7 @@ const base::Feature kRequestDesktopSiteF - - #if defined(OS_ANDROID) - const base::Feature kSafetyCheckAndroid{"SafetyCheckAndroid", -- base::FEATURE_ENABLED_BY_DEFAULT}; -+ base::FEATURE_DISABLED_BY_DEFAULT}; - #endif - - #if defined(OS_WIN) +--- a/chrome/android/java/src/org/chromium/chrome/browser/app/ChromeActivity.java ++++ b/chrome/android/java/src/org/chromium/chrome/browser/app/ChromeActivity.java +@@ -2241,16 +2241,6 @@ public abstract class ChromeActivity task = client.startSmsCodeBrowserRetriever(); - @@ -446,7 +418,7 @@ Subject: Remove dependency on com.google.android.gms.auth - mProvider.destoryUserConsentReceiver(); - }); - task.addOnFailureListener((Exception e) -> { -- this.onRetrieverTaskFailure(window, e); +- this.onRetrieverTaskFailure(window, isLocalRequest, e); - mProvider.destoryVerificationReceiver(); - }); @@ -454,7 +426,7 @@ Subject: Remove dependency on com.google.android.gms.auth } --- a/content/test/BUILD.gn +++ b/content/test/BUILD.gn -@@ -2656,7 +2656,6 @@ if (is_android) { +@@ -2707,7 +2707,6 @@ if (is_android) { testonly = true sources = content_java_sources_needing_jni deps = [ @@ -552,7 +524,7 @@ Subject: Remove dependency on com.google.android.gms.auth } --- a/content/public/android/java/src/org/chromium/content/browser/sms/SmsProviderGms.java +++ b/content/public/android/java/src/org/chromium/content/browser/sms/SmsProviderGms.java -@@ -136,9 +136,7 @@ public class SmsProviderGms { +@@ -141,9 +141,7 @@ public class SmsProviderGms { if (mClient != null) { return mClient; } @@ -563,23 +535,13 @@ Subject: Remove dependency on com.google.android.gms.auth return mClient; } -@@ -161,4 +159,4 @@ public class SmsProviderGms { +@@ -166,4 +164,4 @@ public class SmsProviderGms { void onCancel(long nativeSmsProviderGms); void onNotAvailable(long nativeSmsProviderGms); } -} \ No newline at end of file +} ---- a/chrome/browser/signin/services/android/BUILD.gn -+++ b/chrome/browser/signin/services/android/BUILD.gn -@@ -28,7 +28,6 @@ android_library("java") { - ] - deps = [ - ":java_resources", -- "$google_play_services_package:google_play_services_auth_base_java", - "//base:base_java", - "//base:jni_java", - "//chrome/browser/preferences:java", --- a/components/signin/public/android/BUILD.gn +++ b/components/signin/public/android/BUILD.gn @@ -2,7 +2,6 @@ import("//build/config/android/rules.gni @@ -589,7 +551,7 @@ Subject: Remove dependency on com.google.android.gms.auth - "$google_play_services_package:google_play_services_auth_base_java", "$google_play_services_package:google_play_services_base_java", "//base:base_java", - "//base:jni_java", + "//net/android:net_java", --- a/remoting/android/client_java_tmpl.gni +++ b/remoting/android/client_java_tmpl.gni @@ -104,7 +104,6 @@ template("remoting_android_client_java_t diff --git a/patches/ungoogled-chromium-android/Remove-dependency-on-com.google.android.gms.cast.patch b/patches/ungoogled-chromium-android/Remove-dependency-on-com.google.android.gms.cast.patch index c4add78..e1f1cbd 100644 --- a/patches/ungoogled-chromium-android/Remove-dependency-on-com.google.android.gms.cast.patch +++ b/patches/ungoogled-chromium-android/Remove-dependency-on-com.google.android.gms.cast.patch @@ -28,7 +28,7 @@ Subject: Remove dependency on com.google.android.gms.cast --- a/chrome/android/BUILD.gn +++ b/chrome/android/BUILD.gn -@@ -279,8 +279,6 @@ android_library("chrome_java") { +@@ -282,8 +282,6 @@ android_library("chrome_java") { ":usage_stats_proto_java", "$google_play_services_package:google_play_services_base_java", "$google_play_services_package:google_play_services_basement_java", @@ -37,7 +37,7 @@ Subject: Remove dependency on com.google.android.gms.cast "$google_play_services_package:google_play_services_fido_java", "$google_play_services_package:google_play_services_iid_java", "$google_play_services_package:google_play_services_tasks_java", -@@ -805,8 +803,6 @@ junit_binary("chrome_junit_tests") { +@@ -823,8 +821,6 @@ junit_binary("chrome_junit_tests") { ":partner_location_descriptor_proto_java", "$google_play_services_package:google_play_services_base_java", "$google_play_services_package:google_play_services_basement_java", @@ -46,7 +46,7 @@ Subject: Remove dependency on com.google.android.gms.cast "$google_play_services_package:google_play_services_fido_java", "//base:base_java", "//base:base_java_test_support", -@@ -1060,8 +1056,6 @@ android_library("chrome_test_java") { +@@ -1105,8 +1101,6 @@ android_library("chrome_test_java") { ":partner_location_descriptor_proto_java", "$google_play_services_package:google_play_services_base_java", "$google_play_services_package:google_play_services_basement_java", @@ -55,7 +55,7 @@ Subject: Remove dependency on com.google.android.gms.cast "$google_play_services_package:google_play_services_fido_java", "$google_play_services_package:google_play_services_iid_java", "$google_play_services_package:google_play_services_tasks_java", -@@ -2279,7 +2273,6 @@ android_library("base_module_java") { +@@ -2347,7 +2341,6 @@ android_library("base_module_java") { # Deps to pull services into base module. # TODO(crbug.com/1126301): Consider moving these to the chrome module to # reduce base dex size. @@ -73,9 +73,9 @@ Subject: Remove dependency on com.google.android.gms.cast - "$google_play_services_package:google_play_services_cast_framework_java", - "$google_play_services_package:google_play_services_cast_java", "//base:base_java", - "//base:jni_java", "//components/browser_ui/media/android:java", -@@ -76,8 +73,6 @@ android_library("java") { + "//content/public/android:content_java", +@@ -75,8 +72,6 @@ android_library("java") { android_library("cast_options_provider_java") { sources = [ "java/src/org/chromium/components/media_router/caf/CastOptionsProvider.java" ] deps = [ @@ -84,7 +84,7 @@ Subject: Remove dependency on com.google.android.gms.cast ] } -@@ -143,9 +138,6 @@ java_library("junit") { +@@ -142,9 +137,6 @@ java_library("junit") { deps = [ ":java", ":test_support_java", @@ -1400,7 +1400,7 @@ Subject: Remove dependency on com.google.android.gms.cast } --- a/chrome/android/java/AndroidManifest.xml +++ b/chrome/android/java/AndroidManifest.xml -@@ -710,16 +710,6 @@ by a child template that "extends" this +@@ -717,16 +717,6 @@ by a child template that "extends" this @@ -1417,7 +1417,7 @@ Subject: Remove dependency on com.google.android.gms.cast {% endif %} @@ -1442,42 +1442,42 @@ Subject: Remove dependency on com.google.android.gms.cast "//third_party/androidx:androidx_mediarouter_mediarouter_java", --- a/third_party/android_deps/BUILD.gn +++ b/third_party/android_deps/BUILD.gn -@@ -416,38 +416,6 @@ android_aar_prebuilt("google_play_servic - } - - # This is generated, do not edit. Update BuildConfigGenerator.groovy instead. --android_aar_prebuilt("google_play_services_cast_java") { -- aar_path = "libs/com_google_android_gms_play_services_cast/play-services-cast-17.0.0.aar" -- info_path = "libs/com_google_android_gms_play_services_cast/com_google_android_gms_play_services_cast.info" -- deps = [ -- ":google_play_services_base_java", -- ":google_play_services_basement_java", -- ":google_play_services_flags_java", -- ":google_play_services_tasks_java", -- "//third_party/androidx:androidx_core_core_java", -- "//third_party/androidx:androidx_mediarouter_mediarouter_java", -- ] --} -- --# This is generated, do not edit. Update BuildConfigGenerator.groovy instead. --android_aar_prebuilt("google_play_services_cast_framework_java") { -- aar_path = "libs/com_google_android_gms_play_services_cast_framework/play-services-cast-framework-17.0.0.aar" -- info_path = "libs/com_google_android_gms_play_services_cast_framework/com_google_android_gms_play_services_cast_framework.info" -- deps = [ -- ":google_play_services_base_java", -- ":google_play_services_basement_java", -- ":google_play_services_cast_java", -- "//third_party/androidx:androidx_appcompat_appcompat_java", -- "//third_party/androidx:androidx_collection_collection_java", -- "//third_party/androidx:androidx_core_core_java", -- "//third_party/androidx:androidx_fragment_fragment_java", -- "//third_party/androidx:androidx_media_media_java", -- "//third_party/androidx:androidx_mediarouter_mediarouter_java", -- "//third_party/androidx:androidx_recyclerview_recyclerview_java", -- ] --} -- --# This is generated, do not edit. Update BuildConfigGenerator.groovy instead. - android_aar_prebuilt("google_play_services_fido_java") { - aar_path = "libs/com_google_android_gms_play_services_fido/play-services-fido-19.0.0-beta.aar" - info_path = "libs/com_google_android_gms_play_services_fido/com_google_android_gms_play_services_fido.info" +@@ -1063,38 +1063,6 @@ if (build_with_chromium) { + } + + # This is generated, do not edit. Update BuildConfigGenerator.groovy instead. +- android_aar_prebuilt("google_play_services_cast_java") { +- aar_path = "libs/com_google_android_gms_play_services_cast/play-services-cast-17.0.0.aar" +- info_path = "libs/com_google_android_gms_play_services_cast/com_google_android_gms_play_services_cast.info" +- deps = [ +- ":google_play_services_base_java", +- ":google_play_services_basement_java", +- ":google_play_services_flags_java", +- ":google_play_services_tasks_java", +- "//third_party/androidx:androidx_core_core_java", +- "//third_party/androidx:androidx_mediarouter_mediarouter_java", +- ] +- } +- +- # This is generated, do not edit. Update BuildConfigGenerator.groovy instead. +- android_aar_prebuilt("google_play_services_cast_framework_java") { +- aar_path = "libs/com_google_android_gms_play_services_cast_framework/play-services-cast-framework-17.0.0.aar" +- info_path = "libs/com_google_android_gms_play_services_cast_framework/com_google_android_gms_play_services_cast_framework.info" +- deps = [ +- ":google_play_services_base_java", +- ":google_play_services_basement_java", +- ":google_play_services_cast_java", +- "//third_party/androidx:androidx_appcompat_appcompat_java", +- "//third_party/androidx:androidx_collection_collection_java", +- "//third_party/androidx:androidx_core_core_java", +- "//third_party/androidx:androidx_fragment_fragment_java", +- "//third_party/androidx:androidx_media_media_java", +- "//third_party/androidx:androidx_mediarouter_mediarouter_java", +- "//third_party/androidx:androidx_recyclerview_recyclerview_java", +- ] +- } +- +- # This is generated, do not edit. Update BuildConfigGenerator.groovy instead. + android_aar_prebuilt("google_play_services_fido_java") { + aar_path = "libs/com_google_android_gms_play_services_fido/play-services-fido-19.0.0-beta.aar" + info_path = "libs/com_google_android_gms_play_services_fido/com_google_android_gms_play_services_fido.info" diff --git a/patches/ungoogled-chromium-android/Remove-dependency-on-com.google.android.gms.common-auth-signin-dynamic-com.google.android.gms.tasks.patch b/patches/ungoogled-chromium-android/Remove-dependency-on-com.google.android.gms.common-auth-signin-dynamic-com.google.android.gms.tasks.patch index a01bf44..4dc353a 100644 --- a/patches/ungoogled-chromium-android/Remove-dependency-on-com.google.android.gms.common-auth-signin-dynamic-com.google.android.gms.tasks.patch +++ b/patches/ungoogled-chromium-android/Remove-dependency-on-com.google.android.gms.common-auth-signin-dynamic-com.google.android.gms.tasks.patch @@ -22,9 +22,9 @@ Subject: Remove dependency on components/externalauth/android/java/src/org/chromium/components/externalauth/UserRecoverableErrorHandler.java | 6 components/media_router/browser/android/BUILD.gn | 1 components/media_router/browser/android/java/src/org/chromium/components/media_router/BrowserMediaRouter.java | 18 -- - components/signin/core/browser/android/BUILD.gn | 1 - components/signin/public/android/BUILD.gn | 1 + components/signin/public/android/BUILD.gn | 2 components/signin/public/android/java/src/org/chromium/components/signin/GmsAvailabilityException.java | 4 + components/webauthn/android/BUILD.gn | 1 content/public/android/BUILD.gn | 3 content/public/android/java/src/org/chromium/content/browser/sms/SmsProviderGms.java | 6 content/test/BUILD.gn | 3 @@ -34,17 +34,18 @@ Subject: Remove dependency on services/device/geolocation/BUILD.gn | 2 services/shape_detection/BUILD.gn | 2 services/shape_detection/android/java/src/org/chromium/shape_detection/BarcodeDetectionProviderImpl.java | 22 -- - third_party/android_deps/BUILD.gn | 41 ----- + third_party/android_deps/BUILD.gn | 48 ----- + third_party/android_deps/local_modifications/preconditions/javatests/BUILD.gn | 1 third_party/android_deps/util/org/chromium/gms/ChromiumPlayServicesAvailability.java | 10 - third_party/android_deps/util/org/chromium/gms/shadows/ShadowChromiumPlayServicesAvailability.java | 2 weblayer/browser/java/BUILD.gn | 1 weblayer/browser/java/org/chromium/weblayer_private/ChildProcessServiceImpl.java | 2 weblayer/shell/android/BUILD.gn | 1 - 35 files changed, 20 insertions(+), 304 deletions(-) + 36 files changed, 19 insertions(+), 314 deletions(-) --- a/chrome/android/BUILD.gn +++ b/chrome/android/BUILD.gn -@@ -277,9 +277,6 @@ android_library("chrome_java") { +@@ -280,9 +280,6 @@ android_library("chrome_java") { ":partner_location_descriptor_proto_java", ":update_proto_java", ":usage_stats_proto_java", @@ -52,9 +53,9 @@ Subject: Remove dependency on - "$google_play_services_package:google_play_services_basement_java", - "$google_play_services_package:google_play_services_tasks_java", "//base:base_java", - "//base:jni_java", "//cc:cc_java", -@@ -797,8 +794,6 @@ junit_binary("chrome_junit_tests") { + "//chrome/android/features/keyboard_accessory:public_java", +@@ -815,8 +812,6 @@ junit_binary("chrome_junit_tests") { ":chrome_app_java_resources", ":chrome_java", ":partner_location_descriptor_proto_java", @@ -63,16 +64,16 @@ Subject: Remove dependency on "//base:base_java", "//base:base_java_test_support", "//base:base_junit_test_support", -@@ -1049,9 +1044,6 @@ android_library("chrome_test_java") { - ":chrome_app_java_resources", +@@ -1094,9 +1089,6 @@ android_library("chrome_test_java") { ":chrome_test_util_java", + ":chrome_test_util_jni", ":partner_location_descriptor_proto_java", - "$google_play_services_package:google_play_services_base_java", - "$google_play_services_package:google_play_services_basement_java", - "$google_play_services_package:google_play_services_tasks_java", "//base:base_java", "//base:base_java_test_support", - "//base:jni_java", + "//base/test:test_support_java", --- a/components/media_router/browser/android/BUILD.gn +++ b/components/media_router/browser/android/BUILD.gn @@ -11,7 +11,6 @@ android_library("java") { @@ -81,11 +82,11 @@ Subject: Remove dependency on ":java_resources", - "$google_play_services_package:google_play_services_base_java", "//base:base_java", - "//base:jni_java", "//components/browser_ui/media/android:java", + "//content/public/android:content_java", --- a/chrome/android/java/AndroidManifest.xml +++ b/chrome/android/java/AndroidManifest.xml -@@ -773,15 +773,6 @@ by a child template that "extends" this +@@ -780,15 +780,6 @@ by a child template that "extends" this @@ -113,7 +114,7 @@ Subject: Remove dependency on import org.chromium.base.ContextUtils; import org.chromium.base.annotations.CalledByNative; import org.chromium.chrome.browser.customtabs.CustomTabsConnection; -@@ -286,16 +283,7 @@ public abstract class AppHooks { +@@ -299,16 +296,7 @@ public abstract class AppHooks { * same as {@link GoogleApiAvailability#isGooglePlayServicesAvailable()}. */ public int isGoogleApiAvailableWithMinApkVersion(int minApkVersion) { @@ -366,7 +367,7 @@ Subject: Remove dependency on private long getSize(StatFs statFs) { --- a/chrome/test/android/BUILD.gn +++ b/chrome/test/android/BUILD.gn -@@ -259,8 +259,6 @@ android_library("chrome_java_test_suppor +@@ -258,8 +258,6 @@ android_library("chrome_java_test_suppor ] deps = [ @@ -387,16 +388,6 @@ Subject: Remove dependency on "internal:internal_java", "internal:proto_java", "//base:base_java", ---- a/components/signin/core/browser/android/BUILD.gn -+++ b/components/signin/core/browser/android/BUILD.gn -@@ -6,7 +6,6 @@ import("//build/config/android/rules.gni - - android_library("java") { - deps = [ -- "$google_play_services_package:google_play_services_base_java", - "//base:base_java", - "//base:jni_java", - "//net/android:net_java", --- a/components/signin/public/android/java/src/org/chromium/components/signin/GmsAvailabilityException.java +++ b/components/signin/public/android/java/src/org/chromium/components/signin/GmsAvailabilityException.java @@ -4,8 +4,6 @@ @@ -418,7 +409,7 @@ Subject: Remove dependency on } --- a/content/public/android/BUILD.gn +++ b/content/public/android/BUILD.gn -@@ -136,9 +136,6 @@ android_library("content_main_dex_java") +@@ -135,9 +135,6 @@ android_library("content_main_dex_java") android_library("content_full_java") { deps = [ ":content_main_dex_java", @@ -426,11 +417,11 @@ Subject: Remove dependency on - "$google_play_services_package:google_play_services_basement_java", - "$google_play_services_package:google_play_services_tasks_java", "//base:base_java", - "//base:jni_java", "//build:chromeos_buildflags", + "//components/download/public/common:public_java", --- a/content/test/BUILD.gn +++ b/content/test/BUILD.gn -@@ -2656,9 +2656,6 @@ if (is_android) { +@@ -2707,9 +2707,6 @@ if (is_android) { testonly = true sources = content_java_sources_needing_jni deps = [ @@ -442,9 +433,9 @@ Subject: Remove dependency on "//ui/android:ui_full_java", --- a/device/BUILD.gn +++ b/device/BUILD.gn -@@ -428,8 +428,6 @@ if (is_android) { - junit_binary("device_junit_tests") { - sources = [ "gamepad/android/junit/src/org/chromium/device/gamepad/GamepadMappingsTest.java" ] +@@ -431,8 +431,6 @@ if (is_android) { + "gamepad/android/junit/src/org/chromium/device/gamepad/GamepadMappingsTest.java", + ] deps = [ - "$google_play_services_package:google_play_services_base_java", - "$google_play_services_package:google_play_services_basement_java", @@ -464,7 +455,7 @@ Subject: Remove dependency on --- a/services/BUILD.gn +++ b/services/BUILD.gn -@@ -104,8 +104,6 @@ if (is_android) { +@@ -110,8 +110,6 @@ if (is_android) { "shape_detection/android/junit/src/org/chromium/shape_detection/BitmapUtilsTest.java", ] deps = [ @@ -473,7 +464,7 @@ Subject: Remove dependency on "//base:base_java", "//base:base_java_test_support", "//base:base_junit_test_support", -@@ -134,8 +132,6 @@ if (is_android) { +@@ -140,8 +138,6 @@ if (is_android) { "shape_detection/android/javatests/src/org/chromium/shape_detection/TextDetectionImplTest.java", ] deps = [ @@ -491,8 +482,8 @@ Subject: Remove dependency on - "$google_play_services_package:google_play_services_base_java", - "$google_play_services_package:google_play_services_basement_java", "//base:base_java", - "//base:jni_java", "//components/location/android:location_java", + "//services/device/public/java:geolocation_java", --- a/services/shape_detection/BUILD.gn +++ b/services/shape_detection/BUILD.gn @@ -107,8 +107,6 @@ if (is_android) { @@ -516,7 +507,7 @@ Subject: Remove dependency on "//base:base_java", "//components/background_task_scheduler:background_task_scheduler_task_ids_java", "//components/background_task_scheduler:public_java", -@@ -98,9 +95,6 @@ if (is_android) { +@@ -97,9 +94,6 @@ if (is_android) { deps = [ ":internal_java", @@ -535,11 +526,11 @@ Subject: Remove dependency on - "$google_play_services_package:google_play_services_base_java", - "$google_play_services_package:google_play_services_tasks_java", "//base:base_java", - "//base:jni_java", "//content/public/android:content_java", + "//third_party/android_deps:android_support_v7_appcompat_java", --- a/chrome/android/features/cablev2_authenticator/java/src/org/chromium/chrome/browser/webauth/authenticator/CableAuthenticator.java +++ b/chrome/android/features/cablev2_authenticator/java/src/org/chromium/chrome/browser/webauth/authenticator/CableAuthenticator.java -@@ -23,8 +23,6 @@ import android.util.Base64; +@@ -21,8 +21,6 @@ import android.os.Bundle; import androidx.core.app.NotificationCompat; import androidx.core.app.NotificationManagerCompat; @@ -550,61 +541,68 @@ Subject: Remove dependency on import org.chromium.base.annotations.CalledByNative; --- a/third_party/android_deps/BUILD.gn +++ b/third_party/android_deps/BUILD.gn -@@ -90,7 +90,7 @@ java_annotation_processor("auto_service_ - - android_library("chromium_play_services_availability_java") { - sources = [ "util/org/chromium/gms/ChromiumPlayServicesAvailability.java" ] -- deps = [ "$google_play_services_package:google_play_services_base_java" ] -+ deps = [ ] - } - - android_library("chromium_play_services_availability_shadows_java") { -@@ -384,45 +384,6 @@ android_aar_prebuilt("com_android_suppor - } - - # This is generated, do not edit. Update BuildConfigGenerator.groovy instead. --android_aar_prebuilt("google_play_services_base_java") { -- aar_path = "libs/com_google_android_gms_play_services_base/play-services-base-17.5.0.aar" -- info_path = "libs/com_google_android_gms_play_services_base/com_google_android_gms_play_services_base.info" -- deps = [ -- ":google_play_services_basement_java", -- ":google_play_services_tasks_java", -- "//third_party/androidx:androidx_collection_collection_java", -- "//third_party/androidx:androidx_core_core_java", -- "//third_party/androidx:androidx_fragment_fragment_java", -- ] -- bytecode_rewriter_target = -- "//build/android/bytecode:fragment_activity_replacer" --} +@@ -92,7 +92,6 @@ if (build_with_chromium) { + + android_library("chromium_play_services_availability_java") { + sources = [ "util/org/chromium/gms/ChromiumPlayServicesAvailability.java" ] +- deps = [ "$google_play_services_package:google_play_services_base_java" ] + } + + android_library("chromium_play_services_availability_shadows_java") { +@@ -1023,53 +1022,6 @@ if (build_with_chromium) { + } + + # This is generated, do not edit. Update BuildConfigGenerator.groovy instead. +- android_aar_prebuilt("google_play_services_base_java") { +- aar_path = "libs/com_google_android_gms_play_services_base/play-services-base-17.5.0.aar" +- info_path = "libs/com_google_android_gms_play_services_base/com_google_android_gms_play_services_base.info" +- deps = [ +- ":google_play_services_basement_java", +- ":google_play_services_tasks_java", +- "//third_party/androidx:androidx_collection_collection_java", +- "//third_party/androidx:androidx_core_core_java", +- "//third_party/androidx:androidx_fragment_fragment_java", +- ] +- bytecode_rewriter_target = +- "//build/android/bytecode:fragment_activity_replacer" +- } - --# This is generated, do not edit. Update BuildConfigGenerator.groovy instead. --android_aar_prebuilt("google_play_services_basement_java") { -- aar_path = "libs/com_google_android_gms_play_services_basement/play-services-basement-17.5.0.aar" -- info_path = "libs/com_google_android_gms_play_services_basement/com_google_android_gms_play_services_basement.info" -- deps = [ -- "//third_party/androidx:androidx_collection_collection_java", -- "//third_party/androidx:androidx_core_core_java", -- "//third_party/androidx:androidx_fragment_fragment_java", -- ] +- # This is generated, do not edit. Update BuildConfigGenerator.groovy instead. +- android_aar_prebuilt("google_play_services_basement_java") { +- aar_path = "libs/com_google_android_gms_play_services_basement/play-services-basement-17.5.0.aar" +- info_path = "libs/com_google_android_gms_play_services_basement/com_google_android_gms_play_services_basement.info" +- deps = [ +- "//third_party/androidx:androidx_collection_collection_java", +- "//third_party/androidx:androidx_core_core_java", +- "//third_party/androidx:androidx_fragment_fragment_java", +- ] - -- # https://crbug.com/989505 -- jar_excluded_patterns = [ "META-INF/proguard/*" ] -- input_jars_paths = [ "$android_sdk/optional/org.apache.http.legacy.jar" ] -- bytecode_rewriter_target = -- "//build/android/bytecode:fragment_activity_replacer" --} +- jar_excluded_patterns = [] +- if (!enable_java_asserts) { +- # Omit the file since we use our own copy. +- jar_excluded_patterns += +- [ "com/google/android/gms/common/internal/Preconditions.class" ] +- deps += [ "//third_party/android_deps/local_modifications/preconditions:gms_stub_preconditions_java" ] +- } +- +- # https://crbug.com/989505 +- jar_excluded_patterns += [ "META-INF/proguard/*" ] +- input_jars_paths = [ "$android_sdk/optional/org.apache.http.legacy.jar" ] +- bytecode_rewriter_target = +- "//build/android/bytecode:fragment_activity_replacer" +- } - --# This is generated, do not edit. Update BuildConfigGenerator.groovy instead. --android_aar_prebuilt("google_play_services_tasks_java") { -- aar_path = "libs/com_google_android_gms_play_services_tasks/play-services-tasks-17.2.0.aar" -- info_path = "libs/com_google_android_gms_play_services_tasks/com_google_android_gms_play_services_tasks.info" -- deps = [ ":google_play_services_basement_java" ] --} +- # This is generated, do not edit. Update BuildConfigGenerator.groovy instead. +- android_aar_prebuilt("google_play_services_tasks_java") { +- aar_path = "libs/com_google_android_gms_play_services_tasks/play-services-tasks-17.2.0.aar" +- info_path = "libs/com_google_android_gms_play_services_tasks/com_google_android_gms_play_services_tasks.info" +- deps = [ ":google_play_services_basement_java" ] +- } - --# This is generated, do not edit. Update BuildConfigGenerator.groovy instead. - android_aar_prebuilt("com_google_android_material_material_java") { - aar_path = - "libs/com_google_android_material_material/material-1.2.0-alpha06.aar" +- # This is generated, do not edit. Update BuildConfigGenerator.groovy instead. + android_aar_prebuilt("com_google_android_material_material_java") { + aar_path = + "libs/com_google_android_material_material/material-1.2.0-alpha06.aar" --- a/chrome/android/java/src/org/chromium/chrome/browser/PlayServicesVersionInfo.java +++ b/chrome/android/java/src/org/chromium/chrome/browser/PlayServicesVersionInfo.java @@ -7,8 +7,6 @@ package org.chromium.chrome.browser; @@ -860,11 +858,19 @@ Subject: Remove dependency on deps = [ - "$google_play_services_package:google_play_services_base_java", "//base:base_java", - "//base:jni_java", - "//components/signin/core/browser/android:java", + "//net/android:net_java", + "//third_party/android_deps:android_support_v4_java", +@@ -136,7 +135,6 @@ java_library("junit") { + deps = [ + ":java", + ":signin_java_test_support", +- "$google_play_services_package:google_play_services_auth_base_java", + "//base:base_java", + "//base:base_java_test_support", + "//base:base_junit_test_support", --- a/weblayer/browser/java/BUILD.gn +++ b/weblayer/browser/java/BUILD.gn -@@ -101,7 +101,6 @@ android_library("base_module_java") { +@@ -102,7 +102,6 @@ android_library("base_module_java") { ] deps = [ ":base_module_interfaces_java", @@ -922,3 +928,23 @@ Subject: Remove dependency on return new ChildProcessServiceImpl(service, appContext); } +--- a/components/webauthn/android/BUILD.gn ++++ b/components/webauthn/android/BUILD.gn +@@ -22,7 +22,6 @@ android_library("java") { + ] + annotation_processor_deps = [ "//base/android/jni_generator:jni_processor" ] + deps = [ +- "$google_play_services_package:google_play_services_tasks_java", + "//base:base_java", + "//base:jni_java", + "//components/externalauth/android:java", +--- a/third_party/android_deps/local_modifications/preconditions/javatests/BUILD.gn ++++ b/third_party/android_deps/local_modifications/preconditions/javatests/BUILD.gn +@@ -8,7 +8,6 @@ android_library("javatests") { + testonly = true + sources = [ "org/chromium/preconditions/PreconditionsTest.java" ] + deps = [ +- "$google_play_services_package:google_play_services_basement_java", + "//base:base_java", + "//base:base_java_test_support", + "//base/test:test_support_java", diff --git a/patches/ungoogled-chromium-android/Remove-dependency-on-com.google.android.gms.fido-com.google.android.gms.iid-com.google.android.gms.instantapps-com.google.android.gms.location.patch b/patches/ungoogled-chromium-android/Remove-dependency-on-com.google.android.gms.fido-com.google.android.gms.iid-com.google.android.gms.instantapps-com.google.android.gms.location.patch index 8825ea8..9720f21 100644 --- a/patches/ungoogled-chromium-android/Remove-dependency-on-com.google.android.gms.fido-com.google.android.gms.iid-com.google.android.gms.instantapps-com.google.android.gms.location.patch +++ b/patches/ungoogled-chromium-android/Remove-dependency-on-com.google.android.gms.fido-com.google.android.gms.iid-com.google.android.gms.instantapps-com.google.android.gms.location.patch @@ -11,10 +11,11 @@ Subject: Remove dependency on com.google.android.gms.fido, chrome/android/features/cablev2_authenticator/java/src/org/chromium/chrome/browser/webauth/authenticator/CableAuthenticator.java | 237 ------- chrome/android/java/src/org/chromium/chrome/browser/externalnav/ExternalNavigationDelegateImpl.java | 6 chrome/android/java/src/org/chromium/chrome/browser/instantapps/InstantAppsHandler.java | 51 - - chrome/android/java/src/org/chromium/chrome/browser/webauth/Fido2CredentialRequest.java | 179 ----- - chrome/android/java/src/org/chromium/chrome/browser/webauth/Fido2Helper.java | 335 ---------- components/gcm_driver/instance_id/android/BUILD.gn | 2 components/gcm_driver/instance_id/android/java/src/org/chromium/components/gcm_driver/instance_id/InstanceIDWithSubtype.java | 26 + components/webauthn/android/BUILD.gn | 1 + components/webauthn/android/java/src/org/chromium/components/webauthn/Fido2CredentialRequest.java | 111 --- + components/webauthn/android/java/src/org/chromium/components/webauthn/Fido2Helper.java | 335 ---------- device/BUILD.gn | 1 services/BUILD.gn | 1 services/device/geolocation/BUILD.gn | 1 @@ -22,11 +23,11 @@ Subject: Remove dependency on com.google.android.gms.fido, third_party/android_deps/BUILD.gn | 48 - third_party/libaddressinput/src/android/src/main/java/com/android/i18n/addressinput/autocomplete/gmscore/AddressAutocompleteApiImpl.java | 65 - third_party/libaddressinput/src/android/src/main/java/com/android/i18n/addressinput/autocomplete/gmscore/AddressAutocompletePredictionImpl.java | 12 - 17 files changed, 28 insertions(+), 1046 deletions(-) + 18 files changed, 28 insertions(+), 979 deletions(-) --- a/chrome/android/BUILD.gn +++ b/chrome/android/BUILD.gn -@@ -279,8 +279,6 @@ android_library("chrome_java") { +@@ -282,8 +282,6 @@ android_library("chrome_java") { ":usage_stats_proto_java", "$google_play_services_package:google_play_services_base_java", "$google_play_services_package:google_play_services_basement_java", @@ -35,7 +36,7 @@ Subject: Remove dependency on com.google.android.gms.fido, "$google_play_services_package:google_play_services_tasks_java", "$google_play_services_package:google_play_services_vision_common_java", "$google_play_services_package:google_play_services_vision_java", -@@ -803,7 +801,6 @@ junit_binary("chrome_junit_tests") { +@@ -821,7 +819,6 @@ junit_binary("chrome_junit_tests") { ":partner_location_descriptor_proto_java", "$google_play_services_package:google_play_services_base_java", "$google_play_services_package:google_play_services_basement_java", @@ -43,7 +44,7 @@ Subject: Remove dependency on com.google.android.gms.fido, "//base:base_java", "//base:base_java_test_support", "//base:base_junit_test_support", -@@ -1056,8 +1053,6 @@ android_library("chrome_test_java") { +@@ -1101,8 +1098,6 @@ android_library("chrome_test_java") { ":partner_location_descriptor_proto_java", "$google_play_services_package:google_play_services_base_java", "$google_play_services_package:google_play_services_basement_java", @@ -83,10 +84,10 @@ Subject: Remove dependency on com.google.android.gms.fido, - "com.google.android.instantapps.START", "com.google.android.instantapps.nmr1.INSTALL", - "com.google.android.instantapps.nmr1.VIEW"}; - - /** Finch experiment name. */ - private static final String INSTANT_APPS_EXPERIMENT_NAME = "InstantApps"; + // Only two possible call sources for fallback intents, set boundary at n+1. + private static final int SOURCE_BOUNDARY = 3; -@@ -93,14 +68,6 @@ public class InstantAppsHandler { +@@ -84,14 +59,6 @@ public class InstantAppsHandler { * @return Whether the given intent is going to open an Instant App. */ public static boolean isIntentToInstantApp(Intent intent) { @@ -101,7 +102,7 @@ Subject: Remove dependency on com.google.android.gms.fido, return false; } -@@ -141,14 +108,7 @@ public class InstantAppsHandler { +@@ -132,14 +99,7 @@ public class InstantAppsHandler { SystemClock.elapsedRealtime() - startTime); intent.removeExtra(INSTANT_APP_START_TIME_EXTRA); } @@ -117,7 +118,7 @@ Subject: Remove dependency on com.google.android.gms.fido, } /** -@@ -183,9 +143,8 @@ public class InstantAppsHandler { +@@ -174,9 +134,8 @@ public class InstantAppsHandler { return false; } @@ -129,7 +130,7 @@ Subject: Remove dependency on com.google.android.gms.fido, maybeRecordFallbackStats(intent); Log.i(TAG, "Not handling with Instant Apps (DO_NOT_LAUNCH_EXTRA)"); return false; -@@ -215,7 +174,6 @@ public class InstantAppsHandler { +@@ -206,7 +165,6 @@ public class InstantAppsHandler { } Intent callbackIntent = new Intent(intent); @@ -137,7 +138,7 @@ Subject: Remove dependency on com.google.android.gms.fido, callbackIntent.putExtra(INSTANT_APP_START_TIME_EXTRA, startTime); return tryLaunchingInstantApp(context, intent, isCustomTabsIntent, callbackIntent); -@@ -318,12 +276,9 @@ public class InstantAppsHandler { +@@ -309,12 +267,9 @@ public class InstantAppsHandler { Intent iaIntent = data.getIntent(); if (data.getReferrer() != null) { iaIntent.putExtra(Intent.EXTRA_REFERRER, data.getReferrer()); @@ -158,9 +159,9 @@ Subject: Remove dependency on com.google.android.gms.fido, deps = [ - "$google_play_services_package:google_play_services_iid_java", "//base:base_java", - "//base:jni_java", "//components/gcm_driver/android:gcm_driver_java", -@@ -34,7 +33,6 @@ android_library("instance_id_driver_java + "//third_party/androidx:androidx_annotation_annotation_java", +@@ -33,7 +32,6 @@ android_library("instance_id_driver_java android_library("instance_id_driver_test_support_java") { deps = [ ":instance_id_driver_java", @@ -248,7 +249,7 @@ Subject: Remove dependency on com.google.android.gms.fido, /** Fake subclasses can set {@link #sFakeFactoryForTesting} to an implementation of this. */ --- a/device/BUILD.gn +++ b/device/BUILD.gn -@@ -430,7 +430,6 @@ if (is_android) { +@@ -433,7 +433,6 @@ if (is_android) { deps = [ "$google_play_services_package:google_play_services_base_java", "$google_play_services_package:google_play_services_basement_java", @@ -264,8 +265,8 @@ Subject: Remove dependency on com.google.android.gms.fido, "$google_play_services_package:google_play_services_basement_java", - "$google_play_services_package:google_play_services_location_java", "//base:base_java", - "//base:jni_java", "//components/location/android:location_java", + "//services/device/public/java:geolocation_java", --- a/services/device/geolocation/android/java/src/org/chromium/device/geolocation/LocationProviderGmsCore.java +++ b/services/device/geolocation/android/java/src/org/chromium/device/geolocation/LocationProviderGmsCore.java @@ -8,15 +8,6 @@ import android.content.Context; @@ -414,664 +415,1028 @@ Subject: Remove dependency on com.google.android.gms.fido, } --- a/third_party/android_deps/BUILD.gn +++ b/third_party/android_deps/BUILD.gn -@@ -416,54 +416,6 @@ android_aar_prebuilt("google_play_servic - } +@@ -1063,54 +1063,6 @@ if (build_with_chromium) { + } - # This is generated, do not edit. Update BuildConfigGenerator.groovy instead. --android_aar_prebuilt("google_play_services_fido_java") { -- aar_path = "libs/com_google_android_gms_play_services_fido/play-services-fido-19.0.0-beta.aar" -- info_path = "libs/com_google_android_gms_play_services_fido/com_google_android_gms_play_services_fido.info" -- deps = [ -- ":google_play_services_base_java", -- ":google_play_services_basement_java", -- ":google_play_services_tasks_java", -- ] --} -- --# This is generated, do not edit. Update BuildConfigGenerator.groovy instead. --android_aar_prebuilt("google_play_services_iid_java") { -- aar_path = "libs/com_google_android_gms_play_services_iid/play-services-iid-17.0.0.aar" -- info_path = "libs/com_google_android_gms_play_services_iid/com_google_android_gms_play_services_iid.info" -- deps = [ -- ":google_play_services_base_java", -- ":google_play_services_basement_java", -- ":google_play_services_stats_java", -- ":google_play_services_tasks_java", -- "//third_party/androidx:androidx_collection_collection_java", -- "//third_party/androidx:androidx_core_core_java", -- ] --} -- --# This is generated, do not edit. Update BuildConfigGenerator.groovy instead. --android_aar_prebuilt("google_play_services_instantapps_java") { -- aar_path = "libs/com_google_android_gms_play_services_instantapps/play-services-instantapps-17.0.0.aar" -- info_path = "libs/com_google_android_gms_play_services_instantapps/com_google_android_gms_play_services_instantapps.info" -- deps = [ -- ":google_play_services_base_java", -- ":google_play_services_basement_java", -- ":google_play_services_tasks_java", -- ] --} -- --# This is generated, do not edit. Update BuildConfigGenerator.groovy instead. --android_aar_prebuilt("google_play_services_location_java") { -- aar_path = "libs/com_google_android_gms_play_services_location/play-services-location-17.0.0.aar" -- info_path = "libs/com_google_android_gms_play_services_location/com_google_android_gms_play_services_location.info" -- deps = [ -- ":google_play_services_base_java", -- ":google_play_services_basement_java", -- ":google_play_services_places_placereport_java", -- ":google_play_services_tasks_java", -- ] --} -- --# This is generated, do not edit. Update BuildConfigGenerator.groovy instead. - android_aar_prebuilt("google_play_services_tasks_java") { - aar_path = "libs/com_google_android_gms_play_services_tasks/play-services-tasks-17.2.0.aar" - info_path = "libs/com_google_android_gms_play_services_tasks/com_google_android_gms_play_services_tasks.info" ---- a/chrome/android/java/src/org/chromium/chrome/browser/webauth/Fido2CredentialRequest.java -+++ b/chrome/android/java/src/org/chromium/chrome/browser/webauth/Fido2CredentialRequest.java -@@ -13,20 +13,6 @@ import android.os.SystemClock; - import androidx.annotation.IntDef; - import androidx.annotation.VisibleForTesting; + # This is generated, do not edit. Update BuildConfigGenerator.groovy instead. +- android_aar_prebuilt("google_play_services_fido_java") { +- aar_path = "libs/com_google_android_gms_play_services_fido/play-services-fido-19.0.0-beta.aar" +- info_path = "libs/com_google_android_gms_play_services_fido/com_google_android_gms_play_services_fido.info" +- deps = [ +- ":google_play_services_base_java", +- ":google_play_services_basement_java", +- ":google_play_services_tasks_java", +- ] +- } +- +- # This is generated, do not edit. Update BuildConfigGenerator.groovy instead. +- android_aar_prebuilt("google_play_services_iid_java") { +- aar_path = "libs/com_google_android_gms_play_services_iid/play-services-iid-17.0.0.aar" +- info_path = "libs/com_google_android_gms_play_services_iid/com_google_android_gms_play_services_iid.info" +- deps = [ +- ":google_play_services_base_java", +- ":google_play_services_basement_java", +- ":google_play_services_stats_java", +- ":google_play_services_tasks_java", +- "//third_party/androidx:androidx_collection_collection_java", +- "//third_party/androidx:androidx_core_core_java", +- ] +- } +- +- # This is generated, do not edit. Update BuildConfigGenerator.groovy instead. +- android_aar_prebuilt("google_play_services_instantapps_java") { +- aar_path = "libs/com_google_android_gms_play_services_instantapps/play-services-instantapps-17.0.0.aar" +- info_path = "libs/com_google_android_gms_play_services_instantapps/com_google_android_gms_play_services_instantapps.info" +- deps = [ +- ":google_play_services_base_java", +- ":google_play_services_basement_java", +- ":google_play_services_tasks_java", +- ] +- } +- +- # This is generated, do not edit. Update BuildConfigGenerator.groovy instead. +- android_aar_prebuilt("google_play_services_location_java") { +- aar_path = "libs/com_google_android_gms_play_services_location/play-services-location-17.0.0.aar" +- info_path = "libs/com_google_android_gms_play_services_location/com_google_android_gms_play_services_location.info" +- deps = [ +- ":google_play_services_base_java", +- ":google_play_services_basement_java", +- ":google_play_services_places_placereport_java", +- ":google_play_services_tasks_java", +- ] +- } +- +- # This is generated, do not edit. Update BuildConfigGenerator.groovy instead. + android_aar_prebuilt("google_play_services_tasks_java") { + aar_path = "libs/com_google_android_gms_play_services_tasks/play-services-tasks-17.2.0.aar" + info_path = "libs/com_google_android_gms_play_services_tasks/com_google_android_gms_play_services_tasks.info" +--- a/chrome/android/java/src/org/chromium/chrome/browser/externalnav/ExternalNavigationDelegateImpl.java ++++ b/chrome/android/java/src/org/chromium/chrome/browser/externalnav/ExternalNavigationDelegateImpl.java +@@ -219,12 +219,6 @@ public class ExternalNavigationDelegateI + + @Override + public void maybeAdjustInstantAppExtras(Intent intent, boolean isIntentToInstantApp) { +- if (isIntentToInstantApp) { +- intent.putExtra(InstantAppsHandler.IS_GOOGLE_SEARCH_REFERRER, true); +- } else { +- // Make sure this extra is not sent unless we've done the verification. +- intent.removeExtra(InstantAppsHandler.IS_GOOGLE_SEARCH_REFERRER); +- } + } + + @Override +--- a/chrome/android/features/cablev2_authenticator/BUILD.gn ++++ b/chrome/android/features/cablev2_authenticator/BUILD.gn +@@ -18,7 +18,6 @@ android_library("java") { + deps = [ + ":java_resources", + "$google_play_services_package:google_play_services_base_java", +- "$google_play_services_package:google_play_services_fido_java", + "$google_play_services_package:google_play_services_tasks_java", + "$google_play_services_package:google_play_services_vision_common_java", + "$google_play_services_package:google_play_services_vision_java", +--- a/base/android/java/src/org/chromium/base/IntentUtils.java ++++ b/base/android/java/src/org/chromium/base/IntentUtils.java +@@ -39,9 +39,6 @@ public class IntentUtils { + public static final String ANDROID_APP_REFERRER_SCHEME = "android-app"; + + // Instant Apps system resolver activity on N-MR1+. +- @VisibleForTesting +- public static final String EPHEMERAL_INSTALLER_CLASS = +- "com.google.android.gms.instantapps.routing.EphemeralInstallerActivity"; + + // TODO(mthiesse): Move to ApiHelperForS when it exist. + private static final int FLAG_MUTABLE = 1 << 25; +@@ -56,7 +53,7 @@ public class IntentUtils { + if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.O) { + return info.isInstantAppAvailable; + } else if (info.activityInfo != null) { +- return EPHEMERAL_INSTALLER_CLASS.equals(info.activityInfo.name); ++ return false; + } + + return false; +--- a/services/BUILD.gn ++++ b/services/BUILD.gn +@@ -112,7 +112,6 @@ if (is_android) { + deps = [ + "$google_play_services_package:google_play_services_base_java", + "$google_play_services_package:google_play_services_basement_java", +- "$google_play_services_package:google_play_services_location_java", + "$google_play_services_package:google_play_services_vision_common_java", + "$google_play_services_package:google_play_services_vision_java", + "//base:base_java", +--- a/chrome/android/features/cablev2_authenticator/java/src/org/chromium/chrome/browser/webauth/authenticator/CableAuthenticator.java ++++ b/chrome/android/features/cablev2_authenticator/java/src/org/chromium/chrome/browser/webauth/authenticator/CableAuthenticator.java +@@ -21,25 +21,6 @@ import android.os.Bundle; + import androidx.core.app.NotificationCompat; + import androidx.core.app.NotificationManagerCompat; -import com.google.android.gms.fido.Fido; --import com.google.android.gms.fido.fido2.Fido2PendingIntent; +-import com.google.android.gms.fido.common.Transport; -import com.google.android.gms.fido.fido2.Fido2PrivilegedApiClient; +-import com.google.android.gms.fido.fido2.api.common.Attachment; +-import com.google.android.gms.fido.fido2.api.common.AttestationConveyancePreference; -import com.google.android.gms.fido.fido2.api.common.AuthenticatorAssertionResponse; -import com.google.android.gms.fido.fido2.api.common.AuthenticatorAttestationResponse; -import com.google.android.gms.fido.fido2.api.common.AuthenticatorErrorResponse; --import com.google.android.gms.fido.fido2.api.common.AuthenticatorResponse; +-import com.google.android.gms.fido.fido2.api.common.AuthenticatorSelectionCriteria; -import com.google.android.gms.fido.fido2.api.common.BrowserPublicKeyCredentialCreationOptions; -import com.google.android.gms.fido.fido2.api.common.BrowserPublicKeyCredentialRequestOptions; -import com.google.android.gms.fido.fido2.api.common.PublicKeyCredential; -import com.google.android.gms.fido.fido2.api.common.PublicKeyCredentialCreationOptions; --import com.google.android.gms.tasks.OnSuccessListener; --import com.google.android.gms.tasks.Task; -- - import org.chromium.base.Callback; - import org.chromium.base.ContextUtils; - import org.chromium.base.Log; -@@ -53,7 +39,6 @@ public class Fido2CredentialRequest impl - private static final String TAG = "Fido2Request"; - private HandlerResponseCallback mCallback; - private HandlerResponseCallback mIsUserVerifyingPlatformAuthenticatorAvailableCallback; -- private Fido2PrivilegedApiClient mFido2ApiClient; - private WebContents mWebContents; - private WindowAndroid mWindow; - private @RequestStatus int mRequestStatus; -@@ -83,58 +68,6 @@ public class Fido2CredentialRequest impl - mCallback = null; - } +-import com.google.android.gms.fido.fido2.api.common.PublicKeyCredentialDescriptor; +-import com.google.android.gms.fido.fido2.api.common.PublicKeyCredentialParameters; +-import com.google.android.gms.fido.fido2.api.common.PublicKeyCredentialRequestOptions; +-import com.google.android.gms.fido.fido2.api.common.PublicKeyCredentialRpEntity; +-import com.google.android.gms.fido.fido2.api.common.PublicKeyCredentialType; +-import com.google.android.gms.fido.fido2.api.common.PublicKeyCredentialUserEntity; + import com.google.android.gms.tasks.Task; -- // Listens for a Fido2PendingIntent. -- private OnSuccessListener mIntentListener = new OnSuccessListener< -- Fido2PendingIntent>() { -- @Override -- public void onSuccess(Fido2PendingIntent fido2PendingIntent) { -- if (!fido2PendingIntent.hasPendingIntent()) { -- Log.e(TAG, "Didn't receive a pending intent."); -- returnErrorAndResetCallback(AuthenticatorStatus.UNKNOWN_ERROR); -- return; -- } -- -- if (mWindow == null) { -- mWindow = mWebContents.getTopLevelNativeWindow(); -- if (mWindow == null) { -- Log.e(TAG, "Couldn't get ActivityWindowAndroid."); -- returnErrorAndResetCallback(AuthenticatorStatus.UNKNOWN_ERROR); -- return; -- } -- } -- -- final Activity activity = mWindow.getActivity().get(); -- if (activity == null) { -- Log.e(TAG, "Null activity."); -- returnErrorAndResetCallback(AuthenticatorStatus.UNKNOWN_ERROR); -- return; -- } -- -- Callback mIntentTrigger = (Integer result) -> { -- try { -- fido2PendingIntent.launchPendingIntent(activity, result); -- } catch (IntentSender.SendIntentException e) { -- Log.e(TAG, "Failed to send Fido2 register request to Google Play Services."); -- returnErrorAndResetCallback(AuthenticatorStatus.UNKNOWN_ERROR); -- } -- }; -- -- // Record starting time that will be used to establish a timeout that will -- // be activated when we receive a response that cannot be returned to the -- // relying party prior to timeout. -- mStartTimeMs = SystemClock.elapsedRealtime(); -- int requestCode = -- mWindow.showCancelableIntent(mIntentTrigger, Fido2CredentialRequest.this, null); -- -- if (requestCode == WindowAndroid.START_INTENT_FAILURE) { -- Log.e(TAG, "Failed to send Fido2 request to Google Play Services."); -- returnErrorAndResetCallback(AuthenticatorStatus.UNKNOWN_ERROR); -- } else { -- Log.e(TAG, "Sent a Fido2 request to Google Play Services."); -- } + import org.chromium.base.ContextUtils; +@@ -140,130 +121,17 @@ class CableAuthenticator { + public void makeCredential(String rpId, byte[] clientDataHash, byte[] userId, int[] algorithms, + byte[][] excludedCredentialIds, boolean residentKeyRequired) { + // TODO: handle concurrent requests +- Fido2PrivilegedApiClient client = Fido.getFido2PrivilegedApiClient(mContext); +- if (client == null) { +- Log.i(TAG, "getFido2PrivilegedApiClient failed"); +- return; - } -- }; -- - public void handleMakeCredentialRequest( - org.chromium.blink.mojom.PublicKeyCredentialCreationOptions options, - RenderFrameHost frameHost, Origin origin, HandlerResponseCallback callback) { -@@ -148,33 +81,11 @@ public class Fido2CredentialRequest impl - - if (!initFido2ApiClient()) { - Log.e(TAG, "Google Play Services' Fido2PrivilegedApi is not available."); -- returnErrorAndResetCallback(AuthenticatorStatus.UNKNOWN_ERROR); - return; - } +- Log.i(TAG, "have fido client"); ++ Log.i(TAG, "getFido2PrivilegedApiClient failed"); ++ return; - int securityCheck = frameHost.performMakeCredentialWebAuthSecurityChecks( - options.relyingParty.id, origin); -- if (securityCheck != AuthenticatorStatus.SUCCESS) { -- returnErrorAndResetCallback(securityCheck); -- return; +- List parameters = new ArrayList<>(); +- for (int i = 0; i < algorithms.length; i++) { +- try { +- parameters.add(new PublicKeyCredentialParameters( +- PublicKeyCredentialType.PUBLIC_KEY.toString(), algorithms[i])); +- } catch (IllegalArgumentException e) { +- // The FIDO API will throw IllegalArgumentException for unrecognised algorithms. +- // Since an authenticator ignores unknown algorithms, this exception just needs to +- // be caught and ignored. +- } - } -- -- PublicKeyCredentialCreationOptions credentialCreationOptions; -- try { -- credentialCreationOptions = Fido2Helper.toMakeCredentialOptions(options); -- } catch (NoSuchAlgorithmException e) { -- returnErrorAndResetCallback(AuthenticatorStatus.ALGORITHM_UNSUPPORTED); -- return; +- // The GmsCore FIDO2 API does not actually support resident keys yet. +- AuthenticatorSelectionCriteria selection = new AuthenticatorSelectionCriteria.Builder() +- .setAttachment(Attachment.PLATFORM) +- .build(); +- List excludeCredentials = +- new ArrayList(); +- for (int i = 0; i < excludedCredentialIds.length; i++) { +- excludeCredentials.add( +- new PublicKeyCredentialDescriptor(PublicKeyCredentialType.PUBLIC_KEY.toString(), +- excludedCredentialIds[i], new ArrayList())); - } -- +- byte[] dummy = new byte[32]; +- PublicKeyCredentialCreationOptions credentialCreationOptions = +- new PublicKeyCredentialCreationOptions.Builder() +- .setRp(new PublicKeyCredentialRpEntity(rpId, "", "")) +- .setUser(new PublicKeyCredentialUserEntity(userId, "", null, "")) +- // This is unused because we override it with +- // |setClientDataHash|, below. But a value must be set +- // to prevent this Builder from throwing an exception. +- .setChallenge(clientDataHash) +- .setParameters(parameters) +- .setTimeoutSeconds(TIMEOUT_SECONDS) +- .setExcludeList(excludeCredentials) +- .setAuthenticatorSelection(selection) +- .setAttestationConveyancePreference(AttestationConveyancePreference.NONE) +- .build(); - BrowserPublicKeyCredentialCreationOptions browserRequestOptions = - new BrowserPublicKeyCredentialCreationOptions.Builder() - .setPublicKeyCredentialCreationOptions(credentialCreationOptions) -- .setOrigin(Uri.parse(convertOriginToString(origin))) +- .setClientDataHash(clientDataHash) +- .setOrigin(Uri.parse("https://" + rpId)) - .build(); +- Task result = client.getRegisterPendingIntent(browserRequestOptions); +- result.addOnSuccessListener(pendingIntent -> { +- Log.i(TAG, "got pending"); +- try { +- mUi.startIntentSenderForResult(pendingIntent.getIntentSender(), +- REGISTER_REQUEST_CODE, +- null, // fillInIntent, +- 0, // flagsMask, +- 0, // flagsValue, +- 0, // extraFlags, +- Bundle.EMPTY); +- } catch (IntentSender.SendIntentException e) { +- Log.e(TAG, "intent failure"); +- } +- }).addOnFailureListener(e -> { Log.e(TAG, "intent failure" + e); }); - -- Task result = mFido2ApiClient.getRegisterIntent(browserRequestOptions); -- result.addOnSuccessListener(mIntentListener); +- Log.i(TAG, "op done"); } - public void handleGetAssertionRequest(PublicKeyCredentialRequestOptions options, -@@ -189,33 +100,11 @@ public class Fido2CredentialRequest impl - - if (!initFido2ApiClient()) { - Log.e(TAG, "Google Play Services' Fido2PrivilegedApi is not available."); -- returnErrorAndResetCallback(AuthenticatorStatus.UNKNOWN_ERROR); - return; - } - - int securityCheck = - frameHost.performGetAssertionWebAuthSecurityChecks(options.relyingPartyId, origin); -- if (securityCheck != AuthenticatorStatus.SUCCESS) { -- returnErrorAndResetCallback(securityCheck); + @CalledByNative + public void getAssertion(String rpId, byte[] clientDataHash, byte[][] allowedCredentialIds) { + // TODO: handle concurrent requests +- Fido2PrivilegedApiClient client = Fido.getFido2PrivilegedApiClient(mContext); +- if (client == null) { +- Log.i(TAG, "getFido2PrivilegedApiClient failed"); - return; - } -- -- if (options.appid != null) { -- mAppIdExtensionUsed = true; +- Log.i(TAG, "have fido client"); ++ Log.i(TAG, "getFido2PrivilegedApiClient failed"); ++ return; + +- List allowCredentials = +- new ArrayList(); +- ArrayList transports = new ArrayList(); +- transports.add(Transport.INTERNAL); +- for (int i = 0; i < allowedCredentialIds.length; i++) { +- allowCredentials.add( +- new PublicKeyCredentialDescriptor(PublicKeyCredentialType.PUBLIC_KEY.toString(), +- allowedCredentialIds[i], transports)); - } - -- com.google.android.gms.fido.fido2.api.common -- .PublicKeyCredentialRequestOptions getAssertionOptions; -- getAssertionOptions = Fido2Helper.toGetAssertionOptions(options); +- PublicKeyCredentialRequestOptions credentialRequestOptions = +- new PublicKeyCredentialRequestOptions.Builder() +- .setAllowList(allowCredentials) +- // This is unused because we override it with +- // |setClientDataHash|, below. But a value must be set +- // to prevent this Builder from throwing an exception. +- .setChallenge(clientDataHash) +- .setRpId(rpId) +- .setTimeoutSeconds(TIMEOUT_SECONDS) +- .build(); - - BrowserPublicKeyCredentialRequestOptions browserRequestOptions = - new BrowserPublicKeyCredentialRequestOptions.Builder() -- .setPublicKeyCredentialRequestOptions(getAssertionOptions) -- .setOrigin(Uri.parse(convertOriginToString(origin))) +- .setPublicKeyCredentialRequestOptions(credentialRequestOptions) +- .setClientDataHash(clientDataHash) +- .setOrigin(Uri.parse("https://" + rpId)) - .build(); - -- Task result = mFido2ApiClient.getSignIntent(browserRequestOptions); -- result.addOnSuccessListener(mIntentListener); +- Task result = client.getSignPendingIntent(browserRequestOptions); +- result.addOnSuccessListener(pendingIntent -> { +- Log.i(TAG, "got pending"); +- try { +- mUi.startIntentSenderForResult(pendingIntent.getIntentSender(), +- SIGN_REQUEST_CODE, +- null, // fillInIntent, +- 0, // flagsMask, +- 0, // flagsValue, +- 0, // extraFlags, +- Bundle.EMPTY); +- } catch (IntentSender.SendIntentException e) { +- Log.e(TAG, "intent failure"); +- } +- }).addOnFailureListener(e -> { Log.e(TAG, "intent failure" + e); }); +- +- Log.i(TAG, "op done"); } - public void handleIsUserVerifyingPlatformAuthenticatorAvailableRequest( -@@ -236,32 +125,17 @@ public class Fido2CredentialRequest impl - return; - } - -- Task result = -- mFido2ApiClient.isUserVerifyingPlatformAuthenticatorAvailable() -- .addOnSuccessListener((isUVPAA) -> { -- mIsUserVerifyingPlatformAuthenticatorAvailableCallback -- .onIsUserVerifyingPlatformAuthenticatorAvailableResponse( -- isUVPAA); -- mIsUserVerifyingPlatformAuthenticatorAvailableCallback = null; -- }); + /** +@@ -307,100 +175,15 @@ class CableAuthenticator { } - /* Initialize the FIDO2 browser API client. */ - private boolean initFido2ApiClient() { -- if (mFido2ApiClient != null) { -- return true; -- } - - if (!ExternalAuthUtils.getInstance().canUseGooglePlayServices( - new UserRecoverableErrorHandler.Silent())) { - return false; - } - -- mFido2ApiClient = Fido.getFido2PrivilegedApiClient(ContextUtils.getApplicationContext()); -- if (mFido2ApiClient == null) { + private boolean onRegisterResponse(int resultCode, Intent data) { +- if (resultCode != Activity.RESULT_OK || data == null) { +- Log.e(TAG, "Failed with result code " + resultCode); +- onAuthenticatorAssertionResponse(CTAP2_ERR_OPERATION_DENIED, null, null, null); +- return false; +- } +- Log.e(TAG, "OK."); +- +- if (data.hasExtra(Fido.FIDO2_KEY_ERROR_EXTRA)) { +- Log.e(TAG, "error extra"); +- AuthenticatorErrorResponse error = AuthenticatorErrorResponse.deserializeFromBytes( +- data.getByteArrayExtra(Fido.FIDO2_KEY_ERROR_EXTRA)); +- Log.i(TAG, +- "error response: " + error.getErrorMessage() + " " +- + String.valueOf(error.getErrorCodeAsInt())); +- +- // ErrorCode represents DOMErrors not CTAP status codes. +- // TODO: figure out translation of the remaining codes +- int ctap_status; +- switch (error.getErrorCode()) { +- case NOT_ALLOWED_ERR: +- ctap_status = CTAP2_ERR_OPERATION_DENIED; +- break; +- default: +- ctap_status = CTAP2_ERR_OTHER; +- break; +- } +- onAuthenticatorAttestationResponse(CTAP2_ERR_OTHER, null); +- return false; +- } +- +- if (!data.hasExtra(Fido.FIDO2_KEY_RESPONSE_EXTRA) +- || !data.hasExtra(Fido.FIDO2_KEY_CREDENTIAL_EXTRA)) { +- Log.e(TAG, "Missing FIDO2_KEY_RESPONSE_EXTRA or FIDO2_KEY_CREDENTIAL_EXTRA"); +- onAuthenticatorAttestationResponse(CTAP2_ERR_OTHER, null); - return false; - } +- +- Log.e(TAG, "cred extra"); +- PublicKeyCredential unusedPublicKeyCredential = PublicKeyCredential.deserializeFromBytes( +- data.getByteArrayExtra(Fido.FIDO2_KEY_CREDENTIAL_EXTRA)); +- AuthenticatorAttestationResponse response = +- AuthenticatorAttestationResponse.deserializeFromBytes( +- data.getByteArrayExtra(Fido.FIDO2_KEY_RESPONSE_EXTRA)); +- onAuthenticatorAttestationResponse(CTAP2_OK, response.getAttestationObject()); - return true; ++ Log.e(TAG, "Failed with result code " + resultCode); ++ onAuthenticatorAssertionResponse(CTAP2_ERR_OPERATION_DENIED, null, null, null); + return false; } - @VisibleForTesting -@@ -280,13 +154,11 @@ public class Fido2CredentialRequest impl - if (data == null) { - Log.e(TAG, "Received a null intent."); - // The user canceled the request. -- returnErrorAndResetCallback(AuthenticatorStatus.NOT_ALLOWED_ERROR); - return; - } - - switch (resultCode) { - case Activity.RESULT_CANCELED: -- returnErrorAndResetCallback(AuthenticatorStatus.NOT_ALLOWED_ERROR); - break; - case Activity.RESULT_OK: - processIntentResult(data); -@@ -294,62 +166,21 @@ public class Fido2CredentialRequest impl - default: - // Something went wrong. - Log.e(TAG, "Failed with result code" + resultCode); -- returnErrorAndResetCallback(AuthenticatorStatus.UNKNOWN_ERROR); - break; - } - } - - private void processPublicKeyCredential(Intent data) { -- PublicKeyCredential publicKeyCredential = PublicKeyCredential.deserializeFromBytes( -- data.getByteArrayExtra(FIDO2_KEY_CREDENTIAL_EXTRA)); -- AuthenticatorResponse response = publicKeyCredential.getResponse(); -- if (response instanceof AuthenticatorErrorResponse) { -- processErrorResponse((AuthenticatorErrorResponse) response); -- } else if (response instanceof AuthenticatorAttestationResponse) { -- try { -- mCallback.onRegisterResponse(AuthenticatorStatus.SUCCESS, -- Fido2Helper.toMakeCredentialResponse(publicKeyCredential)); -- mCallback = null; -- } catch (NoSuchAlgorithmException e) { -- returnErrorAndResetCallback(AuthenticatorStatus.ALGORITHM_UNSUPPORTED); + private boolean onSignResponse(int resultCode, Intent data) { +- if (resultCode != Activity.RESULT_OK || data == null) { +- Log.e(TAG, "Failed with result code " + resultCode); +- onAuthenticatorAssertionResponse(CTAP2_ERR_OPERATION_DENIED, null, null, null); +- return false; +- } +- Log.e(TAG, "OK."); +- +- if (data.hasExtra(Fido.FIDO2_KEY_ERROR_EXTRA)) { +- Log.e(TAG, "error extra"); +- AuthenticatorErrorResponse error = AuthenticatorErrorResponse.deserializeFromBytes( +- data.getByteArrayExtra(Fido.FIDO2_KEY_ERROR_EXTRA)); +- Log.i(TAG, +- "error response: " + error.getErrorMessage() + " " +- + String.valueOf(error.getErrorCodeAsInt())); +- +- // ErrorCode represents DOMErrors not CTAP status codes. +- // TODO: figure out translation of the remaining codes +- int ctap_status; +- switch (error.getErrorCode()) { +- case NOT_ALLOWED_ERR: +- ctap_status = CTAP2_ERR_OPERATION_DENIED; +- break; +- default: +- ctap_status = CTAP2_ERR_OTHER; +- break; - } -- } else if (response instanceof AuthenticatorAssertionResponse) { -- mCallback.onSignResponse(AuthenticatorStatus.SUCCESS, -- Fido2Helper.toGetAssertionResponse(publicKeyCredential, mAppIdExtensionUsed)); -- mCallback = null; +- onAuthenticatorAssertionResponse(ctap_status, null, null, null); +- return false; - } -- } - -- private void processErrorResponse(AuthenticatorErrorResponse errorResponse) { -- Log.e(TAG, -- "Google Play Services FIDO2 API returned an error: " -- + errorResponse.getErrorMessage()); -- int authenticatorStatus = Fido2Helper.convertError( -- errorResponse.getErrorCode(), errorResponse.getErrorMessage()); -- returnErrorAndResetCallback(authenticatorStatus); +- if (!data.hasExtra(Fido.FIDO2_KEY_RESPONSE_EXTRA) +- || !data.hasExtra(Fido.FIDO2_KEY_CREDENTIAL_EXTRA)) { +- Log.e(TAG, "Missing FIDO2_KEY_RESPONSE_EXTRA or FIDO2_KEY_CREDENTIAL_EXTRA"); +- onAuthenticatorAssertionResponse(CTAP2_ERR_OTHER, null, null, null); +- return false; +- } +- +- Log.e(TAG, "cred extra"); +- PublicKeyCredential unusedPublicKeyCredential = PublicKeyCredential.deserializeFromBytes( +- data.getByteArrayExtra(Fido.FIDO2_KEY_CREDENTIAL_EXTRA)); +- AuthenticatorAssertionResponse response = +- AuthenticatorAssertionResponse.deserializeFromBytes( +- data.getByteArrayExtra(Fido.FIDO2_KEY_RESPONSE_EXTRA)); +- onAuthenticatorAssertionResponse(CTAP2_OK, response.getKeyHandle(), +- response.getAuthenticatorData(), response.getSignature()); +- return true; ++ Log.e(TAG, "Failed with result code " + resultCode); ++ onAuthenticatorAssertionResponse(CTAP2_ERR_OPERATION_DENIED, null, null, null); ++ return false; } - private void processKeyResponse(Intent data) { - switch (mRequestStatus) { - case REGISTER_REQUEST: - Log.e(TAG, "Received a register response from Google Play Services FIDO2 API"); -- try { -- mCallback.onRegisterResponse(AuthenticatorStatus.SUCCESS, -- Fido2Helper.toMakeCredentialResponse( -- AuthenticatorAttestationResponse.deserializeFromBytes( -- data.getByteArrayExtra( -- Fido.FIDO2_KEY_RESPONSE_EXTRA)))); -- } catch (NoSuchAlgorithmException e) { -- returnErrorAndResetCallback(AuthenticatorStatus.ALGORITHM_UNSUPPORTED); -- } -+ returnErrorAndResetCallback(AuthenticatorStatus.ALGORITHM_UNSUPPORTED); - break; - case SIGN_REQUEST: - Log.e(TAG, "Received a sign response from Google Play Services FIDO2 API"); -- mCallback.onSignResponse(AuthenticatorStatus.SUCCESS, -- Fido2Helper.toGetAssertionResponse( -- AuthenticatorAssertionResponse.deserializeFromBytes( -- data.getByteArrayExtra(Fido.FIDO2_KEY_RESPONSE_EXTRA)), -- mAppIdExtensionUsed)); - break; - } - mCallback = null; -@@ -361,17 +192,11 @@ public class Fido2CredentialRequest impl - // [Attestation/Assertion/Error] Response. - if (data.hasExtra(FIDO2_KEY_CREDENTIAL_EXTRA)) { - processPublicKeyCredential(data); -- } else if (data.hasExtra(Fido.FIDO2_KEY_ERROR_EXTRA)) { -- processErrorResponse(AuthenticatorErrorResponse.deserializeFromBytes( -- data.getByteArrayExtra(Fido.FIDO2_KEY_ERROR_EXTRA))); -- } else if (data.hasExtra(Fido.FIDO2_KEY_RESPONSE_EXTRA)) { -- processKeyResponse(data); - } else { - // Something went wrong. - Log.e(TAG, - "The response is missing FIDO2_KEY_RESPONSE_EXTRA " - + "and FIDO2_KEY_CREDENTIAL_EXTRA."); -- returnErrorAndResetCallback(AuthenticatorStatus.UNKNOWN_ERROR); - } - } + private void onAuthenticatorAttestationResponse(int ctapStatus, byte[] attestationObject) { +--- a/third_party/libaddressinput/src/android/src/main/java/com/android/i18n/addressinput/autocomplete/gmscore/AddressAutocompleteApiImpl.java ++++ b/third_party/libaddressinput/src/android/src/main/java/com/android/i18n/addressinput/autocomplete/gmscore/AddressAutocompleteApiImpl.java +@@ -2,15 +2,6 @@ package com.android.i18n.addressinput.au ---- a/chrome/android/java/src/org/chromium/chrome/browser/webauth/Fido2Helper.java -+++ b/chrome/android/java/src/org/chromium/chrome/browser/webauth/Fido2Helper.java -@@ -6,26 +6,6 @@ package org.chromium.chrome.browser.weba + import android.location.Location; + import android.util.Log; +-import com.google.android.gms.common.api.GoogleApiClient; +-import com.google.android.gms.common.api.ResultCallback; +-import com.google.android.gms.location.FusedLocationProviderApi; +-import com.google.android.gms.location.places.AutocompleteFilter; +-import com.google.android.gms.location.places.AutocompletePrediction; +-import com.google.android.gms.location.places.AutocompletePredictionBuffer; +-import com.google.android.gms.location.places.GeoDataApi; +-import com.google.android.gms.maps.model.LatLng; +-import com.google.android.gms.maps.model.LatLngBounds; + import com.google.common.util.concurrent.FutureCallback; + import com.google.i18n.addressinput.common.AddressAutocompleteApi; + import com.google.i18n.addressinput.common.AddressAutocompletePrediction; +@@ -38,70 +29,18 @@ import java.util.List; + public class AddressAutocompleteApiImpl implements AddressAutocompleteApi { - import android.util.Base64; + private static final String TAG = "GmsCoreAddrAutocmplt"; +- private GoogleApiClient googleApiClient; --import com.google.android.gms.fido.common.Transport; --import com.google.android.gms.fido.fido2.api.common.Attachment; --import com.google.android.gms.fido.fido2.api.common.AttestationConveyancePreference; --import com.google.android.gms.fido.fido2.api.common.AuthenticationExtensions; --import com.google.android.gms.fido.fido2.api.common.AuthenticationExtensionsClientOutputs; --import com.google.android.gms.fido.fido2.api.common.AuthenticatorAssertionResponse; --import com.google.android.gms.fido.fido2.api.common.AuthenticatorAttestationResponse; --import com.google.android.gms.fido.fido2.api.common.AuthenticatorSelectionCriteria; --import com.google.android.gms.fido.fido2.api.common.ErrorCode; --import com.google.android.gms.fido.fido2.api.common.FidoAppIdExtension; --import com.google.android.gms.fido.fido2.api.common.PublicKeyCredential; --import com.google.android.gms.fido.fido2.api.common.PublicKeyCredentialCreationOptions; --import com.google.android.gms.fido.fido2.api.common.PublicKeyCredentialDescriptor; --import com.google.android.gms.fido.fido2.api.common.PublicKeyCredentialParameters; --import com.google.android.gms.fido.fido2.api.common.PublicKeyCredentialRpEntity; --import com.google.android.gms.fido.fido2.api.common.PublicKeyCredentialType; --import com.google.android.gms.fido.fido2.api.common.PublicKeyCredentialUserEntity; --import com.google.android.gms.fido.fido2.api.common.UserVerificationMethodExtension; --import com.google.android.gms.fido.fido2.api.common.UvmEntries; +- // Use Places.GeoDataApi. +- private GeoDataApi geoDataApi; - - import org.chromium.base.Log; - import org.chromium.base.annotations.CalledByNative; - import org.chromium.base.annotations.NativeMethods; -@@ -64,225 +44,6 @@ public final class Fido2Helper { - static final double MAX_TIMEOUT_SECONDS = 600; +- // Use LocationServices.FusedLocationApi. +- private FusedLocationProviderApi locationApi; +- +- public AddressAutocompleteApiImpl( +- GoogleApiClient googleApiClient, +- GeoDataApi geoDataApi, +- FusedLocationProviderApi locationApi) { +- this.googleApiClient = googleApiClient; +- this.geoDataApi = geoDataApi; +- this.locationApi = locationApi; ++ public AddressAutocompleteApiImpl() { + } - /** -- * Converts mojo options to gmscore options. -- * @param options Options passed in from the renderer. -- * @return Options to be passed to Fido2 API. -- * @throws NoSuchAlgorithmException -- */ -- public static PublicKeyCredentialCreationOptions toMakeCredentialOptions( -- org.chromium.blink.mojom.PublicKeyCredentialCreationOptions options) -- throws NoSuchAlgorithmException { -- // Pack incoming options as Fido2's BrowserMakeCredentialOptions. -- String rpIcon = options.relyingParty.icon != null ? options.relyingParty.icon.url : null; -- PublicKeyCredentialRpEntity rp = new PublicKeyCredentialRpEntity( -- options.relyingParty.id, options.relyingParty.name, rpIcon); + // TODO(user): Add a check to ensure that the required permissions have been granted. + @Override + public boolean isConfiguredCorrectly() { +- if (!googleApiClient.isConnected()) { +- Log.e(TAG, "Cannot get autocomplete predictions because Google API client is not connected."); +- return false; +- } - -- String userIcon = options.user.icon != null ? options.user.icon.url : null; -- PublicKeyCredentialUserEntity user = new PublicKeyCredentialUserEntity( -- options.user.id, options.user.name, userIcon, options.user.displayName); -- -- List parameters = new ArrayList<>(); -- for (org.chromium.blink.mojom.PublicKeyCredentialParameters param : -- options.publicKeyParameters) { -- if (param.algorithmIdentifier == ECDSA_COSE_IDENTIFIER -- && param.type == org.chromium.blink.mojom.PublicKeyCredentialType.PUBLIC_KEY) { -- parameters.add(new PublicKeyCredentialParameters( -- PublicKeyCredentialType.PUBLIC_KEY.toString(), param.algorithmIdentifier)); -- } -- } +- return true; ++ return false; + } + + @Override + public void getAutocompletePredictions( + String query, final FutureCallback> callback) { +- Location deviceLocation = locationApi.getLastLocation(googleApiClient); +- LatLngBounds bounds = +- deviceLocation == null +- ? null +- : LatLngBounds.builder() +- .include(new LatLng(deviceLocation.getLatitude(), deviceLocation.getLongitude())) +- .build(); - -- // Check that at least one incoming param is supported by the FIDO2 API. -- if (parameters.size() == 0 && options.publicKeyParameters.length != 0) { -- Log.e(TAG, "None of the requested parameters are supported."); -- throw new NoSuchAlgorithmException(); -- } +- geoDataApi +- .getAutocompletePredictions( +- googleApiClient, +- query, +- bounds, +- new AutocompleteFilter.Builder() +- .setTypeFilter(AutocompleteFilter.TYPE_FILTER_ADDRESS) +- .build()) +- .setResultCallback( +- new ResultCallback() { +- @Override +- public void onResult(AutocompletePredictionBuffer resultBuffer) { +- callback.onSuccess(convertPredictions(resultBuffer)); +- } +- }); +- } - -- List excludeCredentials = -- convertCredentialDescriptor(options.excludeCredentials); +- private List convertPredictions( +- AutocompletePredictionBuffer resultBuffer) { +- List predictions = new ArrayList<>(); - -- AuthenticatorSelectionCriteria selection = -- convertSelectionCriteria(options.authenticatorSelection); +- for (AutocompletePrediction prediction : resultBuffer) { +- predictions.add(new AddressAutocompletePredictionImpl(prediction)); +- } - -- AttestationConveyancePreference attestationPreference = -- convertAttestationPreference(options.attestation); +- return predictions; + } + } +--- a/third_party/libaddressinput/src/android/src/main/java/com/android/i18n/addressinput/autocomplete/gmscore/AddressAutocompletePredictionImpl.java ++++ b/third_party/libaddressinput/src/android/src/main/java/com/android/i18n/addressinput/autocomplete/gmscore/AddressAutocompletePredictionImpl.java +@@ -1,6 +1,5 @@ + package com.android.i18n.addressinput.autocomplete.gmscore; + +-import com.google.android.gms.location.places.AutocompletePrediction; + import com.google.i18n.addressinput.common.AddressAutocompletePrediction; + + /** +@@ -9,24 +8,21 @@ import com.google.i18n.addressinput.comm + */ + public class AddressAutocompletePredictionImpl extends AddressAutocompletePrediction { + +- private AutocompletePrediction prediction; - -- PublicKeyCredentialCreationOptions credentialCreationOptions = -- new PublicKeyCredentialCreationOptions.Builder() -- .setRp(rp) -- .setUser(user) -- .setChallenge(options.challenge) -- .setParameters(parameters) -- .setTimeoutSeconds(adjustTimeout(options.timeout)) -- .setExcludeList(excludeCredentials) -- .setAuthenticatorSelection(selection) -- .setAttestationConveyancePreference(attestationPreference) -- .build(); -- return credentialCreationOptions; -- } +- AddressAutocompletePredictionImpl(AutocompletePrediction prediction) { +- this.prediction = prediction; ++ AddressAutocompletePredictionImpl() { + } + + @Override + public String getPlaceId() { +- return prediction.getPlaceId(); ++ return ""; + } + + @Override + public CharSequence getPrimaryText() { +- return prediction.getPrimaryText(null); ++ return ""; + } + + @Override + public CharSequence getSecondaryText() { +- return prediction.getSecondaryText(null); ++ return ""; + } + } +--- a/components/webauthn/android/java/src/org/chromium/components/webauthn/Fido2CredentialRequest.java ++++ b/components/webauthn/android/java/src/org/chromium/components/webauthn/Fido2CredentialRequest.java +@@ -13,18 +13,6 @@ import android.os.SystemClock; + import androidx.annotation.IntDef; + import androidx.annotation.VisibleForTesting; + +-import com.google.android.gms.fido.Fido; +-import com.google.android.gms.fido.fido2.Fido2PrivilegedApiClient; +-import com.google.android.gms.fido.fido2.api.common.AuthenticatorAssertionResponse; +-import com.google.android.gms.fido.fido2.api.common.AuthenticatorAttestationResponse; +-import com.google.android.gms.fido.fido2.api.common.AuthenticatorErrorResponse; +-import com.google.android.gms.fido.fido2.api.common.AuthenticatorResponse; +-import com.google.android.gms.fido.fido2.api.common.BrowserPublicKeyCredentialCreationOptions; +-import com.google.android.gms.fido.fido2.api.common.BrowserPublicKeyCredentialRequestOptions; +-import com.google.android.gms.fido.fido2.api.common.PublicKeyCredential; +-import com.google.android.gms.fido.fido2.api.common.PublicKeyCredentialCreationOptions; +-import com.google.android.gms.tasks.Task; - -- /** -- * Converts gmscore AuthenticatorAttestationResponse to mojo MakeCredentialAuthenticatorResponse -- * @param data Response from the Fido2 API. -- * @return Response to be passed to the renderer. -- */ -- public static MakeCredentialAuthenticatorResponse toMakeCredentialResponse( -- AuthenticatorAttestationResponse data) throws NoSuchAlgorithmException { -- MakeCredentialAuthenticatorResponse response = new MakeCredentialAuthenticatorResponse(); -- CommonCredentialInfo info = new CommonCredentialInfo(); + import org.chromium.base.ContextUtils; + import org.chromium.base.Log; + import org.chromium.blink.mojom.AuthenticatorStatus; +@@ -51,7 +39,6 @@ public class Fido2CredentialRequest impl + private GetAssertionResponseCallback mGetAssertionCallback; + private MakeCredentialResponseCallback mMakeCredentialCallback; + private FidoErrorResponseCallback mErrorCallback; +- private Fido2PrivilegedApiClient mFido2ApiClient; + private WebContents mWebContents; + private WindowAndroid mWindow; + private @RequestStatus int mRequestStatus; +@@ -108,24 +95,6 @@ public class Fido2CredentialRequest impl + returnErrorAndResetCallback(securityCheck); + return; + } - -- response.attestationObject = data.getAttestationObject(); -- AttestationObjectParts parts = new AttestationObjectParts(); -- if (!Fido2HelperJni.get().parseAttestationObject(response.attestationObject, parts)) { -- // A failure to parse the attestation object is fatal to the request -- // on desktop and so the same behavior is used here. -- throw new NoSuchAlgorithmException(); +- PublicKeyCredentialCreationOptions credentialCreationOptions; +- try { +- credentialCreationOptions = Fido2Helper.toMakeCredentialOptions(options); +- } catch (NoSuchAlgorithmException e) { +- returnErrorAndResetCallback(AuthenticatorStatus.ALGORITHM_UNSUPPORTED); +- return; - } -- response.publicKeyAlgo = parts.coseAlgorithm; -- info.authenticatorData = parts.authenticatorData; -- response.publicKeyDer = parts.spki; -- -- // An empty transports array indicates that we don't have any -- // information about the available transports. -- response.transports = new int[] {}; - -- info.id = encodeId(data.getKeyHandle()); -- info.rawId = data.getKeyHandle(); -- info.clientDataJson = data.getClientDataJSON(); -- response.info = info; -- return response; -- } +- BrowserPublicKeyCredentialCreationOptions browserRequestOptions = +- new BrowserPublicKeyCredentialCreationOptions.Builder() +- .setPublicKeyCredentialCreationOptions(credentialCreationOptions) +- .setOrigin(Uri.parse(convertOriginToString(origin))) +- .build(); - -- public static MakeCredentialAuthenticatorResponse toMakeCredentialResponse( -- PublicKeyCredential data) throws NoSuchAlgorithmException { -- MakeCredentialAuthenticatorResponse response = -- toMakeCredentialResponse((AuthenticatorAttestationResponse) data.getResponse()); -- return response; -- } +- Task result = +- mFido2ApiClient.getRegisterPendingIntent(browserRequestOptions); +- result.addOnSuccessListener(this::onGotPendingIntent); + } + + public void handleGetAssertionRequest(PublicKeyCredentialRequestOptions options, +@@ -156,19 +125,6 @@ public class Fido2CredentialRequest impl + if (options.appid != null) { + mAppIdExtensionUsed = true; + } - -- /** -- * Converts mojo options to gmscore options. -- * @param options Options passed in from the renderer. -- * @return Options to be passed to Fido2 API. -- */ -- public static com.google.android.gms.fido.fido2.api.common.PublicKeyCredentialRequestOptions -- toGetAssertionOptions(PublicKeyCredentialRequestOptions options) { -- List allowCredentials = -- convertCredentialDescriptor(options.allowCredentials); +- com.google.android.gms.fido.fido2.api.common +- .PublicKeyCredentialRequestOptions getAssertionOptions; +- getAssertionOptions = Fido2Helper.toGetAssertionOptions(options); - -- FidoAppIdExtension fidoAppIdExtension = -- (options.appid != null) ? new FidoAppIdExtension(options.appid) : null; -- UserVerificationMethodExtension userVerificationMethodExtension = -- new UserVerificationMethodExtension(options.userVerificationMethods); -- AuthenticationExtensions authenticationExtensions = -- new AuthenticationExtensions.Builder() -- .setFido2Extension(fidoAppIdExtension) -- .setUserVerificationMethodExtension(userVerificationMethodExtension) +- BrowserPublicKeyCredentialRequestOptions browserRequestOptions = +- new BrowserPublicKeyCredentialRequestOptions.Builder() +- .setPublicKeyCredentialRequestOptions(getAssertionOptions) +- .setOrigin(Uri.parse(convertOriginToString(origin))) - .build(); - -- // Pack options as Fido2's BrowserPublicKeyCredentialRequestOptions. -- com.google.android.gms.fido.fido2.api.common -- .PublicKeyCredentialRequestOptions credentialRequestOptions = -- new com.google.android.gms.fido.fido2.api.common.PublicKeyCredentialRequestOptions -- .Builder() -- .setChallenge(options.challenge) -- .setTimeoutSeconds(adjustTimeout(options.timeout)) -- .setRpId(options.relyingPartyId) -- .setAllowList(allowCredentials) -- /* TODO add back UserVerificationRequirement when the FIDO2 API supports it -- */ -- .setAuthenticationExtensions(authenticationExtensions) -- .build(); -- return credentialRequestOptions; -- } +- Task result = mFido2ApiClient.getSignPendingIntent(browserRequestOptions); +- result.addOnSuccessListener(this::onGotPendingIntent); + } + + public void handleIsUserVerifyingPlatformAuthenticatorAvailableRequest( +@@ -184,31 +140,16 @@ public class Fido2CredentialRequest impl + callback.onIsUserVerifyingPlatformAuthenticatorAvailableResponse(false); + return; + } - -- /** -- * Helper method that creates GetAssertionAuthenticatorResponse objects. -- */ -- public static GetAssertionAuthenticatorResponse toGetAssertionResponse( -- AuthenticatorAssertionResponse data, boolean appIdExtensionUsed) { -- GetAssertionAuthenticatorResponse response = new GetAssertionAuthenticatorResponse(); -- CommonCredentialInfo info = new CommonCredentialInfo(); -- response.signature = data.getSignature(); -- response.echoAppidExtension = appIdExtensionUsed; -- info.authenticatorData = data.getAuthenticatorData(); -- info.id = encodeId(data.getKeyHandle()); -- info.rawId = data.getKeyHandle(); -- info.clientDataJson = data.getClientDataJSON(); -- response.info = info; -- return response; -- } +- Task result = +- mFido2ApiClient.isUserVerifyingPlatformAuthenticatorAvailable() +- .addOnSuccessListener((isUVPAA) -> { +- callback.onIsUserVerifyingPlatformAuthenticatorAvailableResponse( +- isUVPAA); +- }); + } + + /* Initialize the FIDO2 browser API client. */ + private boolean initFido2ApiClient() { +- if (mFido2ApiClient != null) { +- return true; +- } - -- public static GetAssertionAuthenticatorResponse toGetAssertionResponse( -- PublicKeyCredential data, boolean appIdExtensionUsed) { -- GetAssertionAuthenticatorResponse response = toGetAssertionResponse( -- (AuthenticatorAssertionResponse) data.getResponse(), appIdExtensionUsed); -- AuthenticationExtensionsClientOutputs extensionsClientOutputs = -- data.getClientExtensionResults(); -- -- if (extensionsClientOutputs != null && extensionsClientOutputs.getUvmEntries() != null) { -- response.echoUserVerificationMethods = true; -- response.userVerificationMethods = -- getUserVerificationMethods(extensionsClientOutputs.getUvmEntries()); + if (!ExternalAuthUtils.getInstance().canUseGooglePlayServices( + new UserRecoverableErrorHandler.Silent())) { + return false; + } + +- mFido2ApiClient = Fido.getFido2PrivilegedApiClient(ContextUtils.getApplicationContext()); +- if (mFido2ApiClient == null) { +- return false; - } -- return response; -- } -- -- /** -- * Helper method to convert AuthenticatorErrorResponse errors. -- * @param errorCode -- * @return error code corresponding to an AuthenticatorStatus. -- */ -- public static int convertError(ErrorCode errorCode, String errorMsg) { -- // TODO(b/113347251): Use specific error codes instead of strings when GmsCore Fido2 -- // provides them. -- switch (errorCode) { -- case SECURITY_ERR: -- // AppId or rpID fails validation. -- return AuthenticatorStatus.INVALID_DOMAIN; -- case TIMEOUT_ERR: -- return AuthenticatorStatus.NOT_ALLOWED_ERROR; -- case ENCODING_ERR: -- // Error encoding results (after user consent). -- return AuthenticatorStatus.UNKNOWN_ERROR; -- case NOT_ALLOWED_ERR: -- // The implementation doesn't support resident keys. -- if (errorMsg != null -- && (errorMsg.equals(NON_EMPTY_ALLOWLIST_ERROR_MSG) -- || errorMsg.equals(NON_VALID_ALLOWED_CREDENTIALS_ERROR_MSG))) { -- return AuthenticatorStatus.EMPTY_ALLOW_CREDENTIALS; -- } -- // The request is not allowed, possibly because the user denied permission. -- return AuthenticatorStatus.NOT_ALLOWED_ERROR; -- case DATA_ERR: -- // Incoming requests were malformed/inadequate. Fallthrough. -- case NOT_SUPPORTED_ERR: -- // Request parameters were not supported. -- return AuthenticatorStatus.ANDROID_NOT_SUPPORTED_ERROR; -- case CONSTRAINT_ERR: -- if (errorMsg != null && errorMsg.equals(NO_SCREENLOCK_ERROR_MSG)) { -- return AuthenticatorStatus.USER_VERIFICATION_UNSUPPORTED; -- } else { -- // The user attempted to use a credential that was already registered. -- return AuthenticatorStatus.CREDENTIAL_EXCLUDED; -- } -- case INVALID_STATE_ERR: -- if (errorMsg != null && errorMsg.equals(CREDENTIAL_EXISTS_ERROR_MSG)) { -- return AuthenticatorStatus.CREDENTIAL_EXCLUDED; -- } -- // else fallthrough. -- case UNKNOWN_ERR: -- if (errorMsg != null && errorMsg.equals(LOW_LEVEL_ERROR_MSG)) { -- // The error message returned from GmsCore when the user attempted to use a -- // credential that is not registered. -- return AuthenticatorStatus.CREDENTIAL_NOT_RECOGNIZED; -- } -- // fall through -- default: -- return AuthenticatorStatus.UNKNOWN_ERROR; +- return true; ++ return false; + } + + // Handles a PendingIntent from the GMSCore Fido library. +@@ -255,13 +196,11 @@ public class Fido2CredentialRequest impl + if (data == null) { + Log.e(TAG, "Received a null intent."); + // The user canceled the request. +- returnErrorAndResetCallback(AuthenticatorStatus.NOT_ALLOWED_ERROR); + return; + } + + switch (resultCode) { + case Activity.RESULT_CANCELED: +- returnErrorAndResetCallback(AuthenticatorStatus.NOT_ALLOWED_ERROR); + break; + case Activity.RESULT_OK: + processIntentResult(data); +@@ -275,56 +214,16 @@ public class Fido2CredentialRequest impl + } + + private void processPublicKeyCredential(Intent data) { +- PublicKeyCredential publicKeyCredential = PublicKeyCredential.deserializeFromBytes( +- data.getByteArrayExtra(FIDO2_KEY_CREDENTIAL_EXTRA)); +- AuthenticatorResponse response = publicKeyCredential.getResponse(); +- if (response instanceof AuthenticatorErrorResponse) { +- processErrorResponse((AuthenticatorErrorResponse) response); +- } else if (response instanceof AuthenticatorAttestationResponse) { +- try { +- mMakeCredentialCallback.onRegisterResponse(AuthenticatorStatus.SUCCESS, +- Fido2Helper.toMakeCredentialResponse(publicKeyCredential)); +- mMakeCredentialCallback = null; +- } catch (NoSuchAlgorithmException e) { +- returnErrorAndResetCallback(AuthenticatorStatus.ALGORITHM_UNSUPPORTED); +- } +- } else if (response instanceof AuthenticatorAssertionResponse) { +- mGetAssertionCallback.onSignResponse(AuthenticatorStatus.SUCCESS, +- Fido2Helper.toGetAssertionResponse(publicKeyCredential, mAppIdExtensionUsed)); +- mGetAssertionCallback = null; - } - } - -- /** - * Base64 encodes the raw id. - * @param keyHandle the raw id (key handle of the credential). - * @return Base64-encoded id. -@@ -293,102 +54,6 @@ public final class Fido2Helper { +- private void processErrorResponse(AuthenticatorErrorResponse errorResponse) { +- Log.e(TAG, +- "Google Play Services FIDO2 API returned an error: " +- + errorResponse.getErrorMessage()); +- int authenticatorStatus = Fido2Helper.convertError( +- errorResponse.getErrorCode(), errorResponse.getErrorMessage()); +- returnErrorAndResetCallback(authenticatorStatus); + } + + private void processKeyResponse(Intent data) { + switch (mRequestStatus) { + case REGISTER_REQUEST: + Log.e(TAG, "Received a register response from Google Play Services FIDO2 API"); +- try { +- mMakeCredentialCallback.onRegisterResponse(AuthenticatorStatus.SUCCESS, +- Fido2Helper.toMakeCredentialResponse( +- AuthenticatorAttestationResponse.deserializeFromBytes( +- data.getByteArrayExtra( +- Fido.FIDO2_KEY_RESPONSE_EXTRA)))); +- } catch (NoSuchAlgorithmException e) { +- returnErrorAndResetCallback(AuthenticatorStatus.ALGORITHM_UNSUPPORTED); +- } ++ returnErrorAndResetCallback(AuthenticatorStatus.ALGORITHM_UNSUPPORTED); + break; + case SIGN_REQUEST: + Log.e(TAG, "Received a sign response from Google Play Services FIDO2 API"); +- mGetAssertionCallback.onSignResponse(AuthenticatorStatus.SUCCESS, +- Fido2Helper.toGetAssertionResponse( +- AuthenticatorAssertionResponse.deserializeFromBytes( +- data.getByteArrayExtra(Fido.FIDO2_KEY_RESPONSE_EXTRA)), +- mAppIdExtensionUsed)); + break; + } + mMakeCredentialCallback = null; +@@ -337,17 +236,11 @@ public class Fido2CredentialRequest impl + // [Attestation/Assertion/Error] Response. + if (data.hasExtra(FIDO2_KEY_CREDENTIAL_EXTRA)) { + processPublicKeyCredential(data); +- } else if (data.hasExtra(Fido.FIDO2_KEY_ERROR_EXTRA)) { +- processErrorResponse(AuthenticatorErrorResponse.deserializeFromBytes( +- data.getByteArrayExtra(Fido.FIDO2_KEY_ERROR_EXTRA))); +- } else if (data.hasExtra(Fido.FIDO2_KEY_RESPONSE_EXTRA)) { +- processKeyResponse(data); + } else { + // Something went wrong. + Log.e(TAG, + "The response is missing FIDO2_KEY_RESPONSE_EXTRA " + + "and FIDO2_KEY_CREDENTIAL_EXTRA."); +- returnErrorAndResetCallback(AuthenticatorStatus.UNKNOWN_ERROR); + } } +--- a/components/webauthn/android/java/src/org/chromium/components/webauthn/Fido2Helper.java ++++ b/components/webauthn/android/java/src/org/chromium/components/webauthn/Fido2Helper.java +@@ -8,26 +8,6 @@ import android.util.Base64; + + import androidx.annotation.VisibleForTesting; + +-import com.google.android.gms.fido.common.Transport; +-import com.google.android.gms.fido.fido2.api.common.Attachment; +-import com.google.android.gms.fido.fido2.api.common.AttestationConveyancePreference; +-import com.google.android.gms.fido.fido2.api.common.AuthenticationExtensions; +-import com.google.android.gms.fido.fido2.api.common.AuthenticationExtensionsClientOutputs; +-import com.google.android.gms.fido.fido2.api.common.AuthenticatorAssertionResponse; +-import com.google.android.gms.fido.fido2.api.common.AuthenticatorAttestationResponse; +-import com.google.android.gms.fido.fido2.api.common.AuthenticatorSelectionCriteria; +-import com.google.android.gms.fido.fido2.api.common.ErrorCode; +-import com.google.android.gms.fido.fido2.api.common.FidoAppIdExtension; +-import com.google.android.gms.fido.fido2.api.common.PublicKeyCredential; +-import com.google.android.gms.fido.fido2.api.common.PublicKeyCredentialCreationOptions; +-import com.google.android.gms.fido.fido2.api.common.PublicKeyCredentialDescriptor; +-import com.google.android.gms.fido.fido2.api.common.PublicKeyCredentialParameters; +-import com.google.android.gms.fido.fido2.api.common.PublicKeyCredentialRpEntity; +-import com.google.android.gms.fido.fido2.api.common.PublicKeyCredentialType; +-import com.google.android.gms.fido.fido2.api.common.PublicKeyCredentialUserEntity; +-import com.google.android.gms.fido.fido2.api.common.UserVerificationMethodExtension; +-import com.google.android.gms.fido.fido2.api.common.UvmEntries; +- + import org.chromium.base.Log; + import org.chromium.base.annotations.CalledByNative; + import org.chromium.base.annotations.JNINamespace; +@@ -70,225 +50,6 @@ public final class Fido2Helper { + public static final double MAX_TIMEOUT_SECONDS = 600; + /** -- * Parses uvmEntries into userVerificationMethods -- * @param uvmEntries defined in gmscore. -- * @return userVerificationMethods defined in authenticato.mojom. +- * Converts mojo options to gmscore options. +- * @param options Options passed in from the renderer. +- * @return Options to be passed to Fido2 API. +- * @throws NoSuchAlgorithmException - */ -- private static UvmEntry[] getUserVerificationMethods(UvmEntries uvmEntries) { -- List uvmEntryList = -- uvmEntries.getUvmEntryList(); -- UvmEntry[] userVerificationMethods = new UvmEntry[uvmEntryList.size()]; -- for (int i = 0; i < uvmEntryList.size(); i++) { -- UvmEntry uvmEntry = new UvmEntry(); -- uvmEntry.userVerificationMethod = uvmEntryList.get(i).getUserVerificationMethod(); -- uvmEntry.keyProtectionType = uvmEntryList.get(i).getKeyProtectionType(); -- uvmEntry.matcherProtectionType = uvmEntryList.get(i).getMatcherProtectionType(); -- userVerificationMethods[i] = uvmEntry; -- } -- return userVerificationMethods; -- } +- public static PublicKeyCredentialCreationOptions toMakeCredentialOptions( +- org.chromium.blink.mojom.PublicKeyCredentialCreationOptions options) +- throws NoSuchAlgorithmException { +- // Pack incoming options as Fido2's BrowserMakeCredentialOptions. +- String rpIcon = options.relyingParty.icon != null ? options.relyingParty.icon.url : null; +- PublicKeyCredentialRpEntity rp = new PublicKeyCredentialRpEntity( +- options.relyingParty.id, options.relyingParty.name, rpIcon); - -- private static List convertCredentialDescriptor( -- org.chromium.blink.mojom.PublicKeyCredentialDescriptor[] mojoDescriptors) { -- if (mojoDescriptors == null) { -- return null; -- } +- String userIcon = options.user.icon != null ? options.user.icon.url : null; +- PublicKeyCredentialUserEntity user = new PublicKeyCredentialUserEntity( +- options.user.id, options.user.name, userIcon, options.user.displayName); - -- List descriptors = new ArrayList<>(); -- for (org.chromium.blink.mojom.PublicKeyCredentialDescriptor descriptor : mojoDescriptors) { -- descriptors.add( -- new PublicKeyCredentialDescriptor(PublicKeyCredentialType.PUBLIC_KEY.toString(), -- descriptor.id, toTransportList(descriptor.transports))); +- List parameters = new ArrayList<>(); +- for (org.chromium.blink.mojom.PublicKeyCredentialParameters param : +- options.publicKeyParameters) { +- if (param.algorithmIdentifier == ECDSA_COSE_IDENTIFIER +- && param.type == org.chromium.blink.mojom.PublicKeyCredentialType.PUBLIC_KEY) { +- parameters.add(new PublicKeyCredentialParameters( +- PublicKeyCredentialType.PUBLIC_KEY.toString(), param.algorithmIdentifier)); +- } - } -- return descriptors; -- } - -- private static AuthenticatorSelectionCriteria convertSelectionCriteria( -- org.chromium.blink.mojom.AuthenticatorSelectionCriteria mojoSelection) { -- AuthenticatorSelectionCriteria selection = null; -- if (mojoSelection != null) { -- /* Sets UserVerificationRequirement and RequireResidentKey to default until the FIDO2 -- * API supports the other options. */ -- selection = -- new AuthenticatorSelectionCriteria.Builder() -- .setAttachment(convertAttachment(mojoSelection.authenticatorAttachment)) -- .build(); +- // Check that at least one incoming param is supported by the FIDO2 API. +- if (parameters.size() == 0 && options.publicKeyParameters.length != 0) { +- Log.e(TAG, "None of the requested parameters are supported."); +- throw new NoSuchAlgorithmException(); - } -- return selection; -- } - -- private static List toTransportList(int[] mojoTransports) { -- List fidoTransports = new ArrayList<>(); -- for (int transport : mojoTransports) { -- fidoTransports.add(convertTransport(transport)); -- } -- return fidoTransports; -- } +- List excludeCredentials = +- convertCredentialDescriptor(options.excludeCredentials); - -- private static Transport convertTransport(int transport) { +- AuthenticatorSelectionCriteria selection = +- convertSelectionCriteria(options.authenticatorSelection); +- +- AttestationConveyancePreference attestationPreference = +- convertAttestationPreference(options.attestation); +- +- PublicKeyCredentialCreationOptions credentialCreationOptions = +- new PublicKeyCredentialCreationOptions.Builder() +- .setRp(rp) +- .setUser(user) +- .setChallenge(options.challenge) +- .setParameters(parameters) +- .setTimeoutSeconds(adjustTimeout(options.timeout)) +- .setExcludeList(excludeCredentials) +- .setAuthenticatorSelection(selection) +- .setAttestationConveyancePreference(attestationPreference) +- .build(); +- return credentialCreationOptions; +- } +- +- /** +- * Converts gmscore AuthenticatorAttestationResponse to mojo MakeCredentialAuthenticatorResponse +- * @param data Response from the Fido2 API. +- * @return Response to be passed to the renderer. +- */ +- public static MakeCredentialAuthenticatorResponse toMakeCredentialResponse( +- AuthenticatorAttestationResponse data) throws NoSuchAlgorithmException { +- MakeCredentialAuthenticatorResponse response = new MakeCredentialAuthenticatorResponse(); +- CommonCredentialInfo info = new CommonCredentialInfo(); +- +- response.attestationObject = data.getAttestationObject(); +- AttestationObjectParts parts = new AttestationObjectParts(); +- if (!Fido2HelperJni.get().parseAttestationObject(response.attestationObject, parts)) { +- // A failure to parse the attestation object is fatal to the request +- // on desktop and so the same behavior is used here. +- throw new NoSuchAlgorithmException(); +- } +- response.publicKeyAlgo = parts.coseAlgorithm; +- info.authenticatorData = parts.authenticatorData; +- response.publicKeyDer = parts.spki; +- +- // An empty transports array indicates that we don't have any +- // information about the available transports. +- response.transports = new int[] {}; +- +- info.id = encodeId(data.getKeyHandle()); +- info.rawId = data.getKeyHandle(); +- info.clientDataJson = data.getClientDataJSON(); +- response.info = info; +- return response; +- } +- +- public static MakeCredentialAuthenticatorResponse toMakeCredentialResponse( +- PublicKeyCredential data) throws NoSuchAlgorithmException { +- MakeCredentialAuthenticatorResponse response = +- toMakeCredentialResponse((AuthenticatorAttestationResponse) data.getResponse()); +- return response; +- } +- +- /** +- * Converts mojo options to gmscore options. +- * @param options Options passed in from the renderer. +- * @return Options to be passed to Fido2 API. +- */ +- public static com.google.android.gms.fido.fido2.api.common.PublicKeyCredentialRequestOptions +- toGetAssertionOptions(PublicKeyCredentialRequestOptions options) { +- List allowCredentials = +- convertCredentialDescriptor(options.allowCredentials); +- +- FidoAppIdExtension fidoAppIdExtension = +- (options.appid != null) ? new FidoAppIdExtension(options.appid) : null; +- UserVerificationMethodExtension userVerificationMethodExtension = +- new UserVerificationMethodExtension(options.userVerificationMethods); +- AuthenticationExtensions authenticationExtensions = +- new AuthenticationExtensions.Builder() +- .setFido2Extension(fidoAppIdExtension) +- .setUserVerificationMethodExtension(userVerificationMethodExtension) +- .build(); +- +- // Pack options as Fido2's BrowserPublicKeyCredentialRequestOptions. +- com.google.android.gms.fido.fido2.api.common +- .PublicKeyCredentialRequestOptions credentialRequestOptions = +- new com.google.android.gms.fido.fido2.api.common.PublicKeyCredentialRequestOptions +- .Builder() +- .setChallenge(options.challenge) +- .setTimeoutSeconds(adjustTimeout(options.timeout)) +- .setRpId(options.relyingPartyId) +- .setAllowList(allowCredentials) +- /* TODO add back UserVerificationRequirement when the FIDO2 API supports it +- */ +- .setAuthenticationExtensions(authenticationExtensions) +- .build(); +- return credentialRequestOptions; +- } +- +- /** +- * Helper method that creates GetAssertionAuthenticatorResponse objects. +- */ +- public static GetAssertionAuthenticatorResponse toGetAssertionResponse( +- AuthenticatorAssertionResponse data, boolean appIdExtensionUsed) { +- GetAssertionAuthenticatorResponse response = new GetAssertionAuthenticatorResponse(); +- CommonCredentialInfo info = new CommonCredentialInfo(); +- response.signature = data.getSignature(); +- response.echoAppidExtension = appIdExtensionUsed; +- info.authenticatorData = data.getAuthenticatorData(); +- info.id = encodeId(data.getKeyHandle()); +- info.rawId = data.getKeyHandle(); +- info.clientDataJson = data.getClientDataJSON(); +- response.info = info; +- return response; +- } +- +- public static GetAssertionAuthenticatorResponse toGetAssertionResponse( +- PublicKeyCredential data, boolean appIdExtensionUsed) { +- GetAssertionAuthenticatorResponse response = toGetAssertionResponse( +- (AuthenticatorAssertionResponse) data.getResponse(), appIdExtensionUsed); +- AuthenticationExtensionsClientOutputs extensionsClientOutputs = +- data.getClientExtensionResults(); +- +- if (extensionsClientOutputs != null && extensionsClientOutputs.getUvmEntries() != null) { +- response.echoUserVerificationMethods = true; +- response.userVerificationMethods = +- getUserVerificationMethods(extensionsClientOutputs.getUvmEntries()); +- } +- return response; +- } +- +- /** +- * Helper method to convert AuthenticatorErrorResponse errors. +- * @param errorCode +- * @return error code corresponding to an AuthenticatorStatus. +- */ +- public static int convertError(ErrorCode errorCode, String errorMsg) { +- // TODO(b/113347251): Use specific error codes instead of strings when GmsCore Fido2 +- // provides them. +- switch (errorCode) { +- case SECURITY_ERR: +- // AppId or rpID fails validation. +- return AuthenticatorStatus.INVALID_DOMAIN; +- case TIMEOUT_ERR: +- return AuthenticatorStatus.NOT_ALLOWED_ERROR; +- case ENCODING_ERR: +- // Error encoding results (after user consent). +- return AuthenticatorStatus.UNKNOWN_ERROR; +- case NOT_ALLOWED_ERR: +- // The implementation doesn't support resident keys. +- if (errorMsg != null +- && (errorMsg.equals(NON_EMPTY_ALLOWLIST_ERROR_MSG) +- || errorMsg.equals(NON_VALID_ALLOWED_CREDENTIALS_ERROR_MSG))) { +- return AuthenticatorStatus.EMPTY_ALLOW_CREDENTIALS; +- } +- // The request is not allowed, possibly because the user denied permission. +- return AuthenticatorStatus.NOT_ALLOWED_ERROR; +- case DATA_ERR: +- // Incoming requests were malformed/inadequate. Fallthrough. +- case NOT_SUPPORTED_ERR: +- // Request parameters were not supported. +- return AuthenticatorStatus.ANDROID_NOT_SUPPORTED_ERROR; +- case CONSTRAINT_ERR: +- if (errorMsg != null && errorMsg.equals(NO_SCREENLOCK_ERROR_MSG)) { +- return AuthenticatorStatus.USER_VERIFICATION_UNSUPPORTED; +- } else { +- // The user attempted to use a credential that was already registered. +- return AuthenticatorStatus.CREDENTIAL_EXCLUDED; +- } +- case INVALID_STATE_ERR: +- if (errorMsg != null && errorMsg.equals(CREDENTIAL_EXISTS_ERROR_MSG)) { +- return AuthenticatorStatus.CREDENTIAL_EXCLUDED; +- } +- // else fallthrough. +- case UNKNOWN_ERR: +- if (errorMsg != null && errorMsg.equals(LOW_LEVEL_ERROR_MSG)) { +- // The error message returned from GmsCore when the user attempted to use a +- // credential that is not registered. +- return AuthenticatorStatus.CREDENTIAL_NOT_RECOGNIZED; +- } +- // fall through +- default: +- return AuthenticatorStatus.UNKNOWN_ERROR; +- } +- } +- +- /** + * Base64 encodes the raw id. + * @param keyHandle the raw id (key handle of the credential). + * @return Base64-encoded id. +@@ -299,102 +60,6 @@ public final class Fido2Helper { + } + + /** +- * Parses uvmEntries into userVerificationMethods +- * @param uvmEntries defined in gmscore. +- * @return userVerificationMethods defined in authenticato.mojom. +- */ +- private static UvmEntry[] getUserVerificationMethods(UvmEntries uvmEntries) { +- List uvmEntryList = +- uvmEntries.getUvmEntryList(); +- UvmEntry[] userVerificationMethods = new UvmEntry[uvmEntryList.size()]; +- for (int i = 0; i < uvmEntryList.size(); i++) { +- UvmEntry uvmEntry = new UvmEntry(); +- uvmEntry.userVerificationMethod = uvmEntryList.get(i).getUserVerificationMethod(); +- uvmEntry.keyProtectionType = uvmEntryList.get(i).getKeyProtectionType(); +- uvmEntry.matcherProtectionType = uvmEntryList.get(i).getMatcherProtectionType(); +- userVerificationMethods[i] = uvmEntry; +- } +- return userVerificationMethods; +- } +- +- private static List convertCredentialDescriptor( +- org.chromium.blink.mojom.PublicKeyCredentialDescriptor[] mojoDescriptors) { +- if (mojoDescriptors == null) { +- return null; +- } +- +- List descriptors = new ArrayList<>(); +- for (org.chromium.blink.mojom.PublicKeyCredentialDescriptor descriptor : mojoDescriptors) { +- descriptors.add( +- new PublicKeyCredentialDescriptor(PublicKeyCredentialType.PUBLIC_KEY.toString(), +- descriptor.id, toTransportList(descriptor.transports))); +- } +- return descriptors; +- } +- +- private static AuthenticatorSelectionCriteria convertSelectionCriteria( +- org.chromium.blink.mojom.AuthenticatorSelectionCriteria mojoSelection) { +- AuthenticatorSelectionCriteria selection = null; +- if (mojoSelection != null) { +- /* Sets UserVerificationRequirement and RequireResidentKey to default until the FIDO2 +- * API supports the other options. */ +- selection = +- new AuthenticatorSelectionCriteria.Builder() +- .setAttachment(convertAttachment(mojoSelection.authenticatorAttachment)) +- .build(); +- } +- return selection; +- } +- +- private static List toTransportList(int[] mojoTransports) { +- List fidoTransports = new ArrayList<>(); +- for (int transport : mojoTransports) { +- fidoTransports.add(convertTransport(transport)); +- } +- return fidoTransports; +- } +- +- private static Transport convertTransport(int transport) { - switch (transport) { - case AuthenticatorTransport.USB: - return Transport.USB; @@ -1115,458 +1480,13 @@ Subject: Remove dependency on com.google.android.gms.fido, * Adjusts a timeout between a reasonable minimum and maximum. * * @param timeout The unadjusted timeout as specified by the website. May be null. ---- a/chrome/android/java/src/org/chromium/chrome/browser/externalnav/ExternalNavigationDelegateImpl.java -+++ b/chrome/android/java/src/org/chromium/chrome/browser/externalnav/ExternalNavigationDelegateImpl.java -@@ -218,12 +218,6 @@ public class ExternalNavigationDelegateI - - @Override - public void maybeAdjustInstantAppExtras(Intent intent, boolean isIntentToInstantApp) { -- if (isIntentToInstantApp) { -- intent.putExtra(InstantAppsHandler.IS_GOOGLE_SEARCH_REFERRER, true); -- } else { -- // Make sure this extra is not sent unless we've done the verification. -- intent.removeExtra(InstantAppsHandler.IS_GOOGLE_SEARCH_REFERRER); -- } - } - - @Override ---- a/chrome/android/features/cablev2_authenticator/BUILD.gn -+++ b/chrome/android/features/cablev2_authenticator/BUILD.gn -@@ -18,7 +18,6 @@ android_library("java") { +--- a/components/webauthn/android/BUILD.gn ++++ b/components/webauthn/android/BUILD.gn +@@ -22,7 +22,6 @@ android_library("java") { + ] + annotation_processor_deps = [ "//base/android/jni_generator:jni_processor" ] deps = [ - ":java_resources", - "$google_play_services_package:google_play_services_base_java", - "$google_play_services_package:google_play_services_fido_java", "$google_play_services_package:google_play_services_tasks_java", - "$google_play_services_package:google_play_services_vision_common_java", - "$google_play_services_package:google_play_services_vision_java", ---- a/base/android/java/src/org/chromium/base/IntentUtils.java -+++ b/base/android/java/src/org/chromium/base/IntentUtils.java -@@ -39,9 +39,6 @@ public class IntentUtils { - public static final String ANDROID_APP_REFERRER_SCHEME = "android-app"; - - // Instant Apps system resolver activity on N-MR1+. -- @VisibleForTesting -- public static final String EPHEMERAL_INSTALLER_CLASS = -- "com.google.android.gms.instantapps.routing.EphemeralInstallerActivity"; - - // TODO(mthiesse): Move to ApiHelperForS when it exist. - private static final int FLAG_MUTABLE = 1 << 25; -@@ -56,7 +53,7 @@ public class IntentUtils { - if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.O) { - return info.isInstantAppAvailable; - } else if (info.activityInfo != null) { -- return EPHEMERAL_INSTALLER_CLASS.equals(info.activityInfo.name); -+ return false; - } - - return false; ---- a/services/BUILD.gn -+++ b/services/BUILD.gn -@@ -106,7 +106,6 @@ if (is_android) { - deps = [ - "$google_play_services_package:google_play_services_base_java", - "$google_play_services_package:google_play_services_basement_java", -- "$google_play_services_package:google_play_services_location_java", - "$google_play_services_package:google_play_services_vision_common_java", - "$google_play_services_package:google_play_services_vision_java", - "//base:base_java", ---- a/chrome/android/features/cablev2_authenticator/java/src/org/chromium/chrome/browser/webauth/authenticator/CableAuthenticator.java -+++ b/chrome/android/features/cablev2_authenticator/java/src/org/chromium/chrome/browser/webauth/authenticator/CableAuthenticator.java -@@ -23,25 +23,6 @@ import android.util.Base64; - import androidx.core.app.NotificationCompat; - import androidx.core.app.NotificationManagerCompat; - --import com.google.android.gms.fido.Fido; --import com.google.android.gms.fido.common.Transport; --import com.google.android.gms.fido.fido2.Fido2PrivilegedApiClient; --import com.google.android.gms.fido.fido2.api.common.Attachment; --import com.google.android.gms.fido.fido2.api.common.AttestationConveyancePreference; --import com.google.android.gms.fido.fido2.api.common.AuthenticatorAssertionResponse; --import com.google.android.gms.fido.fido2.api.common.AuthenticatorAttestationResponse; --import com.google.android.gms.fido.fido2.api.common.AuthenticatorErrorResponse; --import com.google.android.gms.fido.fido2.api.common.AuthenticatorSelectionCriteria; --import com.google.android.gms.fido.fido2.api.common.BrowserPublicKeyCredentialCreationOptions; --import com.google.android.gms.fido.fido2.api.common.BrowserPublicKeyCredentialRequestOptions; --import com.google.android.gms.fido.fido2.api.common.PublicKeyCredential; --import com.google.android.gms.fido.fido2.api.common.PublicKeyCredentialCreationOptions; --import com.google.android.gms.fido.fido2.api.common.PublicKeyCredentialDescriptor; --import com.google.android.gms.fido.fido2.api.common.PublicKeyCredentialParameters; --import com.google.android.gms.fido.fido2.api.common.PublicKeyCredentialRequestOptions; --import com.google.android.gms.fido.fido2.api.common.PublicKeyCredentialRpEntity; --import com.google.android.gms.fido.fido2.api.common.PublicKeyCredentialType; --import com.google.android.gms.fido.fido2.api.common.PublicKeyCredentialUserEntity; - import com.google.android.gms.tasks.Task; - - import org.chromium.base.ContextUtils; -@@ -173,130 +154,17 @@ class CableAuthenticator { - public void makeCredential(String rpId, byte[] clientDataHash, byte[] userId, int[] algorithms, - byte[][] excludedCredentialIds, boolean residentKeyRequired) { - // TODO: handle concurrent requests -- Fido2PrivilegedApiClient client = Fido.getFido2PrivilegedApiClient(mContext); -- if (client == null) { -- Log.i(TAG, "getFido2PrivilegedApiClient failed"); -- return; -- } -- Log.i(TAG, "have fido client"); -+ Log.i(TAG, "getFido2PrivilegedApiClient failed"); -+ return; - -- List parameters = new ArrayList<>(); -- for (int i = 0; i < algorithms.length; i++) { -- try { -- parameters.add(new PublicKeyCredentialParameters( -- PublicKeyCredentialType.PUBLIC_KEY.toString(), algorithms[i])); -- } catch (IllegalArgumentException e) { -- // The FIDO API will throw IllegalArgumentException for unrecognised algorithms. -- // Since an authenticator ignores unknown algorithms, this exception just needs to -- // be caught and ignored. -- } -- } -- // The GmsCore FIDO2 API does not actually support resident keys yet. -- AuthenticatorSelectionCriteria selection = new AuthenticatorSelectionCriteria.Builder() -- .setAttachment(Attachment.PLATFORM) -- .build(); -- List excludeCredentials = -- new ArrayList(); -- for (int i = 0; i < excludedCredentialIds.length; i++) { -- excludeCredentials.add( -- new PublicKeyCredentialDescriptor(PublicKeyCredentialType.PUBLIC_KEY.toString(), -- excludedCredentialIds[i], new ArrayList())); -- } -- byte[] dummy = new byte[32]; -- PublicKeyCredentialCreationOptions credentialCreationOptions = -- new PublicKeyCredentialCreationOptions.Builder() -- .setRp(new PublicKeyCredentialRpEntity(rpId, "", "")) -- .setUser(new PublicKeyCredentialUserEntity(userId, "", null, "")) -- // This is unused because we override it with -- // |setClientDataHash|, below. But a value must be set -- // to prevent this Builder from throwing an exception. -- .setChallenge(clientDataHash) -- .setParameters(parameters) -- .setTimeoutSeconds(TIMEOUT_SECONDS) -- .setExcludeList(excludeCredentials) -- .setAuthenticatorSelection(selection) -- .setAttestationConveyancePreference(AttestationConveyancePreference.NONE) -- .build(); -- BrowserPublicKeyCredentialCreationOptions browserRequestOptions = -- new BrowserPublicKeyCredentialCreationOptions.Builder() -- .setPublicKeyCredentialCreationOptions(credentialCreationOptions) -- .setClientDataHash(clientDataHash) -- .setOrigin(Uri.parse("https://" + rpId)) -- .build(); -- Task result = client.getRegisterPendingIntent(browserRequestOptions); -- result.addOnSuccessListener(pendingIntent -> { -- Log.i(TAG, "got pending"); -- try { -- mUi.startIntentSenderForResult(pendingIntent.getIntentSender(), -- REGISTER_REQUEST_CODE, -- null, // fillInIntent, -- 0, // flagsMask, -- 0, // flagsValue, -- 0, // extraFlags, -- Bundle.EMPTY); -- } catch (IntentSender.SendIntentException e) { -- Log.e(TAG, "intent failure"); -- } -- }).addOnFailureListener(e -> { Log.e(TAG, "intent failure" + e); }); -- -- Log.i(TAG, "op done"); - } - - @CalledByNative - public void getAssertion(String rpId, byte[] clientDataHash, byte[][] allowedCredentialIds) { - // TODO: handle concurrent requests -- Fido2PrivilegedApiClient client = Fido.getFido2PrivilegedApiClient(mContext); -- if (client == null) { -- Log.i(TAG, "getFido2PrivilegedApiClient failed"); -- return; -- } -- Log.i(TAG, "have fido client"); -+ Log.i(TAG, "getFido2PrivilegedApiClient failed"); -+ return; - -- List allowCredentials = -- new ArrayList(); -- ArrayList transports = new ArrayList(); -- transports.add(Transport.INTERNAL); -- for (int i = 0; i < allowedCredentialIds.length; i++) { -- allowCredentials.add( -- new PublicKeyCredentialDescriptor(PublicKeyCredentialType.PUBLIC_KEY.toString(), -- allowedCredentialIds[i], transports)); -- } -- -- PublicKeyCredentialRequestOptions credentialRequestOptions = -- new PublicKeyCredentialRequestOptions.Builder() -- .setAllowList(allowCredentials) -- // This is unused because we override it with -- // |setClientDataHash|, below. But a value must be set -- // to prevent this Builder from throwing an exception. -- .setChallenge(clientDataHash) -- .setRpId(rpId) -- .setTimeoutSeconds(TIMEOUT_SECONDS) -- .build(); -- -- BrowserPublicKeyCredentialRequestOptions browserRequestOptions = -- new BrowserPublicKeyCredentialRequestOptions.Builder() -- .setPublicKeyCredentialRequestOptions(credentialRequestOptions) -- .setClientDataHash(clientDataHash) -- .setOrigin(Uri.parse("https://" + rpId)) -- .build(); -- -- Task result = client.getSignPendingIntent(browserRequestOptions); -- result.addOnSuccessListener(pendingIntent -> { -- Log.i(TAG, "got pending"); -- try { -- mUi.startIntentSenderForResult(pendingIntent.getIntentSender(), -- SIGN_REQUEST_CODE, -- null, // fillInIntent, -- 0, // flagsMask, -- 0, // flagsValue, -- 0, // extraFlags, -- Bundle.EMPTY); -- } catch (IntentSender.SendIntentException e) { -- Log.e(TAG, "intent failure"); -- } -- }).addOnFailureListener(e -> { Log.e(TAG, "intent failure" + e); }); -- -- Log.i(TAG, "op done"); - } - - /** -@@ -339,100 +207,15 @@ class CableAuthenticator { - } - - private boolean onRegisterResponse(int resultCode, Intent data) { -- if (resultCode != Activity.RESULT_OK || data == null) { -- Log.e(TAG, "Failed with result code " + resultCode); -- onAuthenticatorAssertionResponse(CTAP2_ERR_OPERATION_DENIED, null, null, null); -- return false; -- } -- Log.e(TAG, "OK."); -- -- if (data.hasExtra(Fido.FIDO2_KEY_ERROR_EXTRA)) { -- Log.e(TAG, "error extra"); -- AuthenticatorErrorResponse error = AuthenticatorErrorResponse.deserializeFromBytes( -- data.getByteArrayExtra(Fido.FIDO2_KEY_ERROR_EXTRA)); -- Log.i(TAG, -- "error response: " + error.getErrorMessage() + " " -- + String.valueOf(error.getErrorCodeAsInt())); -- -- // ErrorCode represents DOMErrors not CTAP status codes. -- // TODO: figure out translation of the remaining codes -- int ctap_status; -- switch (error.getErrorCode()) { -- case NOT_ALLOWED_ERR: -- ctap_status = CTAP2_ERR_OPERATION_DENIED; -- break; -- default: -- ctap_status = CTAP2_ERR_OTHER; -- break; -- } -- onAuthenticatorAttestationResponse(CTAP2_ERR_OTHER, null); -- return false; -- } -- -- if (!data.hasExtra(Fido.FIDO2_KEY_RESPONSE_EXTRA) -- || !data.hasExtra(Fido.FIDO2_KEY_CREDENTIAL_EXTRA)) { -- Log.e(TAG, "Missing FIDO2_KEY_RESPONSE_EXTRA or FIDO2_KEY_CREDENTIAL_EXTRA"); -- onAuthenticatorAttestationResponse(CTAP2_ERR_OTHER, null); -- return false; -- } -- -- Log.e(TAG, "cred extra"); -- PublicKeyCredential unusedPublicKeyCredential = PublicKeyCredential.deserializeFromBytes( -- data.getByteArrayExtra(Fido.FIDO2_KEY_CREDENTIAL_EXTRA)); -- AuthenticatorAttestationResponse response = -- AuthenticatorAttestationResponse.deserializeFromBytes( -- data.getByteArrayExtra(Fido.FIDO2_KEY_RESPONSE_EXTRA)); -- onAuthenticatorAttestationResponse(CTAP2_OK, response.getAttestationObject()); -- return true; -+ Log.e(TAG, "Failed with result code " + resultCode); -+ onAuthenticatorAssertionResponse(CTAP2_ERR_OPERATION_DENIED, null, null, null); -+ return false; - } - - private boolean onSignResponse(int resultCode, Intent data) { -- if (resultCode != Activity.RESULT_OK || data == null) { -- Log.e(TAG, "Failed with result code " + resultCode); -- onAuthenticatorAssertionResponse(CTAP2_ERR_OPERATION_DENIED, null, null, null); -- return false; -- } -- Log.e(TAG, "OK."); -- -- if (data.hasExtra(Fido.FIDO2_KEY_ERROR_EXTRA)) { -- Log.e(TAG, "error extra"); -- AuthenticatorErrorResponse error = AuthenticatorErrorResponse.deserializeFromBytes( -- data.getByteArrayExtra(Fido.FIDO2_KEY_ERROR_EXTRA)); -- Log.i(TAG, -- "error response: " + error.getErrorMessage() + " " -- + String.valueOf(error.getErrorCodeAsInt())); -- -- // ErrorCode represents DOMErrors not CTAP status codes. -- // TODO: figure out translation of the remaining codes -- int ctap_status; -- switch (error.getErrorCode()) { -- case NOT_ALLOWED_ERR: -- ctap_status = CTAP2_ERR_OPERATION_DENIED; -- break; -- default: -- ctap_status = CTAP2_ERR_OTHER; -- break; -- } -- onAuthenticatorAssertionResponse(ctap_status, null, null, null); -- return false; -- } -- -- if (!data.hasExtra(Fido.FIDO2_KEY_RESPONSE_EXTRA) -- || !data.hasExtra(Fido.FIDO2_KEY_CREDENTIAL_EXTRA)) { -- Log.e(TAG, "Missing FIDO2_KEY_RESPONSE_EXTRA or FIDO2_KEY_CREDENTIAL_EXTRA"); -- onAuthenticatorAssertionResponse(CTAP2_ERR_OTHER, null, null, null); -- return false; -- } -- -- Log.e(TAG, "cred extra"); -- PublicKeyCredential unusedPublicKeyCredential = PublicKeyCredential.deserializeFromBytes( -- data.getByteArrayExtra(Fido.FIDO2_KEY_CREDENTIAL_EXTRA)); -- AuthenticatorAssertionResponse response = -- AuthenticatorAssertionResponse.deserializeFromBytes( -- data.getByteArrayExtra(Fido.FIDO2_KEY_RESPONSE_EXTRA)); -- onAuthenticatorAssertionResponse(CTAP2_OK, response.getKeyHandle(), -- response.getAuthenticatorData(), response.getSignature()); -- return true; -+ Log.e(TAG, "Failed with result code " + resultCode); -+ onAuthenticatorAssertionResponse(CTAP2_ERR_OPERATION_DENIED, null, null, null); -+ return false; - } - - private void onAuthenticatorAttestationResponse(int ctapStatus, byte[] attestationObject) { ---- a/third_party/libaddressinput/src/android/src/main/java/com/android/i18n/addressinput/autocomplete/gmscore/AddressAutocompleteApiImpl.java -+++ b/third_party/libaddressinput/src/android/src/main/java/com/android/i18n/addressinput/autocomplete/gmscore/AddressAutocompleteApiImpl.java -@@ -2,15 +2,6 @@ package com.android.i18n.addressinput.au - - import android.location.Location; - import android.util.Log; --import com.google.android.gms.common.api.GoogleApiClient; --import com.google.android.gms.common.api.ResultCallback; --import com.google.android.gms.location.FusedLocationProviderApi; --import com.google.android.gms.location.places.AutocompleteFilter; --import com.google.android.gms.location.places.AutocompletePrediction; --import com.google.android.gms.location.places.AutocompletePredictionBuffer; --import com.google.android.gms.location.places.GeoDataApi; --import com.google.android.gms.maps.model.LatLng; --import com.google.android.gms.maps.model.LatLngBounds; - import com.google.common.util.concurrent.FutureCallback; - import com.google.i18n.addressinput.common.AddressAutocompleteApi; - import com.google.i18n.addressinput.common.AddressAutocompletePrediction; -@@ -38,70 +29,18 @@ import java.util.List; - public class AddressAutocompleteApiImpl implements AddressAutocompleteApi { - - private static final String TAG = "GmsCoreAddrAutocmplt"; -- private GoogleApiClient googleApiClient; - -- // Use Places.GeoDataApi. -- private GeoDataApi geoDataApi; -- -- // Use LocationServices.FusedLocationApi. -- private FusedLocationProviderApi locationApi; -- -- public AddressAutocompleteApiImpl( -- GoogleApiClient googleApiClient, -- GeoDataApi geoDataApi, -- FusedLocationProviderApi locationApi) { -- this.googleApiClient = googleApiClient; -- this.geoDataApi = geoDataApi; -- this.locationApi = locationApi; -+ public AddressAutocompleteApiImpl() { - } - - // TODO(user): Add a check to ensure that the required permissions have been granted. - @Override - public boolean isConfiguredCorrectly() { -- if (!googleApiClient.isConnected()) { -- Log.e(TAG, "Cannot get autocomplete predictions because Google API client is not connected."); -- return false; -- } -- -- return true; -+ return false; - } - - @Override - public void getAutocompletePredictions( - String query, final FutureCallback> callback) { -- Location deviceLocation = locationApi.getLastLocation(googleApiClient); -- LatLngBounds bounds = -- deviceLocation == null -- ? null -- : LatLngBounds.builder() -- .include(new LatLng(deviceLocation.getLatitude(), deviceLocation.getLongitude())) -- .build(); -- -- geoDataApi -- .getAutocompletePredictions( -- googleApiClient, -- query, -- bounds, -- new AutocompleteFilter.Builder() -- .setTypeFilter(AutocompleteFilter.TYPE_FILTER_ADDRESS) -- .build()) -- .setResultCallback( -- new ResultCallback() { -- @Override -- public void onResult(AutocompletePredictionBuffer resultBuffer) { -- callback.onSuccess(convertPredictions(resultBuffer)); -- } -- }); -- } -- -- private List convertPredictions( -- AutocompletePredictionBuffer resultBuffer) { -- List predictions = new ArrayList<>(); -- -- for (AutocompletePrediction prediction : resultBuffer) { -- predictions.add(new AddressAutocompletePredictionImpl(prediction)); -- } -- -- return predictions; - } - } ---- a/third_party/libaddressinput/src/android/src/main/java/com/android/i18n/addressinput/autocomplete/gmscore/AddressAutocompletePredictionImpl.java -+++ b/third_party/libaddressinput/src/android/src/main/java/com/android/i18n/addressinput/autocomplete/gmscore/AddressAutocompletePredictionImpl.java -@@ -1,6 +1,5 @@ - package com.android.i18n.addressinput.autocomplete.gmscore; - --import com.google.android.gms.location.places.AutocompletePrediction; - import com.google.i18n.addressinput.common.AddressAutocompletePrediction; - - /** -@@ -9,24 +8,21 @@ import com.google.i18n.addressinput.comm - */ - public class AddressAutocompletePredictionImpl extends AddressAutocompletePrediction { - -- private AutocompletePrediction prediction; -- -- AddressAutocompletePredictionImpl(AutocompletePrediction prediction) { -- this.prediction = prediction; -+ AddressAutocompletePredictionImpl() { - } - - @Override - public String getPlaceId() { -- return prediction.getPlaceId(); -+ return ""; - } - - @Override - public CharSequence getPrimaryText() { -- return prediction.getPrimaryText(null); -+ return ""; - } - - @Override - public CharSequence getSecondaryText() { -- return prediction.getSecondaryText(null); -+ return ""; - } - } + "//base:base_java", + "//base:jni_java", diff --git a/patches/ungoogled-chromium-android/Remove-dependency-on-com.google.android.gms.flags-com.google.android.gms.location.places-com.google.android.gms.stats.patch b/patches/ungoogled-chromium-android/Remove-dependency-on-com.google.android.gms.flags-com.google.android.gms.location.places-com.google.android.gms.stats.patch index cf1d056..25da7e9 100644 --- a/patches/ungoogled-chromium-android/Remove-dependency-on-com.google.android.gms.flags-com.google.android.gms.location.places-com.google.android.gms.stats.patch +++ b/patches/ungoogled-chromium-android/Remove-dependency-on-com.google.android.gms.flags-com.google.android.gms.location.places-com.google.android.gms.stats.patch @@ -9,58 +9,58 @@ Subject: Remove dependency on com.google.android.gms.flags, --- a/third_party/android_deps/BUILD.gn +++ b/third_party/android_deps/BUILD.gn -@@ -1241,54 +1241,6 @@ java_prebuilt("com_github_kevinstern_sof - } +@@ -1588,54 +1588,6 @@ if (build_with_chromium) { + } - # This is generated, do not edit. Update BuildConfigGenerator.groovy instead. --android_aar_prebuilt("google_play_services_flags_java") { -- aar_path = "libs/com_google_android_gms_play_services_flags/play-services-flags-17.0.0.aar" -- info_path = "libs/com_google_android_gms_play_services_flags/com_google_android_gms_play_services_flags.info" + # This is generated, do not edit. Update BuildConfigGenerator.groovy instead. +- android_aar_prebuilt("google_play_services_flags_java") { +- aar_path = "libs/com_google_android_gms_play_services_flags/play-services-flags-17.0.0.aar" +- info_path = "libs/com_google_android_gms_play_services_flags/com_google_android_gms_play_services_flags.info" - -- # To remove visibility constraint, add this dependency to -- # //third_party/android_deps/build.gradle. -- visibility = [ -- ":*", -- "//third_party/androidx:*", -- ] -- deps = [ -- ":google_play_services_base_java", -- ":google_play_services_basement_java", -- ] --} +- # To remove visibility constraint, add this dependency to +- # //third_party/android_deps/build.gradle. +- visibility = [ +- ":*", +- "//third_party/androidx:*", +- ] +- deps = [ +- ":google_play_services_base_java", +- ":google_play_services_basement_java", +- ] +- } - --# This is generated, do not edit. Update BuildConfigGenerator.groovy instead. --android_aar_prebuilt("google_play_services_places_placereport_java") { -- aar_path = "libs/com_google_android_gms_play_services_places_placereport/play-services-places-placereport-17.0.0.aar" -- info_path = "libs/com_google_android_gms_play_services_places_placereport/com_google_android_gms_play_services_places_placereport.info" +- # This is generated, do not edit. Update BuildConfigGenerator.groovy instead. +- android_aar_prebuilt("google_play_services_places_placereport_java") { +- aar_path = "libs/com_google_android_gms_play_services_places_placereport/play-services-places-placereport-17.0.0.aar" +- info_path = "libs/com_google_android_gms_play_services_places_placereport/com_google_android_gms_play_services_places_placereport.info" - -- # To remove visibility constraint, add this dependency to -- # //third_party/android_deps/build.gradle. -- visibility = [ -- ":*", -- "//third_party/androidx:*", -- ] -- deps = [ ":google_play_services_basement_java" ] --} +- # To remove visibility constraint, add this dependency to +- # //third_party/android_deps/build.gradle. +- visibility = [ +- ":*", +- "//third_party/androidx:*", +- ] +- deps = [ ":google_play_services_basement_java" ] +- } - --# This is generated, do not edit. Update BuildConfigGenerator.groovy instead. --android_aar_prebuilt("google_play_services_stats_java") { -- aar_path = "libs/com_google_android_gms_play_services_stats/play-services-stats-17.0.0.aar" -- info_path = "libs/com_google_android_gms_play_services_stats/com_google_android_gms_play_services_stats.info" +- # This is generated, do not edit. Update BuildConfigGenerator.groovy instead. +- android_aar_prebuilt("google_play_services_stats_java") { +- aar_path = "libs/com_google_android_gms_play_services_stats/play-services-stats-17.0.0.aar" +- info_path = "libs/com_google_android_gms_play_services_stats/com_google_android_gms_play_services_stats.info" - -- # To remove visibility constraint, add this dependency to -- # //third_party/android_deps/build.gradle. -- visibility = [ -- ":*", -- "//third_party/androidx:*", -- ] -- deps = [ -- ":google_play_services_basement_java", -- "//third_party/androidx:androidx_legacy_legacy_support_core_utils_java", -- ] --} +- # To remove visibility constraint, add this dependency to +- # //third_party/android_deps/build.gradle. +- visibility = [ +- ":*", +- "//third_party/androidx:*", +- ] +- deps = [ +- ":google_play_services_basement_java", +- "//third_party/androidx:androidx_legacy_legacy_support_core_utils_java", +- ] +- } - --# This is generated, do not edit. Update BuildConfigGenerator.groovy instead. - java_prebuilt("com_google_auto_auto_common_java") { - jar_path = "libs/com_google_auto_auto_common/auto-common-0.10.jar" - output_name = "com_google_auto_auto_common" +- # This is generated, do not edit. Update BuildConfigGenerator.groovy instead. + java_prebuilt("com_squareup_javawriter_java") { + jar_path = "libs/com_squareup_javawriter/javawriter-2.1.1.jar" + output_name = "com_squareup_javawriter" diff --git a/patches/ungoogled-chromium-android/Remove-dependency-on-com.google.android.gms.gcm.patch b/patches/ungoogled-chromium-android/Remove-dependency-on-com.google.android.gms.gcm.patch index 699ee9c..751705e 100644 --- a/patches/ungoogled-chromium-android/Remove-dependency-on-com.google.android.gms.gcm.patch +++ b/patches/ungoogled-chromium-android/Remove-dependency-on-com.google.android.gms.gcm.patch @@ -12,12 +12,12 @@ The snippets are already disabled in native codes, this will disable it on Java chrome/android/java/src/org/chromium/chrome/browser/base/SplitCompatGcmTaskService.java | 40 - components/background_task_scheduler/BUILD.gn | 1 components/background_task_scheduler/internal/BUILD.gn | 2 - third_party/android_deps/BUILD.gn | 263 ---------- - 8 files changed, 4 insertions(+), 436 deletions(-) + third_party/android_deps/BUILD.gn | 262 ---------- + 8 files changed, 4 insertions(+), 435 deletions(-) --- a/chrome/android/BUILD.gn +++ b/chrome/android/BUILD.gn -@@ -283,7 +283,6 @@ android_library("chrome_java") { +@@ -286,7 +286,6 @@ android_library("chrome_java") { "$google_play_services_package:google_play_services_cast_framework_java", "$google_play_services_package:google_play_services_cast_java", "$google_play_services_package:google_play_services_fido_java", @@ -25,7 +25,7 @@ The snippets are already disabled in native codes, this will disable it on Java "$google_play_services_package:google_play_services_iid_java", "$google_play_services_package:google_play_services_tasks_java", "$google_play_services_package:google_play_services_vision_common_java", -@@ -1065,7 +1064,6 @@ android_library("chrome_test_java") { +@@ -1110,7 +1109,6 @@ android_library("chrome_test_java") { "$google_play_services_package:google_play_services_cast_framework_java", "$google_play_services_package:google_play_services_cast_java", "$google_play_services_package:google_play_services_fido_java", @@ -33,7 +33,7 @@ The snippets are already disabled in native codes, this will disable it on Java "$google_play_services_package:google_play_services_iid_java", "$google_play_services_package:google_play_services_tasks_java", "//base:base_java", -@@ -2060,7 +2058,6 @@ android_library("browser_java_test_suppo +@@ -2129,7 +2127,6 @@ android_library("browser_java_test_suppo ] deps = [ ":chrome_java", @@ -41,15 +41,15 @@ The snippets are already disabled in native codes, this will disable it on Java "//base:base_java", "//base:base_java_test_support", "//chrome/browser/profiles/android:java", -@@ -2248,8 +2245,6 @@ android_library("base_module_java") { +@@ -2317,8 +2314,6 @@ android_library("base_module_java") { ] deps = [ ":chrome_base_module_resources", - "$google_play_services_package:google_firebase_firebase_messaging_java", - "$google_play_services_package:google_play_services_gcm_java", "//base:base_java", - "//base:jni_java", "//chrome/browser/download/android:file_provider_java", + "//chrome/browser/flags:java", --- a/components/background_task_scheduler/BUILD.gn +++ b/components/background_task_scheduler/BUILD.gn @@ -124,7 +124,6 @@ if (is_android) { @@ -62,304 +62,303 @@ The snippets are already disabled in native codes, this will disable it on Java "internal:proto_java", --- a/third_party/android_deps/BUILD.gn +++ b/third_party/android_deps/BUILD.gn -@@ -497,21 +497,6 @@ android_aar_prebuilt("google_play_servic - } +@@ -1144,21 +1144,6 @@ if (build_with_chromium) { + } - # This is generated, do not edit. Update BuildConfigGenerator.groovy instead. --android_aar_prebuilt("google_play_services_gcm_java") { -- aar_path = "libs/com_google_android_gms_play_services_gcm/play-services-gcm-17.0.0.aar" -- info_path = "libs/com_google_android_gms_play_services_gcm/com_google_android_gms_play_services_gcm.info" -- deps = [ -- ":google_play_services_base_java", -- ":google_play_services_basement_java", -- ":google_play_services_iid_java", -- ":google_play_services_stats_java", -- "//third_party/androidx:androidx_collection_collection_java", -- "//third_party/androidx:androidx_core_core_java", -- "//third_party/androidx:androidx_legacy_legacy_support_core_utils_java", -- ] --} -- --# This is generated, do not edit. Update BuildConfigGenerator.groovy instead. - android_aar_prebuilt("google_play_services_iid_java") { - aar_path = "libs/com_google_android_gms_play_services_iid/play-services-iid-17.0.0.aar" - info_path = "libs/com_google_android_gms_play_services_iid/com_google_android_gms_play_services_iid.info" -@@ -747,33 +732,6 @@ java_prebuilt("com_google_errorprone_jav - } + # This is generated, do not edit. Update BuildConfigGenerator.groovy instead. +- android_aar_prebuilt("google_play_services_gcm_java") { +- aar_path = "libs/com_google_android_gms_play_services_gcm/play-services-gcm-17.0.0.aar" +- info_path = "libs/com_google_android_gms_play_services_gcm/com_google_android_gms_play_services_gcm.info" +- deps = [ +- ":google_play_services_base_java", +- ":google_play_services_basement_java", +- ":google_play_services_iid_java", +- ":google_play_services_stats_java", +- "//third_party/androidx:androidx_collection_collection_java", +- "//third_party/androidx:androidx_core_core_java", +- "//third_party/androidx:androidx_legacy_legacy_support_core_utils_java", +- ] +- } +- +- # This is generated, do not edit. Update BuildConfigGenerator.groovy instead. + android_aar_prebuilt("google_play_services_iid_java") { + aar_path = "libs/com_google_android_gms_play_services_iid/play-services-iid-17.0.0.aar" + info_path = "libs/com_google_android_gms_play_services_iid/com_google_android_gms_play_services_iid.info" +@@ -1258,33 +1243,6 @@ if (build_with_chromium) { + } - # This is generated, do not edit. Update BuildConfigGenerator.groovy instead. --android_aar_prebuilt("google_firebase_firebase_messaging_java") { -- aar_path = "libs/com_google_firebase_firebase_messaging/firebase-messaging-21.0.1.aar" -- info_path = "libs/com_google_firebase_firebase_messaging/com_google_firebase_firebase_messaging.info" -- deps = [ -- ":google_android_datatransport_transport_api_java", -- ":google_firebase_firebase_common_java", -- ":google_firebase_firebase_components_java", -- ":google_firebase_firebase_encoders_java", -- ":google_firebase_firebase_encoders_json_java", -- ":google_firebase_firebase_iid_java", -- ":google_firebase_firebase_installations_interop_java", -- ":google_firebase_firebase_installations_java", -- ":google_firebase_firebase_measurement_connector_java", -- ":google_play_services_basement_java", -- ":google_play_services_cloud_messaging_java", -- ":google_play_services_stats_java", -- ":google_play_services_tasks_java", -- "//third_party/androidx:androidx_collection_collection_java", -- "//third_party/androidx:androidx_core_core_java", -- ] -- -- # We removed the datatransport dependency to reduce binary size. -- # The library works without it as it's only used for logging. -- enable_bytecode_checks = false --} -- --# This is generated, do not edit. Update BuildConfigGenerator.groovy instead. - java_prebuilt("com_google_guava_failureaccess_java") { - jar_path = "libs/com_google_guava_failureaccess/failureaccess-1.0.1.jar" - output_name = "com_google_guava_failureaccess" -@@ -1425,20 +1383,6 @@ java_prebuilt("com_github_kevinstern_sof - } + # This is generated, do not edit. Update BuildConfigGenerator.groovy instead. +- android_aar_prebuilt("google_firebase_firebase_messaging_java") { +- aar_path = "libs/com_google_firebase_firebase_messaging/firebase-messaging-21.0.1.aar" +- info_path = "libs/com_google_firebase_firebase_messaging/com_google_firebase_firebase_messaging.info" +- deps = [ +- ":google_android_datatransport_transport_api_java", +- ":google_firebase_firebase_common_java", +- ":google_firebase_firebase_components_java", +- ":google_firebase_firebase_encoders_java", +- ":google_firebase_firebase_encoders_json_java", +- ":google_firebase_firebase_iid_java", +- ":google_firebase_firebase_installations_interop_java", +- ":google_firebase_firebase_installations_java", +- ":google_firebase_firebase_measurement_connector_java", +- ":google_play_services_basement_java", +- ":google_play_services_cloud_messaging_java", +- ":google_play_services_stats_java", +- ":google_play_services_tasks_java", +- "//third_party/androidx:androidx_collection_collection_java", +- "//third_party/androidx:androidx_core_core_java", +- ] +- +- # We removed the datatransport dependency to reduce binary size. +- # The library works without it as it's only used for logging. +- enable_bytecode_checks = false +- } +- +- # This is generated, do not edit. Update BuildConfigGenerator.groovy instead. + java_prebuilt("com_google_guava_guava_android_java") { + jar_path = "libs/com_google_guava_guava_android/guava-30.1-android.jar" + output_name = "com_google_guava_guava_android" +@@ -1772,20 +1730,6 @@ if (build_with_chromium) { + } - # This is generated, do not edit. Update BuildConfigGenerator.groovy instead. --android_aar_prebuilt("google_android_datatransport_transport_api_java") { -- aar_path = "libs/com_google_android_datatransport_transport_api/transport-api-2.2.1.aar" -- info_path = "libs/com_google_android_datatransport_transport_api/com_google_android_datatransport_transport_api.info" -- -- # To remove visibility constraint, add this dependency to -- # //third_party/android_deps/build.gradle. -- visibility = [ -- ":*", -- "//third_party/androidx:*", -- ] -- deps = [ "//third_party/androidx:androidx_annotation_annotation_java" ] --} -- --# This is generated, do not edit. Update BuildConfigGenerator.groovy instead. - android_aar_prebuilt("google_play_services_clearcut_java") { - aar_path = "libs/com_google_android_gms_play_services_clearcut/play-services-clearcut-17.0.0.aar" - info_path = "libs/com_google_android_gms_play_services_clearcut/com_google_android_gms_play_services_clearcut.info" -@@ -1459,23 +1403,6 @@ android_aar_prebuilt("google_play_servic - } + # This is generated, do not edit. Update BuildConfigGenerator.groovy instead. +- android_aar_prebuilt("google_android_datatransport_transport_api_java") { +- aar_path = "libs/com_google_android_datatransport_transport_api/transport-api-2.2.1.aar" +- info_path = "libs/com_google_android_datatransport_transport_api/com_google_android_datatransport_transport_api.info" +- +- # To remove visibility constraint, add this dependency to +- # //third_party/android_deps/build.gradle. +- visibility = [ +- ":*", +- "//third_party/androidx:*", +- ] +- deps = [ "//third_party/androidx:androidx_annotation_annotation_java" ] +- } +- +- # This is generated, do not edit. Update BuildConfigGenerator.groovy instead. + android_aar_prebuilt("google_play_services_clearcut_java") { + aar_path = "libs/com_google_android_gms_play_services_clearcut/play-services-clearcut-17.0.0.aar" + info_path = "libs/com_google_android_gms_play_services_clearcut/com_google_android_gms_play_services_clearcut.info" +@@ -1806,23 +1750,6 @@ if (build_with_chromium) { + } - # This is generated, do not edit. Update BuildConfigGenerator.groovy instead. --android_aar_prebuilt("google_play_services_cloud_messaging_java") { -- aar_path = "libs/com_google_android_gms_play_services_cloud_messaging/play-services-cloud-messaging-16.0.0.aar" -- info_path = "libs/com_google_android_gms_play_services_cloud_messaging/com_google_android_gms_play_services_cloud_messaging.info" -- -- # To remove visibility constraint, add this dependency to -- # //third_party/android_deps/build.gradle. -- visibility = [ -- ":*", -- "//third_party/androidx:*", -- ] -- deps = [ -- ":google_play_services_basement_java", -- ":google_play_services_tasks_java", -- ] --} -- --# This is generated, do not edit. Update BuildConfigGenerator.groovy instead. - android_aar_prebuilt("google_play_services_flags_java") { - aar_path = "libs/com_google_android_gms_play_services_flags/play-services-flags-17.0.0.aar" - info_path = "libs/com_google_android_gms_play_services_flags/com_google_android_gms_play_services_flags.info" -@@ -1660,196 +1587,6 @@ java_prebuilt("com_google_errorprone_jav - } + # This is generated, do not edit. Update BuildConfigGenerator.groovy instead. +- android_aar_prebuilt("google_play_services_cloud_messaging_java") { +- aar_path = "libs/com_google_android_gms_play_services_cloud_messaging/play-services-cloud-messaging-16.0.0.aar" +- info_path = "libs/com_google_android_gms_play_services_cloud_messaging/com_google_android_gms_play_services_cloud_messaging.info" +- +- # To remove visibility constraint, add this dependency to +- # //third_party/android_deps/build.gradle. +- visibility = [ +- ":*", +- "//third_party/androidx:*", +- ] +- deps = [ +- ":google_play_services_basement_java", +- ":google_play_services_tasks_java", +- ] +- } +- +- # This is generated, do not edit. Update BuildConfigGenerator.groovy instead. + android_aar_prebuilt("google_play_services_flags_java") { + aar_path = "libs/com_google_android_gms_play_services_flags/play-services-flags-17.0.0.aar" + info_path = "libs/com_google_android_gms_play_services_flags/com_google_android_gms_play_services_flags.info" +@@ -1890,195 +1817,6 @@ if (build_with_chromium) { + } - # This is generated, do not edit. Update BuildConfigGenerator.groovy instead. --java_prebuilt("google_firebase_firebase_annotations_java") { -- jar_path = "libs/com_google_firebase_firebase_annotations/firebase-annotations-16.0.0.jar" -- output_name = "com_google_firebase_firebase_annotations" -- supports_android = true -- -- # To remove visibility constraint, add this dependency to -- # //third_party/android_deps/build.gradle. -- visibility = [ -- ":*", -- "//third_party/androidx:*", -- ] --} -- --# This is generated, do not edit. Update BuildConfigGenerator.groovy instead. --android_aar_prebuilt("google_firebase_firebase_common_java") { -- aar_path = -- "libs/com_google_firebase_firebase_common/firebase-common-19.5.0.aar" -- info_path = "libs/com_google_firebase_firebase_common/com_google_firebase_firebase_common.info" -- -- # To remove visibility constraint, add this dependency to -- # //third_party/android_deps/build.gradle. -- visibility = [ -- ":*", -- "//third_party/androidx:*", -- ] -- deps = [ -- ":google_firebase_firebase_components_java", -- ":google_play_services_basement_java", -- ":google_play_services_tasks_java", -- ] -- -- # Ignore missing kotlin.KotlinVersion definition in -- # com.google.firebase.platforminfo.KotlinDetector. -- enable_bytecode_checks = false --} -- --# This is generated, do not edit. Update BuildConfigGenerator.groovy instead. --android_aar_prebuilt("google_firebase_firebase_components_java") { -- aar_path = "libs/com_google_firebase_firebase_components/firebase-components-16.1.0.aar" -- info_path = "libs/com_google_firebase_firebase_components/com_google_firebase_firebase_components.info" -- -- # To remove visibility constraint, add this dependency to -- # //third_party/android_deps/build.gradle. -- visibility = [ -- ":*", -- "//third_party/androidx:*", -- ] -- deps = [ -- ":google_firebase_firebase_annotations_java", -- "//third_party/androidx:androidx_annotation_annotation_java", -- ] -- -- # Can't find com.google.firebase.components.Component$ComponentType. -- enable_bytecode_checks = false --} -- --# This is generated, do not edit. Update BuildConfigGenerator.groovy instead. --java_prebuilt("google_firebase_firebase_encoders_java") { -- jar_path = -- "libs/com_google_firebase_firebase_encoders/firebase-encoders-16.1.0.jar" -- output_name = "com_google_firebase_firebase_encoders" -- supports_android = true -- -- # To remove visibility constraint, add this dependency to -- # //third_party/android_deps/build.gradle. -- visibility = [ -- ":*", -- "//third_party/androidx:*", -- ] -- deps = [ "//third_party/androidx:androidx_annotation_annotation_java" ] --} -- --# This is generated, do not edit. Update BuildConfigGenerator.groovy instead. --android_aar_prebuilt("google_firebase_firebase_encoders_json_java") { -- aar_path = "libs/com_google_firebase_firebase_encoders_json/firebase-encoders-json-17.1.0.aar" -- info_path = "libs/com_google_firebase_firebase_encoders_json/com_google_firebase_firebase_encoders_json.info" -- -- # To remove visibility constraint, add this dependency to -- # //third_party/android_deps/build.gradle. -- visibility = [ -- ":*", -- "//third_party/androidx:*", -- ] -- deps = [ -- ":google_firebase_firebase_encoders_java", -- "//third_party/androidx:androidx_annotation_annotation_java", -- ] --} -- --# This is generated, do not edit. Update BuildConfigGenerator.groovy instead. --android_aar_prebuilt("google_firebase_firebase_iid_java") { -- aar_path = "libs/com_google_firebase_firebase_iid/firebase-iid-21.0.1.aar" -- info_path = "libs/com_google_firebase_firebase_iid/com_google_firebase_firebase_iid.info" -- -- # To remove visibility constraint, add this dependency to -- # //third_party/android_deps/build.gradle. -- visibility = [ -- ":*", -- "//third_party/androidx:*", -- ] -- deps = [ -- ":google_firebase_firebase_common_java", -- ":google_firebase_firebase_components_java", -- ":google_firebase_firebase_iid_interop_java", -- ":google_firebase_firebase_installations_interop_java", -- ":google_firebase_firebase_installations_java", -- ":google_play_services_basement_java", -- ":google_play_services_cloud_messaging_java", -- ":google_play_services_stats_java", -- ":google_play_services_tasks_java", -- "//third_party/androidx:androidx_collection_collection_java", -- "//third_party/androidx:androidx_core_core_java", -- "//third_party/androidx:androidx_legacy_legacy_support_core_utils_java", -- ] --} -- --# This is generated, do not edit. Update BuildConfigGenerator.groovy instead. --android_aar_prebuilt("google_firebase_firebase_iid_interop_java") { -- aar_path = "libs/com_google_firebase_firebase_iid_interop/firebase-iid-interop-17.0.0.aar" -- info_path = "libs/com_google_firebase_firebase_iid_interop/com_google_firebase_firebase_iid_interop.info" -- -- # To remove visibility constraint, add this dependency to -- # //third_party/android_deps/build.gradle. -- visibility = [ -- ":*", -- "//third_party/androidx:*", -- ] -- deps = [ -- ":google_play_services_base_java", -- ":google_play_services_basement_java", -- ] --} -- --# This is generated, do not edit. Update BuildConfigGenerator.groovy instead. --android_aar_prebuilt("google_firebase_firebase_installations_java") { -- aar_path = "libs/com_google_firebase_firebase_installations/firebase-installations-16.3.5.aar" -- info_path = "libs/com_google_firebase_firebase_installations/com_google_firebase_firebase_installations.info" -- -- # To remove visibility constraint, add this dependency to -- # //third_party/android_deps/build.gradle. -- visibility = [ -- ":*", -- "//third_party/androidx:*", -- ] -- deps = [ -- ":google_firebase_firebase_common_java", -- ":google_firebase_firebase_components_java", -- ":google_firebase_firebase_installations_interop_java", -- ":google_play_services_tasks_java", -- ] -- -- # Can't find com.google.auto.value.AutoValue$Builder. -- enable_bytecode_checks = false --} -- --# This is generated, do not edit. Update BuildConfigGenerator.groovy instead. --android_aar_prebuilt("google_firebase_firebase_installations_interop_java") { -- aar_path = "libs/com_google_firebase_firebase_installations_interop/firebase-installations-interop-16.0.1.aar" -- info_path = "libs/com_google_firebase_firebase_installations_interop/com_google_firebase_firebase_installations_interop.info" -- -- # To remove visibility constraint, add this dependency to -- # //third_party/android_deps/build.gradle. -- visibility = [ -- ":*", -- "//third_party/androidx:*", -- ] -- deps = [ -- ":google_firebase_firebase_annotations_java", -- ":google_play_services_tasks_java", -- ] -- -- # Can't find com.google.auto.value.AutoValue$Builder. -- enable_bytecode_checks = false --} -- --# This is generated, do not edit. Update BuildConfigGenerator.groovy instead. --android_aar_prebuilt("google_firebase_firebase_measurement_connector_java") { -- aar_path = "libs/com_google_firebase_firebase_measurement_connector/firebase-measurement-connector-18.0.0.aar" -- info_path = "libs/com_google_firebase_firebase_measurement_connector/com_google_firebase_firebase_measurement_connector.info" -- -- # To remove visibility constraint, add this dependency to -- # //third_party/android_deps/build.gradle. -- visibility = [ -- ":*", -- "//third_party/androidx:*", -- ] -- deps = [ ":google_play_services_basement_java" ] --} -- --# This is generated, do not edit. Update BuildConfigGenerator.groovy instead. - java_prebuilt("com_google_googlejavaformat_google_java_format_java") { - jar_path = "libs/com_google_googlejavaformat_google_java_format/google-java-format-1.5.jar" - output_name = "com_google_googlejavaformat_google_java_format" + # This is generated, do not edit. Update BuildConfigGenerator.groovy instead. +- java_prebuilt("google_firebase_firebase_annotations_java") { +- jar_path = "libs/com_google_firebase_firebase_annotations/firebase-annotations-16.0.0.jar" +- output_name = "com_google_firebase_firebase_annotations" +- supports_android = true +- +- # To remove visibility constraint, add this dependency to +- # //third_party/android_deps/build.gradle. +- visibility = [ +- ":*", +- "//third_party/androidx:*", +- ] +- } +- +- # This is generated, do not edit. Update BuildConfigGenerator.groovy instead. +- android_aar_prebuilt("google_firebase_firebase_common_java") { +- aar_path = +- "libs/com_google_firebase_firebase_common/firebase-common-19.5.0.aar" +- info_path = "libs/com_google_firebase_firebase_common/com_google_firebase_firebase_common.info" +- +- # To remove visibility constraint, add this dependency to +- # //third_party/android_deps/build.gradle. +- visibility = [ +- ":*", +- "//third_party/androidx:*", +- ] +- deps = [ +- ":google_firebase_firebase_components_java", +- ":google_play_services_basement_java", +- ":google_play_services_tasks_java", +- ] +- +- # Ignore missing kotlin.KotlinVersion definition in +- # com.google.firebase.platforminfo.KotlinDetector. +- enable_bytecode_checks = false +- } +- +- # This is generated, do not edit. Update BuildConfigGenerator.groovy instead. +- android_aar_prebuilt("google_firebase_firebase_components_java") { +- aar_path = "libs/com_google_firebase_firebase_components/firebase-components-16.1.0.aar" +- info_path = "libs/com_google_firebase_firebase_components/com_google_firebase_firebase_components.info" +- +- # To remove visibility constraint, add this dependency to +- # //third_party/android_deps/build.gradle. +- visibility = [ +- ":*", +- "//third_party/androidx:*", +- ] +- deps = [ +- ":google_firebase_firebase_annotations_java", +- "//third_party/androidx:androidx_annotation_annotation_java", +- ] +- +- # Can't find com.google.firebase.components.Component$ComponentType. +- enable_bytecode_checks = false +- } +- +- # This is generated, do not edit. Update BuildConfigGenerator.groovy instead. +- java_prebuilt("google_firebase_firebase_encoders_java") { +- jar_path = "libs/com_google_firebase_firebase_encoders/firebase-encoders-16.1.0.jar" +- output_name = "com_google_firebase_firebase_encoders" +- supports_android = true +- +- # To remove visibility constraint, add this dependency to +- # //third_party/android_deps/build.gradle. +- visibility = [ +- ":*", +- "//third_party/androidx:*", +- ] +- deps = [ "//third_party/androidx:androidx_annotation_annotation_java" ] +- } +- +- # This is generated, do not edit. Update BuildConfigGenerator.groovy instead. +- android_aar_prebuilt("google_firebase_firebase_encoders_json_java") { +- aar_path = "libs/com_google_firebase_firebase_encoders_json/firebase-encoders-json-17.1.0.aar" +- info_path = "libs/com_google_firebase_firebase_encoders_json/com_google_firebase_firebase_encoders_json.info" +- +- # To remove visibility constraint, add this dependency to +- # //third_party/android_deps/build.gradle. +- visibility = [ +- ":*", +- "//third_party/androidx:*", +- ] +- deps = [ +- ":google_firebase_firebase_encoders_java", +- "//third_party/androidx:androidx_annotation_annotation_java", +- ] +- } +- +- # This is generated, do not edit. Update BuildConfigGenerator.groovy instead. +- android_aar_prebuilt("google_firebase_firebase_iid_java") { +- aar_path = "libs/com_google_firebase_firebase_iid/firebase-iid-21.0.1.aar" +- info_path = "libs/com_google_firebase_firebase_iid/com_google_firebase_firebase_iid.info" +- +- # To remove visibility constraint, add this dependency to +- # //third_party/android_deps/build.gradle. +- visibility = [ +- ":*", +- "//third_party/androidx:*", +- ] +- deps = [ +- ":google_firebase_firebase_common_java", +- ":google_firebase_firebase_components_java", +- ":google_firebase_firebase_iid_interop_java", +- ":google_firebase_firebase_installations_interop_java", +- ":google_firebase_firebase_installations_java", +- ":google_play_services_basement_java", +- ":google_play_services_cloud_messaging_java", +- ":google_play_services_stats_java", +- ":google_play_services_tasks_java", +- "//third_party/androidx:androidx_collection_collection_java", +- "//third_party/androidx:androidx_core_core_java", +- "//third_party/androidx:androidx_legacy_legacy_support_core_utils_java", +- ] +- } +- +- # This is generated, do not edit. Update BuildConfigGenerator.groovy instead. +- android_aar_prebuilt("google_firebase_firebase_iid_interop_java") { +- aar_path = "libs/com_google_firebase_firebase_iid_interop/firebase-iid-interop-17.0.0.aar" +- info_path = "libs/com_google_firebase_firebase_iid_interop/com_google_firebase_firebase_iid_interop.info" +- +- # To remove visibility constraint, add this dependency to +- # //third_party/android_deps/build.gradle. +- visibility = [ +- ":*", +- "//third_party/androidx:*", +- ] +- deps = [ +- ":google_play_services_base_java", +- ":google_play_services_basement_java", +- ] +- } +- +- # This is generated, do not edit. Update BuildConfigGenerator.groovy instead. +- android_aar_prebuilt("google_firebase_firebase_installations_java") { +- aar_path = "libs/com_google_firebase_firebase_installations/firebase-installations-16.3.5.aar" +- info_path = "libs/com_google_firebase_firebase_installations/com_google_firebase_firebase_installations.info" +- +- # To remove visibility constraint, add this dependency to +- # //third_party/android_deps/build.gradle. +- visibility = [ +- ":*", +- "//third_party/androidx:*", +- ] +- deps = [ +- ":google_firebase_firebase_common_java", +- ":google_firebase_firebase_components_java", +- ":google_firebase_firebase_installations_interop_java", +- ":google_play_services_tasks_java", +- ] +- +- # Can't find com.google.auto.value.AutoValue$Builder. +- enable_bytecode_checks = false +- } +- +- # This is generated, do not edit. Update BuildConfigGenerator.groovy instead. +- android_aar_prebuilt("google_firebase_firebase_installations_interop_java") { +- aar_path = "libs/com_google_firebase_firebase_installations_interop/firebase-installations-interop-16.0.1.aar" +- info_path = "libs/com_google_firebase_firebase_installations_interop/com_google_firebase_firebase_installations_interop.info" +- +- # To remove visibility constraint, add this dependency to +- # //third_party/android_deps/build.gradle. +- visibility = [ +- ":*", +- "//third_party/androidx:*", +- ] +- deps = [ +- ":google_firebase_firebase_annotations_java", +- ":google_play_services_tasks_java", +- ] +- +- # Can't find com.google.auto.value.AutoValue$Builder. +- enable_bytecode_checks = false +- } +- +- # This is generated, do not edit. Update BuildConfigGenerator.groovy instead. +- android_aar_prebuilt("google_firebase_firebase_measurement_connector_java") { +- aar_path = "libs/com_google_firebase_firebase_measurement_connector/firebase-measurement-connector-18.0.0.aar" +- info_path = "libs/com_google_firebase_firebase_measurement_connector/com_google_firebase_firebase_measurement_connector.info" +- +- # To remove visibility constraint, add this dependency to +- # //third_party/android_deps/build.gradle. +- visibility = [ +- ":*", +- "//third_party/androidx:*", +- ] +- deps = [ ":google_play_services_basement_java" ] +- } +- +- # This is generated, do not edit. Update BuildConfigGenerator.groovy instead. + java_prebuilt("com_squareup_javawriter_java") { + jar_path = "libs/com_squareup_javawriter/javawriter-2.1.1.jar" + output_name = "com_squareup_javawriter" --- a/components/background_task_scheduler/internal/BUILD.gn +++ b/components/background_task_scheduler/internal/BUILD.gn @@ -29,7 +29,6 @@ if (is_android) { @@ -370,7 +369,7 @@ The snippets are already disabled in native codes, this will disable it on Java "$google_play_services_package:google_play_services_tasks_java", "//base:base_java", "//components/background_task_scheduler:background_task_scheduler_task_ids_java", -@@ -101,7 +100,6 @@ if (is_android) { +@@ -100,7 +99,6 @@ if (is_android) { ":internal_java", "$google_play_services_package:google_play_services_base_java", "$google_play_services_package:google_play_services_basement_java", diff --git a/patches/ungoogled-chromium-android/Remove-dependency-on-com.google.android.gms.vision-com.google.android.gms.clearcut-com.google.android.gms.phenotype.patch b/patches/ungoogled-chromium-android/Remove-dependency-on-com.google.android.gms.vision-com.google.android.gms.clearcut-com.google.android.gms.phenotype.patch index ee8f20f..cad9ea8 100644 --- a/patches/ungoogled-chromium-android/Remove-dependency-on-com.google.android.gms.vision-com.google.android.gms.clearcut-com.google.android.gms.phenotype.patch +++ b/patches/ungoogled-chromium-android/Remove-dependency-on-com.google.android.gms.vision-com.google.android.gms.clearcut-com.google.android.gms.phenotype.patch @@ -18,7 +18,7 @@ Subject: Remove dependency on com.google.android.gms.vision, --- a/services/BUILD.gn +++ b/services/BUILD.gn -@@ -106,8 +106,6 @@ if (is_android) { +@@ -112,8 +112,6 @@ if (is_android) { deps = [ "$google_play_services_package:google_play_services_base_java", "$google_play_services_package:google_play_services_basement_java", @@ -27,7 +27,7 @@ Subject: Remove dependency on com.google.android.gms.vision, "//base:base_java", "//base:base_java_test_support", "//base:base_junit_test_support", -@@ -138,8 +136,6 @@ if (is_android) { +@@ -144,8 +142,6 @@ if (is_android) { deps = [ "$google_play_services_package:google_play_services_base_java", "$google_play_services_package:google_play_services_basement_java", @@ -409,90 +409,90 @@ Subject: Remove dependency on com.google.android.gms.vision, } --- a/third_party/android_deps/BUILD.gn +++ b/third_party/android_deps/BUILD.gn -@@ -423,30 +423,6 @@ android_aar_prebuilt("google_play_servic - } +@@ -1070,30 +1070,6 @@ if (build_with_chromium) { + } - # This is generated, do not edit. Update BuildConfigGenerator.groovy instead. --android_aar_prebuilt("google_play_services_vision_java") { -- aar_path = "libs/com_google_android_gms_play_services_vision/play-services-vision-18.0.0.aar" -- info_path = "libs/com_google_android_gms_play_services_vision/com_google_android_gms_play_services_vision.info" -- deps = [ -- ":google_play_services_base_java", -- ":google_play_services_basement_java", -- ":google_play_services_vision_common_java", -- ] --} -- --# This is generated, do not edit. Update BuildConfigGenerator.groovy instead. --android_aar_prebuilt("google_play_services_vision_common_java") { -- aar_path = "libs/com_google_android_gms_play_services_vision_common/play-services-vision-common-18.0.0.aar" -- info_path = "libs/com_google_android_gms_play_services_vision_common/com_google_android_gms_play_services_vision_common.info" -- deps = [ -- ":google_play_services_base_java", -- ":google_play_services_basement_java", -- ":google_play_services_clearcut_java", -- ":google_play_services_flags_java", -- ":google_play_services_phenotype_java", -- ] --} -- --# This is generated, do not edit. Update BuildConfigGenerator.groovy instead. - android_aar_prebuilt("com_google_android_material_material_java") { - aar_path = - "libs/com_google_android_material_material/material-1.2.0-alpha06.aar" -@@ -1265,26 +1241,6 @@ java_prebuilt("com_github_kevinstern_sof - } + # This is generated, do not edit. Update BuildConfigGenerator.groovy instead. +- android_aar_prebuilt("google_play_services_vision_java") { +- aar_path = "libs/com_google_android_gms_play_services_vision/play-services-vision-18.0.0.aar" +- info_path = "libs/com_google_android_gms_play_services_vision/com_google_android_gms_play_services_vision.info" +- deps = [ +- ":google_play_services_base_java", +- ":google_play_services_basement_java", +- ":google_play_services_vision_common_java", +- ] +- } +- +- # This is generated, do not edit. Update BuildConfigGenerator.groovy instead. +- android_aar_prebuilt("google_play_services_vision_common_java") { +- aar_path = "libs/com_google_android_gms_play_services_vision_common/play-services-vision-common-18.0.0.aar" +- info_path = "libs/com_google_android_gms_play_services_vision_common/com_google_android_gms_play_services_vision_common.info" +- deps = [ +- ":google_play_services_base_java", +- ":google_play_services_basement_java", +- ":google_play_services_clearcut_java", +- ":google_play_services_flags_java", +- ":google_play_services_phenotype_java", +- ] +- } +- +- # This is generated, do not edit. Update BuildConfigGenerator.groovy instead. + android_aar_prebuilt("com_google_android_material_material_java") { + aar_path = + "libs/com_google_android_material_material/material-1.2.0-alpha06.aar" +@@ -1612,26 +1588,6 @@ if (build_with_chromium) { + } - # This is generated, do not edit. Update BuildConfigGenerator.groovy instead. --android_aar_prebuilt("google_play_services_clearcut_java") { -- aar_path = "libs/com_google_android_gms_play_services_clearcut/play-services-clearcut-17.0.0.aar" -- info_path = "libs/com_google_android_gms_play_services_clearcut/com_google_android_gms_play_services_clearcut.info" -- -- # To remove visibility constraint, add this dependency to -- # //third_party/android_deps/build.gradle. -- visibility = [ -- ":*", -- "//third_party/androidx:*", -- ] -- deps = [ -- ":google_play_services_base_java", -- ":google_play_services_basement_java", -- ":google_play_services_phenotype_java", -- ":google_play_services_tasks_java", -- "//third_party/androidx:androidx_core_core_java", -- ] --} -- --# This is generated, do not edit. Update BuildConfigGenerator.groovy instead. - android_aar_prebuilt("google_play_services_flags_java") { - aar_path = "libs/com_google_android_gms_play_services_flags/play-services-flags-17.0.0.aar" - info_path = "libs/com_google_android_gms_play_services_flags/com_google_android_gms_play_services_flags.info" -@@ -1301,25 +1257,6 @@ android_aar_prebuilt("google_play_servic - ] - } + # This is generated, do not edit. Update BuildConfigGenerator.groovy instead. +- android_aar_prebuilt("google_play_services_clearcut_java") { +- aar_path = "libs/com_google_android_gms_play_services_clearcut/play-services-clearcut-17.0.0.aar" +- info_path = "libs/com_google_android_gms_play_services_clearcut/com_google_android_gms_play_services_clearcut.info" +- +- # To remove visibility constraint, add this dependency to +- # //third_party/android_deps/build.gradle. +- visibility = [ +- ":*", +- "//third_party/androidx:*", +- ] +- deps = [ +- ":google_play_services_base_java", +- ":google_play_services_basement_java", +- ":google_play_services_phenotype_java", +- ":google_play_services_tasks_java", +- "//third_party/androidx:androidx_core_core_java", +- ] +- } +- +- # This is generated, do not edit. Update BuildConfigGenerator.groovy instead. + android_aar_prebuilt("google_play_services_flags_java") { + aar_path = "libs/com_google_android_gms_play_services_flags/play-services-flags-17.0.0.aar" + info_path = "libs/com_google_android_gms_play_services_flags/com_google_android_gms_play_services_flags.info" +@@ -1648,25 +1604,6 @@ if (build_with_chromium) { + ] + } --# This is generated, do not edit. Update BuildConfigGenerator.groovy instead. --android_aar_prebuilt("google_play_services_phenotype_java") { -- aar_path = "libs/com_google_android_gms_play_services_phenotype/play-services-phenotype-17.0.0.aar" -- info_path = "libs/com_google_android_gms_play_services_phenotype/com_google_android_gms_play_services_phenotype.info" -- -- # To remove visibility constraint, add this dependency to -- # //third_party/android_deps/build.gradle. -- visibility = [ -- ":*", -- "//third_party/androidx:*", -- ] -- deps = [ -- ":google_play_services_base_java", -- ":google_play_services_basement_java", -- ":google_play_services_tasks_java", -- "//third_party/androidx:androidx_core_core_java", -- ] --} -- - # This is generated, do not edit. Update BuildConfigGenerator.groovy instead. - android_aar_prebuilt("google_play_services_places_placereport_java") { - aar_path = "libs/com_google_android_gms_play_services_places_placereport/play-services-places-placereport-17.0.0.aar" +- # This is generated, do not edit. Update BuildConfigGenerator.groovy instead. +- android_aar_prebuilt("google_play_services_phenotype_java") { +- aar_path = "libs/com_google_android_gms_play_services_phenotype/play-services-phenotype-17.0.0.aar" +- info_path = "libs/com_google_android_gms_play_services_phenotype/com_google_android_gms_play_services_phenotype.info" +- +- # To remove visibility constraint, add this dependency to +- # //third_party/android_deps/build.gradle. +- visibility = [ +- ":*", +- "//third_party/androidx:*", +- ] +- deps = [ +- ":google_play_services_base_java", +- ":google_play_services_basement_java", +- ":google_play_services_tasks_java", +- "//third_party/androidx:androidx_core_core_java", +- ] +- } +- + # This is generated, do not edit. Update BuildConfigGenerator.groovy instead. + android_aar_prebuilt("google_play_services_places_placereport_java") { + aar_path = "libs/com_google_android_gms_play_services_places_placereport/play-services-places-placereport-17.0.0.aar" --- a/chrome/browser/share/android/java/src/org/chromium/chrome/browser/share/qrcode/scan_tab/QrCodeScanMediator.java +++ b/chrome/browser/share/android/java/src/org/chromium/chrome/browser/share/qrcode/scan_tab/QrCodeScanMediator.java @@ -17,10 +17,6 @@ import android.provider.Browser; @@ -586,15 +586,15 @@ Subject: Remove dependency on com.google.android.gms.vision, } --- a/chrome/android/BUILD.gn +++ b/chrome/android/BUILD.gn -@@ -280,8 +280,6 @@ android_library("chrome_java") { +@@ -283,8 +283,6 @@ android_library("chrome_java") { "$google_play_services_package:google_play_services_base_java", "$google_play_services_package:google_play_services_basement_java", "$google_play_services_package:google_play_services_tasks_java", - "$google_play_services_package:google_play_services_vision_common_java", - "$google_play_services_package:google_play_services_vision_java", "//base:base_java", - "//base:jni_java", "//cc:cc_java", + "//chrome/android/features/keyboard_accessory:public_java", --- a/chrome/android/features/cablev2_authenticator/BUILD.gn +++ b/chrome/android/features/cablev2_authenticator/BUILD.gn @@ -19,8 +19,6 @@ android_library("java") { @@ -604,8 +604,8 @@ Subject: Remove dependency on com.google.android.gms.vision, - "$google_play_services_package:google_play_services_vision_common_java", - "$google_play_services_package:google_play_services_vision_java", "//base:base_java", - "//base:jni_java", "//content/public/android:content_java", + "//third_party/android_deps:android_support_v7_appcompat_java", --- a/chrome/android/features/cablev2_authenticator/java/src/org/chromium/chrome/browser/webauth/authenticator/QRScanDialog.java +++ b/chrome/android/features/cablev2_authenticator/java/src/org/chromium/chrome/browser/webauth/authenticator/QRScanDialog.java @@ -17,10 +17,6 @@ import android.widget.LinearLayout; diff --git a/patches/ungoogled-chromium-android/Remove-dependency-on-com.google.android.play.core.splitcompat-com.google.android.play.core.splitinstall.patch b/patches/ungoogled-chromium-android/Remove-dependency-on-com.google.android.play.core.splitcompat-com.google.android.play.core.splitinstall.patch index ab57c7a..3d8d7d9 100644 --- a/patches/ungoogled-chromium-android/Remove-dependency-on-com.google.android.play.core.splitcompat-com.google.android.play.core.splitinstall.patch +++ b/patches/ungoogled-chromium-android/Remove-dependency-on-com.google.android.play.core.splitcompat-com.google.android.play.core.splitinstall.patch @@ -5,7 +5,7 @@ Subject: Remove dependency on com.google.android.play.core.splitcompat, com.goog --- chrome/android/BUILD.gn | 1 chrome/browser/language/android/BUILD.gn | 1 - chrome/browser/language/android/java/src/org/chromium/chrome/browser/language/AppLocaleUtils.java | 12 -- + chrome/browser/language/android/java/src/org/chromium/chrome/browser/language/LanguageSplitInstaller.java | 44 -------- components/module_installer/android/BUILD.gn | 2 components/module_installer/android/java/src/org/chromium/components/module_installer/engine/FakeEngine.java | 13 -- components/module_installer/android/java/src/org/chromium/components/module_installer/engine/SplitCompatEngine.java | 50 ---------- @@ -17,7 +17,7 @@ Subject: Remove dependency on com.google.android.play.core.splitcompat, com.goog components/module_installer/android/java/src/org/chromium/components/module_installer/logger/SplitInstallStatusLogger.java | 27 ----- components/module_installer/android/java/src/org/chromium/components/module_installer/util/CrashKeyRecorder.java | 6 - components/module_installer/android/java/src/org/chromium/components/module_installer/util/SplitCompatInitializer.java | 5 - - 14 files changed, 17 insertions(+), 221 deletions(-) + 14 files changed, 19 insertions(+), 251 deletions(-) --- a/components/module_installer/android/java/src/org/chromium/components/module_installer/engine/FakeEngine.java +++ b/components/module_installer/android/java/src/org/chromium/components/module_installer/engine/FakeEngine.java @@ -511,15 +511,15 @@ Subject: Remove dependency on com.google.android.play.core.splitcompat, com.goog public static boolean isInitialized() { --- a/components/module_installer/android/BUILD.gn +++ b/components/module_installer/android/BUILD.gn -@@ -37,7 +37,6 @@ android_library("module_installer_java") - "//base:jni_java", +@@ -36,7 +36,6 @@ android_library("module_installer_java") + "//base:base_java", "//components/crash/android:java", "//third_party/androidx:androidx_annotation_annotation_java", - "//third_party/google_android_play_core:com_google_android_play_core_java", ] annotation_processor_deps = [ "//base/android/jni_generator:jni_processor" ] -@@ -60,7 +59,6 @@ junit_binary("module_installer_junit_tes +@@ -59,7 +58,6 @@ junit_binary("module_installer_junit_tes "//base:base_java", "//base:base_java_test_support", "//base:base_junit_test_support", @@ -527,38 +527,9 @@ Subject: Remove dependency on com.google.android.play.core.splitcompat, com.goog "//third_party/hamcrest:hamcrest_java", ] } ---- a/chrome/browser/language/android/java/src/org/chromium/chrome/browser/language/AppLocaleUtils.java -+++ b/chrome/browser/language/android/java/src/org/chromium/chrome/browser/language/AppLocaleUtils.java -@@ -8,9 +8,6 @@ import android.content.Context; - import android.preference.PreferenceManager; - import android.text.TextUtils; - --import com.google.android.play.core.splitinstall.SplitInstallManager; --import com.google.android.play.core.splitinstall.SplitInstallManagerFactory; --import com.google.android.play.core.splitinstall.SplitInstallRequest; - - import org.chromium.base.BundleUtils; - import org.chromium.base.ContextUtils; -@@ -78,16 +75,7 @@ public class AppLocaleUtils { - * For bundle builds ensure that the language split for languageName is downloaded. - */ - private static void ensureLanguageSplitInstalled(String languageName) { -- SplitInstallManager splitInstallManager = -- SplitInstallManagerFactory.create(ContextUtils.getApplicationContext()); - - // TODO(perrier): check if languageName is already installed. https://crbug.com/1103806 -- if (!TextUtils.equals(languageName, SYSTEM_LANGUAGE_VALUE)) { -- SplitInstallRequest installRequest = -- SplitInstallRequest.newBuilder() -- .addLanguage(Locale.forLanguageTag(languageName)) -- .build(); -- splitInstallManager.startInstall(installRequest); -- } - } - } --- a/chrome/android/BUILD.gn +++ b/chrome/android/BUILD.gn -@@ -2238,7 +2238,6 @@ android_library("base_module_java") { +@@ -2306,7 +2306,6 @@ android_library("base_module_java") { "//third_party/androidx:androidx_annotation_annotation_java", "//third_party/androidx:androidx_collection_collection_java", "//third_party/androidx:androidx_fragment_fragment_java", @@ -568,7 +539,7 @@ Subject: Remove dependency on com.google.android.play.core.splitcompat, com.goog # Deps needed for child processes. --- a/chrome/browser/language/android/BUILD.gn +++ b/chrome/browser/language/android/BUILD.gn -@@ -13,7 +13,6 @@ android_library("base_module_java") { +@@ -14,7 +14,6 @@ android_library("base_module_java") { deps = [ "//base:base_java", "//chrome/browser/preferences:java", @@ -576,3 +547,92 @@ Subject: Remove dependency on com.google.android.play.core.splitcompat, com.goog ] } +--- a/chrome/browser/language/android/java/src/org/chromium/chrome/browser/language/LanguageSplitInstaller.java ++++ b/chrome/browser/language/android/java/src/org/chromium/chrome/browser/language/LanguageSplitInstaller.java +@@ -4,18 +4,13 @@ + + package org.chromium.chrome.browser.language; + +-import com.google.android.play.core.splitinstall.SplitInstallManager; +-import com.google.android.play.core.splitinstall.SplitInstallManagerFactory; +-import com.google.android.play.core.splitinstall.SplitInstallRequest; +-import com.google.android.play.core.splitinstall.SplitInstallStateUpdatedListener; +-import com.google.android.play.core.splitinstall.model.SplitInstallSessionStatus; +- + import org.chromium.base.ContextUtils; + import org.chromium.base.Log; + + import java.util.Arrays; + import java.util.Locale; + import java.util.Set; ++import java.util.HashSet; + + /** + * Singleton class to manage installing language splits. This is temporary to start testing Play +@@ -37,14 +32,10 @@ public class LanguageSplitInstaller { + void onComplete(boolean success); + } + +- private final SplitInstallStateUpdatedListener mStateUpdateListener = getStatusUpdateListener(); + private InstallListener mInstallListener; +- private SplitInstallManager mSplitInstallManager; + private int mInstallSessionId; + + private LanguageSplitInstaller() { +- mSplitInstallManager = +- SplitInstallManagerFactory.create(ContextUtils.getApplicationContext()); + } + + /** +@@ -52,7 +43,7 @@ public class LanguageSplitInstaller { + * @return Set of installed languages code strings. + */ + public Set getInstalledLanguages() { +- return mSplitInstallManager.getInstalledLanguages(); ++ return new HashSet(); + } + + /** +@@ -70,42 +61,11 @@ public class LanguageSplitInstaller { + } + + mInstallListener = listener; +- mSplitInstallManager.registerListener(mStateUpdateListener); + Locale installLocale = Locale.forLanguageTag(languageName); + +- SplitInstallRequest installRequest = +- SplitInstallRequest.newBuilder().addLanguage(installLocale).build(); +- +- mSplitInstallManager.startInstall(installRequest) +- .addOnSuccessListener(sessionId -> { mInstallSessionId = sessionId; }) +- .addOnFailureListener(exception -> { +- Log.i(TAG, "Language Split Failure:", exception); +- listener.onComplete(false); +- }); +- + // Schedule a deferred install if the live install fails the play store will install the + // language split in the background at the next hygiene run. If the install succeeds the + // deferred install is ignored at the next hygiene run. +- mSplitInstallManager.deferredLanguageInstall(Arrays.asList(installLocale)); +- } +- +- /** +- * Make a SplitInstallStateUpdateListener that responds once the download has been installed or +- * fails. +- */ +- private SplitInstallStateUpdatedListener getStatusUpdateListener() { +- return state -> { // Lambda for SplitInstallStatusUpdateListener.onStateUpdate. +- if (state.sessionId() != mInstallSessionId) return; +- +- int status = state.status(); +- if (status == SplitInstallSessionStatus.INSTALLED +- || status == SplitInstallSessionStatus.FAILED) { +- mInstallListener.onComplete(status == SplitInstallSessionStatus.INSTALLED); +- mSplitInstallManager.unregisterListener(mStateUpdateListener); +- mInstallListener = null; +- mInstallSessionId = 0; +- } +- }; + } + + /** diff --git a/patches/ungoogled-chromium-android/Remove-dependency-on-com.google.android.play.patch b/patches/ungoogled-chromium-android/Remove-dependency-on-com.google.android.play.patch index ffc4d7d..803aa40 100644 --- a/patches/ungoogled-chromium-android/Remove-dependency-on-com.google.android.play.patch +++ b/patches/ungoogled-chromium-android/Remove-dependency-on-com.google.android.play.patch @@ -12,7 +12,7 @@ Subject: Remove dependency on com.google.android.play --- a/chrome/android/BUILD.gn +++ b/chrome/android/BUILD.gn -@@ -529,7 +529,6 @@ android_library("chrome_java") { +@@ -543,7 +543,6 @@ android_library("chrome_java") { "//third_party/blink/public/mojom:android_mojo_bindings_java", "//third_party/blink/public/mojom:mojom_platform_java", "//third_party/gif_player:gif_player_java", diff --git a/patches/ungoogled-chromium-android/tricrhome-webview-64.patch b/patches/ungoogled-chromium-android/tricrhome-webview-64.patch index 93b594d..17e7347 100644 --- a/patches/ungoogled-chromium-android/tricrhome-webview-64.patch +++ b/patches/ungoogled-chromium-android/tricrhome-webview-64.patch @@ -40,7 +40,7 @@ author: Wengling Chen # The shared library used by standalone WebView. --- a/android_webview/nonembedded/BUILD.gn +++ b/android_webview/nonembedded/BUILD.gn -@@ -252,4 +252,14 @@ if (android_64bit_target_cpu) { +@@ -249,4 +249,14 @@ if (android_64bit_target_cpu) { "library=libmonochrome.so", ] }