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 extends AddressAutocompletePrediction> 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 extends AddressAutocompletePrediction> 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",
]
}