Patches for v143 (need some work)

This commit is contained in:
Carmelo Messina
2025-11-22 16:29:25 +01:00
parent 3cf5e136d8
commit ee072254f9
15 changed files with 1193 additions and 4704 deletions
@@ -46,7 +46,7 @@ License: GPL-3.0-only - https://spdx.org/licenses/GPL-3.0-only.html
.../tabbed_mode/TabbedRootUiCoordinator.java | 4 +-
.../browser/tabmodel/ChromeTabCreator.java | 5 +-
.../tabmodel/TabModelSelectorImpl.java | 3 +
.../browser/tabmodel/TabPersistentStore.java | 9 +
.../tabmodel/TabPersistentStoreImpl.java | 7 +
.../browser/toolbar/ToolbarManager.java | 3 +-
.../webapps/WebappIntentDataProvider.java | 15 ++
.../browser/android/historical_tab_saver.cc | 24 ++-
@@ -71,7 +71,7 @@ License: GPL-3.0-only - https://spdx.org/licenses/GPL-3.0-only.html
.../browser/ui/native_page/NativePage.java | 17 +-
.../browser/omnibox/LocationBarMediator.java | 8 +
.../strings/android_chrome_strings.grd | 25 +++
.../browser/toolbar/LocationBarModel.java | 4 +-
.../browser/toolbar/LocationBarModel.java | 3 +-
chrome/browser/ui/messages/android/BUILD.gn | 1 +
.../snackbar/INeedSnackbarManager.java | 28 +++
.../search_engine_tab_helper.cc | 6 +
@@ -88,7 +88,7 @@ License: GPL-3.0-only - https://spdx.org/licenses/GPL-3.0-only.html
.../add-an-always-incognito-mode.inc | 1 +
.../add-an-always-incognito-mode.inc | 3 +
.../add-an-always-incognito-mode.inc | 1 +
69 files changed, 791 insertions(+), 103 deletions(-)
69 files changed, 788 insertions(+), 103 deletions(-)
create mode 100644 chrome/android/java/res/xml/incognito_preferences.xml
create mode 100644 chrome/android/java/src/org/chromium/chrome/browser/AlwaysIncognitoLinkInterceptor.java
create mode 100644 chrome/android/java/src/org/chromium/chrome/browser/privacy/settings/IncognitoSettings.java
@@ -101,7 +101,7 @@ License: GPL-3.0-only - https://spdx.org/licenses/GPL-3.0-only.html
diff --git a/chrome/android/chrome_java_resources.gni b/chrome/android/chrome_java_resources.gni
--- a/chrome/android/chrome_java_resources.gni
+++ b/chrome/android/chrome_java_resources.gni
@@ -638,6 +638,7 @@ chrome_java_resources = [
@@ -650,6 +650,7 @@ chrome_java_resources = [
"java/res/xml/main_preferences.xml",
"java/res/xml/manage_sync_preferences.xml",
"java/res/xml/personalize_google_services_preferences.xml",
@@ -120,7 +120,7 @@ diff --git a/chrome/android/chrome_java_sources.gni b/chrome/android/chrome_java
"java/src/com/google/android/apps/chrome/appwidget/bookmarks/BookmarkThumbnailWidgetProvider.java",
"java/src/org/chromium/chrome/browser/ActivityTabProvider.java",
"java/src/org/chromium/chrome/browser/ActivityUtils.java",
@@ -925,6 +926,7 @@ chrome_java_sources = [
@@ -936,6 +937,7 @@ chrome_java_sources = [
"java/src/org/chromium/chrome/browser/privacy/settings/PasswordEchoSettingHandlerFactory.java",
"java/src/org/chromium/chrome/browser/privacy/settings/PrivacyPreferencesManagerImpl.java",
"java/src/org/chromium/chrome/browser/privacy/settings/PrivacySettings.java",
@@ -257,9 +257,9 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/ChromeTabbedAct
+import org.chromium.chrome.browser.AlwaysIncognitoLinkInterceptor;
import org.chromium.chrome.browser.IntentHandler.ExternalAppId;
import org.chromium.chrome.browser.IntentHandler.TabOpenType;
import org.chromium.chrome.browser.app.ChromeActivity;
@@ -837,15 +841,20 @@ public class ChromeTabbedActivity extends ChromeActivity {
}
import org.chromium.chrome.browser.accessibility.settings.CaretBrowsingDialog;
@@ -825,15 +829,20 @@ public class ChromeTabbedActivity extends ChromeActivity {
BrowserWindowType.NORMAL, currentTabModel, mMultiInstanceManager);
// For saving non-incognito tab closures for Recent Tabs.
- mHistoricalTabModelObserver =
@@ -286,7 +286,7 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/ChromeTabbedAct
// Defer creation of this helper so it triggers after TabGroupModelFilter observers.
mUndoRefocusHelper =
new UndoRefocusHelper(
@@ -3299,7 +3308,7 @@ public class ChromeTabbedActivity extends ChromeActivity {
@@ -3274,7 +3283,7 @@ public class ChromeTabbedActivity extends ChromeActivity {
// We determine SupportedProfileType in onPreCreate().
// We determine the model as soon as possible so every systems get initialized coherently.
@@ -298,7 +298,7 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/ChromeTabbedAct
diff --git a/chrome/android/java/src/org/chromium/chrome/browser/app/ChromeActivity.java b/chrome/android/java/src/org/chromium/chrome/browser/app/ChromeActivity.java
--- a/chrome/android/java/src/org/chromium/chrome/browser/app/ChromeActivity.java
+++ b/chrome/android/java/src/org/chromium/chrome/browser/app/ChromeActivity.java
@@ -100,6 +100,7 @@ import org.chromium.chrome.browser.compositor.layouts.content.TabContentManagerH
@@ -101,6 +101,7 @@ import org.chromium.chrome.browser.compositor.layouts.content.TabContentManagerH
import org.chromium.chrome.browser.contextualsearch.ContextualSearchManager;
import org.chromium.chrome.browser.device.DeviceClassManager;
import org.chromium.chrome.browser.devtools.DevToolsWindowAndroid;
@@ -306,7 +306,7 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/app/ChromeActiv
import org.chromium.chrome.browser.dom_distiller.DomDistillerUiUtils;
import org.chromium.chrome.browser.dom_distiller.ReaderModeManager;
import org.chromium.chrome.browser.download.DownloadManagerService;
@@ -2076,6 +2077,9 @@ public abstract class ChromeActivity extends AsyncInitializationActivity
@@ -2144,6 +2145,9 @@ public abstract class ChromeActivity extends AsyncInitializationActivity
throw new IllegalStateException(
"Attempting to access TabCreator before initialization");
}
@@ -328,7 +328,7 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/app/appmenu/App
/**
* Base implementation of {@link AppMenuPropertiesDelegate} that handles hiding and showing menu
* items based on activity state.
@@ -635,8 +637,9 @@ public abstract class AppMenuPropertiesDelegateImpl implements AppMenuProperties
@@ -633,8 +635,9 @@ public abstract class AppMenuPropertiesDelegateImpl implements AppMenuProperties
&& !isNativePage
&& !isFileScheme
&& !isContentScheme
@@ -351,7 +351,7 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/contextmenu/Chr
import org.chromium.chrome.browser.bookmarks.BookmarkUtils;
import org.chromium.chrome.browser.contextmenu.ChromeContextMenuItem.Item;
import org.chromium.chrome.browser.contextmenu.ContextMenuCoordinator.ContextMenuItemType;
@@ -430,6 +431,9 @@ public class ChromeContextMenuPopulator implements ContextMenuPopulator {
@@ -437,6 +438,9 @@ public class ChromeContextMenuPopulator implements ContextMenuPopulator {
mShowEphemeralTabNewLabel = null;
mCustomActionMap.clear();
@@ -361,7 +361,7 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/contextmenu/Chr
List<ModelList> groupedItems = new ArrayList<>();
if (mParams.isPage() && shouldShowEmptySpaceContextMenu()) {
@@ -501,7 +505,7 @@ public class ChromeContextMenuPopulator implements ContextMenuPopulator {
@@ -508,7 +512,7 @@ public class ChromeContextMenuPopulator implements ContextMenuPopulator {
}
}
if (FirstRunStatus.getFirstRunFlowComplete()) {
@@ -422,7 +422,7 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/customtabs/Cust
import org.chromium.chrome.browser.DefaultBrowserInfo;
import org.chromium.chrome.browser.app.appmenu.AppMenuPropertiesDelegateImpl;
import org.chromium.chrome.browser.bookmarks.BookmarkModel;
@@ -224,6 +225,9 @@ public class CustomTabAppMenuPropertiesDelegate extends AppMenuPropertiesDelegat
@@ -248,6 +249,9 @@ public class CustomTabAppMenuPropertiesDelegate extends AppMenuPropertiesDelegat
openInChromeItemVisible = false;
tryAddingReadAloud = false;
}
@@ -445,7 +445,7 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/customtabs/Cust
import java.lang.annotation.Retention;
import java.lang.annotation.RetentionPolicy;
import java.util.ArrayList;
@@ -1287,6 +1290,13 @@ public class CustomTabIntentDataProvider extends BrowserServicesIntentDataProvid
@@ -1328,6 +1331,13 @@ public class CustomTabIntentDataProvider extends BrowserServicesIntentDataProvid
return getInitialActivityWidth() > 0;
}
@@ -585,7 +585,7 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/history/History
diff --git a/chrome/android/java/src/org/chromium/chrome/browser/history/HistoryPage.java b/chrome/android/java/src/org/chromium/chrome/browser/history/HistoryPage.java
--- a/chrome/android/java/src/org/chromium/chrome/browser/history/HistoryPage.java
+++ b/chrome/android/java/src/org/chromium/chrome/browser/history/HistoryPage.java
@@ -20,6 +20,14 @@ import org.chromium.components.embedder_support.util.UrlConstants;
@@ -21,6 +21,14 @@ import org.chromium.components.embedder_support.util.UrlConstants;
import java.util.function.Supplier;
@@ -600,8 +600,8 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/history/History
/** Native page for managing browsing history. */
@NullMarked
public class HistoryPage extends BasicNativePage {
@@ -49,6 +57,14 @@ public class HistoryPage extends BasicNativePage {
String url) {
@@ -51,6 +59,14 @@ public class HistoryPage extends BasicNativePage {
BackPressManager backPressManager) {
super(host);
+ if (profile.isOffTheRecord() &&
@@ -626,7 +626,7 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/native_page/Nat
import org.chromium.chrome.browser.app.ChromeActivity;
import org.chromium.chrome.browser.app.download.home.DownloadPage;
import org.chromium.chrome.browser.back_press.BackPressManager;
@@ -396,7 +397,8 @@ public class NativePageFactory {
@@ -411,7 +412,8 @@ public class NativePageFactory {
NativePage page;
@@ -1006,7 +1006,7 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/tabbed_mode/Tab
import org.chromium.chrome.browser.ActivityTabProvider;
import org.chromium.chrome.browser.ai.AiAssistantService;
import org.chromium.chrome.browser.app.appmenu.AppMenuPropertiesDelegateImpl;
@@ -241,7 +242,8 @@ public class TabbedAppMenuPropertiesDelegate extends AppMenuPropertiesDelegateIm
@@ -242,7 +243,8 @@ public class TabbedAppMenuPropertiesDelegate extends AppMenuPropertiesDelegateIm
// When the feature is enabled, show either "New Incognito tab" in incognito mode
// or "New tab" in normal mode. When the feature is disabled, show both.
@@ -1019,16 +1019,16 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/tabbed_mode/Tab
diff --git a/chrome/android/java/src/org/chromium/chrome/browser/tabbed_mode/TabbedRootUiCoordinator.java b/chrome/android/java/src/org/chromium/chrome/browser/tabbed_mode/TabbedRootUiCoordinator.java
--- a/chrome/android/java/src/org/chromium/chrome/browser/tabbed_mode/TabbedRootUiCoordinator.java
+++ b/chrome/android/java/src/org/chromium/chrome/browser/tabbed_mode/TabbedRootUiCoordinator.java
@@ -210,6 +210,8 @@ import org.chromium.content_public.common.ContentSwitches;
@@ -209,6 +209,8 @@ import org.chromium.content_public.common.ContentSwitches;
import org.chromium.ui.UiUtils;
import org.chromium.ui.base.ActivityWindowAndroid;
import org.chromium.ui.base.DeviceFormFactor;
+import org.chromium.base.ContextUtils;
+import org.chromium.chrome.browser.AlwaysIncognitoLinkInterceptor;
import org.chromium.ui.base.IntentRequestTracker;
import org.chromium.ui.base.LocalizationUtils;
import org.chromium.ui.base.UiAndroidFeatureList;
import org.chromium.ui.display.DisplayUtil;
@@ -1281,7 +1283,7 @@ public class TabbedRootUiCoordinator extends RootUiCoordinator {
@@ -1257,7 +1259,7 @@ public class TabbedRootUiCoordinator extends RootUiCoordinator {
() -> {
mTabCreatorManagerSupplier
.get()
@@ -1040,7 +1040,7 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/tabbed_mode/Tab
diff --git a/chrome/android/java/src/org/chromium/chrome/browser/tabmodel/ChromeTabCreator.java b/chrome/android/java/src/org/chromium/chrome/browser/tabmodel/ChromeTabCreator.java
--- a/chrome/android/java/src/org/chromium/chrome/browser/tabmodel/ChromeTabCreator.java
+++ b/chrome/android/java/src/org/chromium/chrome/browser/tabmodel/ChromeTabCreator.java
@@ -56,6 +56,10 @@ import org.chromium.url.GURL;
@@ -55,6 +55,10 @@ import org.chromium.url.GURL;
import java.util.Collections;
import java.util.function.Supplier;
@@ -1049,9 +1049,9 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/tabmodel/Chrome
+import org.chromium.chrome.browser.tab.TabObserver;
+
/** This class creates various kinds of new tabs and adds them to the right {@link TabModel}. */
@NullMarked
public class ChromeTabCreator extends TabCreator
@@ -587,7 +591,6 @@ public class ChromeTabCreator extends TabCreator
public class ChromeTabCreator implements TabCreator, NeedsTabModel, NeedsTabModelOrderController {
/**
@@ -594,7 +598,6 @@ public class ChromeTabCreator implements TabCreator, NeedsTabModel, NeedsTabMode
// TODO(crbug.com/40691614): Clean up the launches from SearchActivity/Chrome.
public @Nullable Tab launchUrlFromExternalApp(
LoadUrlParams loadUrlParams, String appId, boolean forceNewTab, Intent intent) {
@@ -1079,19 +1079,18 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/tabmodel/TabMod
TabCreator regularTabCreator = getTabCreatorManager().getTabCreator(false);
TabCreator incognitoTabCreator = getTabCreatorManager().getTabCreator(true);
mRecentlyClosedBridge =
diff --git a/chrome/android/java/src/org/chromium/chrome/browser/tabmodel/TabPersistentStore.java b/chrome/android/java/src/org/chromium/chrome/browser/tabmodel/TabPersistentStore.java
--- a/chrome/android/java/src/org/chromium/chrome/browser/tabmodel/TabPersistentStore.java
+++ b/chrome/android/java/src/org/chromium/chrome/browser/tabmodel/TabPersistentStore.java
@@ -61,6 +61,8 @@ import org.chromium.components.browser_ui.util.ConversionUtils;
import org.chromium.components.embedder_support.util.UrlUtilities;
import org.chromium.content_public.browser.LoadUrlParams;
diff --git a/chrome/android/java/src/org/chromium/chrome/browser/tabmodel/TabPersistentStoreImpl.java b/chrome/android/java/src/org/chromium/chrome/browser/tabmodel/TabPersistentStoreImpl.java
--- a/chrome/android/java/src/org/chromium/chrome/browser/tabmodel/TabPersistentStoreImpl.java
+++ b/chrome/android/java/src/org/chromium/chrome/browser/tabmodel/TabPersistentStoreImpl.java
@@ -32,6 +32,7 @@ import org.chromium.base.task.TaskTraits;
import org.chromium.build.annotations.Initializer;
import org.chromium.build.annotations.NullMarked;
import org.chromium.build.annotations.Nullable;
+import org.chromium.chrome.browser.AlwaysIncognitoLinkInterceptor;
+
import java.io.BufferedInputStream;
import java.io.ByteArrayInputStream;
import java.io.DataInputStream;
@@ -837,6 +839,13 @@ public class TabPersistentStore {
import org.chromium.chrome.browser.app.tabmodel.AsyncTabParamsManagerSingleton;
import org.chromium.chrome.browser.crypto.CipherFactory;
import org.chromium.chrome.browser.flags.ChromeFeatureList;
@@ -750,6 +751,12 @@ public class TabPersistentStoreImpl implements TabPersistentStore {
}
}
}
@@ -1101,27 +1100,26 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/tabmodel/TabPer
+ return;
+ }
+ }
+
TabModel model = mTabModelSelector.getModel(isIncognito);
if (model.isIncognito() != isIncognito) {
diff --git a/chrome/android/java/src/org/chromium/chrome/browser/toolbar/ToolbarManager.java b/chrome/android/java/src/org/chromium/chrome/browser/toolbar/ToolbarManager.java
--- a/chrome/android/java/src/org/chromium/chrome/browser/toolbar/ToolbarManager.java
+++ b/chrome/android/java/src/org/chromium/chrome/browser/toolbar/ToolbarManager.java
@@ -50,6 +50,7 @@ import org.chromium.base.supplier.OneshotSupplierImpl;
@@ -53,6 +53,7 @@ import org.chromium.build.annotations.Nullable;
import org.chromium.cc.input.BrowserControlsState;
import org.chromium.chrome.R;
import org.chromium.chrome.browser.ActivityTabProvider;
+import org.chromium.chrome.browser.AlwaysIncognitoLinkInterceptor;
import org.chromium.chrome.browser.IntentHandler;
import org.chromium.chrome.browser.app.tabwindow.TabWindowManagerSingleton;
import org.chromium.chrome.browser.back_press.BackPressManager;
@@ -869,7 +870,7 @@ public class ToolbarManager
return ret;
import org.chromium.chrome.browser.back_press.BackPressMetrics;
@@ -888,7 +889,7 @@ public class ToolbarManager
}
},
- mToolbarPositionSupplier);
+ mToolbarPositionSupplier, AlwaysIncognitoLinkInterceptor.isAlwaysIncognito());
mToolbarPositionSupplier,
- /* matchTrustedCdnUrl= */ mIsCustomTab);
+ /* matchTrustedCdnUrl= */ mIsCustomTab, AlwaysIncognitoLinkInterceptor.isAlwaysIncognito());
mControlContainer = controlContainer;
mToolbarHairline = mControlContainer.findViewById(R.id.toolbar_hairline);
@@ -1186,7 +1184,7 @@ diff --git a/chrome/browser/android/historical_tab_saver.cc b/chrome/browser/and
using base::android::JavaParamRef;
using base::android::JavaRef;
using base::android::ScopedJavaLocalRef;
@@ -101,7 +106,8 @@ std::vector<std::optional<base::Uuid>> StringsToUuids(
@@ -89,7 +94,8 @@ std::vector<std::optional<base::Uuid>> StringsToUuids(
void CreateHistoricalTab(
TabAndroid* tab_android,
@@ -1196,7 +1194,7 @@ diff --git a/chrome/browser/android/historical_tab_saver.cc b/chrome/browser/and
if (!tab_android) {
return;
}
@@ -112,9 +118,14 @@ void CreateHistoricalTab(
@@ -100,9 +106,14 @@ void CreateHistoricalTab(
return;
}
@@ -1213,16 +1211,16 @@ diff --git a/chrome/browser/android/historical_tab_saver.cc b/chrome/browser/and
if (!service) {
return;
}
@@ -178,7 +189,7 @@ void CreateHistoricalBulkClosure(
@@ -166,7 +177,7 @@ void CreateHistoricalBulkClosure(
per_tab_optional_tab_group_ids,
std::vector<raw_ptr<TabAndroid, VectorExperimental>> tabs,
std::vector<TabAndroid*> tabs,
std::vector<WebContentsStateByteBuffer> web_contents_state) {
- DCHECK(model);
+ if (!model) return;
DCHECK_EQ(tab_group_ids.size(), group_titles.size());
DCHECK_EQ(tab_group_ids.size(), group_colors.size());
DCHECK_EQ(tab_group_ids.size(), tab_group_ids.size());
@@ -292,11 +303,12 @@ static void JNI_HistoricalTabSaverImpl_CreateHistoricalTab(
@@ -280,11 +291,12 @@ static void JNI_HistoricalTabSaverImpl_CreateHistoricalTab(
JNIEnv* env,
const JavaParamRef<jobject>& jtab_android,
const JavaParamRef<jobject>& state,
@@ -1377,7 +1375,7 @@ diff --git a/chrome/browser/history/history_tab_helper.cc b/chrome/browser/histo
#else
#include "chrome/browser/ui/browser.h"
#include "chrome/browser/ui/browser_finder.h"
@@ -614,6 +617,13 @@ void HistoryTabHelper::TitleWasSet(NavigationEntry* entry) {
@@ -627,6 +630,13 @@ void HistoryTabHelper::TitleWasSet(NavigationEntry* entry) {
history::HistoryService* HistoryTabHelper::GetHistoryService() {
Profile* profile =
Profile::FromBrowserContext(web_contents()->GetBrowserContext());
@@ -1391,7 +1389,7 @@ diff --git a/chrome/browser/history/history_tab_helper.cc b/chrome/browser/histo
if (profile->IsOffTheRecord())
return nullptr;
@@ -621,6 +631,16 @@ history::HistoryService* HistoryTabHelper::GetHistoryService() {
@@ -634,6 +644,16 @@ history::HistoryService* HistoryTabHelper::GetHistoryService() {
profile, ServiceAccessType::IMPLICIT_ACCESS);
}
@@ -1740,7 +1738,7 @@ diff --git a/chrome/browser/offline_pages/request_coordinator_factory.h b/chrome
diff --git a/chrome/browser/prefs/browser_prefs.cc b/chrome/browser/prefs/browser_prefs.cc
--- a/chrome/browser/prefs/browser_prefs.cc
+++ b/chrome/browser/prefs/browser_prefs.cc
@@ -257,6 +257,7 @@
@@ -261,6 +261,7 @@
#if BUILDFLAG(IS_ANDROID)
#include "chrome/browser/accessibility/accessibility_prefs/android/accessibility_prefs_controller.h"
@@ -1748,7 +1746,7 @@ diff --git a/chrome/browser/prefs/browser_prefs.cc b/chrome/browser/prefs/browse
#include "chrome/browser/android/ntp/recent_tabs_page_prefs.h"
#include "chrome/browser/android/oom_intervention/oom_intervention_decider.h"
#include "chrome/browser/android/preferences/browser_prefs_android.h"
@@ -2203,6 +2204,10 @@ void RegisterProfilePrefs(user_prefs::PrefRegistrySyncable* registry,
@@ -2022,6 +2023,10 @@ void RegisterProfilePrefs(user_prefs::PrefRegistrySyncable* registry,
usage_stats::UsageStatsBridge::RegisterProfilePrefs(registry);
variations::VariationsService::RegisterProfilePrefs(registry);
webapps::InstallPromptPrefs::RegisterProfilePrefs(registry);
@@ -1813,7 +1811,7 @@ diff --git a/chrome/browser/profiles/profile_selections.h b/chrome/browser/profi
diff --git a/chrome/browser/ui/android/native_page/BUILD.gn b/chrome/browser/ui/android/native_page/BUILD.gn
--- a/chrome/browser/ui/android/native_page/BUILD.gn
+++ b/chrome/browser/ui/android/native_page/BUILD.gn
@@ -31,6 +31,8 @@ robolectric_library("junit") {
@@ -33,6 +33,8 @@ robolectric_library("junit") {
deps = [
":java",
@@ -1834,7 +1832,7 @@ diff --git a/chrome/browser/ui/android/native_page/java/src/org/chromium/chrome/
/** An interface for pages that will be using Android views instead of html/rendered Web content. */
@NullMarked
public interface NativePage {
@@ -187,7 +189,8 @@ public interface NativePage {
@@ -192,7 +194,8 @@ public interface NativePage {
*/
static boolean isNativePageUrl(GURL url, boolean isIncognito, boolean hasPdfDownload) {
return url != null
@@ -1844,7 +1842,7 @@ diff --git a/chrome/browser/ui/android/native_page/java/src/org/chromium/chrome/
}
/**
@@ -197,7 +200,7 @@ public interface NativePage {
@@ -202,7 +205,7 @@ public interface NativePage {
* not have chrome or chrome-native scheme.
*/
static boolean isChromePageUrl(GURL url, boolean isIncognito) {
@@ -1853,7 +1851,7 @@ diff --git a/chrome/browser/ui/android/native_page/java/src/org/chromium/chrome/
}
/**
@@ -211,7 +214,8 @@ public interface NativePage {
@@ -216,7 +219,8 @@ public interface NativePage {
GURL url,
@Nullable NativePage candidatePage,
boolean isIncognito,
@@ -1863,7 +1861,7 @@ diff --git a/chrome/browser/ui/android/native_page/java/src/org/chromium/chrome/
if (hasPdfDownload) {
// For navigation with associated pdf download (e.g. open a pdf link), pdf page should
// be created.
@@ -229,7 +233,7 @@ public interface NativePage {
@@ -234,7 +238,7 @@ public interface NativePage {
// created after the pdf document is re-downloaded in other parts of the code.
return NativePageType.NONE;
} else {
@@ -1872,7 +1870,7 @@ diff --git a/chrome/browser/ui/android/native_page/java/src/org/chromium/chrome/
}
}
@@ -241,7 +245,7 @@ public interface NativePage {
@@ -246,7 +250,7 @@ public interface NativePage {
* which do not have chrome or chrome-native scheme.
*/
private static @NativePageType int chromePageType(
@@ -1881,7 +1879,7 @@ diff --git a/chrome/browser/ui/android/native_page/java/src/org/chromium/chrome/
String host = url.getHost();
String scheme = url.getScheme();
if (!UrlConstants.CHROME_NATIVE_SCHEME.equals(scheme)
@@ -261,7 +265,8 @@ public interface NativePage {
@@ -266,7 +270,8 @@ public interface NativePage {
return NativePageType.DOWNLOADS;
} else if (UrlConstants.HISTORY_HOST.equals(host)) {
return NativePageType.HISTORY;
@@ -1894,7 +1892,7 @@ diff --git a/chrome/browser/ui/android/native_page/java/src/org/chromium/chrome/
diff --git a/chrome/browser/ui/android/omnibox/java/src/org/chromium/chrome/browser/omnibox/LocationBarMediator.java b/chrome/browser/ui/android/omnibox/java/src/org/chromium/chrome/browser/omnibox/LocationBarMediator.java
--- a/chrome/browser/ui/android/omnibox/java/src/org/chromium/chrome/browser/omnibox/LocationBarMediator.java
+++ b/chrome/browser/ui/android/omnibox/java/src/org/chromium/chrome/browser/omnibox/LocationBarMediator.java
@@ -99,6 +99,11 @@ import org.chromium.ui.interpolators.Interpolators;
@@ -101,6 +101,11 @@ import org.chromium.ui.interpolators.Interpolators;
import org.chromium.ui.modaldialog.ModalDialogManager;
import org.chromium.url.GURL;
@@ -1904,9 +1902,9 @@ diff --git a/chrome/browser/ui/android/omnibox/java/src/org/chromium/chrome/brow
+import org.chromium.chrome.browser.preferences.Pref;
+
import java.util.ArrayList;
import java.util.Collection;
import java.util.List;
import java.util.function.BooleanSupplier;
@@ -448,6 +453,9 @@ class LocationBarMediator
@@ -497,6 +502,9 @@ class LocationBarMediator
if (!DeviceFormFactor.isNonMultiDisplayContextOnTablet(mContext)) return;
Tab tab = mLocationBarDataProvider.getTab();
if (tab == null) return;
@@ -1919,7 +1917,7 @@ diff --git a/chrome/browser/ui/android/omnibox/java/src/org/chromium/chrome/brow
diff --git a/chrome/browser/ui/android/strings/android_chrome_strings.grd b/chrome/browser/ui/android/strings/android_chrome_strings.grd
--- a/chrome/browser/ui/android/strings/android_chrome_strings.grd
+++ b/chrome/browser/ui/android/strings/android_chrome_strings.grd
@@ -6669,6 +6669,31 @@ To change this setting, <ph name="BEGIN_LINK">BEGIN_LINK</ph>delete the Chrome d
@@ -6906,6 +6906,31 @@ To change this setting, <ph name="BEGIN_LINK">BEGIN_LINK</ph>delete the Chrome d
<message name="IDS_QUICK_DELETE_DIALOG_COOKIES_CACHE_AND_OTHER_SITE_DATA_TEXT" desc="Text indicating that browsing data like cookies, cache, and other site data would be deleted.">
Cookies, cache, and other site data
</message>
@@ -1954,7 +1952,7 @@ diff --git a/chrome/browser/ui/android/strings/android_chrome_strings.grd b/chro
diff --git a/chrome/browser/ui/android/toolbar/java/src/org/chromium/chrome/browser/toolbar/LocationBarModel.java b/chrome/browser/ui/android/toolbar/java/src/org/chromium/chrome/browser/toolbar/LocationBarModel.java
--- a/chrome/browser/ui/android/toolbar/java/src/org/chromium/chrome/browser/toolbar/LocationBarModel.java
+++ b/chrome/browser/ui/android/toolbar/java/src/org/chromium/chrome/browser/toolbar/LocationBarModel.java
@@ -167,6 +167,7 @@ public class LocationBarModel implements ToolbarDataProvider, LocationBarDataPro
@@ -168,6 +168,7 @@ public class LocationBarModel implements ToolbarDataProvider, LocationBarDataPro
protected GURL mVisibleGurl = GURL.emptyGURL();
protected String mFormattedFullUrl;
protected String mUrlForDisplay;
@@ -1962,13 +1960,12 @@ diff --git a/chrome/browser/ui/android/toolbar/java/src/org/chromium/chrome/brow
// notifyUrlChanged and notifySecurityStateChanged are usually called 3 times across a same
// document navigation. The first call is usually necessary, which updates the UrlBar to reflect
@@ -191,7 +192,8 @@ public class LocationBarModel implements ToolbarDataProvider, LocationBarDataPro
NewTabPageDelegate newTabPageDelegate,
@@ -214,7 +215,7 @@ public class LocationBarModel implements ToolbarDataProvider, LocationBarDataPro
UrlFormatter urlFormatter,
OfflineStatus offlineStatus,
- ObservableSupplier<@ControlsPosition Integer> toolbarPositionSupplier) {
+ ObservableSupplier<@ControlsPosition Integer> toolbarPositionSupplier,
+ boolean isAlwaysIncognito) {
ObservableSupplier<@ControlsPosition Integer> toolbarPositionSupplier,
- boolean matchTrustedCdnUrl) {
+ boolean matchTrustedCdnUrl, boolean isAlwaysIncognito) {
mContext = context;
mNtpDelegate = newTabPageDelegate;
mUrlFormatter = urlFormatter;
@@ -2042,7 +2039,7 @@ diff --git a/chrome/browser/ui/search_engines/search_engine_tab_helper.cc b/chro
diff --git a/chrome/common/pref_names.h b/chrome/common/pref_names.h
--- a/chrome/common/pref_names.h
+++ b/chrome/common/pref_names.h
@@ -4101,6 +4101,12 @@ inline constexpr char kOutOfProcessSystemDnsResolutionEnabled[] =
@@ -4116,6 +4116,12 @@ inline constexpr char kOutOfProcessSystemDnsResolutionEnabled[] =
"net.out_of_process_system_dns_resolution_enabled";
#endif // BUILDFLAG(IS_ANDROID) || BUILDFLAG(IS_LINUX)
@@ -2058,7 +2055,7 @@ diff --git a/chrome/common/pref_names.h b/chrome/common/pref_names.h
diff --git a/components/content_settings/core/browser/content_settings_pref_provider.cc b/components/content_settings/core/browser/content_settings_pref_provider.cc
--- a/components/content_settings/core/browser/content_settings_pref_provider.cc
+++ b/components/content_settings/core/browser/content_settings_pref_provider.cc
@@ -120,10 +120,12 @@ void PrefProvider::RegisterProfilePrefs(
@@ -122,10 +122,12 @@ void PrefProvider::RegisterProfilePrefs(
PrefProvider::PrefProvider(PrefService* prefs,
bool off_the_record,
@@ -2071,25 +2068,24 @@ diff --git a/components/content_settings/core/browser/content_settings_pref_prov
store_last_modified_(store_last_modified),
clock_(base::DefaultClock::GetInstance()) {
TRACE_EVENT_BEGIN("startup", "PrefProvider::PrefProvider");
@@ -146,11 +148,13 @@ PrefProvider::PrefProvider(PrefService* prefs,
@@ -148,10 +150,12 @@ PrefProvider::PrefProvider(PrefService* prefs,
WebsiteSettingsRegistry* website_settings =
WebsiteSettingsRegistry::GetInstance();
for (const WebsiteSettingsInfo* info : *website_settings) {
+ bool save_site_settings = force_save_site_settings_ &&
+ info->incognito_behavior() == WebsiteSettingsInfo::INHERIT_IN_INCOGNITO;
content_settings_prefs_.insert(std::make_pair(
info->type(),
std::make_unique<ContentSettingsPref>(
info->type(), prefs_, &pref_change_registrar_, info->pref_name(),
- info->partitioned_pref_name(), off_the_record_, restore_session,
+ info->partitioned_pref_name(), off_the_record_ && !save_site_settings, restore_session,
base::BindRepeating(&PrefProvider::Notify,
base::Unretained(this)))));
info->type(), std::make_unique<ContentSettingsPref>(
info->type(), prefs_, &pref_change_registrar_,
- info->pref_name(), off_the_record_, restore_session,
+ info->pref_name(), off_the_record_ && !save_site_settings, restore_session,
base::BindRepeating(&PrefProvider::Notify,
base::Unretained(this)))));
}
diff --git a/components/content_settings/core/browser/content_settings_pref_provider.h b/components/content_settings/core/browser/content_settings_pref_provider.h
--- a/components/content_settings/core/browser/content_settings_pref_provider.h
+++ b/components/content_settings/core/browser/content_settings_pref_provider.h
@@ -38,6 +38,7 @@ class PrefProvider : public UserModifiableProvider {
@@ -37,6 +37,7 @@ class PrefProvider : public UserModifiableProvider {
PrefProvider(PrefService* prefs,
bool off_the_record,
@@ -2097,7 +2093,7 @@ diff --git a/components/content_settings/core/browser/content_settings_pref_prov
bool store_last_modified,
bool restore_session);
@@ -130,6 +131,7 @@ class PrefProvider : public UserModifiableProvider {
@@ -117,6 +118,7 @@ class PrefProvider : public UserModifiableProvider {
raw_ptr<PrefService> prefs_;
const bool off_the_record_;
@@ -2108,7 +2104,7 @@ diff --git a/components/content_settings/core/browser/content_settings_pref_prov
diff --git a/components/content_settings/core/browser/host_content_settings_map.cc b/components/content_settings/core/browser/host_content_settings_map.cc
--- a/components/content_settings/core/browser/host_content_settings_map.cc
+++ b/components/content_settings/core/browser/host_content_settings_map.cc
@@ -288,6 +288,7 @@ struct ContentSettingEntry {
@@ -287,6 +287,7 @@ struct ContentSettingEntry {
HostContentSettingsMap::HostContentSettingsMap(PrefService* prefs,
bool is_off_the_record,
@@ -2116,7 +2112,7 @@ diff --git a/components/content_settings/core/browser/host_content_settings_map.
bool store_last_modified,
bool restore_session,
bool should_record_metrics)
@@ -297,6 +298,7 @@ HostContentSettingsMap::HostContentSettingsMap(PrefService* prefs,
@@ -296,6 +297,7 @@ HostContentSettingsMap::HostContentSettingsMap(PrefService* prefs,
#endif
prefs_(prefs),
is_off_the_record_(is_off_the_record),
@@ -2124,7 +2120,7 @@ diff --git a/components/content_settings/core/browser/host_content_settings_map.
store_last_modified_(store_last_modified),
allow_invalid_secondary_pattern_for_testing_(false),
clock_(base::DefaultClock::GetInstance()) {
@@ -310,7 +312,7 @@ HostContentSettingsMap::HostContentSettingsMap(PrefService* prefs,
@@ -309,7 +311,7 @@ HostContentSettingsMap::HostContentSettingsMap(PrefService* prefs,
policy_provider->AddObserver(this);
auto pref_provider_ptr = std::make_unique<content_settings::PrefProvider>(
@@ -2190,7 +2186,7 @@ diff --git a/components/omnibox/browser/base_search_provider.cc b/components/omn
diff --git a/components/omnibox/browser/search_provider.cc b/components/omnibox/browser/search_provider.cc
--- a/components/omnibox/browser/search_provider.cc
+++ b/components/omnibox/browser/search_provider.cc
@@ -921,7 +921,8 @@ std::unique_ptr<network::SimpleURLLoader> SearchProvider::CreateSuggestLoader(
@@ -922,7 +922,8 @@ std::unique_ptr<network::SimpleURLLoader> SearchProvider::CreateSuggestLoader(
// is required.
// Request for suggestions in OTR contexts is not allowed; except for the Lens
// searchboxes.
@@ -26,10 +26,10 @@ diff --git a/components/omnibox/browser/autocomplete_controller.cc b/components/
#include "base/feature_list.h"
#include "base/format_macros.h"
#include "base/functional/bind.h"
@@ -571,6 +572,15 @@ AutocompleteController::AutocompleteController(
provider_client_->GetOmniboxTriggeredFeatureService()),
@@ -557,6 +558,15 @@ AutocompleteController::AutocompleteController(
steady_state_omnibox_position_(
metrics::OmniboxEventProto::UNKNOWN_POSITION) {
metrics::OmniboxEventProto::UNKNOWN_POSITION),
config_(config) {
+ if (base::CommandLine::ForCurrentProcess()->HasSwitch("omnibox-autocomplete-filtering")) {
+ const std::string flag_value = base::CommandLine::ForCurrentProcess()->GetSwitchValueASCII("omnibox-autocomplete-filtering");
+ provider_types &= AutocompleteProvider::TYPE_KEYWORD | AutocompleteProvider::TYPE_SEARCH |
@@ -39,7 +39,7 @@ diff --git a/components/omnibox/browser/autocomplete_controller.cc b/components/
+ if (!base::Contains(flag_value, "chrome"))
+ provider_types &= ~AutocompleteProvider::TYPE_BUILTIN;
+ }
provider_types &= ~OmniboxFieldTrial::GetDisabledProviderTypes();
config_.provider_types &= ~OmniboxFieldTrial::GetDisabledProviderTypes();
// Providers run in the order they're added. Async providers should run first
diff --git a/components/omnibox/browser/history_url_provider.cc b/components/omnibox/browser/history_url_provider.cc
@@ -9,9 +9,9 @@ License: GPL-2.0-or-later - https://spdx.org/licenses/GPL-2.0-or-later.html
.../java/res/values-sw600dp/dimens.xml | 4 ++--
chrome/android/java/res/values/dimens.xml | 6 +++++-
.../browser/ChromeBaseAppCompatActivity.java | 3 +++
.../chrome/browser/WarmupManager.java | 5 ++++-
.../ChromeAccessibilitySettingsDelegate.java | 19 ++++++++++++++++++
.../chrome/browser/app/ChromeActivity.java | 4 +++-
.../chrome/browser/WarmupManager.java | 7 +++++--
.../ChromeAccessibilitySettingsDelegate.java | 19 +++++++++++++++++++
.../chrome/browser/app/ChromeActivity.java | 5 ++++-
.../overlays/strip/StripLayoutHelper.java | 10 ++++++++--
.../strip/StripLayoutHelperManager.java | 6 +++++-
.../scene_layer/TabStripSceneLayer.java | 8 ++++++++
@@ -20,7 +20,7 @@ License: GPL-2.0-or-later - https://spdx.org/licenses/GPL-2.0-or-later.html
.../chrome/browser/ui/RootUiCoordinator.java | 6 +++++-
chrome/browser/preferences/BUILD.gn | 1 +
.../preferences/ChromePreferenceKeys.java | 1 +
.../preferences/ChromeSharedPreferences.java | 12 +++++++++++
.../preferences/ChromeSharedPreferences.java | 12 ++++++++++++
.../LegacyChromePreferenceKeys.java | 1 +
.../AppHeaderCoordinator.java | 2 ++
.../omnibox/LocationBarCoordinator.java | 2 +-
@@ -29,16 +29,15 @@ License: GPL-2.0-or-later - https://spdx.org/licenses/GPL-2.0-or-later.html
.../java/res/layout/toolbar_tablet.xml | 2 +-
.../java/res/values-sw600dp/dimens.xml | 5 +++--
.../toolbar/java/res/values/dimens.xml | 6 ++++--
.../browser/toolbar/ControlContainer.java | 2 +-
.../toolbar/top/ToolbarControlContainer.java | 20 ++++++++++++++++++-
.../toolbar/top/ToolbarControlContainer.java | 18 ++++++++++++++++++
.../browser/toolbar/top/ToolbarLayout.java | 5 ++++-
.../tab_strip/HeightTransitionHandler.java | 2 ++
.../TabStripTransitionCoordinator.java | 6 +++++-
.../res/xml/accessibility_preferences.xml | 5 +++++
.../accessibility/AccessibilitySettings.java | 13 ++++++++++++
.../accessibility/AccessibilitySettings.java | 13 +++++++++++++
.../AccessibilitySettingsDelegate.java | 2 ++
.../chromium/ui/base/DeviceFormFactor.java | 14 +++++++++++++
34 files changed, 171 insertions(+), 26 deletions(-)
.../chromium/ui/base/DeviceFormFactor.java | 14 ++++++++++++++
33 files changed, 171 insertions(+), 25 deletions(-)
diff --git a/chrome/android/java/res/layout/custom_tabs_control_container.xml b/chrome/android/java/res/layout/custom_tabs_control_container.xml
--- a/chrome/android/java/res/layout/custom_tabs_control_container.xml
@@ -107,7 +106,7 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/ChromeBaseAppCo
import org.chromium.chrome.browser.ui.edge_to_edge.SimpleEdgeToEdgeController;
import org.chromium.components.browser_ui.styles.SemanticColorUtils;
import org.chromium.components.browser_ui.util.AutomotiveUtils;
@@ -145,6 +146,8 @@ public class ChromeBaseAppCompatActivity extends AppCompatActivity
@@ -146,6 +147,8 @@ public class ChromeBaseAppCompatActivity extends AppCompatActivity
protected void attachBaseContext(Context newBase) {
super.attachBaseContext(newBase);
@@ -127,14 +126,16 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/WarmupManager.j
import org.chromium.ui.base.WindowAndroid;
import org.chromium.ui.display.DisplayUtil;
import org.chromium.url.GURL;
@@ -472,7 +473,9 @@ public class WarmupManager {
@@ -472,8 +473,10 @@ public class WarmupManager {
ControlContainer controlContainer = mainView.findViewById(R.id.control_container);
if (toolbarId != ActivityUtils.NO_RESOURCE_ID && controlContainer != null) {
- controlContainer.initWithToolbar(toolbarId);
- controlContainer.initWithToolbar(
- toolbarId, R.dimen.custom_tabs_control_container_height);
+ controlContainer.initWithToolbar(toolbarId,
+ DeviceFormFactor.isForceTabletUI()
+ ? R.dimen.control_container_height_tabletui : 0);
+ ? R.dimen.control_container_height_tabletui
+ : R.dimen.custom_tabs_control_container_height);
}
return mainView;
} catch (InflateException e) {
@@ -170,21 +171,22 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/accessibility/s
diff --git a/chrome/android/java/src/org/chromium/chrome/browser/app/ChromeActivity.java b/chrome/android/java/src/org/chromium/chrome/browser/app/ChromeActivity.java
--- a/chrome/android/java/src/org/chromium/chrome/browser/app/ChromeActivity.java
+++ b/chrome/android/java/src/org/chromium/chrome/browser/app/ChromeActivity.java
@@ -808,7 +808,9 @@ public abstract class ChromeActivity extends AsyncInitializationActivity
@@ -818,7 +818,10 @@ public abstract class ChromeActivity extends AsyncInitializationActivity
// Inflate the correct toolbar layout for the device.
int toolbarLayoutId = getToolbarLayoutId();
if (toolbarLayoutId != ActivityUtils.NO_RESOURCE_ID && controlContainer != null) {
- controlContainer.initWithToolbar(toolbarLayoutId);
- controlContainer.initWithToolbar(toolbarLayoutId, getToolbarLayoutHeightResId());
+ controlContainer.initWithToolbar(toolbarLayoutId,
+ DeviceFormFactor.isForceTabletUI()
+ ? R.dimen.control_container_height_tabletui : 0);
+ ? R.dimen.control_container_height_tabletui
+ : getToolbarLayoutHeightResId());
}
onInitialLayoutInflationComplete();
}
diff --git a/chrome/android/java/src/org/chromium/chrome/browser/compositor/overlays/strip/StripLayoutHelper.java b/chrome/android/java/src/org/chromium/chrome/browser/compositor/overlays/strip/StripLayoutHelper.java
--- a/chrome/android/java/src/org/chromium/chrome/browser/compositor/overlays/strip/StripLayoutHelper.java
+++ b/chrome/android/java/src/org/chromium/chrome/browser/compositor/overlays/strip/StripLayoutHelper.java
@@ -132,6 +132,7 @@ import org.chromium.components.tab_group_sync.TabGroupSyncService;
@@ -136,6 +136,7 @@ import org.chromium.components.tab_group_sync.TabGroupSyncService;
import org.chromium.components.tab_group_sync.TriggerSource;
import org.chromium.components.tab_groups.TabGroupColorId;
import org.chromium.ui.accessibility.AccessibilityState;
@@ -192,7 +194,7 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/compositor/over
import org.chromium.ui.base.LocalizationUtils;
import org.chromium.ui.base.WindowAndroid;
import org.chromium.ui.util.ColorUtils;
@@ -5040,8 +5041,13 @@ public class StripLayoutHelper
@@ -5308,8 +5309,13 @@ public class StripLayoutHelper
mCloseButtonMenu.setAnchorView(tabView);
// 3. Set the vertical offset to align the close button menu with bottom of the tab strip
int tabHeight = mManagerHost.getHeight();
@@ -211,7 +213,7 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/compositor/over
diff --git a/chrome/android/java/src/org/chromium/chrome/browser/compositor/overlays/strip/StripLayoutHelperManager.java b/chrome/android/java/src/org/chromium/chrome/browser/compositor/overlays/strip/StripLayoutHelperManager.java
--- a/chrome/android/java/src/org/chromium/chrome/browser/compositor/overlays/strip/StripLayoutHelperManager.java
+++ b/chrome/android/java/src/org/chromium/chrome/browser/compositor/overlays/strip/StripLayoutHelperManager.java
@@ -105,6 +105,7 @@ import org.chromium.components.browser_ui.desktop_windowing.DesktopWindowStateMa
@@ -101,6 +101,7 @@ import org.chromium.components.browser_ui.desktop_windowing.DesktopWindowStateMa
import org.chromium.components.browser_ui.styles.SemanticColorUtils;
import org.chromium.components.browser_ui.widget.scrim.ScrimProperties;
import org.chromium.content_public.browser.LoadUrlParams;
@@ -219,7 +221,7 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/compositor/over
import org.chromium.ui.base.LocalizationUtils;
import org.chromium.ui.base.PageTransition;
import org.chromium.ui.base.WindowAndroid;
@@ -498,7 +499,10 @@ public class StripLayoutHelperManager
@@ -491,7 +492,10 @@ public class StripLayoutHelperManager
mIsLayoutOptimizationsEnabled =
ToolbarFeatures.isTabStripWindowLayoutOptimizationEnabled(
/* isTablet= */ true, DisplayUtil.isContextInDefaultDisplay(mContext));
@@ -271,7 +273,7 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/init/ChromeBrow
diff --git a/chrome/android/java/src/org/chromium/chrome/browser/tabbed_mode/TabbedRootUiCoordinator.java b/chrome/android/java/src/org/chromium/chrome/browser/tabbed_mode/TabbedRootUiCoordinator.java
--- a/chrome/android/java/src/org/chromium/chrome/browser/tabbed_mode/TabbedRootUiCoordinator.java
+++ b/chrome/android/java/src/org/chromium/chrome/browser/tabbed_mode/TabbedRootUiCoordinator.java
@@ -768,7 +768,9 @@ public class TabbedRootUiCoordinator extends RootUiCoordinator {
@@ -766,7 +766,9 @@ public class TabbedRootUiCoordinator extends RootUiCoordinator {
@Override
public int getControlContainerHeightResource() {
@@ -285,7 +287,7 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/tabbed_mode/Tab
diff --git a/chrome/android/java/src/org/chromium/chrome/browser/ui/RootUiCoordinator.java b/chrome/android/java/src/org/chromium/chrome/browser/ui/RootUiCoordinator.java
--- a/chrome/android/java/src/org/chromium/chrome/browser/ui/RootUiCoordinator.java
+++ b/chrome/android/java/src/org/chromium/chrome/browser/ui/RootUiCoordinator.java
@@ -110,6 +110,8 @@ import org.chromium.chrome.browser.paint_preview.DemoPaintPreview;
@@ -120,6 +120,8 @@ import org.chromium.chrome.browser.paint_preview.DemoPaintPreview;
import org.chromium.chrome.browser.password_manager.ManagePasswordsReferrer;
import org.chromium.chrome.browser.password_manager.PasswordManagerLauncher;
import org.chromium.chrome.browser.pdf.PdfPage;
@@ -294,7 +296,7 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/ui/RootUiCoordi
import org.chromium.chrome.browser.profiles.Profile;
import org.chromium.chrome.browser.quick_delete.QuickDeleteController;
import org.chromium.chrome.browser.quick_delete.QuickDeleteDelegateImpl;
@@ -1803,7 +1805,9 @@ public class RootUiCoordinator
@@ -1877,7 +1879,9 @@ public class RootUiCoordinator
if (!mSupportsFindInPageSupplier.getAsBoolean()) return;
int stubId = R.id.find_toolbar_stub;
@@ -319,7 +321,7 @@ diff --git a/chrome/browser/preferences/BUILD.gn b/chrome/browser/preferences/BU
diff --git 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
--- 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
@@ -337,6 +337,7 @@ public final class ChromePreferenceKeys {
@@ -348,6 +348,7 @@ public final class ChromePreferenceKeys {
/** Whether the app-specific history info text was already seen by users. */
public static final String HISTORY_APP_SPECIFIC_INFO_SEEN =
"Chrome.History.AppSpecificInfoSeen";
@@ -370,7 +372,7 @@ diff --git a/chrome/browser/preferences/android/java/src/org/chromium/chrome/bro
diff --git a/chrome/browser/ui/android/desktop_windowing/java/src/org/chromium/chrome/browser/ui/desktop_windowing/AppHeaderCoordinator.java b/chrome/browser/ui/android/desktop_windowing/java/src/org/chromium/chrome/browser/ui/desktop_windowing/AppHeaderCoordinator.java
--- a/chrome/browser/ui/android/desktop_windowing/java/src/org/chromium/chrome/browser/ui/desktop_windowing/AppHeaderCoordinator.java
+++ b/chrome/browser/ui/android/desktop_windowing/java/src/org/chromium/chrome/browser/ui/desktop_windowing/AppHeaderCoordinator.java
@@ -42,6 +42,7 @@ import org.chromium.components.browser_ui.desktop_windowing.DesktopWindowStateMa
@@ -43,6 +43,7 @@ import org.chromium.components.browser_ui.desktop_windowing.DesktopWindowStateMa
import org.chromium.ui.display.DisplayUtil;
import org.chromium.ui.edge_to_edge.EdgeToEdgeStateProvider;
import org.chromium.ui.insets.CaptionBarInsetsRectProvider;
@@ -378,7 +380,7 @@ diff --git a/chrome/browser/ui/android/desktop_windowing/java/src/org/chromium/c
import org.chromium.ui.insets.InsetObserver;
import org.chromium.ui.insets.InsetObserver.WindowInsetsConsumer;
import org.chromium.ui.insets.InsetsRectProvider;
@@ -281,6 +282,7 @@ public class AppHeaderCoordinator
@@ -304,6 +305,7 @@ public class AppHeaderCoordinator
InsetsRectProvider insetsRectProvider,
@DesktopWindowHeuristicResult int currentResult,
boolean isOnExternalDisplay) {
@@ -389,7 +391,7 @@ diff --git a/chrome/browser/ui/android/desktop_windowing/java/src/org/chromium/c
diff --git a/chrome/browser/ui/android/omnibox/java/src/org/chromium/chrome/browser/omnibox/LocationBarCoordinator.java b/chrome/browser/ui/android/omnibox/java/src/org/chromium/chrome/browser/omnibox/LocationBarCoordinator.java
--- a/chrome/browser/ui/android/omnibox/java/src/org/chromium/chrome/browser/omnibox/LocationBarCoordinator.java
+++ b/chrome/browser/ui/android/omnibox/java/src/org/chromium/chrome/browser/omnibox/LocationBarCoordinator.java
@@ -869,7 +869,7 @@ public class LocationBarCoordinator
@@ -903,7 +903,7 @@ public class LocationBarCoordinator
}
private boolean isTabletWindow() {
@@ -401,7 +403,7 @@ diff --git a/chrome/browser/ui/android/omnibox/java/src/org/chromium/chrome/brow
diff --git a/chrome/browser/ui/android/strings/android_chrome_strings.grd b/chrome/browser/ui/android/strings/android_chrome_strings.grd
--- a/chrome/browser/ui/android/strings/android_chrome_strings.grd
+++ b/chrome/browser/ui/android/strings/android_chrome_strings.grd
@@ -1489,6 +1489,13 @@ Your Google account may have other forms of browsing history like searches and a
@@ -1498,6 +1498,13 @@ Your Google account may have other forms of browsing history like searches and a
Privacy guide explanation closed
</message>
@@ -493,18 +495,6 @@ diff --git a/chrome/browser/ui/android/toolbar/java/res/values/dimens.xml b/chro
<dimen name="ntp_search_box_height">64dp</dimen>
<dimen name="ntp_search_box_height_tall">72dp</dimen>
diff --git a/chrome/browser/ui/android/toolbar/java/src/org/chromium/chrome/browser/toolbar/ControlContainer.java b/chrome/browser/ui/android/toolbar/java/src/org/chromium/chrome/browser/toolbar/ControlContainer.java
--- a/chrome/browser/ui/android/toolbar/java/src/org/chromium/chrome/browser/toolbar/ControlContainer.java
+++ b/chrome/browser/ui/android/toolbar/java/src/org/chromium/chrome/browser/toolbar/ControlContainer.java
@@ -26,7 +26,7 @@ public interface ControlContainer {
*
* @param toolbarLayoutId The ID of the toolbar layout to use.
*/
- void initWithToolbar(int toolbarLayoutId);
+ void initWithToolbar(int toolbarLayoutId, int controlContainerHeightOverrideId);
/**
* @return The {@link ViewResourceAdapter} that exposes this {@link View} as a CC resource.
diff --git a/chrome/browser/ui/android/toolbar/java/src/org/chromium/chrome/browser/toolbar/top/ToolbarControlContainer.java b/chrome/browser/ui/android/toolbar/java/src/org/chromium/chrome/browser/toolbar/top/ToolbarControlContainer.java
--- a/chrome/browser/ui/android/toolbar/java/src/org/chromium/chrome/browser/toolbar/top/ToolbarControlContainer.java
+++ b/chrome/browser/ui/android/toolbar/java/src/org/chromium/chrome/browser/toolbar/top/ToolbarControlContainer.java
@@ -516,16 +506,13 @@ diff --git a/chrome/browser/ui/android/toolbar/java/src/org/chromium/chrome/brow
import android.graphics.Canvas;
import android.graphics.Color;
import android.graphics.PorterDuff;
@@ -170,8 +171,25 @@ public class ToolbarControlContainer extends OptimizedFrameLayout
@Override
@@ -165,6 +166,23 @@ public class ToolbarControlContainer extends OptimizedFrameLayout
@Initializer
- public void initWithToolbar(int toolbarLayoutId) {
+ public void initWithToolbar(int toolbarLayoutId, int controlContainerHeightOverrideId) {
public void initWithToolbar(int toolbarLayoutId, int toolbarLayoutHeightResId) {
try (TraceEvent te = TraceEvent.scoped("ToolbarControlContainer.initWithToolbar")) {
+ if (controlContainerHeightOverrideId != 0) {
+ if (toolbarLayoutHeightResId != 0) {
+ Resources res = getContext().getResources();
+ setMinimumHeight((int) res.getDimension(controlContainerHeightOverrideId));
+ setMinimumHeight((int) res.getDimension(toolbarLayoutHeightResId));
+ int tab_strip_height =
+ (int) res.getDimension(R.dimen.tab_strip_height_tabletui);
+
@@ -541,8 +528,8 @@ diff --git a/chrome/browser/ui/android/toolbar/java/src/org/chromium/chrome/brow
+ ((MarginLayoutParams)view.getLayoutParams()).topMargin = tab_strip_height;
+ }
mToolbarContainer = findViewById(R.id.toolbar_container);
mToolbarLayoutHeight = getResources().getDimensionPixelSize(toolbarLayoutHeightResId);
ViewStub toolbarStub = findViewById(R.id.toolbar_stub);
toolbarStub.setLayoutResource(toolbarLayoutId);
diff --git a/chrome/browser/ui/android/toolbar/java/src/org/chromium/chrome/browser/toolbar/top/ToolbarLayout.java b/chrome/browser/ui/android/toolbar/java/src/org/chromium/chrome/browser/toolbar/top/ToolbarLayout.java
--- a/chrome/browser/ui/android/toolbar/java/src/org/chromium/chrome/browser/toolbar/top/ToolbarLayout.java
+++ b/chrome/browser/ui/android/toolbar/java/src/org/chromium/chrome/browser/toolbar/top/ToolbarLayout.java
@@ -554,7 +541,7 @@ diff --git a/chrome/browser/ui/android/toolbar/java/src/org/chromium/chrome/brow
import org.chromium.ui.util.TokenHolder;
import org.chromium.url.GURL;
@@ -581,7 +582,9 @@ public abstract class ToolbarLayout extends FrameLayout
@@ -582,7 +583,9 @@ public abstract class ToolbarLayout extends FrameLayout
* not have a tab strip.
*/
protected int getTabStripHeightFromResource() {
@@ -568,7 +555,7 @@ diff --git a/chrome/browser/ui/android/toolbar/java/src/org/chromium/chrome/brow
diff --git a/chrome/browser/ui/android/toolbar/java/src/org/chromium/chrome/browser/toolbar/top/tab_strip/HeightTransitionHandler.java b/chrome/browser/ui/android/toolbar/java/src/org/chromium/chrome/browser/toolbar/top/tab_strip/HeightTransitionHandler.java
--- a/chrome/browser/ui/android/toolbar/java/src/org/chromium/chrome/browser/toolbar/top/tab_strip/HeightTransitionHandler.java
+++ b/chrome/browser/ui/android/toolbar/java/src/org/chromium/chrome/browser/toolbar/top/tab_strip/HeightTransitionHandler.java
@@ -30,6 +30,7 @@ import org.chromium.chrome.browser.toolbar.top.ToolbarLayout;
@@ -32,6 +32,7 @@ import org.chromium.chrome.browser.toolbar.top.ToolbarLayout;
import org.chromium.chrome.browser.toolbar.top.tab_strip.TabStripTransitionCoordinator.TabStripHeightObserver;
import org.chromium.chrome.browser.toolbar.top.tab_strip.TabStripTransitionCoordinator.TabStripTransitionDelegate;
import org.chromium.ui.base.ViewUtils;
@@ -576,14 +563,14 @@ diff --git a/chrome/browser/ui/android/toolbar/java/src/org/chromium/chrome/brow
import org.chromium.ui.resources.dynamics.DynamicResourceReadyOnceCallback;
import org.chromium.ui.util.TokenHolder;
@@ -562,6 +563,7 @@ class HeightTransitionHandler {
@@ -561,6 +562,7 @@ class HeightTransitionHandler {
/** Get the min screen width (in dp) required for the tab strip to become visible. */
private static int getScreenWidthThresholdDp() {
+ if (DeviceFormFactor.isForceTabletUI()) return 0;
if (TabStripTransitionCoordinator.sHeightTransitionThresholdForTesting != null) {
return TabStripTransitionCoordinator.sHeightTransitionThresholdForTesting;
}
+ if (DeviceFormFactor.isForceTabletUI()) return 0;
return TRANSITION_THRESHOLD_DP;
}
diff --git a/chrome/browser/ui/android/toolbar/java/src/org/chromium/chrome/browser/toolbar/top/tab_strip/TabStripTransitionCoordinator.java b/chrome/browser/ui/android/toolbar/java/src/org/chromium/chrome/browser/toolbar/top/tab_strip/TabStripTransitionCoordinator.java
--- a/chrome/browser/ui/android/toolbar/java/src/org/chromium/chrome/browser/toolbar/top/tab_strip/TabStripTransitionCoordinator.java
+++ b/chrome/browser/ui/android/toolbar/java/src/org/chromium/chrome/browser/toolbar/top/tab_strip/TabStripTransitionCoordinator.java
@@ -610,9 +597,9 @@ diff --git a/chrome/browser/ui/android/toolbar/java/src/org/chromium/chrome/brow
diff --git a/components/browser_ui/accessibility/android/java/res/xml/accessibility_preferences.xml b/components/browser_ui/accessibility/android/java/res/xml/accessibility_preferences.xml
--- a/components/browser_ui/accessibility/android/java/res/xml/accessibility_preferences.xml
+++ b/components/browser_ui/accessibility/android/java/res/xml/accessibility_preferences.xml
@@ -36,6 +36,11 @@ found in the LICENSE file.
android:summary="@string/jump_start_omnibox_summary"
android:title="@string/jump_start_omnibox_title" />
@@ -41,6 +41,11 @@ found in the LICENSE file.
android:summary="@string/caret_browsing_summary"
android:title="@string/caret_browsing_title" />
+ <org.chromium.components.browser_ui.settings.ChromeSwitchPreference
+ android:key="force_tablet_ui"
@@ -633,9 +620,9 @@ diff --git a/components/browser_ui/accessibility/android/java/src/org/chromium/c
/** Fragment to keep track of all the accessibility related preferences. */
@NullMarked
@@ -44,6 +45,9 @@ public class AccessibilitySettings extends ChromeBaseSettingsFragment
public static final String PREF_ZOOM_INFO = "zoom_info";
@@ -45,6 +46,9 @@ public class AccessibilitySettings extends ChromeBaseSettingsFragment
public static final String PREF_IMAGE_DESCRIPTIONS = "image_descriptions";
public static final String PREF_CARET_BROWSING = "caret_browsing";
+ private BooleanPreferenceDelegate mForceTabletUIDelegate;
+ static final String PREF_FORCE_TABLET_UI = "force_tablet_ui";
@@ -643,7 +630,7 @@ diff --git a/components/browser_ui/accessibility/android/java/src/org/chromium/c
private PageZoomPreference mPageZoomDefaultZoomPref;
private ChromeSwitchPreference mPageZoomIncludeOSAdjustment;
private ChromeSwitchPreference mPageZoomAlwaysShowPref;
@@ -117,6 +121,12 @@ public class AccessibilitySettings extends ChromeBaseSettingsFragment
@@ -119,6 +123,12 @@ public class AccessibilitySettings extends ChromeBaseSettingsFragment
mDelegate.getReaderAccessibilityDelegate().getValue());
readerForAccessibilityPref.setOnPreferenceChangeListener(this);
@@ -656,7 +643,7 @@ diff --git a/components/browser_ui/accessibility/android/java/src/org/chromium/c
Preference captions = findPreference(PREF_CAPTIONS);
captions.setOnPreferenceClickListener(
preference -> {
@@ -176,6 +186,9 @@ public class AccessibilitySettings extends ChromeBaseSettingsFragment
@@ -191,6 +201,9 @@ public class AccessibilitySettings extends ChromeBaseSettingsFragment
public boolean onPreferenceChange(Preference preference, Object newValue) {
if (PREF_FORCE_ENABLE_ZOOM.equals(preference.getKey())) {
mDelegate.getForceEnableZoomAccessibilityDelegate().setValue((Boolean) newValue);
@@ -18,7 +18,7 @@ License: GPL-2.0-or-later - https://spdx.org/licenses/GPL-2.0-or-later.html
.../api/settings_private/prefs_util.cc | 17 ++++
.../browser/profiles/ProfileManagerUtils.java | 5 ++
.../profiles/android/profile_manager_utils.cc | 5 ++
chrome/browser/profiles/profile_manager.cc | 15 +++-
chrome/browser/profiles/profile_manager.cc | 17 +++-
chrome/browser/profiles/profile_manager.h | 2 +
.../clear_browsing_data_dialog.html | 44 +++++++++++
.../clear_browsing_data_dialog.ts | 2 +
@@ -40,7 +40,7 @@ License: GPL-2.0-or-later - https://spdx.org/licenses/GPL-2.0-or-later.html
content/browser/storage_partition_impl.cc | 1 +
.../public/browser/browsing_data_remover.h | 7 +-
.../Add-setting-to-clear-data-on-exit.inc | 8 ++
36 files changed, 406 insertions(+), 33 deletions(-)
36 files changed, 407 insertions(+), 34 deletions(-)
create mode 100644 chrome/android/java/src/org/chromium/chrome/browser/browsing_data/ClearBrowsingDataFragmentAtStart.java
create mode 100644 chrome/browser/ui/android/strings/cromite_android_chrome_strings_grd/Add-setting-to-clear-data-on-exit.grdp
create mode 100644 cromite_flags/chrome/browser/about_flags_cc/Add-setting-to-clear-data-on-exit.inc
@@ -48,7 +48,7 @@ License: GPL-2.0-or-later - https://spdx.org/licenses/GPL-2.0-or-later.html
diff --git a/chrome/android/chrome_java_sources.gni b/chrome/android/chrome_java_sources.gni
--- a/chrome/android/chrome_java_sources.gni
+++ b/chrome/android/chrome_java_sources.gni
@@ -265,6 +265,7 @@ chrome_java_sources = [
@@ -268,6 +268,7 @@ chrome_java_sources = [
"java/src/org/chromium/chrome/browser/browsing_data/ClearBrowsingDataCheckBoxPreference.java",
"java/src/org/chromium/chrome/browser/browsing_data/ClearBrowsingDataFetcher.java",
"java/src/org/chromium/chrome/browser/browsing_data/ClearBrowsingDataFragment.java",
@@ -82,7 +82,7 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/ChromeTabbedAct
import org.chromium.chrome.browser.read_later.ReadingListBackPressHandler;
import org.chromium.chrome.browser.recent_tabs.CrossDevicePaneFactory;
import org.chromium.chrome.browser.reengagement.ReengagementNotificationController;
@@ -2224,7 +2225,11 @@ public class ChromeTabbedActivity extends ChromeActivity {
@@ -2179,7 +2180,11 @@ public class ChromeTabbedActivity extends ChromeActivity {
Intent intent = getIntent();
boolean hadCipherData =
@@ -334,7 +334,7 @@ new file mode 100644
diff --git a/chrome/app/settings_strings.grdp b/chrome/app/settings_strings.grdp
--- a/chrome/app/settings_strings.grdp
+++ b/chrome/app/settings_strings.grdp
@@ -2067,6 +2067,16 @@
@@ -2097,6 +2097,16 @@
<message name="IDS_SETTINGS_CLEAR_BROWSING_DATA" desc="Text for delete browsing data button in Privacy options">
Delete browsing data
</message>
@@ -354,9 +354,9 @@ diff --git a/chrome/app/settings_strings.grdp b/chrome/app/settings_strings.grdp
diff --git a/chrome/browser/about_flags.cc b/chrome/browser/about_flags.cc
--- a/chrome/browser/about_flags.cc
+++ b/chrome/browser/about_flags.cc
@@ -110,6 +110,7 @@
@@ -108,6 +108,7 @@
#include "components/enterprise/client_certificates/core/features.h"
#include "components/enterprise/data_controls/core/browser/features.h"
#include "components/enterprise/obfuscation/core/utils.h"
#include "components/error_page/common/error_page_switches.h"
+#include "components/favicon/core/favicon_database.h"
#include "components/feature_engagement/public/feature_constants.h"
@@ -459,7 +459,7 @@ diff --git a/chrome/browser/browsing_data/chrome_browsing_data_lifetime_manager.
diff --git a/chrome/browser/browsing_data/chrome_browsing_data_remover_delegate.cc b/chrome/browser/browsing_data/chrome_browsing_data_remover_delegate.cc
--- a/chrome/browser/browsing_data/chrome_browsing_data_remover_delegate.cc
+++ b/chrome/browser/browsing_data/chrome_browsing_data_remover_delegate.cc
@@ -350,6 +350,7 @@ void ChromeBrowsingDataRemoverDelegate::RemoveEmbedderData(
@@ -351,6 +351,7 @@ void ChromeBrowsingDataRemoverDelegate::RemoveEmbedderData(
uint64_t origin_type_mask,
base::OnceCallback<void(uint64_t)> callback) {
CHECK(((remove_mask &
@@ -467,7 +467,7 @@ diff --git a/chrome/browser/browsing_data/chrome_browsing_data_remover_delegate.
~content::BrowsingDataRemover::DATA_TYPE_AVOID_CLOSING_CONNECTIONS &
~constants::FILTERABLE_DATA_TYPES) == 0) ||
filter_builder->MatchesAllOriginsAndDomains());
@@ -453,6 +454,9 @@ void ChromeBrowsingDataRemoverDelegate::RemoveEmbedderData(
@@ -454,6 +455,9 @@ void ChromeBrowsingDataRemoverDelegate::RemoveEmbedderData(
CreateTaskCompletionClosure(TracingDataType::kHistory),
&history_task_tracker_);
}
@@ -477,7 +477,7 @@ diff --git a/chrome/browser/browsing_data/chrome_browsing_data_remover_delegate.
if (ClipboardRecentContent::GetInstance())
ClipboardRecentContent::GetInstance()->SuppressClipboardContent();
@@ -561,6 +565,11 @@ void ChromeBrowsingDataRemoverDelegate::RemoveEmbedderData(
@@ -562,6 +566,11 @@ void ChromeBrowsingDataRemoverDelegate::RemoveEmbedderData(
// and SSL host state are scoped to hosts and represent them as std::string.
// Rename the method to indicate its more general usage.
if (profile_->GetSSLHostStateDelegate()) {
@@ -489,7 +489,7 @@ diff --git a/chrome/browser/browsing_data/chrome_browsing_data_remover_delegate.
profile_->GetSSLHostStateDelegate()->Clear(
filter_builder->MatchesAllOriginsAndDomains()
? base::RepeatingCallback<bool(const std::string&)>()
@@ -589,9 +598,13 @@ void ChromeBrowsingDataRemoverDelegate::RemoveEmbedderData(
@@ -590,9 +599,13 @@ void ChromeBrowsingDataRemoverDelegate::RemoveEmbedderData(
}
device_event_log::Clear(delete_begin_, delete_end_);
@@ -503,7 +503,7 @@ diff --git a/chrome/browser/browsing_data/chrome_browsing_data_remover_delegate.
content::BackgroundTracingManager::GetInstance().DeleteTracesInDateRange(
delete_begin_, delete_end_);
@@ -1314,6 +1327,8 @@ void ChromeBrowsingDataRemoverDelegate::RemoveEmbedderData(
@@ -1318,6 +1331,8 @@ void ChromeBrowsingDataRemoverDelegate::RemoveEmbedderData(
if (should_clear_zero_suggest_and_session_token && template_url_service)
template_url_service->ClearSessionToken();
@@ -515,7 +515,7 @@ diff --git a/chrome/browser/browsing_data/chrome_browsing_data_remover_delegate.
diff --git a/chrome/browser/extensions/api/settings_private/prefs_util.cc b/chrome/browser/extensions/api/settings_private/prefs_util.cc
--- a/chrome/browser/extensions/api/settings_private/prefs_util.cc
+++ b/chrome/browser/extensions/api/settings_private/prefs_util.cc
@@ -557,6 +557,23 @@ const PrefsUtil::TypedPrefMap& PrefsUtil::GetAllowlistedKeys() {
@@ -560,6 +560,23 @@ const PrefsUtil::TypedPrefMap& PrefsUtil::GetAllowlistedKeys() {
(*s_allowlist)[browsing_data::prefs::kLastClearBrowsingDataTab] =
settings_api::PrefType::kNumber;
@@ -574,7 +574,7 @@ diff --git a/chrome/browser/profiles/android/profile_manager_utils.cc b/chrome/b
diff --git a/chrome/browser/profiles/profile_manager.cc b/chrome/browser/profiles/profile_manager.cc
--- a/chrome/browser/profiles/profile_manager.cc
+++ b/chrome/browser/profiles/profile_manager.cc
@@ -1435,6 +1435,19 @@ void ProfileManager::DoFinalInit(ProfileInfo* profile_info,
@@ -1448,6 +1448,19 @@ void ProfileManager::DoFinalInit(ProfileInfo* profile_info,
}
}
@@ -594,15 +594,18 @@ diff --git a/chrome/browser/profiles/profile_manager.cc b/chrome/browser/profile
void ProfileManager::DoFinalInitForServices(Profile* profile,
bool go_off_the_record) {
if (!do_final_services_init_ ||
@@ -2096,7 +2109,7 @@ void ProfileManager::OnBrowserClosed(Browser* browser) {
Profile* original_profile = profile->GetOriginalProfile();
@@ -2117,9 +2130,9 @@ void ProfileManager::OnBrowserClosed(Browser* browser) {
// Do nothing if the closed window is not the last window of the same profile.
for (Browser* browser_iter : *BrowserList::GetInstance()) {
- if (browser_iter->profile()->GetOriginalProfile() == original_profile)
+ if (browser_iter->profile() == profile)
return;
}
bool has_other_window = false;
ForEachCurrentBrowserWindowInterfaceOrderedByActivation(
- [original_profile, &has_other_window](BrowserWindowInterface* browser) {
+ [profile, &has_other_window](BrowserWindowInterface* browser) {
const Profile* const iter_profile = browser->GetProfile();
- if (iter_profile->GetOriginalProfile() == original_profile) {
+ if (iter_profile == profile) {
has_other_window = true;
}
return !has_other_window;
diff --git a/chrome/browser/profiles/profile_manager.h b/chrome/browser/profiles/profile_manager.h
--- a/chrome/browser/profiles/profile_manager.h
+++ b/chrome/browser/profiles/profile_manager.h
@@ -691,7 +694,7 @@ diff --git a/chrome/browser/resources/settings/clear_browsing_data_dialog/clear_
diff --git a/chrome/browser/ui/android/strings/android_chrome_strings.grd b/chrome/browser/ui/android/strings/android_chrome_strings.grd
--- a/chrome/browser/ui/android/strings/android_chrome_strings.grd
+++ b/chrome/browser/ui/android/strings/android_chrome_strings.grd
@@ -1425,6 +1425,9 @@ Your Google account may have other forms of browsing history like searches and a
@@ -1434,6 +1434,9 @@ Your Google account may have other forms of browsing history like searches and a
<message name="IDS_ANDROID_APP_HISTORY_OPEN_FULL_OTHER_FORMS" desc="The informational message at the top of the history page letting users know that app-specific history may be missing some entries, followed by the info on the other forms of browing history.">
Some of your history might not show up here. To see all your Chrome history, open full Chrome history. Also, your Google Account may have other forms of browsing history at <ph name="BEGIN_LINK">&lt;link&gt;</ph>myactivity.google.com<ph name="END_LINK">&lt;/link&gt;</ph>.
</message>
@@ -718,7 +721,7 @@ new file mode 100644
diff --git a/chrome/browser/ui/webui/settings/settings_localized_strings_provider.cc b/chrome/browser/ui/webui/settings/settings_localized_strings_provider.cc
--- a/chrome/browser/ui/webui/settings/settings_localized_strings_provider.cc
+++ b/chrome/browser/ui/webui/settings/settings_localized_strings_provider.cc
@@ -2042,6 +2042,7 @@ void AddPrivacyStrings(content::WebUIDataSource* html_source,
@@ -2192,6 +2192,7 @@ void AddPrivacyStrings(content::WebUIDataSource* html_source,
{"clearedData", IDS_SETTINGS_CLEARED_DATA},
{"clearBrowsingData", IDS_SETTINGS_CLEAR_BROWSING_DATA},
{"clearBrowsingDataDescription", IDS_SETTINGS_CLEAR_DATA_DESCRIPTION},
@@ -938,7 +941,7 @@ diff --git a/components/favicon/core/favicon_database.cc b/components/favicon/co
// Description of database tables:
//
// icon_mapping
@@ -507,6 +511,11 @@ bool FaviconDatabase::SetFaviconBitmapLastUpdateTime(FaviconBitmapID bitmap_id,
@@ -505,6 +509,11 @@ bool FaviconDatabase::SetFaviconBitmapLastUpdateTime(FaviconBitmapID bitmap_id,
bool FaviconDatabase::SetFaviconsOutOfDateBetween(base::Time begin,
base::Time end) {
@@ -965,7 +968,7 @@ diff --git a/components/favicon/core/favicon_database.h b/components/favicon/cor
diff --git a/components/search_engines/template_url_service.cc b/components/search_engines/template_url_service.cc
--- a/components/search_engines/template_url_service.cc
+++ b/components/search_engines/template_url_service.cc
@@ -925,6 +925,7 @@ void TemplateURLService::RemoveAutoGeneratedForUrlsBetween(
@@ -924,6 +924,7 @@ void TemplateURLService::RemoveAutoGeneratedForUrlsBetween(
if (turl->date_created() >= created_after &&
(created_before.is_null() || turl->date_created() < created_before) &&
turl->safe_for_autoreplace() && turl->prepopulate_id() == 0 &&
@@ -988,7 +991,7 @@ diff --git a/content/browser/btm/btm_service_impl.cc b/content/browser/btm/btm_s
diff --git a/content/browser/storage_partition_impl.cc b/content/browser/storage_partition_impl.cc
--- a/content/browser/storage_partition_impl.cc
+++ b/content/browser/storage_partition_impl.cc
@@ -1550,6 +1550,7 @@ void StoragePartitionImpl::Initialize(
@@ -1551,6 +1551,7 @@ void StoragePartitionImpl::Initialize(
.AppendASCII("Code Cache");
}
DCHECK_GE(settings.size_in_bytes(), 0);
@@ -110,7 +110,7 @@ diff --git a/components/webauthn/android/java/src/org/chromium/components/webaut
import org.chromium.components.ukm.UkmRecorder;
import org.chromium.content_public.browser.RenderFrameHost;
import org.chromium.content_public.browser.WebContents;
@@ -169,8 +171,7 @@ public final class AuthenticatorImpl implements Authenticator, AuthenticationCon
@@ -170,8 +172,7 @@ public final class AuthenticatorImpl implements Authenticator, AuthenticationCon
mIsPaymentRequest = options.isPaymentCredentialCreation;
mMakeCredentialCallback = callback;
mIsOperationPending = true;
@@ -120,7 +120,7 @@ diff --git a/components/webauthn/android/java/src/org/chromium/components/webaut
recordOutcomeEvent(MakeCredentialOutcome.OTHER_FAILURE);
onError(AuthenticatorStatus.NOT_IMPLEMENTED);
return;
@@ -234,8 +235,7 @@ public final class AuthenticatorImpl implements Authenticator, AuthenticationCon
@@ -235,8 +236,7 @@ public final class AuthenticatorImpl implements Authenticator, AuthenticationCon
mIsConditionalRequest = options.mediation == Mediation.CONDITIONAL;
mIsImmediateRequest = options.mediation == Mediation.IMMEDIATE;
@@ -130,7 +130,7 @@ diff --git a/components/webauthn/android/java/src/org/chromium/components/webaut
|| options.publicKey == null) {
recordOutcomeEvent(GetAssertionOutcome.OTHER_FAILURE);
onError(AuthenticatorStatus.NOT_IMPLEMENTED);
@@ -260,12 +260,11 @@ public final class AuthenticatorImpl implements Authenticator, AuthenticationCon
@@ -277,12 +277,11 @@ public final class AuthenticatorImpl implements Authenticator, AuthenticationCon
}
private boolean couldSupportConditionalMediation() {
@@ -145,7 +145,7 @@ diff --git a/components/webauthn/android/java/src/org/chromium/components/webaut
}
@Override
@@ -339,26 +338,20 @@ public final class AuthenticatorImpl implements Authenticator, AuthenticationCon
@@ -356,26 +355,20 @@ public final class AuthenticatorImpl implements Authenticator, AuthenticationCon
capabilities.add(
createWebAuthnClientCapability(
AuthenticatorConstants.CAPABILITY_CONDITIONAL_GET,
@@ -174,9 +174,9 @@ diff --git a/components/webauthn/android/java/src/org/chromium/components/webaut
- .WEBAUTHN_IMMEDIATE_GET)
- && isUvpaa));
+ false));
callback.call(capabilities.toArray(new WebAuthnClientCapability[0]));
});
}
boolean signal_supported =
isUvpaa
&& DeviceFeatureMap.isEnabled(
diff --git a/components/webauthn/android/java/src/org/chromium/components/webauthn/WebauthnFeatures.java b/components/webauthn/android/java/src/org/chromium/components/webauthn/WebauthnFeatures.java
--- a/components/webauthn/android/java/src/org/chromium/components/webauthn/WebauthnFeatures.java
+++ b/components/webauthn/android/java/src/org/chromium/components/webauthn/WebauthnFeatures.java
@@ -302,7 +302,7 @@ diff --git a/components/webauthn/features.h b/components/webauthn/features.h
diff --git a/device/fido/features.cc b/device/fido/features.cc
--- a/device/fido/features.cc
+++ b/device/fido/features.cc
@@ -154,6 +154,7 @@ BASE_FEATURE(kWebAuthnImmediateGet,
@@ -171,6 +171,7 @@ BASE_FEATURE(kWebAuthnImmediateGet,
#else
base::FEATURE_ENABLED_BY_DEFAULT);
#endif // BUILDFLAG(IS_ANDROID)
@@ -310,7 +310,7 @@ diff --git a/device/fido/features.cc b/device/fido/features.cc
BASE_FEATURE_PARAM(int,
kWebAuthnImmediateMediationTimeoutMilliseconds,
@@ -166,6 +167,7 @@ BASE_FEATURE_PARAM(int,
@@ -183,6 +184,7 @@ BASE_FEATURE_PARAM(int,
BASE_FEATURE(kWebAuthnImmediateGetAutoselect,
"WebAuthenticationImmediateGetAutoselect",
base::FEATURE_ENABLED_BY_DEFAULT);
@@ -19,10 +19,10 @@ License: GPL-3.0-only - https://spdx.org/licenses/GPL-3.0-only.html
diff --git a/chrome/android/java/src/org/chromium/chrome/browser/homepage/HomepageManager.java b/chrome/android/java/src/org/chromium/chrome/browser/homepage/HomepageManager.java
--- a/chrome/android/java/src/org/chromium/chrome/browser/homepage/HomepageManager.java
+++ b/chrome/android/java/src/org/chromium/chrome/browser/homepage/HomepageManager.java
@@ -159,10 +159,6 @@ public class HomepageManager
@@ -164,10 +164,6 @@ public class HomepageManager
* tab page if the homepage button is force enabled via flag.
*/
public GURL getDefaultHomepageGurl() {
public GURL getDefaultHomepageGurl(boolean isIncognito) {
- if (PartnerBrowserCustomizations.getInstance().isHomepageProviderAvailableAndEnabled()) {
- return assumeNonNull(PartnerBrowserCustomizations.getInstance().getHomePageUrl());
- }
File diff suppressed because it is too large Load Diff
@@ -33,7 +33,6 @@ License: GPL-3.0-only - https://spdx.org/licenses/GPL-3.0-only.html
.../flags/android/adblock_native_gateway.cc | 31 ++
.../browser/flags/AdBlockNativeGateway.java | 30 ++
.../net/system_network_context_manager.cc | 4 +
.../sessions/session_restore_android.cc | 7 +-
.../strings/android_chrome_strings.grd | 14 +
chrome/common/pref_names.h | 5 +
.../strings/android/site_settings.grdp | 3 +
@@ -51,7 +50,7 @@ License: GPL-3.0-only - https://spdx.org/licenses/GPL-3.0-only.html
.../browser/subresource_filter_features.cc | 118 +-------
.../core/browser/verified_ruleset_dealer.cc | 4 +
.../core/common/indexed_ruleset.cc | 5 +-
39 files changed, 1287 insertions(+), 129 deletions(-)
38 files changed, 1282 insertions(+), 127 deletions(-)
create mode 100644 chrome/android/java/res/layout/adblock_editor.xml
create mode 100644 chrome/android/java/res/xml/adblock_preferences.xml
create mode 100644 chrome/android/java/src/org/chromium/chrome/browser/settings/AdBlockEditor.java
@@ -66,7 +65,7 @@ License: GPL-3.0-only - https://spdx.org/licenses/GPL-3.0-only.html
diff --git a/chrome/android/BUILD.gn b/chrome/android/BUILD.gn
--- a/chrome/android/BUILD.gn
+++ b/chrome/android/BUILD.gn
@@ -324,6 +324,7 @@ if (_is_default_toolchain) {
@@ -325,6 +325,7 @@ if (_is_default_toolchain) {
"//chrome/android/features/tab_ui/public:ui_java_resources",
"//chrome/android/modules/stack_unwinder/provider:java",
"//chrome/android/webapk/libs/client:client_java",
@@ -77,7 +76,7 @@ diff --git a/chrome/android/BUILD.gn b/chrome/android/BUILD.gn
diff --git a/chrome/android/chrome_java_resources.gni b/chrome/android/chrome_java_resources.gni
--- a/chrome/android/chrome_java_resources.gni
+++ b/chrome/android/chrome_java_resources.gni
@@ -432,6 +432,7 @@ chrome_java_resources = [
@@ -439,6 +439,7 @@ chrome_java_resources = [
"java/res/layout/account_divider_preference.xml",
"java/res/layout/account_management_account_row.xml",
"java/res/layout/app_history_filter.xml",
@@ -85,7 +84,7 @@ diff --git a/chrome/android/chrome_java_resources.gni b/chrome/android/chrome_ja
"java/res/layout/auto_sign_in_first_run_dialog.xml",
"java/res/layout/autofill_billing_address_dropdown.xml",
"java/res/layout/autofill_card_name_and_number.xml",
@@ -627,6 +628,7 @@ chrome_java_resources = [
@@ -639,6 +640,7 @@ chrome_java_resources = [
"java/res/xml/account_management_preferences.xml",
"java/res/xml/ad_services_config.xml",
"java/res/xml/appearance_preferences.xml",
@@ -96,7 +95,7 @@ diff --git a/chrome/android/chrome_java_resources.gni b/chrome/android/chrome_ja
diff --git a/chrome/android/chrome_java_sources.gni b/chrome/android/chrome_java_sources.gni
--- a/chrome/android/chrome_java_sources.gni
+++ b/chrome/android/chrome_java_sources.gni
@@ -918,6 +918,8 @@ chrome_java_sources = [
@@ -929,6 +929,8 @@ chrome_java_sources = [
"java/src/org/chromium/chrome/browser/permissions/PermissionBlockedDialog.java",
"java/src/org/chromium/chrome/browser/permissions/PermissionUpdateRequester.java",
"java/src/org/chromium/chrome/browser/photo_picker/DecoderServiceImpl.java",
@@ -180,7 +179,7 @@ new file mode 100644
diff --git a/chrome/android/java/res/values/styles.xml b/chrome/android/java/res/values/styles.xml
--- a/chrome/android/java/res/values/styles.xml
+++ b/chrome/android/java/res/values/styles.xml
@@ -312,6 +312,24 @@ found in the LICENSE file.
@@ -317,6 +317,24 @@ found in the LICENSE file.
</item>
</style>
@@ -442,7 +441,7 @@ new file mode 100644
diff --git a/chrome/android/java/src/org/chromium/chrome/browser/settings/SettingsActivity.java b/chrome/android/java/src/org/chromium/chrome/browser/settings/SettingsActivity.java
--- a/chrome/android/java/src/org/chromium/chrome/browser/settings/SettingsActivity.java
+++ b/chrome/android/java/src/org/chromium/chrome/browser/settings/SettingsActivity.java
@@ -88,6 +88,8 @@ import java.util.HashMap;
@@ -87,6 +87,8 @@ import java.util.HashMap;
import java.util.Locale;
import java.util.Map;
@@ -451,7 +450,7 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/settings/Settin
/**
* The Chrome settings activity.
*
@@ -948,6 +950,7 @@ public class SettingsActivity extends ChromeBaseAppCompatActivity
@@ -1016,6 +1018,7 @@ public class SettingsActivity extends ChromeBaseAppCompatActivity
if (!MAIN_FRAGMENT_TAG.equals(fragment.getTag())) {
return;
}
@@ -462,7 +461,7 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/settings/Settin
diff --git a/chrome/app/generated_resources.grd b/chrome/app/generated_resources.grd
--- a/chrome/app/generated_resources.grd
+++ b/chrome/app/generated_resources.grd
@@ -17103,6 +17103,16 @@ Please help our engineers fix this problem. Tell us what happened right before y
@@ -17255,6 +17255,16 @@ Please help our engineers fix this problem. Tell us what happened right before y
Never show this again.
</message>
@@ -533,7 +532,7 @@ diff --git a/chrome/browser/browser_process.h b/chrome/browser/browser_process.h
diff --git a/chrome/browser/browser_process_impl.cc b/chrome/browser/browser_process_impl.cc
--- a/chrome/browser/browser_process_impl.cc
+++ b/chrome/browser/browser_process_impl.cc
@@ -1270,6 +1270,34 @@ BrowserProcessImpl::component_updater() {
@@ -1285,6 +1285,34 @@ BrowserProcessImpl::component_updater() {
return component_updater_.get();
}
@@ -571,7 +570,7 @@ diff --git a/chrome/browser/browser_process_impl.cc b/chrome/browser/browser_pro
diff --git a/chrome/browser/browser_process_impl.h b/chrome/browser/browser_process_impl.h
--- a/chrome/browser/browser_process_impl.h
+++ b/chrome/browser/browser_process_impl.h
@@ -212,6 +212,7 @@ class BrowserProcessImpl : public BrowserProcess,
@@ -211,6 +211,7 @@ class BrowserProcessImpl : public BrowserProcess,
#endif
component_updater::ComponentUpdateService* component_updater() override;
@@ -579,7 +578,7 @@ diff --git a/chrome/browser/browser_process_impl.h b/chrome/browser/browser_proc
MediaFileSystemRegistry* media_file_system_registry() override;
WebRtcLogUploader* webrtc_log_uploader() override;
network_time::NetworkTimeTracker* network_time_tracker() override;
@@ -429,6 +430,7 @@ class BrowserProcessImpl : public BrowserProcess,
@@ -428,6 +429,7 @@ class BrowserProcessImpl : public BrowserProcess,
// to concerns over integrity of data shared between profiles,
// but some users of component updater only install per-user.
std::unique_ptr<component_updater::ComponentUpdateService> component_updater_;
@@ -590,7 +589,7 @@ diff --git a/chrome/browser/browser_process_impl.h b/chrome/browser/browser_proc
diff --git a/chrome/browser/chrome_browser_main.cc b/chrome/browser/chrome_browser_main.cc
--- a/chrome/browser/chrome_browser_main.cc
+++ b/chrome/browser/chrome_browser_main.cc
@@ -390,6 +390,9 @@ StartupProfileInfo CreateInitialProfile(
@@ -429,6 +429,9 @@ StartupProfileInfo CreateInitialProfile(
// missing code in the above test.
CHECK(profile_info.profile) << "Cannot get default profile.";
@@ -712,23 +711,6 @@ diff --git a/chrome/browser/net/system_network_context_manager.cc b/chrome/brows
// Static auth params
registry->RegisterStringPref(prefs::kAuthSchemes,
"basic,digest,ntlm,negotiate");
diff --git a/chrome/browser/sessions/session_restore_android.cc b/chrome/browser/sessions/session_restore_android.cc
--- a/chrome/browser/sessions/session_restore_android.cc
+++ b/chrome/browser/sessions/session_restore_android.cc
@@ -58,8 +58,11 @@ content::WebContents* SessionRestore::RestoreForeignSessionTab(
DCHECK(current_tab);
// If swapped, return the current tab's most up-to-date web contents.
if (disposition == WindowOpenDisposition::CURRENT_TAB) {
- current_tab->SwapWebContents(std::move(new_web_contents), false, false);
- return current_tab->web_contents();
+ int active_tab_index = tab_model->GetActiveIndex();
+ tab_model->CreateTab(current_tab, new_web_contents.release(),
+ disposition == WindowOpenDisposition::NEW_BACKGROUND_TAB);
+ tab_model->CloseTabAt(active_tab_index);
+ return raw_new_web_contents;
}
DCHECK(disposition == WindowOpenDisposition::NEW_FOREGROUND_TAB ||
disposition == WindowOpenDisposition::NEW_BACKGROUND_TAB);
diff --git a/chrome/browser/ui/android/strings/android_chrome_strings.grd b/chrome/browser/ui/android/strings/android_chrome_strings.grd
--- a/chrome/browser/ui/android/strings/android_chrome_strings.grd
+++ b/chrome/browser/ui/android/strings/android_chrome_strings.grd
@@ -756,7 +738,7 @@ diff --git a/chrome/browser/ui/android/strings/android_chrome_strings.grd b/chro
diff --git a/chrome/common/pref_names.h b/chrome/common/pref_names.h
--- a/chrome/common/pref_names.h
+++ b/chrome/common/pref_names.h
@@ -2931,6 +2931,11 @@ inline constexpr char kAudioCaptureAllowed[] = "hardware.audio_capture_enabled";
@@ -2942,6 +2942,11 @@ inline constexpr char kAudioCaptureAllowed[] = "hardware.audio_capture_enabled";
inline constexpr char kAudioCaptureAllowedUrls[] =
"hardware.audio_capture_allowed_urls";
@@ -771,7 +753,7 @@ diff --git a/chrome/common/pref_names.h b/chrome/common/pref_names.h
diff --git a/components/browser_ui/strings/android/site_settings.grdp b/components/browser_ui/strings/android/site_settings.grdp
--- a/components/browser_ui/strings/android/site_settings.grdp
+++ b/components/browser_ui/strings/android/site_settings.grdp
@@ -406,6 +406,9 @@
@@ -421,6 +421,9 @@
<message name="IDS_INTRUSIVE_ADS_INFORMATION" desc="The extra information at the top of the Site Details page when the site tends to show intrusive ads">
This site shows intrusive or misleading ads
</message>
@@ -1613,7 +1595,7 @@ diff --git a/components/subresource_filter/content/browser/content_subresource_f
web_contents_helper_(web_contents_helper) {}
ContentSubresourceFilterThrottleManager::
@@ -629,6 +633,17 @@ ContentSubresourceFilterThrottleManager::
@@ -628,6 +632,17 @@ ContentSubresourceFilterThrottleManager::
throttle->NotifyPageActivationWithRuleset(EnsureRulesetHandle(),
ad_tagging_state);
}
@@ -24,8 +24,8 @@ Require: bromite-build-utils.patch
.../site_details_permission.html | 8 +-
.../site_settings/site_details_permission.ts | 44 ++
.../site_settings/site_settings_mixin.ts | 20 +-
.../site_settings/site_settings_page.ts | 29 +-
.../site_settings/site_settings_util.ts | 55 +++
.../site_settings_page/site_settings_page.ts | 30 +-
chrome/browser/ui/BUILD.gn | 2 +
.../controls/rich_controls_container_view.h | 7 +
.../views/page_info/page_info_bubble_view.cc | 2 +-
@@ -85,7 +85,7 @@ Require: bromite-build-utils.patch
.../platform/web_content_settings_client.h | 13 +
.../execution_context/execution_context.cc | 16 +
.../execution_context/execution_context.h | 5 +
74 files changed, 1972 insertions(+), 108 deletions(-)
74 files changed, 1971 insertions(+), 108 deletions(-)
create mode 100644 components/browser_ui/settings/android/java/res/layout/preference_spinner_single_widget.xml
create mode 100644 components/browser_ui/site_settings/android/java/src/org/chromium/components/browser_ui/site_settings/BromiteCustomContentSetting.java
create mode 100644 components/browser_ui/site_settings/android/java/src/org/chromium/components/browser_ui/site_settings/BromiteCustomContentSettingImpl.java
@@ -99,7 +99,7 @@ Require: bromite-build-utils.patch
diff --git 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
--- 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
@@ -69,6 +69,10 @@ import org.chromium.url.GURL;
@@ -70,6 +70,10 @@ import org.chromium.url.GURL;
import java.util.List;
import java.util.Set;
@@ -110,7 +110,7 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/site_settings/C
/** A SiteSettingsDelegate instance that contains Chrome-specific Site Settings logic. */
@NullMarked
public class ChromeSiteSettingsDelegate implements SiteSettingsDelegate {
@@ -242,7 +246,7 @@ public class ChromeSiteSettingsDelegate implements SiteSettingsDelegate {
@@ -239,7 +243,7 @@ public class ChromeSiteSettingsDelegate implements SiteSettingsDelegate {
@Override
public boolean isHelpAndFeedbackEnabled() {
@@ -119,7 +119,7 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/site_settings/C
}
@Override
@@ -380,6 +384,17 @@ public class ChromeSiteSettingsDelegate implements SiteSettingsDelegate {
@@ -377,6 +381,17 @@ public class ChromeSiteSettingsDelegate implements SiteSettingsDelegate {
return mPrivacySandboxBridge.getRelatedWebsiteSetOwner(memberOrigin);
}
@@ -152,7 +152,7 @@ diff --git a/chrome/browser/content_settings/page_specific_content_settings_dele
diff --git a/chrome/browser/resources/settings/BUILD.gn b/chrome/browser/resources/settings/BUILD.gn
--- a/chrome/browser/resources/settings/BUILD.gn
+++ b/chrome/browser/resources/settings/BUILD.gn
@@ -353,6 +353,7 @@ build_webui("build") {
@@ -358,6 +358,7 @@ build_webui("build") {
"privacy_sandbox/privacy_sandbox_browser_proxy.ts",
"relaunch_mixin.ts",
"reset_page/reset_browser_proxy.ts",
@@ -160,10 +160,10 @@ diff --git a/chrome/browser/resources/settings/BUILD.gn b/chrome/browser/resourc
"route.ts",
"router.ts",
"safety_hub/safety_hub_browser_proxy.ts",
@@ -366,7 +367,6 @@ build_webui("build") {
@@ -371,7 +372,6 @@ build_webui("build") {
"site_settings/constants.ts",
"site_settings/site_settings_mixin.ts",
"site_settings/site_settings_prefs_browser_proxy.ts",
"site_settings/site_settings_browser_proxy.ts",
- "site_settings/site_settings_util.ts",
"site_settings/website_usage_browser_proxy.ts",
"time.ts",
@@ -171,7 +171,7 @@ diff --git a/chrome/browser/resources/settings/BUILD.gn b/chrome/browser/resourc
diff --git a/chrome/browser/resources/settings/privacy_page/privacy_page_index.html b/chrome/browser/resources/settings/privacy_page/privacy_page_index.html
--- a/chrome/browser/resources/settings/privacy_page/privacy_page_index.html
+++ b/chrome/browser/resources/settings/privacy_page/privacy_page_index.html
@@ -572,4 +572,5 @@
@@ -623,4 +623,5 @@
</zoom-levels>
</template>
@@ -395,7 +395,7 @@ diff --git a/chrome/browser/resources/settings/site_settings/settings_category_d
diff --git a/chrome/browser/resources/settings/site_settings/site_details.html b/chrome/browser/resources/settings/site_settings/site_details.html
--- a/chrome/browser/resources/settings/site_settings/site_details.html
+++ b/chrome/browser/resources/settings/site_settings/site_details.html
@@ -332,5 +332,6 @@
@@ -334,5 +334,6 @@
label="$i18n{siteSettingsLocalNetworkAccess}">
</site-details-permission>
</template>
@@ -405,7 +405,7 @@ diff --git a/chrome/browser/resources/settings/site_settings/site_details.html b
diff --git a/chrome/browser/resources/settings/site_settings/site_details.ts b/chrome/browser/resources/settings/site_settings/site_details.ts
--- a/chrome/browser/resources/settings/site_settings/site_details.ts
+++ b/chrome/browser/resources/settings/site_settings/site_details.ts
@@ -69,8 +69,39 @@ export class SiteDetailsElement extends SiteDetailsElementBase {
@@ -71,8 +71,39 @@ export class SiteDetailsElement extends SiteDetailsElementBase {
return 'site-details';
}
@@ -449,7 +449,7 @@ diff --git a/chrome/browser/resources/settings/site_settings/site_details.ts b/c
diff --git a/chrome/browser/resources/settings/site_settings/site_details_permission.html b/chrome/browser/resources/settings/site_settings/site_details_permission.html
--- a/chrome/browser/resources/settings/site_settings/site_details_permission.html
+++ b/chrome/browser/resources/settings/site_settings/site_details_permission.html
@@ -57,7 +57,9 @@
@@ -58,7 +58,9 @@
</option>
<option id="allow" value$="[[contentSettingEnum_.ALLOW]]"
hidden$="[[!showAllowedSetting_(category)]]">
@@ -460,7 +460,7 @@ diff --git a/chrome/browser/resources/settings/site_settings/site_details_permis
</option>
<option id="block" value$="[[contentSettingEnum_.BLOCK]]">
[[blockSettingString_(
@@ -68,7 +70,9 @@
@@ -69,7 +71,9 @@
<option id="ask" value$="[[contentSettingEnum_.ASK]]"
hidden$="[[!showAskSetting_(category, site.setting,
site.source)]]">
@@ -482,8 +482,8 @@ diff --git a/chrome/browser/resources/settings/site_settings/site_details_permis
import {ChooserType, ContentSetting, ContentSettingsTypes, SiteSettingSource} from './constants.js';
import {getTemplate} from './site_details_permission.html.js';
@@ -293,14 +294,27 @@ export class SiteDetailsPermissionElement extends
return '';
@@ -304,14 +305,27 @@ export class SiteDetailsPermissionElement extends
return this.i18n('siteSettingsActionBlockOnUnfamiliarSitesDefaultMenu');
}
+ let obj = this.getSettingData(category);
@@ -510,7 +510,7 @@ diff --git a/chrome/browser/resources/settings/site_settings/site_details_permis
if (this.useCustomSoundLabels_(category)) {
return this.i18n('siteSettingsActionMuteDefault');
}
@@ -319,12 +333,40 @@ export class SiteDetailsPermissionElement extends
@@ -330,12 +344,40 @@ export class SiteDetailsPermissionElement extends
private blockSettingString_(
category: ContentSettingsTypes, blockString: string,
muteString: string): string {
@@ -551,7 +551,7 @@ diff --git a/chrome/browser/resources/settings/site_settings/site_details_permis
/**
* @return true if |this| should be hidden.
*/
@@ -415,6 +457,8 @@ export class SiteDetailsPermissionElement extends
@@ -426,6 +468,8 @@ export class SiteDetailsPermissionElement extends
private showAskSetting_(
category: ContentSettingsTypes, setting: ContentSetting,
source: SiteSettingSource): boolean {
@@ -569,8 +569,8 @@ diff --git a/chrome/browser/resources/settings/site_settings/site_settings_mixin
import type {ContentSettingsTypes} from './constants.js';
-import {SiteSettingSource} from './constants.js';
+import {SiteSettingSource, ContentSetting} from './constants.js';
import type {RawSiteException,SiteException,SiteSettingsPrefsBrowserProxy} from './site_settings_prefs_browser_proxy.js';
import {SiteSettingsPrefsBrowserProxyImpl} from './site_settings_prefs_browser_proxy.js';
import type {RawSiteException,SiteException,SiteSettingsBrowserProxy} from './site_settings_browser_proxy.js';
import {SiteSettingsBrowserProxyImpl} from './site_settings_browser_proxy.js';
+import {loadTimeData} from '../i18n_setup.js';
// clang-format on
@@ -599,13 +599,70 @@ diff --git a/chrome/browser/resources/settings/site_settings/site_settings_mixin
* @param originOrPattern The origin/pattern to convert to URL.
@@ -166,6 +182,8 @@ export const SiteSettingsMixin = dedupingMixin(
export interface SiteSettingsMixinInterface {
browserProxy: SiteSettingsPrefsBrowserProxy;
browserProxy: SiteSettingsBrowserProxy;
category: ContentSettingsTypes;
+ computeIsSettingAsk(setting: string): boolean;
+ getSettingData(category: ContentSettingsTypes): any;
originRepresentation(origin: string): string;
toUrl(originOrPattern: string): URL|null;
expandSiteException(exception: RawSiteException): SiteException;
diff --git a/chrome/browser/resources/settings/site_settings/site_settings_page.ts b/chrome/browser/resources/settings/site_settings/site_settings_page.ts
--- a/chrome/browser/resources/settings/site_settings/site_settings_page.ts
+++ b/chrome/browser/resources/settings/site_settings/site_settings_page.ts
@@ -51,7 +51,7 @@ function getCategoryItemMap(): Map<ContentSettingsTypes, CategoryListItem> {
}
// The following list is ordered alphabetically by |id|. The order in which
// these appear in the UI is determined elsewhere in this file.
- const categoryList: CategoryListItem[] = [
+ let categoryList: CategoryListItem[] = [
{
route: routes.SITE_SETTINGS_ADS,
id: Id.ADS,
@@ -452,10 +452,35 @@ function getCategoryItemMap(): Map<ContentSettingsTypes, CategoryListItem> {
icon: 'privacy:cookie',
},
];
+ for (let index=0; index < loadTimeData.getInteger("br_cs_count"); index++) {
+ let obj = JSON.parse(loadTimeData.getString("br_cs_" + index));
+ let name = obj["name"];
+
+ if (!categoryList.find(x=> x.id == name)) {
+ categoryList.push({
+ route: (routes as any)[`SITE_SETTINGS_${name.toUpperCase()}`],
+ id: name,
+ label: `brSiteSettings${name}`,
+ icon: `br-settings:${name}`,
+ enabledLabel: `brSiteSettings${name}Allowed`,
+ disabledLabel: `brSiteSettings${name}Blocked`,
+ });
+ }
+ }
categoryItemMap = new Map(categoryList.map(item => [item.id, item]));
return categoryItemMap;
}
+function buildBromiteItemListFromIds(orderedIdList: ContentSettingsTypes[]):
+ CategoryListItem[] {
+ for (let index=0; index < loadTimeData.getInteger("br_cs_count"); index++) {
+ let obj = JSON.parse(loadTimeData.getString("br_cs_" + index));
+ let name = obj["name"];
+ orderedIdList.push(name);
+ }
+ return buildItemListFromIds(orderedIdList);
+}
+
function buildItemListFromIds(orderedIdList: ContentSettingsTypes[]):
CategoryListItem[] {
const map = getCategoryItemMap();
@@ -510,7 +535,7 @@ export class SettingsSiteSettingsPageElement extends
Id.NOTIFICATIONS,
Id.STORAGE_ACCESS,
]),
- permissionsAdvanced: buildItemListFromIds([
+ permissionsAdvanced: buildBromiteItemListFromIds([
Id.BACKGROUND_SYNC,
Id.SENSORS,
Id.AUTOMATIC_DOWNLOADS,
diff --git a/chrome/browser/resources/settings/site_settings/site_settings_util.ts b/chrome/browser/resources/settings/site_settings/site_settings_util.ts
--- a/chrome/browser/resources/settings/site_settings/site_settings_util.ts
+++ b/chrome/browser/resources/settings/site_settings/site_settings_util.ts
@@ -678,76 +735,18 @@ diff --git a/chrome/browser/resources/settings/site_settings/site_settings_util.
assertNotReached();
}
}
diff --git a/chrome/browser/resources/settings/site_settings_page/site_settings_page.ts b/chrome/browser/resources/settings/site_settings_page/site_settings_page.ts
--- a/chrome/browser/resources/settings/site_settings_page/site_settings_page.ts
+++ b/chrome/browser/resources/settings/site_settings_page/site_settings_page.ts
@@ -51,7 +51,7 @@ function getCategoryItemMap(): Map<ContentSettingsTypes, CategoryListItem> {
}
// The following list is ordered alphabetically by |id|. The order in which
// these appear in the UI is determined elsewhere in this file.
- const categoryList: CategoryListItem[] = [
+ let categoryList: CategoryListItem[] = [
{
route: routes.SITE_SETTINGS_ADS,
id: Id.ADS,
@@ -452,10 +452,36 @@ function getCategoryItemMap(): Map<ContentSettingsTypes, CategoryListItem> {
icon: 'privacy:cookie',
},
];
+ for (let index=0; index < loadTimeData.getInteger("br_cs_count"); index++) {
+ let obj = JSON.parse(loadTimeData.getString("br_cs_" + index));
+ let name = obj["name"];
+
+ if (!categoryList.find(x=> x.id == name)) {
+ categoryList.push({
+ route: (routes as any)[`SITE_SETTINGS_${name.toUpperCase()}`],
+ id: name,
+ label: `brSiteSettings${name}`,
+ icon: `br-settings:${name}`,
+ enabledLabel: `brSiteSettings${name}Allowed`,
+ disabledLabel: `brSiteSettings${name}Blocked`,
+ });
+ }
+ }
+
categoryItemMap = new Map(categoryList.map(item => [item.id, item]));
return categoryItemMap;
}
+function buildBromiteItemListFromIds(orderedIdList: ContentSettingsTypes[]):
+ CategoryListItem[] {
+ for (let index=0; index < loadTimeData.getInteger("br_cs_count"); index++) {
+ let obj = JSON.parse(loadTimeData.getString("br_cs_" + index));
+ let name = obj["name"];
+ orderedIdList.push(name);
+ }
+ return buildItemListFromIds(orderedIdList);
+}
+
function buildItemListFromIds(orderedIdList: ContentSettingsTypes[]):
CategoryListItem[] {
const map = getCategoryItemMap();
@@ -546,7 +572,7 @@ export class SettingsSiteSettingsPageElement extends
Id.IMAGES,
Id.POPUPS,
]),
- contentAdvanced: buildItemListFromIds([
+ contentAdvanced: buildBromiteItemListFromIds([
Id.SOUND,
Id.ADS,
Id.ZOOM_LEVELS,
diff --git a/chrome/browser/ui/BUILD.gn b/chrome/browser/ui/BUILD.gn
--- a/chrome/browser/ui/BUILD.gn
+++ b/chrome/browser/ui/BUILD.gn
@@ -1581,6 +1581,7 @@ static_library("ui") {
"//components/commerce/core/mojom:mojo_bindings",
@@ -1606,6 +1606,7 @@ static_library("ui") {
"//components/commerce/core/webui",
"//components/contextual_search:public",
"//components/endpoint_fetcher",
+ "//components/content_settings/core/browser:browser",
"//components/enterprise/common:files_scan_data",
"//components/feedback/proto",
"//components/headless/console_message_logger",
@@ -4719,6 +4720,7 @@ static_library("ui") {
@@ -4761,6 +4762,7 @@ static_library("ui") {
"//components/power_bookmarks/core",
"//components/power_bookmarks/storage",
"//components/prefs",
@@ -1226,7 +1225,7 @@ diff --git a/chrome/browser/ui/webui/settings/settings_localized_strings_provide
#include "build/branding_buildflags.h"
#include "build/build_config.h"
#include "build/buildflag.h"
@@ -75,6 +76,9 @@
@@ -74,6 +75,9 @@
#include "components/dom_distiller/core/dom_distiller_features.h"
#include "components/google/core/common/google_util.h"
#include "components/history/core/common/pref_names.h"
@@ -1236,7 +1235,7 @@ diff --git a/chrome/browser/ui/webui/settings/settings_localized_strings_provide
#include "components/password_manager/core/browser/leak_detection_dialog_utils.h"
#include "components/password_manager/core/browser/manage_passwords_referrer.h"
#include "components/password_manager/core/common/password_manager_features.h"
@@ -3885,6 +3889,56 @@ void AddLocalizedStrings(content::WebUIDataSource* html_source,
@@ -4048,6 +4052,56 @@ void AddLocalizedStrings(content::WebUIDataSource* html_source,
policy_indicator::AddLocalizedStrings(html_source);
AddSecurityKeysStrings(html_source);
@@ -1305,7 +1304,7 @@ diff --git a/chrome/browser/ui/webui/settings/site_settings_helper.cc b/chrome/b
#include "components/content_settings/core/common/content_settings.h"
#include "components/content_settings/core/common/content_settings_pattern.h"
#include "components/content_settings/core/common/content_settings_types.h"
@@ -263,13 +265,13 @@ constexpr auto kContentSettingsTypeGroupNames = std::to_array<
@@ -261,13 +263,13 @@ constexpr auto kContentSettingsTypeGroupNames = std::to_array<
{ContentSettingsType::SUSPICIOUS_NOTIFICATION_SHOW_ORIGINAL, nullptr},
});
@@ -1326,7 +1325,7 @@ diff --git a/chrome/browser/ui/webui/settings/site_settings_helper.cc b/chrome/b
struct SiteSettingSourceStringMapping {
SiteSettingSource source;
@@ -531,6 +533,13 @@ bool HasRegisteredGroupName(ContentSettingsType type) {
@@ -529,6 +531,13 @@ bool HasRegisteredGroupName(ContentSettingsType type) {
return true;
}
}
@@ -1340,7 +1339,7 @@ diff --git a/chrome/browser/ui/webui/settings/site_settings_helper.cc b/chrome/b
return false;
}
@@ -544,11 +553,24 @@ ContentSettingsType ContentSettingsTypeFromGroupName(std::string_view name) {
@@ -542,11 +551,24 @@ ContentSettingsType ContentSettingsTypeFromGroupName(std::string_view name) {
return entry.type;
}
}
@@ -1366,7 +1365,7 @@ diff --git a/chrome/browser/ui/webui/settings/site_settings_helper.cc b/chrome/b
for (const auto& entry : kContentSettingsTypeGroupNames) {
if (type == entry.type) {
// Content setting types that aren't represented in the settings UI
@@ -563,7 +585,6 @@ std::string_view ContentSettingsTypeToGroupName(ContentSettingsType type) {
@@ -561,7 +583,6 @@ std::string_view ContentSettingsTypeToGroupName(ContentSettingsType type) {
return entry.name ? entry.name : std::string_view();
}
}
@@ -1374,7 +1373,7 @@ diff --git a/chrome/browser/ui/webui/settings/site_settings_helper.cc b/chrome/b
NOTREACHED() << static_cast<int32_t>(type)
<< " is not a recognized content settings type.";
}
@@ -670,6 +691,13 @@ std::vector<ContentSettingsType> GetVisiblePermissionCategories(
@@ -668,6 +689,13 @@ std::vector<ContentSettingsType> GetVisiblePermissionCategories(
base_types->push_back(ContentSettingsType::LOCAL_NETWORK_ACCESS);
}
@@ -1391,7 +1390,7 @@ diff --git a/chrome/browser/ui/webui/settings/site_settings_helper.cc b/chrome/b
diff --git a/components/browser_ui/settings/android/BUILD.gn b/components/browser_ui/settings/android/BUILD.gn
--- a/components/browser_ui/settings/android/BUILD.gn
+++ b/components/browser_ui/settings/android/BUILD.gn
@@ -94,6 +94,7 @@ android_resources("java_resources") {
@@ -90,6 +90,7 @@ android_resources("java_resources") {
"java/res/layout/managed_disclaimer_preference_for_radio_groups.xml",
"java/res/layout/preference_chrome_image_view.xml",
"java/res/layout/preference_spinner.xml",
@@ -1499,15 +1498,15 @@ new file mode 100644
diff --git a/components/browser_ui/settings/android/widget/java/src/org/chromium/components/browser_ui/settings/SpinnerPreference.java b/components/browser_ui/settings/android/widget/java/src/org/chromium/components/browser_ui/settings/SpinnerPreference.java
--- a/components/browser_ui/settings/android/widget/java/src/org/chromium/components/browser_ui/settings/SpinnerPreference.java
+++ b/components/browser_ui/settings/android/widget/java/src/org/chromium/components/browser_ui/settings/SpinnerPreference.java
@@ -29,6 +29,7 @@ public class SpinnerPreference extends Preference implements Preference.OnPrefer
private @Nullable ArrayAdapter<Object> mAdapter;
@@ -34,6 +34,7 @@ public class SpinnerPreference extends Preference
private int mSelectedIndex;
private final boolean mSingleLine;
private final int mBackgroundStyle;
+ private boolean mIsWidget = false;
/** Constructor for inflating from XML. */
public SpinnerPreference(Context context, AttributeSet attrs) {
@@ -44,6 +45,19 @@ public class SpinnerPreference extends Preference implements Preference.OnPrefer
@@ -54,6 +55,19 @@ public class SpinnerPreference extends Preference
setOnPreferenceClickListener(this);
}
@@ -1527,7 +1526,7 @@ diff --git a/components/browser_ui/settings/android/widget/java/src/org/chromium
/**
* Provides a list of arbitrary objects to be shown in the spinner. Visually, each option will
* be presented as its toString() text. Alternative to {@link #setAdapter(ArrayAdapter, int)}.
@@ -63,6 +77,12 @@ public class SpinnerPreference extends Preference implements Preference.OnPrefer
@@ -73,6 +87,12 @@ public class SpinnerPreference extends Preference
mSelectedIndex = selectedIndex;
}
@@ -1540,7 +1539,7 @@ diff --git a/components/browser_ui/settings/android/widget/java/src/org/chromium
/** Returns the Spinner instance for introspection during tests. */
public @Nullable Spinner getSpinnerForTesting() {
return mSpinner;
@@ -95,6 +115,10 @@ public class SpinnerPreference extends Preference implements Preference.OnPrefer
@@ -105,6 +125,10 @@ public class SpinnerPreference extends Preference
public void onBindViewHolder(PreferenceViewHolder holder) {
super.onBindViewHolder(holder);
@@ -1589,9 +1588,9 @@ diff --git a/components/browser_ui/site_settings/android/BUILD.gn b/components/b
diff --git a/components/browser_ui/site_settings/android/java/res/xml/site_settings_preferences.xml b/components/browser_ui/site_settings/android/java/res/xml/site_settings_preferences.xml
--- a/components/browser_ui/site_settings/android/java/res/xml/site_settings_preferences.xml
+++ b/components/browser_ui/site_settings/android/java/res/xml/site_settings_preferences.xml
@@ -197,4 +197,11 @@ The order of the following items is from: http://crbug.com/610358.
android:title="@string/safety_hub_autorevocation_toggle_title"
android:summary="@string/safety_hub_autorevocation_toggle_summary" />
@@ -198,4 +198,11 @@ The order of the following items is from: http://crbug.com/610358.
android:summary="@string/safety_hub_autorevocation_toggle_summary"
app:backgroundStyle="card"/>
+ <Preference
+ android:key="divider_cromite"
@@ -2283,8 +2282,8 @@ diff --git a/components/browser_ui/site_settings/android/java/src/org/chromium/c
assert false; // NOTREACHED
return assumeNonNull(null);
}
@@ -824,6 +847,16 @@ public class ContentSettingsResources {
return getCategorySummary(value, isOneTime, /* isApproximateGeolocation= */ false);
@@ -850,6 +873,16 @@ public class ContentSettingsResources {
/* isOnlyPreciseLocationBlockedInOs= */ false);
}
+ public static int getCategorySummary(int contentType,
@@ -2300,7 +2299,7 @@ diff --git a/components/browser_ui/site_settings/android/java/src/org/chromium/c
/**
* Returns the string resource id for a given ContentSetting to show with a permission category.
*
@@ -1002,6 +1035,8 @@ public class ContentSettingsResources {
@@ -1049,6 +1082,8 @@ public class ContentSettingsResources {
*/
public static int @Nullable [] getTriStateSettingDescriptionIDs(
int contentType, boolean isPermissionSiteSettingsRadioButtonFeatureEnabled) {
@@ -2312,7 +2311,7 @@ diff --git a/components/browser_ui/site_settings/android/java/src/org/chromium/c
diff --git a/components/browser_ui/site_settings/android/java/src/org/chromium/components/browser_ui/site_settings/SingleCategorySettings.java b/components/browser_ui/site_settings/android/java/src/org/chromium/components/browser_ui/site_settings/SingleCategorySettings.java
--- a/components/browser_ui/site_settings/android/java/src/org/chromium/components/browser_ui/site_settings/SingleCategorySettings.java
+++ b/components/browser_ui/site_settings/android/java/src/org/chromium/components/browser_ui/site_settings/SingleCategorySettings.java
@@ -355,6 +355,10 @@ public class SingleCategorySettings extends BaseSiteSettingsFragment
@@ -360,6 +360,10 @@ public class SingleCategorySettings extends BaseSiteSettingsFragment
} else {
@ContentSetting
Integer contentSetting = website.site().getContentSetting(browserContextHandle, type);
@@ -2323,7 +2322,7 @@ diff --git a/components/browser_ui/site_settings/android/java/src/org/chromium/c
if (contentSetting != null) {
return ContentSetting.BLOCK == contentSetting;
}
@@ -546,6 +550,7 @@ public class SingleCategorySettings extends BaseSiteSettingsFragment
@@ -551,6 +555,7 @@ public class SingleCategorySettings extends BaseSiteSettingsFragment
? new HashSet<>(getArguments().getStringArrayList(EXTRA_SELECTED_DOMAINS))
: null;
@@ -2331,7 +2330,7 @@ diff --git a/components/browser_ui/site_settings/android/java/src/org/chromium/c
configureGlobalToggles();
if (mCategory.getType() == SiteSettingsCategory.Type.REQUEST_DESKTOP_SITE) {
RecordUserAction.record("DesktopSiteContentSetting.SettingsPage.Entered");
@@ -581,7 +586,8 @@ public class SingleCategorySettings extends BaseSiteSettingsFragment
@@ -586,7 +591,8 @@ public class SingleCategorySettings extends BaseSiteSettingsFragment
if (queryHasChanged) getInfoForOrigins();
});
@@ -2341,7 +2340,7 @@ diff --git a/components/browser_ui/site_settings/android/java/src/org/chromium/c
MenuItem help =
menu.add(
Menu.NONE,
@@ -593,12 +599,20 @@ public class SingleCategorySettings extends BaseSiteSettingsFragment
@@ -598,12 +604,20 @@ public class SingleCategorySettings extends BaseSiteSettingsFragment
getResources(),
R.drawable.ic_help_and_feedback,
getContext().getTheme()));
@@ -2362,7 +2361,7 @@ diff --git a/components/browser_ui/site_settings/android/java/src/org/chromium/c
if (mCategory.getType() == SiteSettingsCategory.Type.PROTECTED_MEDIA) {
getSiteSettingsDelegate()
.launchProtectedContentHelpAndFeedbackActivity(getActivity());
@@ -673,6 +687,11 @@ public class SingleCategorySettings extends BaseSiteSettingsFragment
@@ -681,6 +695,11 @@ public class SingleCategorySettings extends BaseSiteSettingsFragment
public boolean onPreferenceChange(Preference preference, Object newValue) {
BrowserContextHandle browserContextHandle = getBrowserContextHandle();
PrefService prefService = UserPrefs.get(browserContextHandle);
@@ -2374,7 +2373,7 @@ diff --git a/components/browser_ui/site_settings/android/java/src/org/chromium/c
if (BINARY_RADIO_BUTTON_KEY.equals(preference.getKey())
|| BINARY_TOGGLE_KEY.equals(preference.getKey())) {
assert !mCategory.isManaged();
@@ -847,7 +866,7 @@ public class SingleCategorySettings extends BaseSiteSettingsFragment
@@ -855,7 +874,7 @@ public class SingleCategorySettings extends BaseSiteSettingsFragment
? R.string.website_settings_add_site_description_javascript_optimizer_block
: R.string.website_settings_add_site_description_javascript_optimizer_allow;
}
@@ -2383,7 +2382,7 @@ diff --git a/components/browser_ui/site_settings/android/java/src/org/chromium/c
}
// OnPreferenceClickListener:
@@ -965,17 +984,15 @@ public class SingleCategorySettings extends BaseSiteSettingsFragment
@@ -973,17 +992,15 @@ public class SingleCategorySettings extends BaseSiteSettingsFragment
break;
}
@@ -2404,7 +2403,7 @@ diff --git a/components/browser_ui/site_settings/android/java/src/org/chromium/c
String exceptionDialogMessage =
exceptionDialogMessageResourceId != 0
? getString(exceptionDialogMessageResourceId)
@@ -986,7 +1003,7 @@ public class SingleCategorySettings extends BaseSiteSettingsFragment
@@ -994,7 +1011,7 @@ public class SingleCategorySettings extends BaseSiteSettingsFragment
getStyledContext(),
ADD_EXCEPTION_KEY,
exceptionDialogMessage,
@@ -2413,7 +2412,7 @@ diff --git a/components/browser_ui/site_settings/android/java/src/org/chromium/c
mCategory,
this));
@@ -1170,8 +1187,16 @@ public class SingleCategorySettings extends BaseSiteSettingsFragment
@@ -1178,8 +1195,16 @@ public class SingleCategorySettings extends BaseSiteSettingsFragment
private boolean isBlocked() {
switch (mGlobalToggleLayout) {
case GlobalToggleLayout.TRI_STATE_TOGGLE:
@@ -2430,7 +2429,7 @@ diff --git a/components/browser_ui/site_settings/android/java/src/org/chromium/c
return (triStateToggle.getCheckedSetting() == ContentSetting.BLOCK);
case GlobalToggleLayout.TRI_STATE_COOKIE_TOGGLE:
TriStateCookieSettingsPreference triStateCookieToggle =
@@ -1324,7 +1349,11 @@ public class SingleCategorySettings extends BaseSiteSettingsFragment
@@ -1332,7 +1357,11 @@ public class SingleCategorySettings extends BaseSiteSettingsFragment
} else if (res_id != -1) {
infoText.setSummary(res_id);
} else {
@@ -2443,7 +2442,7 @@ diff --git a/components/browser_ui/site_settings/android/java/src/org/chromium/c
}
// Hide the anti-abuse text preferences, as needed.
@@ -1363,6 +1392,7 @@ public class SingleCategorySettings extends BaseSiteSettingsFragment
@@ -1371,6 +1400,7 @@ public class SingleCategorySettings extends BaseSiteSettingsFragment
} else {
screen.removePreference(mLocationTriStatePref);
}
@@ -2451,7 +2450,7 @@ diff --git a/components/browser_ui/site_settings/android/java/src/org/chromium/c
maybeShowReasonToggleDisabled(screen);
@@ -1571,6 +1601,7 @@ public class SingleCategorySettings extends BaseSiteSettingsFragment
@@ -1579,6 +1609,7 @@ public class SingleCategorySettings extends BaseSiteSettingsFragment
iconIds = ContentSettingsResources.getTriStateSettingIconIDs(contentType);
}
triStateToggle.initialize(
@@ -2459,7 +2458,7 @@ diff --git a/components/browser_ui/site_settings/android/java/src/org/chromium/c
setting,
descriptionIds,
iconIds,
@@ -1859,6 +1890,14 @@ public class SingleCategorySettings extends BaseSiteSettingsFragment
@@ -1867,6 +1898,14 @@ public class SingleCategorySettings extends BaseSiteSettingsFragment
selectedButton.setChecked(true);
}
@@ -2494,7 +2493,7 @@ diff --git a/components/browser_ui/site_settings/android/java/src/org/chromium/c
}
}
@@ -623,7 +624,8 @@ public class SingleWebsiteSettings extends BaseSiteSettingsFragment
@@ -631,7 +632,8 @@ public class SingleWebsiteSettings extends BaseSiteSettingsFragment
private void setupContentSettingsPreferences() {
Preference permissionsHeaderPref = findPreference(PREF_PERMISSIONS_HEADER);
mMaxPermissionOrder = permissionsHeaderPref.getOrder();
@@ -2504,7 +2503,7 @@ diff --git a/components/browser_ui/site_settings/android/java/src/org/chromium/c
Preference preference = getPermissionPreference(type);
preference.setKey(getPreferenceKey(type));
@@ -655,6 +657,19 @@ public class SingleWebsiteSettings extends BaseSiteSettingsFragment
@@ -663,6 +665,19 @@ public class SingleWebsiteSettings extends BaseSiteSettingsFragment
}
private Preference getPermissionPreference(@ContentSettingsType.EnumType int type) {
@@ -2524,7 +2523,7 @@ diff --git a/components/browser_ui/site_settings/android/java/src/org/chromium/c
boolean isOneTime = isOneTime(type);
if (type == ContentSettingsType.GEOLOCATION_WITH_OPTIONS && !isOneTime) {
return createTwoActionLocationSwitchPreference();
@@ -1254,7 +1269,16 @@ public class SingleWebsiteSettings extends BaseSiteSettingsFragment
@@ -1258,7 +1273,16 @@ public class SingleWebsiteSettings extends BaseSiteSettingsFragment
@ContentSetting @Nullable Integer value,
boolean isEmbargoed,
boolean isOneTime) {
@@ -2542,16 +2541,16 @@ diff --git a/components/browser_ui/site_settings/android/java/src/org/chromium/c
setUpPreferenceCommon(preference, value);
preference.setOnPreferenceChangeListener(this);
@ContentSettingsType.EnumType
@@ -1266,7 +1290,7 @@ public class SingleWebsiteSettings extends BaseSiteSettingsFragment
isEmbargoed
? getString(R.string.automatically_blocked)
: getString(
- ContentSettingsResources.getCategorySummary(
+ ContentSettingsResources.getCategorySummary(content_type,
value, isOneTime, isApproximateGeolocation)));
if (preference instanceof ChromeImageViewPreference) {
ChromeImageViewPreference oneTimePreference = (ChromeImageViewPreference) preference;
@@ -1292,10 +1316,14 @@ public class SingleWebsiteSettings extends BaseSiteSettingsFragment
@@ -1282,7 +1306,7 @@ public class SingleWebsiteSettings extends BaseSiteSettingsFragment
} else {
summary =
getString(
- ContentSettingsResources.getCategorySummary(
+ ContentSettingsResources.getCategorySummary(content_type,
contentType, value, isOneTime, mHasApproximateLocationGrant));
}
preference.setSummary(summary);
@@ -1310,10 +1334,14 @@ public class SingleWebsiteSettings extends BaseSiteSettingsFragment
oneTimePreference.setBackgroundColor(mHighlightColor);
}
} else {
@@ -2570,7 +2569,7 @@ diff --git a/components/browser_ui/site_settings/android/java/src/org/chromium/c
AppCompatResources.getColorStateList(getContext(), mHighlightColor)
.getDefaultColor());
}
@@ -1587,7 +1615,13 @@ public class SingleWebsiteSettings extends BaseSiteSettingsFragment
@@ -1619,7 +1647,13 @@ public class SingleWebsiteSettings extends BaseSiteSettingsFragment
if (newValue instanceof Boolean) {
permission = (Boolean) newValue ? getEnabledValue(type) : ContentSetting.BLOCK;
} else {
@@ -2585,15 +2584,15 @@ diff --git a/components/browser_ui/site_settings/android/java/src/org/chromium/c
}
if (type == ContentSettingsType.GEOLOCATION_WITH_OPTIONS) {
@@ -1608,7 +1642,7 @@ public class SingleWebsiteSettings extends BaseSiteSettingsFragment
@@ -1651,7 +1685,7 @@ public class SingleWebsiteSettings extends BaseSiteSettingsFragment
// info.
preference.setSummary(
getString(
- ContentSettingsResources.getCategorySummary(
+ ContentSettingsResources.getCategorySummary(type,
type,
permission,
false,
type == ContentSettingsType.GEOLOCATION_WITH_OPTIONS
diff --git a/components/browser_ui/site_settings/android/java/src/org/chromium/components/browser_ui/site_settings/SiteSettings.java b/components/browser_ui/site_settings/android/java/src/org/chromium/components/browser_ui/site_settings/SiteSettings.java
--- a/components/browser_ui/site_settings/android/java/src/org/chromium/components/browser_ui/site_settings/SiteSettings.java
+++ b/components/browser_ui/site_settings/android/java/src/org/chromium/components/browser_ui/site_settings/SiteSettings.java
@@ -2605,7 +2604,7 @@ diff --git a/components/browser_ui/site_settings/android/java/src/org/chromium/c
configurePreferences();
updatePreferenceStates();
}
@@ -85,7 +86,7 @@ public class SiteSettings extends BaseSiteSettingsFragment
@@ -91,7 +92,7 @@ public class SiteSettings extends BaseSiteSettingsFragment
// Remove unsupported settings categories.
for (@SiteSettingsCategory.Type int type = 0;
@@ -2614,7 +2613,7 @@ diff --git a/components/browser_ui/site_settings/android/java/src/org/chromium/c
type++) {
if (!getSiteSettingsDelegate().isCategoryVisible(type)) {
Preference pref = findPreference(type);
@@ -102,7 +103,7 @@ public class SiteSettings extends BaseSiteSettingsFragment
@@ -108,7 +109,7 @@ public class SiteSettings extends BaseSiteSettingsFragment
@CookieControlsMode
int cookieControlsMode =
UserPrefs.get(browserContextHandle).getInteger(COOKIE_CONTROLS_MODE);
@@ -2623,7 +2622,7 @@ diff --git a/components/browser_ui/site_settings/android/java/src/org/chromium/c
Preference p = findPreference(prefCategory);
int contentType = SiteSettingsCategory.contentSettingsType(prefCategory);
// p can be null if the Preference was removed in configurePreferences.
@@ -176,20 +177,22 @@ public class SiteSettings extends BaseSiteSettingsFragment
@@ -182,20 +183,22 @@ public class SiteSettings extends BaseSiteSettingsFragment
} else if (Type.ZOOM == prefCategory) {
// Don't want to set a summary for Zoom because we don't want any message to display
// under the Zoom row on site settings.
@@ -2680,7 +2679,7 @@ diff --git a/components/browser_ui/site_settings/android/java/src/org/chromium/c
}
private final BrowserContextHandle mBrowserContextHandle;
@@ -179,6 +179,9 @@ public class SiteSettingsCategory {
@@ -187,6 +187,9 @@ public class SiteSettingsCategory {
} else {
permission = "";
}
@@ -2690,7 +2689,7 @@ diff --git a/components/browser_ui/site_settings/android/java/src/org/chromium/c
return new SiteSettingsCategory(browserContextHandle, type, permission);
}
@@ -187,7 +190,7 @@ public class SiteSettingsCategory {
@@ -195,7 +198,7 @@ public class SiteSettingsCategory {
@ContentSettingsType.EnumType int contentSettingsType) {
assert contentSettingsType != -1;
assert Type.ALL_SITES == 0;
@@ -2699,7 +2698,7 @@ diff --git a/components/browser_ui/site_settings/android/java/src/org/chromium/c
if (contentSettingsType(i) == contentSettingsType) {
return createFromType(browserContextHandle, i);
}
@@ -198,7 +201,7 @@ public class SiteSettingsCategory {
@@ -206,7 +209,7 @@ public class SiteSettingsCategory {
public static @Nullable SiteSettingsCategory createFromPreferenceKey(
BrowserContextHandle browserContextHandle, String preferenceKey) {
assert Type.ALL_SITES == 0;
@@ -2708,7 +2707,7 @@ diff --git a/components/browser_ui/site_settings/android/java/src/org/chromium/c
if (preferenceKey(i).equals(preferenceKey)) {
return createFromType(browserContextHandle, i);
}
@@ -283,8 +286,7 @@ public class SiteSettingsCategory {
@@ -291,8 +294,7 @@ public class SiteSettingsCategory {
case Type.TRACKING_PROTECTION:
return ContentSettingsType.DEFAULT; // Conversion unavailable.
}
@@ -2718,7 +2717,7 @@ diff --git a/components/browser_ui/site_settings/android/java/src/org/chromium/c
}
/**
@@ -385,8 +387,12 @@ public class SiteSettingsCategory {
@@ -393,8 +395,12 @@ public class SiteSettingsCategory {
case Type.ZOOM:
return "zoom";
default:
@@ -2734,7 +2733,7 @@ diff --git a/components/browser_ui/site_settings/android/java/src/org/chromium/c
diff --git a/components/browser_ui/site_settings/android/java/src/org/chromium/components/browser_ui/site_settings/SiteSettingsDelegate.java b/components/browser_ui/site_settings/android/java/src/org/chromium/components/browser_ui/site_settings/SiteSettingsDelegate.java
--- a/components/browser_ui/site_settings/android/java/src/org/chromium/components/browser_ui/site_settings/SiteSettingsDelegate.java
+++ b/components/browser_ui/site_settings/android/java/src/org/chromium/components/browser_ui/site_settings/SiteSettingsDelegate.java
@@ -203,6 +203,8 @@ public interface SiteSettingsDelegate {
@@ -198,6 +198,8 @@ public interface SiteSettingsDelegate {
*/
String getRelatedWebsiteSetOwner(String memberOrigin);
@@ -2917,7 +2916,7 @@ diff --git a/components/content_settings/android/BUILD.gn b/components/content_s
diff --git a/components/content_settings/core/browser/BUILD.gn b/components/content_settings/core/browser/BUILD.gn
--- a/components/content_settings/core/browser/BUILD.gn
+++ b/components/content_settings/core/browser/BUILD.gn
@@ -83,6 +83,13 @@ static_library("browser") {
@@ -81,6 +81,13 @@ static_library("browser") {
}
configs += [ "//build/config/compiler:wexit_time_destructors" ]
@@ -2948,7 +2947,7 @@ diff --git a/components/content_settings/core/browser/content_settings_registry.
namespace content_settings {
@@ -879,6 +880,7 @@ void ContentSettingsRegistry::Init() {
@@ -858,6 +859,7 @@ void ContentSettingsRegistry::Init() {
WebsiteSettingsRegistry::PLATFORM_CHROMEOS,
ContentSettingsInfo::INHERIT_IN_INCOGNITO,
PermissionSettingsInfo::EXCEPTIONS_ON_SECURE_ORIGINS_ONLY);
@@ -3086,7 +3085,7 @@ diff --git a/components/content_settings/core/browser/website_settings_registry.
diff --git a/components/content_settings/core/common/BUILD.gn b/components/content_settings/core/common/BUILD.gn
--- a/components/content_settings/core/common/BUILD.gn
+++ b/components/content_settings/core/common/BUILD.gn
@@ -57,6 +57,13 @@ static_library("common") {
@@ -54,6 +54,13 @@ static_library("common") {
"//net",
"//url",
]
@@ -3100,7 +3099,7 @@ diff --git a/components/content_settings/core/common/BUILD.gn b/components/conte
}
source_set("unit_tests") {
@@ -90,6 +97,7 @@ mojom("content_settings_types") {
@@ -86,6 +93,7 @@ mojom("content_settings_types") {
sources = [ "content_settings_types.mojom" ]
public_deps = [ "//mojo/public/mojom/base" ]
@@ -3182,7 +3181,7 @@ diff --git a/components/content_settings/core/common/content_settings.cc b/compo
diff --git a/components/content_settings/core/common/content_settings.h b/components/content_settings/core/common/content_settings.h
--- a/components/content_settings/core/common/content_settings.h
+++ b/components/content_settings/core/common/content_settings.h
@@ -98,10 +98,22 @@ std::ostream& operator<<(std::ostream& os,
@@ -97,10 +97,22 @@ std::ostream& operator<<(std::ostream& os,
typedef std::vector<ContentSettingPatternSource> ContentSettingsForOneType;
@@ -3295,7 +3294,7 @@ diff --git a/components/content_settings/core/common/content_settings_mojom_trai
diff --git a/components/content_settings/core/common/content_settings_types.mojom b/components/content_settings/core/common/content_settings_types.mojom
--- a/components/content_settings/core/common/content_settings_types.mojom
+++ b/components/content_settings/core/common/content_settings_types.mojom
@@ -508,5 +508,7 @@ enum ContentSettingsType {
@@ -495,5 +495,7 @@ enum ContentSettingsType {
// when suspicious warning is shown. If the user has selected this, the
// notification permission will not be revoked based on suspicious verdict.
SUSPICIOUS_NOTIFICATION_SHOW_ORIGINAL,
@@ -3443,7 +3442,7 @@ diff --git a/components/page_info/android/page_info_controller_android.cc b/comp
#include "components/content_settings/core/common/content_settings.h"
#include "components/content_settings/core/common/content_settings_types.h"
#include "components/content_settings/core/common/features.h"
@@ -197,6 +198,15 @@ void PageInfoControllerAndroid::SetPermissionInfo(
@@ -205,6 +206,15 @@ void PageInfoControllerAndroid::SetPermissionInfo(
permissions_to_display.push_back(ContentSettingsType::LOCAL_NETWORK_ACCESS);
}
@@ -3459,7 +3458,7 @@ diff --git a/components/page_info/android/page_info_controller_android.cc b/comp
std::map<ContentSettingsType, /*allowed*/ bool>
user_specified_settings_to_display;
std::map<ContentSettingsType, bool>
@@ -259,6 +269,14 @@ std::optional<PermissionSetting> PageInfoControllerAndroid::GetSettingToDisplay(
@@ -267,6 +277,14 @@ std::optional<PermissionSetting> PageInfoControllerAndroid::GetSettingToDisplay(
return permission.setting;
}
@@ -3485,7 +3484,7 @@ diff --git a/components/page_info/page_info.cc b/components/page_info/page_info.
#include "components/content_settings/browser/ui/cookie_controls_controller.h"
#include "components/content_settings/core/browser/content_settings_registry.h"
#include "components/content_settings/core/browser/content_settings_uma_util.h"
@@ -1377,6 +1378,14 @@ void PageInfo::PopulatePermissionInfo(PermissionInfo& permission_info,
@@ -1405,6 +1406,14 @@ void PageInfo::PopulatePermissionInfo(PermissionInfo& permission_info,
// via `HasContentSettingChangedViaPageInfo(type)`.
bool PageInfo::ShouldShowPermission(
const PageInfo::PermissionInfo& info) const {
@@ -3500,7 +3499,7 @@ diff --git a/components/page_info/page_info.cc b/components/page_info/page_info.
// Note |ContentSettingsType::ADS| will show up regardless of its default
// value when it has been activated on the current origin.
if (info.type == ContentSettingsType::ADS) {
@@ -1504,7 +1513,19 @@ void PageInfo::PresentSitePermissions() {
@@ -1532,7 +1541,19 @@ void PageInfo::PresentSitePermissions() {
HostContentSettingsMap* content_settings = GetContentSettings();
DCHECK(web_contents_);
@@ -3572,7 +3571,7 @@ diff --git a/components/page_info/page_info_ui.cc b/components/page_info/page_in
for (const PermissionUIInfo& info : GetContentSettingsUIInfo()) {
if (info.type == type)
return l10n_util::GetStringUTF16(info.string_id_mid_sentence);
@@ -947,6 +967,11 @@ bool PageInfoUI::ContentSettingsTypeInPageInfo(ContentSettingsType type) {
@@ -952,6 +972,11 @@ bool PageInfoUI::ContentSettingsTypeInPageInfo(ContentSettingsType type) {
if (info.type == type)
return true;
}
@@ -3661,7 +3660,7 @@ diff --git a/third_party/blink/renderer/core/execution_context/execution_context
#include "third_party/blink/renderer/bindings/core/v8/sanitize_script_errors.h"
#include "third_party/blink/renderer/core/core_export.h"
#include "third_party/blink/renderer/core/execution_context/security_context.h"
@@ -102,6 +103,10 @@ class SecurityOrigin;
@@ -101,6 +102,10 @@ class SecurityOrigin;
class ScriptState;
class ScriptWrappable;
class TrustedTypePolicyFactory;
+296 -219
View File
@@ -7,19 +7,63 @@ Opens tabs in foreground, Move web search to the top of items,
Web search in tab group and Enable smart text selection
License: GPL-2.0-or-later - https://spdx.org/licenses/GPL-2.0-or-later.html
---
.../browser/ChromeActionModeHandler.java | 4 +-
.../chrome/browser/ChromeTabbedActivity.java | 15 +-
...ActivityTabWebContentsDelegateAndroid.java | 10 +-
.../compositor/layouts/LayoutManagerImpl.java | 8 ++
.../tab/TabContextMenuItemDelegate.java | 7 +-
.../chrome/browser/ui/RootUiCoordinator.java | 8 +-
.../Customize-selection-popup.grdp | 34 +++++
.../res/xml/accessibility_preferences.xml | 24 ++++
.../selection/SelectActionMenuHelper.java | 129 ++++++++++++------
.../selection/SmartSelectionClient.java | 4 +
10 files changed, 192 insertions(+), 51 deletions(-)
.../SamsungSelectionActionMenuDelegate.java | 7 +--
.../browser/ChromeActionModeHandler.java | 4 +-
.../chrome/browser/ChromeTabbedActivity.java | 15 +++++--
...ActivityTabWebContentsDelegateAndroid.java | 10 ++++-
.../compositor/layouts/LayoutManagerImpl.java | 8 ++++
.../tab/TabContextMenuItemDelegate.java | 7 ++-
.../chrome/browser/ui/RootUiCoordinator.java | 8 +++-
.../Customize-selection-popup.grdp | 34 ++++++++++++++
.../AutofillSelectionMenuItemHelper.java | 4 +-
.../res/xml/accessibility_preferences.xml | 24 ++++++++++
.../selection/SelectActionMenuHelper.java | 20 ++++-----
.../SelectionPopupControllerImpl.java | 2 +-
.../selection/SmartSelectionClient.java | 4 ++
.../browser/PendingSelectionMenu.java | 8 ++--
.../browser/SelectionMenuItem.java | 45 ++++++++++++++-----
.../SelectionActionMenuDelegate.java | 32 +++++++++----
16 files changed, 181 insertions(+), 51 deletions(-)
create mode 100644 chrome/browser/ui/android/strings/cromite_android_chrome_strings_grd/Customize-selection-popup.grdp
diff --git a/android_webview/java/src/org/chromium/android_webview/selection/SamsungSelectionActionMenuDelegate.java b/android_webview/java/src/org/chromium/android_webview/selection/SamsungSelectionActionMenuDelegate.java
--- a/android_webview/java/src/org/chromium/android_webview/selection/SamsungSelectionActionMenuDelegate.java
+++ b/android_webview/java/src/org/chromium/android_webview/selection/SamsungSelectionActionMenuDelegate.java
@@ -134,7 +134,7 @@ public class SamsungSelectionActionMenuDelegate extends AutofillSelectionActionM
.setIcon(null)
.setOrderAndCategory(
Menu.CATEGORY_SECONDARY,
- SelectionMenuItem.ItemGroupOffset.TEXT_PROCESSING_ITEMS)
+ SelectionMenuItem.ItemGroupOffset.TEXT_PROCESSING_ITEMS())
.setShowAsActionFlags(MenuItem.SHOW_AS_ACTION_IF_ROOM)
.setIntent(createManageAppsIntent())
.build());
@@ -167,7 +167,7 @@ public class SamsungSelectionActionMenuDelegate extends AutofillSelectionActionM
.setShowAsActionFlags(MenuItem.SHOW_AS_ACTION_IF_ROOM)
.setOrderAndCategory(
DefaultItem.PASTE, // Show after paste.
- SelectionMenuItem.ItemGroupOffset.DEFAULT_ITEMS)
+ SelectionMenuItem.ItemGroupOffset.DEFAULT_ITEMS())
.setIntent(
getTranslationActionIntent(selectedText, translateResolveInfo))
.build());
@@ -180,7 +180,7 @@ public class SamsungSelectionActionMenuDelegate extends AutofillSelectionActionM
.setShowAsActionFlags(MenuItem.SHOW_AS_ACTION_ALWAYS)
.setOrderAndCategory(
Menu.FIRST, // Show as first item after primary assist item.
- SelectionMenuItem.ItemGroupOffset.ASSIST_ITEMS)
+ SelectionMenuItem.ItemGroupOffset.ASSIST_ITEMS())
.setIntent(
createWritingToolkitIntent(selectedText, isSelectionReadOnly))
.build());
@@ -239,6 +239,7 @@ public class SamsungSelectionActionMenuDelegate extends AutofillSelectionActionM
}
public static boolean shouldUseSamsungMenuItemOrdering() {
+ if ((true)) return false;
return Build.VERSION.SDK_INT <= MAXIMUM_BUILD_VERSION_CODE_SUPPORTED && isSamsungDevice();
}
diff --git a/chrome/android/java/src/org/chromium/chrome/browser/ChromeActionModeHandler.java b/chrome/android/java/src/org/chromium/chrome/browser/ChromeActionModeHandler.java
--- a/chrome/android/java/src/org/chromium/chrome/browser/ChromeActionModeHandler.java
+++ b/chrome/android/java/src/org/chromium/chrome/browser/ChromeActionModeHandler.java
@@ -37,7 +81,7 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/ChromeActionMod
diff --git a/chrome/android/java/src/org/chromium/chrome/browser/ChromeTabbedActivity.java b/chrome/android/java/src/org/chromium/chrome/browser/ChromeTabbedActivity.java
--- a/chrome/android/java/src/org/chromium/chrome/browser/ChromeTabbedActivity.java
+++ b/chrome/android/java/src/org/chromium/chrome/browser/ChromeTabbedActivity.java
@@ -915,10 +915,17 @@ public class ChromeTabbedActivity extends ChromeActivity {
@@ -903,10 +903,17 @@ public class ChromeTabbedActivity extends ChromeActivity {
@TabLaunchType int type,
@TabCreationState int creationState,
boolean markedForSelection) {
@@ -114,7 +158,7 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/compositor/layo
diff --git a/chrome/android/java/src/org/chromium/chrome/browser/tab/TabContextMenuItemDelegate.java b/chrome/android/java/src/org/chromium/chrome/browser/tab/TabContextMenuItemDelegate.java
--- a/chrome/android/java/src/org/chromium/chrome/browser/tab/TabContextMenuItemDelegate.java
+++ b/chrome/android/java/src/org/chromium/chrome/browser/tab/TabContextMenuItemDelegate.java
@@ -390,8 +390,13 @@ public class TabContextMenuItemDelegate implements ContextMenuItemDelegate {
@@ -417,8 +417,13 @@ public class TabContextMenuItemDelegate implements ContextMenuItemDelegate {
public void onOpenImageInNewTab(GURL url, @Nullable Referrer referrer) {
LoadUrlParams loadUrlParams = new LoadUrlParams(url.getSpec());
loadUrlParams.setReferrer(referrer);
@@ -132,7 +176,7 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/tab/TabContextM
diff --git a/chrome/android/java/src/org/chromium/chrome/browser/ui/RootUiCoordinator.java b/chrome/android/java/src/org/chromium/chrome/browser/ui/RootUiCoordinator.java
--- a/chrome/android/java/src/org/chromium/chrome/browser/ui/RootUiCoordinator.java
+++ b/chrome/android/java/src/org/chromium/chrome/browser/ui/RootUiCoordinator.java
@@ -30,6 +30,7 @@ import androidx.core.view.WindowInsetsCompat;
@@ -33,6 +33,7 @@ import androidx.core.view.WindowInsetsCompat;
import org.chromium.base.Callback;
import org.chromium.base.CallbackController;
import org.chromium.base.DeviceInfo;
@@ -140,7 +184,7 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/ui/RootUiCoordi
import org.chromium.base.TraceEvent;
import org.chromium.base.lifetime.Destroyable;
import org.chromium.base.metrics.RecordUserAction;
@@ -910,11 +911,16 @@ public class RootUiCoordinator
@@ -979,11 +980,16 @@ public class RootUiCoordinator
TrackerFactory.getTrackerForProfile(tab.getProfile())
.notifyEvent(EventConstants.WEB_SEARCH_PERFORMED);
@@ -197,10 +241,31 @@ new file mode 100644
+ Smart Text selection automatically augments the selected boundaries and classifies the selected text based on the context by sending selection together with its surrounding text
+ </message>
+</grit-part>
diff --git a/components/android_autofill/browser/java/src/org/chromium/components/autofill/AutofillSelectionMenuItemHelper.java b/components/android_autofill/browser/java/src/org/chromium/components/autofill/AutofillSelectionMenuItemHelper.java
--- a/components/android_autofill/browser/java/src/org/chromium/components/autofill/AutofillSelectionMenuItemHelper.java
+++ b/components/android_autofill/browser/java/src/org/chromium/components/autofill/AutofillSelectionMenuItemHelper.java
@@ -39,7 +39,7 @@ public class AutofillSelectionMenuItemHelper {
.setGroupId(R.id.select_action_menu_delegate_items)
.setOrderAndCategory(
Menu.FIRST,
- SelectionMenuItem.ItemGroupOffset.SECONDARY_ASSIST_ITEMS)
+ SelectionMenuItem.ItemGroupOffset.SECONDARY_ASSIST_ITEMS())
.setShowAsActionFlags(
MenuItem.SHOW_AS_ACTION_ALWAYS
| MenuItem.SHOW_AS_ACTION_WITH_TEXT)
@@ -52,7 +52,7 @@ public class AutofillSelectionMenuItemHelper {
.setGroupId(R.id.select_action_menu_delegate_items)
.setOrderAndCategory(
Menu.CATEGORY_SECONDARY, // Show at end of section.
- SelectionMenuItem.ItemGroupOffset.SECONDARY_ASSIST_ITEMS)
+ SelectionMenuItem.ItemGroupOffset.SECONDARY_ASSIST_ITEMS())
.setShowAsActionFlags(
MenuItem.SHOW_AS_ACTION_NEVER
| MenuItem.SHOW_AS_ACTION_WITH_TEXT)
diff --git a/components/browser_ui/accessibility/android/java/res/xml/accessibility_preferences.xml b/components/browser_ui/accessibility/android/java/res/xml/accessibility_preferences.xml
--- a/components/browser_ui/accessibility/android/java/res/xml/accessibility_preferences.xml
+++ b/components/browser_ui/accessibility/android/java/res/xml/accessibility_preferences.xml
@@ -74,4 +74,28 @@ found in the LICENSE file.
@@ -79,4 +79,28 @@ found in the LICENSE file.
android:key="disable_toolbar_swipeup"
android:title="@string/disable_toolbar_swipe_up" />
@@ -232,31 +297,178 @@ diff --git a/components/browser_ui/accessibility/android/java/res/xml/accessibil
diff --git a/content/public/android/java/src/org/chromium/content/browser/selection/SelectActionMenuHelper.java b/content/public/android/java/src/org/chromium/content/browser/selection/SelectActionMenuHelper.java
--- a/content/public/android/java/src/org/chromium/content/browser/selection/SelectActionMenuHelper.java
+++ b/content/public/android/java/src/org/chromium/content/browser/selection/SelectActionMenuHelper.java
@@ -26,6 +26,7 @@ import androidx.core.content.ContextCompat;
import org.chromium.base.ApiCompatibilityUtils;
import org.chromium.base.ContextUtils;
import org.chromium.base.Log;
+import org.chromium.base.ContextUtils;
import org.chromium.base.PackageManagerUtils;
import org.chromium.base.StrictModeContext;
import org.chromium.build.annotations.NullMarked;
@@ -53,38 +54,84 @@ import java.util.TreeSet;
public class SelectActionMenuHelper {
private static final String TAG = "SelectActionMenu"; // 20 char limit.
@@ -169,7 +169,7 @@ public class SelectActionMenuHelper {
return new SelectionMenuItem.Builder(primaryAction.getTitle())
.setId(android.R.id.textAssist)
.setGroupId(R.id.select_action_menu_assist_items)
- .setOrderAndCategory(0, ItemGroupOffset.ASSIST_ITEMS)
+ .setOrderAndCategory(0, ItemGroupOffset.ASSIST_ITEMS())
.setIcon(getPrimaryActionIconForClassificationResult(classificationResult, context))
.setShowAsActionFlags(MenuItem.SHOW_AS_ACTION_IF_ROOM)
.build();
@@ -247,7 +247,7 @@ public class SelectActionMenuHelper {
.setGroupId(groupId)
.setIcon(icons == null ? null : icons.get(i))
.setOrderAndCategory(
- i - startIndex, ItemGroupOffset.SECONDARY_ASSIST_ITEMS)
+ i - startIndex, ItemGroupOffset.SECONDARY_ASSIST_ITEMS())
.setContentDescription(action.getContentDescription())
.setShowAsActionFlags(MenuItem.SHOW_AS_ACTION_IF_ROOM)
.build();
@@ -296,7 +296,7 @@ public class SelectActionMenuHelper {
.setId(Menu.NONE)
.setGroupId(R.id.select_action_menu_text_processing_items)
.setIcon(icon)
- .setOrderAndCategory(i, ItemGroupOffset.TEXT_PROCESSING_ITEMS)
+ .setOrderAndCategory(i, ItemGroupOffset.TEXT_PROCESSING_ITEMS())
.setShowAsActionFlags(MenuItem.SHOW_AS_ACTION_IF_ROOM)
.setIntent(intent)
.build());
@@ -341,7 +341,7 @@ public class SelectActionMenuHelper {
.setGroupId(R.id.select_action_menu_default_items)
.setIconAttr(android.R.attr.actionModeCutDrawable)
.setAlphabeticShortcut(ItemKeyShortcuts.CUT)
- .setOrderAndCategory(order, ItemGroupOffset.DEFAULT_ITEMS)
+ .setOrderAndCategory(order, ItemGroupOffset.DEFAULT_ITEMS())
.setShowAsActionFlags(
MenuItem.SHOW_AS_ACTION_ALWAYS | MenuItem.SHOW_AS_ACTION_WITH_TEXT)
.setIsEnabled(true)
@@ -355,7 +355,7 @@ public class SelectActionMenuHelper {
.setGroupId(R.id.select_action_menu_default_items)
.setIconAttr(android.R.attr.actionModeCopyDrawable)
.setAlphabeticShortcut(ItemKeyShortcuts.COPY)
- .setOrderAndCategory(order, ItemGroupOffset.DEFAULT_ITEMS)
+ .setOrderAndCategory(order, ItemGroupOffset.DEFAULT_ITEMS())
.setShowAsActionFlags(
MenuItem.SHOW_AS_ACTION_ALWAYS | MenuItem.SHOW_AS_ACTION_WITH_TEXT)
.setIsEnabled(true)
@@ -369,7 +369,7 @@ public class SelectActionMenuHelper {
.setGroupId(R.id.select_action_menu_default_items)
.setIconAttr(android.R.attr.actionModePasteDrawable)
.setAlphabeticShortcut(ItemKeyShortcuts.PASTE)
- .setOrderAndCategory(order, ItemGroupOffset.DEFAULT_ITEMS)
+ .setOrderAndCategory(order, ItemGroupOffset.DEFAULT_ITEMS())
.setShowAsActionFlags(
MenuItem.SHOW_AS_ACTION_ALWAYS | MenuItem.SHOW_AS_ACTION_WITH_TEXT)
.setIsEnabled(true)
@@ -385,7 +385,7 @@ public class SelectActionMenuHelper {
.setId(R.id.select_action_menu_share)
.setGroupId(R.id.select_action_menu_default_items)
.setIconAttr(android.R.attr.actionModeShareDrawable)
- .setOrderAndCategory(order, ItemGroupOffset.DEFAULT_ITEMS)
+ .setOrderAndCategory(order, ItemGroupOffset.DEFAULT_ITEMS())
.setShowAsActionFlags(
MenuItem.SHOW_AS_ACTION_ALWAYS | MenuItem.SHOW_AS_ACTION_WITH_TEXT)
.setIsEnabled(true)
@@ -399,7 +399,7 @@ public class SelectActionMenuHelper {
.setGroupId(R.id.select_action_menu_default_items)
.setIconAttr(android.R.attr.actionModeSelectAllDrawable)
.setAlphabeticShortcut(ItemKeyShortcuts.SELECT_ALL)
- .setOrderAndCategory(order, ItemGroupOffset.DEFAULT_ITEMS)
+ .setOrderAndCategory(order, ItemGroupOffset.DEFAULT_ITEMS())
.setShowAsActionFlags(
MenuItem.SHOW_AS_ACTION_ALWAYS | MenuItem.SHOW_AS_ACTION_WITH_TEXT)
.setIsEnabled(true)
@@ -412,7 +412,7 @@ public class SelectActionMenuHelper {
new SelectionMenuItem.Builder(android.R.string.paste_as_plain_text)
.setId(R.id.select_action_menu_paste_as_plain_text)
.setGroupId(R.id.select_action_menu_default_items)
- .setOrderAndCategory(order, ItemGroupOffset.DEFAULT_ITEMS)
+ .setOrderAndCategory(order, ItemGroupOffset.DEFAULT_ITEMS())
.setShowAsActionFlags(
MenuItem.SHOW_AS_ACTION_ALWAYS | MenuItem.SHOW_AS_ACTION_WITH_TEXT)
.setIsEnabled(true);
@@ -432,7 +432,7 @@ public class SelectActionMenuHelper {
.setId(R.id.select_action_menu_web_search)
.setGroupId(R.id.select_action_menu_default_items)
.setIconAttr(android.R.attr.actionModeWebSearchDrawable)
- .setOrderAndCategory(order, ItemGroupOffset.DEFAULT_ITEMS)
+ .setOrderAndCategory(order, ItemGroupOffset.DEFAULT_ITEMS())
.setShowAsActionFlags(
MenuItem.SHOW_AS_ACTION_ALWAYS | MenuItem.SHOW_AS_ACTION_WITH_TEXT)
.setIsEnabled(true)
diff --git a/content/public/android/java/src/org/chromium/content/browser/selection/SelectionPopupControllerImpl.java b/content/public/android/java/src/org/chromium/content/browser/selection/SelectionPopupControllerImpl.java
--- a/content/public/android/java/src/org/chromium/content/browser/selection/SelectionPopupControllerImpl.java
+++ b/content/public/android/java/src/org/chromium/content/browser/selection/SelectionPopupControllerImpl.java
@@ -1113,7 +1113,7 @@ public class SelectionPopupControllerImpl extends ActionModeCallbackHelper
private boolean handleAssistMenuItemClick(int order) {
// Primary assist action is always the first action in the list so offset by 1.
- int index = 1 + order - SelectionMenuItem.ItemGroupOffset.SECONDARY_ASSIST_ITEMS;
+ int index = 1 + order - SelectionMenuItem.ItemGroupOffset.SECONDARY_ASSIST_ITEMS();
if (mClassificationResult == null
|| mClassificationResult.textClassification == null
|| mClassificationResult.textClassification.getActions().size() <= index) {
diff --git a/content/public/android/java/src/org/chromium/content/browser/selection/SmartSelectionClient.java b/content/public/android/java/src/org/chromium/content/browser/selection/SmartSelectionClient.java
--- a/content/public/android/java/src/org/chromium/content/browser/selection/SmartSelectionClient.java
+++ b/content/public/android/java/src/org/chromium/content/browser/selection/SmartSelectionClient.java
@@ -18,6 +18,7 @@ import org.jni_zero.CalledByNative;
import org.jni_zero.JNINamespace;
import org.jni_zero.NativeMethods;
+import org.chromium.base.ContextUtils;
import org.chromium.base.ObserverList;
import org.chromium.base.UserData;
import org.chromium.build.annotations.Initializer;
@@ -84,6 +85,9 @@ public class SmartSelectionClient implements SelectionClient, UserData {
return null;
}
+ if (!ContextUtils.getAppSharedPreferences().getBoolean(
+ "selection_popup_smart_text", false)) return null;
+
SmartSelectionClient client =
assumeNonNull(
webContents.getOrSetUserData(
diff --git a/content/public/android/java/src/org/chromium/content_public/browser/PendingSelectionMenu.java b/content/public/android/java/src/org/chromium/content_public/browser/PendingSelectionMenu.java
--- a/content/public/android/java/src/org/chromium/content_public/browser/PendingSelectionMenu.java
+++ b/content/public/android/java/src/org/chromium/content_public/browser/PendingSelectionMenu.java
@@ -165,13 +165,13 @@ public final class PendingSelectionMenu {
@VisibleForTesting
public @LogicalGroup int determineGroup(SelectionMenuItem item) {
int order = item.order;
- if (order >= ItemGroupOffset.TEXT_PROCESSING_ITEMS) {
+ if (order >= ItemGroupOffset.TEXT_PROCESSING_ITEMS()) {
return LogicalGroup.TEXT_PROCESSING_ITEMS;
- } else if (order >= ItemGroupOffset.SECONDARY_ASSIST_ITEMS) {
+ } else if (order >= ItemGroupOffset.SECONDARY_ASSIST_ITEMS()) {
return LogicalGroup.SECONDARY_ASSIST_ITEMS;
- } else if (order >= ItemGroupOffset.DEFAULT_ITEMS) {
+ } else if (order >= ItemGroupOffset.DEFAULT_ITEMS()) {
return LogicalGroup.DEFAULT_ITEMS;
- } else if (order >= ItemGroupOffset.ASSIST_ITEMS) {
+ } else if (order >= ItemGroupOffset.ASSIST_ITEMS()) {
return LogicalGroup.ASSIST_ITEMS;
}
throw new IllegalStateException("Invalid order. Must be >= 0");
diff --git a/content/public/android/java/src/org/chromium/content_public/browser/SelectionMenuItem.java b/content/public/android/java/src/org/chromium/content_public/browser/SelectionMenuItem.java
--- a/content/public/android/java/src/org/chromium/content_public/browser/SelectionMenuItem.java
+++ b/content/public/android/java/src/org/chromium/content_public/browser/SelectionMenuItem.java
@@ -18,6 +18,7 @@ import androidx.annotation.IntDef;
import androidx.annotation.StringRes;
import androidx.appcompat.content.res.AppCompatResources;
+import org.chromium.base.ContextUtils;
import org.chromium.build.annotations.NullMarked;
import org.chromium.build.annotations.Nullable;
@@ -34,18 +35,38 @@ public final class SelectionMenuItem implements Comparable<SelectionMenuItem> {
* less than SECONDARY_ASSIST_ITEMS will appear in the default items section. Each section is
* separated by a divider in dropdown menus.
*/
- @Retention(RetentionPolicy.SOURCE)
- @IntDef({
- GroupItemOrder.ASSIST_ITEMS,
- GroupItemOrder.DEFAULT_ITEMS,
- GroupItemOrder.SECONDARY_ASSIST_ITEMS,
- GroupItemOrder.TEXT_PROCESSING_ITEMS
- ItemGroupOffset.ASSIST_ITEMS,
- ItemGroupOffset.DEFAULT_ITEMS,
- ItemGroupOffset.SECONDARY_ASSIST_ITEMS,
- ItemGroupOffset.TEXT_PROCESSING_ITEMS
- })
- public @interface GroupItemOrder {
- int ASSIST_ITEMS = 1;
- int DEFAULT_ITEMS = 2;
- int SECONDARY_ASSIST_ITEMS = 3;
- int TEXT_PROCESSING_ITEMS = 4;
+ private static class GroupItemOrderChromium {
- public @interface ItemGroupOffset {
- int ASSIST_ITEMS = 0;
- int DEFAULT_ITEMS = 10;
- int SECONDARY_ASSIST_ITEMS = 20;
- int TEXT_PROCESSING_ITEMS = 30;
+ public static class ItemGroupOffset {
+ static int CHROMIUM_ASSIST_ITEMS = 1;
+ static int CHROMIUM_DEFAULT_ITEMS = 2;
+ static int CHROMIUM_SECONDARY_ASSIST_ITEMS = 3;
@@ -290,189 +502,54 @@ diff --git a/content/public/android/java/src/org/chromium/content/browser/select
+ }
}
- @Retention(RetentionPolicy.SOURCE)
- @IntDef({
- DefaultItemOrder.CUT,
- DefaultItemOrder.COPY,
- DefaultItemOrder.PASTE,
- DefaultItemOrder.PASTE_AS_PLAIN_TEXT,
- DefaultItemOrder.SHARE,
- DefaultItemOrder.SELECT_ALL,
- DefaultItemOrder.WEB_SEARCH
- })
- public @interface DefaultItemOrder {
- int CUT = 1;
- int COPY = 2;
- int PASTE = 3;
- int PASTE_AS_PLAIN_TEXT = 4;
- int SHARE = 5;
- int SELECT_ALL = 6;
- int WEB_SEARCH = 7;
+ private static class DefaultItemOrderChromium {
+ static int CHROMIUM_CUT = 1;
+ static int CHROMIUM_COPY = 2;
+ static int CHROMIUM_PASTE = 3;
+ static int CHROMIUM_SHARE = 4;
+ static int CHROMIUM_SELECT_ALL = 5;
+ static int CHROMIUM_PASTE_AS_PLAIN_TEXT = 6;
+ static int CHROMIUM_WEB_SEARCH = 7;
+
+ static int CROMITE_WEB_SEARCH = 1;
+ static int CROMITE_CUT = 2;
+ static int CROMITE_COPY = 3;
+ static int CROMITE_PASTE = 4;
+ static int CROMITE_SHARE = 5;
+ static int CROMITE_SELECT_ALL = 6;
+ static int CROMITE_PASTE_AS_PLAIN_TEXT = 7;
+
+ private static int GetValue(int a, int b) {
+ return !ContextUtils.getAppSharedPreferences().getBoolean(
+ "selection_popup_web_search_to_top", false)
+ ? a : b;
+ }
+
+ public static int CUT() {
+ return GetValue(CHROMIUM_CUT, CROMITE_CUT);
+ }
+ public static int COPY() {
+ return GetValue(CHROMIUM_COPY, CROMITE_COPY);
+ }
+ public static int PASTE() {
+ return GetValue(CHROMIUM_PASTE, CROMITE_PASTE);
+ }
+ public static int SHARE() {
+ return GetValue(CHROMIUM_SHARE, CROMITE_SHARE);
+ }
+ public static int SELECT_ALL() {
+ return GetValue(CHROMIUM_SELECT_ALL, CROMITE_SELECT_ALL);
+ }
+ public static int PASTE_AS_PLAIN_TEXT() {
+ return GetValue(CHROMIUM_PASTE_AS_PLAIN_TEXT, CROMITE_PASTE_AS_PLAIN_TEXT);
+ }
+ public static int WEB_SEARCH() {
+ return GetValue(CHROMIUM_WEB_SEARCH, CROMITE_WEB_SEARCH);
private final @AttrRes int mIconAttr;
diff --git a/content/public/android/java/src/org/chromium/content_public/browser/selection/SelectionActionMenuDelegate.java b/content/public/android/java/src/org/chromium/content_public/browser/selection/SelectionActionMenuDelegate.java
--- a/content/public/android/java/src/org/chromium/content_public/browser/selection/SelectionActionMenuDelegate.java
+++ b/content/public/android/java/src/org/chromium/content_public/browser/selection/SelectionActionMenuDelegate.java
@@ -7,6 +7,7 @@ package org.chromium.content_public.browser.selection;
import android.content.pm.ResolveInfo;
import android.view.View;
+import org.chromium.base.ContextUtils;
import org.chromium.base.SelectionActionMenuClientWrapper.DefaultItem;
import org.chromium.base.SelectionActionMenuClientWrapper.MenuType;
import org.chromium.build.annotations.NullMarked;
@@ -23,15 +24,28 @@ import java.util.List;
@NullMarked
public interface SelectionActionMenuDelegate {
static @DefaultItem int[] getDefaultMenuItemOrder() {
- return new @DefaultItem int[] {
- DefaultItem.CUT,
- DefaultItem.COPY,
- DefaultItem.PASTE,
- DefaultItem.PASTE_AS_PLAIN_TEXT,
- DefaultItem.SHARE,
- DefaultItem.SELECT_ALL,
- DefaultItem.WEB_SEARCH
- };
+ if (!ContextUtils.getAppSharedPreferences().getBoolean(
+ "selection_popup_web_search_to_top", false)) {
+ return new @DefaultItem int[] {
+ DefaultItem.CUT,
+ DefaultItem.COPY,
+ DefaultItem.PASTE,
+ DefaultItem.PASTE_AS_PLAIN_TEXT,
+ DefaultItem.SHARE,
+ DefaultItem.SELECT_ALL,
+ DefaultItem.WEB_SEARCH
+ };
+ } else {
+ return new @DefaultItem int[] {
+ DefaultItem.WEB_SEARCH,
+ DefaultItem.CUT,
+ DefaultItem.COPY,
+ DefaultItem.PASTE,
+ DefaultItem.PASTE_AS_PLAIN_TEXT,
+ DefaultItem.SHARE,
+ DefaultItem.SELECT_ALL
+ };
+ }
}
@Retention(RetentionPolicy.SOURCE)
@@ -201,7 +248,7 @@ public class SelectActionMenuHelper {
}
SelectionMenuGroup primaryAssistGroup =
new SelectionMenuGroup(
- R.id.select_action_menu_assist_items, GroupItemOrder.ASSIST_ITEMS);
+ R.id.select_action_menu_assist_items, GroupItemOrderChromium.ASSIST_ITEMS());
RemoteAction primaryAction = classificationResult.textClassification.getActions().get(0);
primaryAssistGroup.addItem(
new SelectionMenuItem.Builder(primaryAction.getTitle())
@@ -225,7 +272,7 @@ public class SelectActionMenuHelper {
String selectedText) {
SelectionMenuGroup defaultGroup =
new SelectionMenuGroup(
- R.id.select_action_menu_default_items, GroupItemOrder.DEFAULT_ITEMS);
+ R.id.select_action_menu_default_items, GroupItemOrderChromium.DEFAULT_ITEMS());
List<SelectionMenuItem.Builder> menuItemBuilders = new ArrayList<>();
menuItemBuilders.add(cut(delegate.canCut()));
menuItemBuilders.add(copy(delegate.canCopy()));
@@ -252,7 +299,7 @@ public class SelectActionMenuHelper {
// menu items if there is selected text.
@IdRes int groupId = selectedText.isEmpty() ? Menu.NONE : android.R.id.textAssist;
SelectionMenuGroup secondaryAssistItems =
- new SelectionMenuGroup(groupId, GroupItemOrder.SECONDARY_ASSIST_ITEMS);
+ new SelectionMenuGroup(groupId, GroupItemOrderChromium.SECONDARY_ASSIST_ITEMS());
if (selectedText.isEmpty() && selectionActionMenuDelegate != null) {
List<SelectionMenuItem> additionalMenuItems =
@@ -311,7 +358,7 @@ public class SelectActionMenuHelper {
SelectionMenuGroup textProcessingItems =
new SelectionMenuGroup(
R.id.select_action_menu_text_processing_items,
- GroupItemOrder.TEXT_PROCESSING_ITEMS);
+ GroupItemOrderChromium.TEXT_PROCESSING_ITEMS());
if (isSelectionPassword || intentHandler == null) {
addAdditionalTextProcessingItems(textProcessingItems, selectionActionMenuDelegate);
return textProcessingItems;
@@ -420,7 +467,7 @@ public class SelectActionMenuHelper {
.setId(R.id.select_action_menu_cut)
.setIconAttr(android.R.attr.actionModeCutDrawable)
.setAlphabeticShortcut(ItemKeyShortcuts.CUT)
- .setOrderInCategory(DefaultItemOrder.CUT)
+ .setOrderInCategory(DefaultItemOrderChromium.CUT())
.setShowAsActionFlags(
MenuItem.SHOW_AS_ACTION_ALWAYS | MenuItem.SHOW_AS_ACTION_WITH_TEXT)
.setIsEnabled(isEnabled)
@@ -432,7 +479,7 @@ public class SelectActionMenuHelper {
.setId(R.id.select_action_menu_copy)
.setIconAttr(android.R.attr.actionModeCopyDrawable)
.setAlphabeticShortcut(ItemKeyShortcuts.COPY)
- .setOrderInCategory(DefaultItemOrder.COPY)
+ .setOrderInCategory(DefaultItemOrderChromium.COPY())
.setShowAsActionFlags(
MenuItem.SHOW_AS_ACTION_ALWAYS | MenuItem.SHOW_AS_ACTION_WITH_TEXT)
.setIsEnabled(isEnabled)
@@ -444,7 +491,7 @@ public class SelectActionMenuHelper {
.setId(R.id.select_action_menu_paste)
.setIconAttr(android.R.attr.actionModePasteDrawable)
.setAlphabeticShortcut(ItemKeyShortcuts.PASTE)
- .setOrderInCategory(DefaultItemOrder.PASTE)
+ .setOrderInCategory(DefaultItemOrderChromium.PASTE())
.setShowAsActionFlags(
MenuItem.SHOW_AS_ACTION_ALWAYS | MenuItem.SHOW_AS_ACTION_WITH_TEXT)
.setIsEnabled(isEnabled)
@@ -458,7 +505,7 @@ public class SelectActionMenuHelper {
return new SelectionMenuItem.Builder(context.getString(R.string.actionbar_share))
.setId(R.id.select_action_menu_share)
.setIconAttr(android.R.attr.actionModeShareDrawable)
- .setOrderInCategory(DefaultItemOrder.SHARE)
+ .setOrderInCategory(DefaultItemOrderChromium.SHARE())
.setShowAsActionFlags(
MenuItem.SHOW_AS_ACTION_ALWAYS | MenuItem.SHOW_AS_ACTION_WITH_TEXT)
.setIsEnabled(isEnabled)
@@ -470,7 +517,7 @@ public class SelectActionMenuHelper {
.setId(R.id.select_action_menu_select_all)
.setIconAttr(android.R.attr.actionModeSelectAllDrawable)
.setAlphabeticShortcut(ItemKeyShortcuts.SELECT_ALL)
- .setOrderInCategory(DefaultItemOrder.SELECT_ALL)
+ .setOrderInCategory(DefaultItemOrderChromium.SELECT_ALL())
.setShowAsActionFlags(
MenuItem.SHOW_AS_ACTION_ALWAYS | MenuItem.SHOW_AS_ACTION_WITH_TEXT)
.setIsEnabled(isEnabled)
@@ -482,7 +529,7 @@ public class SelectActionMenuHelper {
SelectionMenuItem.Builder builder =
new SelectionMenuItem.Builder(android.R.string.paste_as_plain_text)
.setId(R.id.select_action_menu_paste_as_plain_text)
- .setOrderInCategory(DefaultItemOrder.PASTE_AS_PLAIN_TEXT)
+ .setOrderInCategory(DefaultItemOrderChromium.PASTE_AS_PLAIN_TEXT())
.setShowAsActionFlags(
MenuItem.SHOW_AS_ACTION_ALWAYS | MenuItem.SHOW_AS_ACTION_WITH_TEXT)
.setIsEnabled(isEnabled);
@@ -502,7 +549,7 @@ public class SelectActionMenuHelper {
return new SelectionMenuItem.Builder(context.getString(R.string.actionbar_web_search))
.setId(R.id.select_action_menu_web_search)
.setIconAttr(android.R.attr.actionModeWebSearchDrawable)
- .setOrderInCategory(DefaultItemOrder.WEB_SEARCH)
+ .setOrderInCategory(DefaultItemOrderChromium.WEB_SEARCH())
.setShowAsActionFlags(
MenuItem.SHOW_AS_ACTION_ALWAYS | MenuItem.SHOW_AS_ACTION_WITH_TEXT)
.setIsEnabled(isEnabled)
diff --git a/content/public/android/java/src/org/chromium/content/browser/selection/SmartSelectionClient.java b/content/public/android/java/src/org/chromium/content/browser/selection/SmartSelectionClient.java
--- a/content/public/android/java/src/org/chromium/content/browser/selection/SmartSelectionClient.java
+++ b/content/public/android/java/src/org/chromium/content/browser/selection/SmartSelectionClient.java
@@ -18,6 +18,7 @@ import org.jni_zero.CalledByNative;
import org.jni_zero.JNINamespace;
import org.jni_zero.NativeMethods;
+import org.chromium.base.ContextUtils;
import org.chromium.base.ObserverList;
import org.chromium.base.UserData;
import org.chromium.build.annotations.Initializer;
@@ -84,6 +85,9 @@ public class SmartSelectionClient implements SelectionClient, UserData {
return null;
}
+ if (!ContextUtils.getAppSharedPreferences().getBoolean(
+ "selection_popup_smart_text", false)) return null;
+
SmartSelectionClient client =
assumeNonNull(
webContents.getOrSetUserData(
/**
--
+147 -155
View File
@@ -70,7 +70,7 @@ License: GPL-3.0-only - https://spdx.org/licenses/GPL-3.0-only.html
.../android/res/layout/hub_layout.xml | 4 +-
.../android/res/layout/hub_toolbar_layout.xml | 4 +-
chrome/browser/prefs/browser_prefs.cc | 2 +-
.../chrome/browser/ui/appmenu/AppMenu.java | 40 ++++-
.../chrome/browser/ui/appmenu/AppMenu.java | 39 ++++-
.../ui/appmenu/AppMenuHandlerImpl.java | 10 ++
.../EdgeToEdgeControllerImpl.java | 1 +
.../ui/edge_to_edge/EdgeToEdgeUtils.java | 2 +
@@ -103,7 +103,7 @@ License: GPL-3.0-only - https://spdx.org/licenses/GPL-3.0-only.html
.../render_widget_host_view_android.cc | 3 +
.../Move-navigation-bar-to-bottom.inc | 17 ++
.../renderer/core/frame/viewport_data.cc | 1 +
90 files changed, 1069 insertions(+), 88 deletions(-)
90 files changed, 1068 insertions(+), 88 deletions(-)
create mode 100644 chrome/browser/hub/internal/android/java/src/org/chromium/chrome/browser/hub/ReversedLinearLayout.java
create mode 100644 cromite_flags/chrome/browser/about_flags_cc/Move-navigation-bar-to-bottom.inc
@@ -163,7 +163,7 @@ diff --git a/cc/input/browser_controls_offset_manager.cc b/cc/input/browser_cont
diff --git a/cc/trees/layer_tree_host_impl.cc b/cc/trees/layer_tree_host_impl.cc
--- a/cc/trees/layer_tree_host_impl.cc
+++ b/cc/trees/layer_tree_host_impl.cc
@@ -5153,6 +5153,9 @@ bool LayerTreeHostImpl::AnimateBrowserControls(base::TimeTicks time) {
@@ -5279,6 +5279,9 @@ bool LayerTreeHostImpl::AnimateBrowserControls(base::TimeTicks time) {
if (scroll_delta.IsZero())
return false;
@@ -644,7 +644,7 @@ diff --git a/chrome/android/features/tab_ui/java/src/org/chromium/chrome/browser
mListObserver =
new ListObserver<>() {
@Override
@@ -178,6 +184,15 @@ class TabListEmptyCoordinator {
@@ -188,6 +194,15 @@ class TabListEmptyCoordinator {
public void attachEmptyView() {
if (mEmptyView != null && mEmptyView.getParent() == null) {
mRootView.addView(mEmptyView);
@@ -671,7 +671,7 @@ diff --git a/chrome/android/features/tab_ui/java/src/org/chromium/chrome/browser
import org.chromium.chrome.browser.hub.DisplayButtonData;
import org.chromium.chrome.browser.hub.FadeHubLayoutAnimationFactory;
import org.chromium.chrome.browser.hub.FullButtonData;
@@ -174,6 +175,7 @@ public abstract class TabSwitcherPaneBase implements Pane, TabSwitcher, TabSwitc
@@ -177,6 +178,7 @@ public abstract class TabSwitcherPaneBase implements Pane, TabSwitcher, TabSwitc
private @Nullable PaneHubController mPaneHubController;
private @Nullable Long mWaitForTabStateInitializedStartTimeMs;
private final @Nullable ObservableSupplier<Boolean> mXrSpaceModeObservableSupplier;
@@ -679,7 +679,7 @@ diff --git a/chrome/android/features/tab_ui/java/src/org/chromium/chrome/browser
/**
* @param context The activity context.
@@ -473,6 +475,13 @@ public abstract class TabSwitcherPaneBase implements Pane, TabSwitcher, TabSwitc
@@ -493,6 +495,13 @@ public abstract class TabSwitcherPaneBase implements Pane, TabSwitcher, TabSwitc
Log.d(TAG, "Geometry not ready using fallback animation.");
useFallbackAnimation = true;
}
@@ -691,8 +691,8 @@ diff --git a/chrome/android/features/tab_ui/java/src/org/chromium/chrome/browser
+ }
+ }
// Ignore left offset and just ensure the width is correct. See crbug/1502437.
initialRect.offset(-leftOffset, -initialTopOffset);
finalRect.offset(-leftOffset, -finalTopOffset);
initialRect.offset(-initialLeftOffset, -initialTopOffset);
finalRect.offset(-finalLeftOffset, -finalTopOffset);
diff --git a/chrome/android/feed/core/java/src/org/chromium/chrome/browser/feed/FeedSurfaceCoordinator.java b/chrome/android/feed/core/java/src/org/chromium/chrome/browser/feed/FeedSurfaceCoordinator.java
--- a/chrome/android/feed/core/java/src/org/chromium/chrome/browser/feed/FeedSurfaceCoordinator.java
+++ b/chrome/android/feed/core/java/src/org/chromium/chrome/browser/feed/FeedSurfaceCoordinator.java
@@ -704,7 +704,7 @@ diff --git a/chrome/android/feed/core/java/src/org/chromium/chrome/browser/feed/
import android.view.MotionEvent;
import android.view.View;
import android.view.ViewGroup;
@@ -700,6 +701,9 @@ public class FeedSurfaceCoordinator
@@ -697,6 +698,9 @@ public class FeedSurfaceCoordinator
ViewGroup.LayoutParams.MATCH_PARENT, ViewGroup.LayoutParams.WRAP_CONTENT);
layoutParams.setMarginStart(margin);
layoutParams.setMarginEnd(margin);
@@ -741,12 +741,12 @@ diff --git a/chrome/android/java/res/xml/main_preferences.xml b/chrome/android/j
diff --git a/chrome/android/java/src/org/chromium/chrome/browser/ChromeTabbedActivity.java b/chrome/android/java/src/org/chromium/chrome/browser/ChromeTabbedActivity.java
--- a/chrome/android/java/src/org/chromium/chrome/browser/ChromeTabbedActivity.java
+++ b/chrome/android/java/src/org/chromium/chrome/browser/ChromeTabbedActivity.java
@@ -1084,7 +1084,8 @@ public class ChromeTabbedActivity extends ChromeActivity {
@@ -1077,7 +1077,8 @@ public class ChromeTabbedActivity extends ChromeActivity {
mRootUiCoordinator.getDataSharingTabManager(),
mRootUiCoordinator.getBottomSheetController(),
mRootUiCoordinator.getShareDelegateSupplier(),
mXrSceneCoreSessionManagerSupplier.get(),
- mRootUiCoordinator.getTopControlsStacker());
+ mRootUiCoordinator.getTopControlsStacker(),
- mXrSceneCoreSessionManagerSupplier.get());
+ mXrSceneCoreSessionManagerSupplier.get(),
+ /*browserControlsManagerSupplier*/ () -> getBrowserControlsManager());
mLayoutStateProviderSupplier.set(mLayoutManager);
}
@@ -874,7 +874,7 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/compositor/Comp
if (forwarder != null) forwarder.setCurrentTouchOffsetY(top);
}
@@ -967,6 +971,9 @@ public class CompositorViewHolder extends FrameLayout
@@ -965,6 +969,9 @@ public class CompositorViewHolder extends FrameLayout
? assumeNonNull(mApplicationBottomInsetSupplier.get())
.webContentsHeightInset
: 0;
@@ -887,10 +887,10 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/compositor/Comp
diff --git a/chrome/android/java/src/org/chromium/chrome/browser/compositor/layouts/LayoutManagerChrome.java b/chrome/android/java/src/org/chromium/chrome/browser/compositor/layouts/LayoutManagerChrome.java
--- a/chrome/android/java/src/org/chromium/chrome/browser/compositor/layouts/LayoutManagerChrome.java
+++ b/chrome/android/java/src/org/chromium/chrome/browser/compositor/layouts/LayoutManagerChrome.java
@@ -43,6 +43,7 @@ import org.chromium.components.browser_ui.widget.gesture.SwipeGestureListener.Sw
@@ -43,6 +43,7 @@ import org.chromium.components.browser_ui.widget.gesture.SwipeGestureListener.Sc
import org.chromium.components.browser_ui.widget.gesture.SwipeGestureListener.SwipeHandler;
import org.chromium.ui.resources.dynamics.DynamicResourceLoader;
import org.chromium.ui.util.AccessibilityUtil;
import org.chromium.ui.util.XrUtils;
+import org.chromium.chrome.browser.flags.ChromeFeatureList;
import java.util.List;
@@ -932,7 +932,7 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/compositor/layo
diff --git a/chrome/android/java/src/org/chromium/chrome/browser/compositor/layouts/LayoutManagerChromeTablet.java b/chrome/android/java/src/org/chromium/chrome/browser/compositor/layouts/LayoutManagerChromeTablet.java
--- a/chrome/android/java/src/org/chromium/chrome/browser/compositor/layouts/LayoutManagerChromeTablet.java
+++ b/chrome/android/java/src/org/chromium/chrome/browser/compositor/layouts/LayoutManagerChromeTablet.java
@@ -41,6 +41,7 @@ import org.chromium.ui.base.WindowAndroid;
@@ -40,6 +40,7 @@ import org.chromium.ui.base.WindowAndroid;
import org.chromium.ui.dragdrop.DragAndDropDelegate;
import org.chromium.ui.resources.dynamics.DynamicResourceLoader;
import org.chromium.ui.xr.scenecore.XrSceneCoreSessionManager;
@@ -940,22 +940,22 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/compositor/layo
import java.util.function.Supplier;
@@ -114,7 +115,8 @@ public class LayoutManagerChromeTablet extends LayoutManagerChrome {
@@ -111,7 +112,8 @@ public class LayoutManagerChromeTablet extends LayoutManagerChrome {
DataSharingTabManager dataSharingTabManager,
BottomSheetController bottomSheetController,
Supplier<ShareDelegate> shareDelegateSupplier,
@Nullable XrSceneCoreSessionManager xrSceneCoreSessionManager,
- TopControlsStacker topControlsStacker) {
+ TopControlsStacker topControlsStacker,
- @Nullable XrSceneCoreSessionManager xrSceneCoreSessionManager) {
+ @Nullable XrSceneCoreSessionManager xrSceneCoreSessionManager,
+ Supplier<BrowserControlsManager> browserControlsManagerSupplier) {
super(
host,
contentContainer,
@@ -153,7 +155,8 @@ public class LayoutManagerChromeTablet extends LayoutManagerChrome {
@@ -149,7 +151,8 @@ public class LayoutManagerChromeTablet extends LayoutManagerChrome {
dataSharingTabManager,
bottomSheetController,
shareDelegateSupplier,
xrSpaceModeObservableSupplier,
- topControlsStacker);
+ topControlsStacker,
- xrSpaceModeObservableSupplier);
+ xrSpaceModeObservableSupplier,
+ browserControlsManagerSupplier);
addSceneOverlay(mTabStripLayoutHelperManager);
addObserver(mTabStripLayoutHelperManager.getTabSwitcherObserver());
@@ -1013,7 +1013,7 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/compositor/over
diff --git a/chrome/android/java/src/org/chromium/chrome/browser/compositor/overlays/strip/StripLayoutHelperManager.java b/chrome/android/java/src/org/chromium/chrome/browser/compositor/overlays/strip/StripLayoutHelperManager.java
--- a/chrome/android/java/src/org/chromium/chrome/browser/compositor/overlays/strip/StripLayoutHelperManager.java
+++ b/chrome/android/java/src/org/chromium/chrome/browser/compositor/overlays/strip/StripLayoutHelperManager.java
@@ -116,6 +116,8 @@ import org.chromium.ui.interpolators.Interpolators;
@@ -112,6 +112,8 @@ import org.chromium.ui.interpolators.Interpolators;
import org.chromium.ui.resources.ResourceManager;
import org.chromium.ui.util.ColorUtils;
import org.chromium.url.GURL;
@@ -1022,7 +1022,7 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/compositor/over
import java.util.ArrayList;
import java.util.List;
@@ -274,12 +276,16 @@ public class StripLayoutHelperManager
@@ -269,12 +271,16 @@ public class StripLayoutHelperManager
// Drag-Drop
private @Nullable TabStripDragHandler mTabStripDragHandler;
@@ -1039,7 +1039,7 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/compositor/over
if (mModelSelectorButton != null && mModelSelectorButton.onDown(x, y, buttons)) {
return;
}
@@ -304,6 +310,7 @@ public class StripLayoutHelperManager
@@ -299,6 +305,7 @@ public class StripLayoutHelperManager
if (DragDropGlobalState.hasValue()) {
return;
}
@@ -1047,7 +1047,7 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/compositor/over
if (mModelSelectorButton != null) {
mModelSelectorButton.drag(x, y);
}
@@ -315,6 +322,7 @@ public class StripLayoutHelperManager
@@ -310,6 +317,7 @@ public class StripLayoutHelperManager
if (DragDropGlobalState.hasValue()) {
return;
}
@@ -1055,7 +1055,7 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/compositor/over
long time = time();
if (mModelSelectorButton != null && mModelSelectorButton.click(x, y, buttons)) {
mModelSelectorButton.handleClick(time, buttons, modifiers);
@@ -328,6 +336,7 @@ public class StripLayoutHelperManager
@@ -323,6 +331,7 @@ public class StripLayoutHelperManager
if (DragDropGlobalState.hasValue()) {
return;
}
@@ -1063,7 +1063,7 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/compositor/over
getActiveStripLayoutHelper().fling(time(), velocityX);
}
@@ -336,6 +345,7 @@ public class StripLayoutHelperManager
@@ -331,6 +340,7 @@ public class StripLayoutHelperManager
if (DragDropGlobalState.hasValue()) {
return;
}
@@ -1071,17 +1071,17 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/compositor/over
getActiveStripLayoutHelper().onLongPress(x, y);
}
@@ -477,7 +487,8 @@ public class StripLayoutHelperManager
@@ -470,7 +480,8 @@ public class StripLayoutHelperManager
DataSharingTabManager dataSharingTabManager,
BottomSheetController bottomSheetController,
Supplier<ShareDelegate> shareDelegateSupplier,
@Nullable ObservableSupplier<Boolean> xrSpaceModeObservableSupplier,
- TopControlsStacker topControlsStacker) {
+ TopControlsStacker topControlsStacker,
- @Nullable ObservableSupplier<Boolean> xrSpaceModeObservableSupplier) {
+ @Nullable ObservableSupplier<Boolean> xrSpaceModeObservableSupplier,
+ Supplier<BrowserControlsManager> browserControlsManagerSupplier) {
mContext = context;
Resources res = context.getResources();
mManagerHost = managerHost;
@@ -597,6 +608,8 @@ public class StripLayoutHelperManager
@@ -590,6 +601,8 @@ public class StripLayoutHelperManager
multiInstanceManager,
shareDelegateSupplier,
TabGroupListBottomSheetCoordinator::new);
@@ -1090,7 +1090,7 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/compositor/over
tabHoverCardViewStub.setOnInflateListener(
(viewStub, view) -> {
@@ -867,6 +880,10 @@ public class StripLayoutHelperManager
@@ -856,6 +869,10 @@ public class StripLayoutHelperManager
yOffset = 0;
}
@@ -1101,7 +1101,7 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/compositor/over
mTabStripTreeProvider.pushAndUpdateStrip(
this,
mLayerTitleCacheSupplier.get(),
@@ -880,7 +897,9 @@ public class StripLayoutHelperManager
@@ -869,7 +886,9 @@ public class StripLayoutHelperManager
mStripTransitionScrimOpacity,
getActiveStripLayoutHelper().getLeftPaddingToDraw(),
getActiveStripLayoutHelper().getRightPaddingToDraw(),
@@ -1112,7 +1112,7 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/compositor/over
return mTabStripTreeProvider;
}
@@ -946,11 +965,21 @@ public class StripLayoutHelperManager
@@ -935,11 +954,21 @@ public class StripLayoutHelperManager
mRightPadding,
mTopPadding);
@@ -1254,7 +1254,7 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/findinpage/Find
diff --git a/chrome/android/java/src/org/chromium/chrome/browser/fullscreen/BrowserControlsManager.java b/chrome/android/java/src/org/chromium/chrome/browser/fullscreen/BrowserControlsManager.java
--- a/chrome/android/java/src/org/chromium/chrome/browser/fullscreen/BrowserControlsManager.java
+++ b/chrome/android/java/src/org/chromium/chrome/browser/fullscreen/BrowserControlsManager.java
@@ -54,6 +54,8 @@ import org.chromium.ui.OffsetTagConstraints;
@@ -55,6 +55,8 @@ import org.chromium.ui.OffsetTagConstraints;
import org.chromium.ui.base.ViewUtils;
import org.chromium.ui.util.TokenHolder;
@@ -1263,7 +1263,7 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/fullscreen/Brow
/** A class that manages browser control visibility and positioning. */
@NullMarked
public class BrowserControlsManager implements ActivityStateListener, BrowserControlsSizer {
@@ -588,6 +590,14 @@ public class BrowserControlsManager implements ActivityStateListener, BrowserCon
@@ -616,6 +618,14 @@ public class BrowserControlsManager implements ActivityStateListener, BrowserCon
}
}
@@ -1278,7 +1278,7 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/fullscreen/Brow
@Override
public int getTopControlsMinHeight() {
return mTopControlsMinHeight;
@@ -689,6 +699,8 @@ public class BrowserControlsManager implements ActivityStateListener, BrowserCon
@@ -717,6 +727,8 @@ public class BrowserControlsManager implements ActivityStateListener, BrowserCon
@Override
public float getTopVisibleContentOffset() {
@@ -1341,7 +1341,7 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/modaldialog/Chr
diff --git a/chrome/android/java/src/org/chromium/chrome/browser/ntp/NewTabPage.java b/chrome/android/java/src/org/chromium/chrome/browser/ntp/NewTabPage.java
--- a/chrome/android/java/src/org/chromium/chrome/browser/ntp/NewTabPage.java
+++ b/chrome/android/java/src/org/chromium/chrome/browser/ntp/NewTabPage.java
@@ -125,6 +125,7 @@ import org.chromium.content_public.browser.NavigationController;
@@ -129,6 +129,7 @@ import org.chromium.content_public.browser.NavigationController;
import org.chromium.ui.base.DeviceFormFactor;
import org.chromium.ui.base.WindowAndroid;
import org.chromium.url.GURL;
@@ -1349,7 +1349,7 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/ntp/NewTabPage.
import androidx.annotation.NonNull;
import org.chromium.chrome.browser.bookmarks.BookmarkManagerOpener;
@@ -823,11 +824,16 @@ public class NewTabPage
@@ -873,11 +874,16 @@ public class NewTabPage
final int topControlsDistanceToRest =
mBrowserControlsStateProvider.getContentOffset()
- mBrowserControlsStateProvider.getTopControlsHeight();
@@ -1368,7 +1368,7 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/ntp/NewTabPage.
if (topMargin != layoutParams.topMargin || bottomMargin != layoutParams.bottomMargin) {
layoutParams.topMargin = topMargin;
@@ -843,9 +849,7 @@ public class NewTabPage
@@ -893,9 +899,7 @@ public class NewTabPage
* strip.
*/
private int getToolbarExtraYOffset() {
@@ -1382,7 +1382,7 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/ntp/NewTabPage.
diff --git a/chrome/android/java/src/org/chromium/chrome/browser/ntp/NewTabPageLayout.java b/chrome/android/java/src/org/chromium/chrome/browser/ntp/NewTabPageLayout.java
--- a/chrome/android/java/src/org/chromium/chrome/browser/ntp/NewTabPageLayout.java
+++ b/chrome/android/java/src/org/chromium/chrome/browser/ntp/NewTabPageLayout.java
@@ -13,6 +13,9 @@ import android.text.Editable;
@@ -14,6 +14,9 @@ import android.text.Editable;
import android.util.AttributeSet;
import android.view.DragEvent;
import android.view.ViewStub;
@@ -1392,9 +1392,9 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/ntp/NewTabPageL
import android.view.View;
import android.view.ViewGroup;
import android.view.ViewStub;
@@ -208,7 +211,12 @@ public class NewTabPageLayout extends LinearLayout
mFakeSearchBoxLayout = findViewById(R.id.search_box);
mFakeSearchBoxEditText = findViewById(R.id.search_box_text);
@@ -213,7 +216,12 @@ public class NewTabPageLayout extends LinearLayout
Log.i(TAG, "NewTabPageLayout.onFinishInflate before insertSiteSectionView");
initializeSiteSectionView();
-
+ if (ChromeFeatureList.sMoveTopToolbarToBottom.isEnabled()) {
@@ -1409,7 +1409,7 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/ntp/NewTabPageL
diff --git a/chrome/android/java/src/org/chromium/chrome/browser/ntp/RecentTabsPage.java b/chrome/android/java/src/org/chromium/chrome/browser/ntp/RecentTabsPage.java
--- a/chrome/android/java/src/org/chromium/chrome/browser/ntp/RecentTabsPage.java
+++ b/chrome/android/java/src/org/chromium/chrome/browser/ntp/RecentTabsPage.java
@@ -34,6 +34,7 @@ import org.chromium.components.embedder_support.util.UrlConstants;
@@ -33,6 +33,7 @@ import org.chromium.components.embedder_support.util.UrlConstants;
import org.chromium.ui.base.DeviceFormFactor;
import org.chromium.ui.base.ViewUtils;
import org.chromium.ui.edge_to_edge.EdgeToEdgePadAdjuster;
@@ -1417,7 +1417,7 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/ntp/RecentTabsP
/**
* The native recent tabs page. Lists recently closed tabs, open windows and tabs from the user's
@@ -118,7 +119,8 @@ public class RecentTabsPage
@@ -117,7 +118,8 @@ public class RecentTabsPage
mView.addOnAttachStateChangeListener(this);
@@ -1427,7 +1427,7 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/ntp/RecentTabsP
mBrowserControlsStateProvider = browserControlsStateProvider;
mBrowserControlsStateProvider.addObserver(this);
onBottomControlsHeightChanged(
@@ -130,14 +132,23 @@ public class RecentTabsPage
@@ -129,14 +131,23 @@ public class RecentTabsPage
mTabStripHeightSupplier = tabStripHeightSupplier;
mView.setPadding(0, mTabStripHeightSupplier.get(), 0, 0);
@@ -1451,9 +1451,9 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/ntp/RecentTabsP
+ mTabStripHeightSupplier.addObserver(mTabStripHeightChangeCallback);
+ }
mEdgeToEdgeSupplier = edgeToEdgeSupplier;
if (EdgeToEdgeUtils.isDrawKeyNativePageToEdgeEnabled()) {
mPadAdjuster =
@@ -365,7 +376,7 @@ public class RecentTabsPage
mPadAdjuster =
EdgeToEdgeControllerFactory.createForViewAndObserveSupplier(
@@ -362,7 +373,7 @@ public class RecentTabsPage
if (mBrowserControlsStateProvider == null) return;
final View recentTabsRoot = mView.findViewById(R.id.recent_tabs_root);
@@ -1462,7 +1462,7 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/ntp/RecentTabsP
final int contentOffset = mBrowserControlsStateProvider.getContentOffset();
ViewGroup.MarginLayoutParams layoutParams =
(ViewGroup.MarginLayoutParams) recentTabsRoot.getLayoutParams();
@@ -381,9 +392,17 @@ public class RecentTabsPage
@@ -378,9 +389,17 @@ public class RecentTabsPage
// If the content offset is different from the margin, we use translationY to position the
// view in line with the content offset.
@@ -1493,7 +1493,7 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/page_info/Chrom
import org.chromium.chrome.browser.fullscreen.BrowserControlsManagerSupplier;
import org.chromium.chrome.browser.merchant_viewer.PageInfoStoreInfoController.StoreInfoActionHandler;
import org.chromium.chrome.browser.offlinepages.OfflinePageUtils;
@@ -77,6 +78,7 @@ public class ChromePageInfo {
@@ -90,6 +91,7 @@ public class ChromePageInfo {
if (stateProvider != null) {
dialogPosition =
stateProvider.getControlsPosition() == ControlsPosition.BOTTOM
@@ -1504,7 +1504,7 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/page_info/Chrom
diff --git a/chrome/android/java/src/org/chromium/chrome/browser/searchwidget/SearchActivity.java b/chrome/android/java/src/org/chromium/chrome/browser/searchwidget/SearchActivity.java
--- a/chrome/android/java/src/org/chromium/chrome/browser/searchwidget/SearchActivity.java
+++ b/chrome/android/java/src/org/chromium/chrome/browser/searchwidget/SearchActivity.java
@@ -87,6 +87,11 @@ import org.chromium.url.GURL;
@@ -89,6 +89,11 @@ import org.chromium.url.GURL;
import java.lang.annotation.Retention;
import java.lang.annotation.RetentionPolicy;
@@ -1516,7 +1516,7 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/searchwidget/Se
import java.lang.ref.WeakReference;
/** Queries the user's default search engine and shows autocomplete suggestions. */
@@ -303,6 +308,15 @@ public class SearchActivity extends AsyncInitializationActivity
@@ -305,6 +310,15 @@ public class SearchActivity extends AsyncInitializationActivity
// Build the search box.
mSearchBox = contentView.findViewById(R.id.search_location_bar);
mAnchorView = contentView.findViewById(R.id.toolbar);
@@ -1599,7 +1599,7 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/status_indicato
diff --git a/chrome/android/java/src/org/chromium/chrome/browser/toolbar/ToolbarManager.java b/chrome/android/java/src/org/chromium/chrome/browser/toolbar/ToolbarManager.java
--- a/chrome/android/java/src/org/chromium/chrome/browser/toolbar/ToolbarManager.java
+++ b/chrome/android/java/src/org/chromium/chrome/browser/toolbar/ToolbarManager.java
@@ -221,6 +221,9 @@ import org.chromium.url.GURL;
@@ -232,6 +232,9 @@ import org.chromium.url.GURL;
import java.util.List;
import java.util.function.Supplier;
@@ -1609,8 +1609,8 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/toolbar/Toolbar
/**
* Contains logic for managing the toolbar visual component. This class manages the interactions
* with the rest of the application to ensure the toolbar is always visually up to date.
@@ -873,6 +876,17 @@ public class ToolbarManager
mToolbarPositionSupplier, AlwaysIncognitoLinkInterceptor.isAlwaysIncognito());
@@ -892,6 +895,17 @@ public class ToolbarManager
/* matchTrustedCdnUrl= */ mIsCustomTab, AlwaysIncognitoLinkInterceptor.isAlwaysIncognito());
mControlContainer = controlContainer;
mToolbarHairline = mControlContainer.findViewById(R.id.toolbar_hairline);
+ if (ChromeFeatureList.sMoveTopToolbarToBottom.isEnabled()) {
@@ -1627,7 +1627,7 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/toolbar/Toolbar
mBookmarkModelSupplier = bookmarkModelSupplier;
mBookmarkModelSupplier.addObserver(mBookmarkModelSupplierObserver);
@@ -1540,6 +1554,7 @@ public class ToolbarManager
@@ -1568,6 +1582,7 @@ public class ToolbarManager
// the height won't be measured by the background image.
if (mControlContainer.getBackground() == null) {
setControlContainerTopMargin(getToolbarExtraYOffset());
@@ -1635,7 +1635,7 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/toolbar/Toolbar
} else if (mLayoutChangeListener == null) {
mLayoutChangeListener =
(view,
@@ -1553,6 +1568,7 @@ public class ToolbarManager
@@ -1581,6 +1596,7 @@ public class ToolbarManager
oldBottom) -> {
if (mControlContainer.getBackground() == null) {
setControlContainerTopMargin(getToolbarExtraYOffset());
@@ -1643,7 +1643,7 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/toolbar/Toolbar
mControlContainer.removeOnLayoutChangeListener(
mLayoutChangeListener);
mLayoutChangeListener = null;
@@ -2162,9 +2178,21 @@ public class ToolbarManager
@@ -2206,9 +2222,21 @@ public class ToolbarManager
return ((LocationBarCoordinator) mLocationBar).getUrlBarViewRectProvider();
}
@@ -1665,8 +1665,8 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/toolbar/Toolbar
+ MoveBottomBarOverTopBar();
assert mTabGroupUiOneshotSupplier == null;
assert mUndoBarThrottle != null;
ThemeColorProvider bottomUiThemeColorProvider =
@@ -2179,7 +2207,7 @@ public class ToolbarManager
assert mLayoutManager != null;
@@ -2226,7 +2254,7 @@ public class ToolbarManager
mActivityTabProvider,
mTabModelSelector,
mActivity,
@@ -1675,7 +1675,7 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/toolbar/Toolbar
mBrowserControlsSizer,
mScrimManager,
mOmniboxFocusStateSupplier,
@@ -2206,7 +2234,7 @@ public class ToolbarManager
@@ -2253,7 +2281,7 @@ public class ToolbarManager
mControlsVisibilityDelegate,
mFullscreenManager,
mEdgeToEdgeControllerSupplier,
@@ -1684,7 +1684,7 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/toolbar/Toolbar
bottomControlsContentDelegateSupplier,
mTabObscuringHandler,
mOverlayPanelVisibilitySupplier,
@@ -2214,7 +2242,8 @@ public class ToolbarManager
@@ -2261,7 +2289,8 @@ public class ToolbarManager
/* readAloudRestoringSupplier= */ () -> {
final var readAloud = mReadAloudControllerSupplier.get();
return readAloud != null && readAloud.isRestoringPlayer();
@@ -1753,7 +1753,7 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/ui/system/Statu
import org.chromium.chrome.browser.layouts.LayoutManager;
import org.chromium.chrome.browser.layouts.LayoutStateProvider;
import org.chromium.chrome.browser.layouts.LayoutStateProvider.LayoutStateObserver;
@@ -530,6 +532,12 @@ public class StatusBarColorController
@@ -537,6 +539,12 @@ public class StatusBarColorController
UiUtils.setStatusBarIconColor(root, needsDarkStatusBarIcons);
UiUtils.setStatusBarColor(window, color);
}
@@ -1924,19 +1924,19 @@ diff --git a/chrome/browser/flags/android/chrome_feature_list.cc b/chrome/browse
#include "chrome/browser/android/webapk/webapk_features.h"
#include "chrome/browser/browser_features.h"
#include "chrome/browser/contextmenu/context_menu_features.h"
@@ -364,6 +365,8 @@ const base::Feature* const kFeaturesExposedToJava[] = {
&kMvcUpdateViewWhenModelChanged,
&kNativePageTransitionHardwareCapture,
&kNavBarColorAnimation,
@@ -375,6 +376,8 @@ const base::Feature* const kFeaturesExposedToJava[] = {
&kNewTabPageCustomizationToolbarButton,
&kNewTabPageCustomizationV2,
&kNotificationPermissionBottomSheet,
+ &features::kMoveTopToolbarToBottom,
+ &features::kDisableToolbarSwipeUp,
&kNotificationPermissionVariant,
&kNotificationPermissionBottomSheet,
&kNotificationTrampoline,
&kOfflineIndicatorV2,
diff --git a/chrome/browser/flags/android/java/src/org/chromium/chrome/browser/flags/ChromeFeatureList.java b/chrome/browser/flags/android/java/src/org/chromium/chrome/browser/flags/ChromeFeatureList.java
--- a/chrome/browser/flags/android/java/src/org/chromium/chrome/browser/flags/ChromeFeatureList.java
+++ b/chrome/browser/flags/android/java/src/org/chromium/chrome/browser/flags/ChromeFeatureList.java
@@ -503,6 +503,10 @@ public abstract class ChromeFeatureList {
@@ -507,6 +507,10 @@ public abstract class ChromeFeatureList {
public static final String NAV_BAR_COLOR_ANIMATION = "NavBarColorAnimation";
public static final String NEW_TAB_PAGE_CUSTOMIZATION = "NewTabPageCustomization";
public static final String NEW_TAB_PAGE_CUSTOMIZATION_FOR_MVT = "NewTabPageCustomizationForMvt";
@@ -1947,7 +1947,7 @@ diff --git a/chrome/browser/flags/android/java/src/org/chromium/chrome/browser/f
public static final String NEW_TAB_PAGE_CUSTOMIZATION_TOOLBAR_BUTTON =
"NewTabPageCustomizationToolbarButton";
public static final String NEW_TAB_PAGE_CUSTOMIZATION_V2 = "NewTabPageCustomizationV2";
@@ -1027,6 +1031,10 @@ public abstract class ChromeFeatureList {
@@ -1016,6 +1020,10 @@ public abstract class ChromeFeatureList {
public static final CachedFlag sOptimizationGuidePushNotifications =
newCachedFlag(OPTIMIZATION_GUIDE_PUSH_NOTIFICATIONS, true);
public static final CachedFlag sPCctMinimumHeight = newCachedFlag(PCCT_MINIMUM_HEIGHT, true);
@@ -1958,7 +1958,7 @@ diff --git a/chrome/browser/flags/android/java/src/org/chromium/chrome/browser/f
public static final CachedFlag sPaintPreviewDemo = newCachedFlag(PAINT_PREVIEW_DEMO, false);
public static final CachedFlag sPostGetMyMemoryStateToBackground =
newCachedFlag(POST_GET_MEMORY_PRESSURE_TO_BACKGROUND, true);
@@ -1249,6 +1257,8 @@ public abstract class ChromeFeatureList {
@@ -1248,6 +1256,8 @@ public abstract class ChromeFeatureList {
sNotificationTrampoline,
sOptimizationGuidePushNotifications,
sPCctMinimumHeight,
@@ -1999,8 +1999,8 @@ diff --git a/chrome/browser/hub/internal/android/java/src/org/chromium/chrome/br
+import android.widget.LinearLayout;
import org.chromium.base.Callback;
import org.chromium.base.metrics.RecordUserAction;
@@ -23,6 +24,7 @@ import org.chromium.base.supplier.TransitiveObservableSupplier;
import org.chromium.base.DeviceInfo;
@@ -24,6 +25,7 @@ import org.chromium.base.supplier.TransitiveObservableSupplier;
import org.chromium.build.annotations.NullMarked;
import org.chromium.build.annotations.Nullable;
import org.chromium.chrome.browser.feature_engagement.TrackerFactory;
@@ -2128,16 +2128,16 @@ diff --git a/chrome/browser/hub/internal/android/res/layout/hub_layout.xml b/chr
android:layout_width="match_parent"
android:layout_height="match_parent">
- <LinearLayout
- <FrameLayout
+ <org.chromium.chrome.browser.hub.ReversedLinearLayout
android:id="@+id/hub_main_container"
android:layout_width="match_parent"
android:layout_height="match_parent"
@@ -22,7 +22,7 @@ found in the LICENSE file.
android:layout_height="0dp"
android:layout_weight="1"/>
android:layout_height="match_parent">
@@ -21,7 +21,7 @@ found in the LICENSE file.
- </LinearLayout>
<include layout="@layout/hub_toolbar_layout" />
- </FrameLayout>
+ </org.chromium.chrome.browser.hub.ReversedLinearLayout>
<!-- z-index above everything else. -->
@@ -2166,7 +2166,7 @@ diff --git a/chrome/browser/hub/internal/android/res/layout/hub_toolbar_layout.x
diff --git a/chrome/browser/prefs/browser_prefs.cc b/chrome/browser/prefs/browser_prefs.cc
--- a/chrome/browser/prefs/browser_prefs.cc
+++ b/chrome/browser/prefs/browser_prefs.cc
@@ -2463,7 +2463,7 @@ void RegisterProfilePrefs(user_prefs::PrefRegistrySyncable* registry,
@@ -2282,7 +2282,7 @@ void RegisterProfilePrefs(user_prefs::PrefRegistrySyncable* registry,
#if BUILDFLAG(IS_ANDROID)
registry->RegisterBooleanPref(prefs::kVirtualKeyboardResizesLayoutByDefault,
@@ -2186,15 +2186,7 @@ diff --git a/chrome/browser/ui/android/appmenu/internal/java/src/org/chromium/ch
import android.os.SystemClock;
import android.view.Gravity;
import android.view.KeyEvent;
@@ -46,6 +47,7 @@ import org.chromium.build.annotations.NullMarked;
import org.chromium.build.annotations.Nullable;
import org.chromium.build.annotations.RequiresNonNull;
import org.chromium.chrome.browser.browser_controls.BrowserControlsStateProvider.ControlsPosition;
+import org.chromium.chrome.browser.flags.ChromeFeatureList;
import org.chromium.chrome.browser.ui.appmenu.internal.R;
import org.chromium.components.browser_ui.styles.SemanticColorUtils;
import org.chromium.components.browser_ui.widget.chips.ChipView;
@@ -249,6 +251,12 @@ class AppMenu implements OnKeyListener {
@@ -256,6 +257,12 @@ class AppMenu implements OnKeyListener {
}
mListView = contentView.findViewById(R.id.app_menu_list);
@@ -2207,7 +2199,7 @@ diff --git a/chrome/browser/ui/android/appmenu/internal/java/src/org/chromium/ch
int footerHeight = attachFooter(footer, (ViewGroup) contentView, menuWidth);
int headerHeight = attachHeader(header, menuWidth);
@@ -287,7 +295,7 @@ class AppMenu implements OnKeyListener {
@@ -294,7 +301,7 @@ class AppMenu implements OnKeyListener {
Math.min(
Math.abs(mTempLocation[1] - visibleDisplayFrame.top),
Math.abs(mTempLocation[1] - visibleDisplayFrame.bottom));
@@ -2216,7 +2208,7 @@ diff --git a/chrome/browser/ui/android/appmenu/internal/java/src/org/chromium/ch
mInitialSizingHelper,
visibleDisplayFrame,
sizingPadding,
@@ -305,8 +313,14 @@ class AppMenu implements OnKeyListener {
@@ -312,8 +319,14 @@ class AppMenu implements OnKeyListener {
sizingPadding,
anchorView,
popupWidth,
@@ -2230,9 +2222,9 @@ diff --git a/chrome/browser/ui/android/appmenu/internal/java/src/org/chromium/ch
+ mPopup.setHeight(popupHeight - 1);
+ }
try {
mPopup.showAtLocation(
@@ -381,11 +395,20 @@ class AppMenu implements OnKeyListener {
// Post the show call to handle keyboard click events.
if (ChromeFeatureList.sAndroidWebAppMenuButton.isEnabled()) {
@@ -385,11 +398,20 @@ class AppMenu implements OnKeyListener {
Rect padding,
View anchorView,
int popupWidth,
@@ -2254,7 +2246,7 @@ diff --git a/chrome/browser/ui/android/appmenu/internal/java/src/org/chromium/ch
int[] offsets = new int[2];
// If we have a hardware menu button, locate the app menu closer to the estimated
// hardware menu button location.
@@ -491,7 +514,7 @@ class AppMenu implements OnKeyListener {
@@ -495,7 +517,7 @@ class AppMenu implements OnKeyListener {
}
@RequiresNonNull("mPopup")
@@ -2263,7 +2255,7 @@ diff --git a/chrome/browser/ui/android/appmenu/internal/java/src/org/chromium/ch
InitialSizingHelper sizingHelper,
Rect appDimensions,
Rect padding,
@@ -509,7 +532,13 @@ class AppMenu implements OnKeyListener {
@@ -513,7 +535,13 @@ class AppMenu implements OnKeyListener {
- footerHeight
- headerHeight
- anchorViewImpactHeight;
@@ -2278,7 +2270,7 @@ diff --git a/chrome/browser/ui/android/appmenu/internal/java/src/org/chromium/ch
if (mIsByPermanentButton) availableScreenSpace -= padding.top;
if (availableScreenSpace <= 0 && sExceptionReporter != null) {
String logMessage =
@@ -546,6 +575,7 @@ class AppMenu implements OnKeyListener {
@@ -550,6 +578,7 @@ class AppMenu implements OnKeyListener {
int menuHeight = calculateHeightForItems(heightList, canBeLastList, availableScreenSpace);
menuHeight += footerHeight + headerHeight + padding.top + padding.bottom;
mPopup.setHeight(menuHeight);
@@ -2297,7 +2289,7 @@ diff --git a/chrome/browser/ui/android/appmenu/internal/java/src/org/chromium/ch
import org.chromium.build.annotations.MonotonicNonNull;
import org.chromium.build.annotations.NullMarked;
import org.chromium.build.annotations.Nullable;
@@ -273,7 +274,16 @@ class AppMenuHandlerImpl
@@ -274,7 +275,16 @@ class AppMenuHandlerImpl
assert !(isByPermanentButton && startDragging);
mModelList = mDelegate.getMenuItems();
@@ -2317,7 +2309,7 @@ diff --git a/chrome/browser/ui/android/appmenu/internal/java/src/org/chromium/ch
diff --git a/chrome/browser/ui/android/edge_to_edge/internal/java/src/org/chromium/chrome/browser/ui/edge_to_edge/EdgeToEdgeControllerImpl.java b/chrome/browser/ui/android/edge_to_edge/internal/java/src/org/chromium/chrome/browser/ui/edge_to_edge/EdgeToEdgeControllerImpl.java
--- a/chrome/browser/ui/android/edge_to_edge/internal/java/src/org/chromium/chrome/browser/ui/edge_to_edge/EdgeToEdgeControllerImpl.java
+++ b/chrome/browser/ui/android/edge_to_edge/internal/java/src/org/chromium/chrome/browser/ui/edge_to_edge/EdgeToEdgeControllerImpl.java
@@ -694,6 +694,7 @@ public class EdgeToEdgeControllerImpl
@@ -687,6 +687,7 @@ public class EdgeToEdgeControllerImpl
* the system insets due to the keyboard or the bottom controls being visible.
*/
private boolean shouldPadAdjusters() {
@@ -2336,7 +2328,7 @@ diff --git a/chrome/browser/ui/android/edge_to_edge/java/src/org/chromium/chrome
// Make sure we test SDK version before checking the Feature so Field Trials only collect
// from qualifying devices.
if (!EdgeToEdgeFieldTrialImpl.getBottomChinOverrides().isEnabledForManufacturerVersion()) {
@@ -375,6 +376,7 @@ public class EdgeToEdgeUtils {
@@ -362,6 +363,7 @@ public class EdgeToEdgeUtils {
*/
@Deprecated
static boolean hasTappableNavigationBar(Window window) {
@@ -2400,18 +2392,18 @@ diff --git a/chrome/browser/ui/android/omnibox/java/src/org/chromium/chrome/brow
diff --git a/chrome/browser/ui/android/omnibox/java/src/org/chromium/chrome/browser/omnibox/LocationBarCoordinator.java b/chrome/browser/ui/android/omnibox/java/src/org/chromium/chrome/browser/omnibox/LocationBarCoordinator.java
--- a/chrome/browser/ui/android/omnibox/java/src/org/chromium/chrome/browser/omnibox/LocationBarCoordinator.java
+++ b/chrome/browser/ui/android/omnibox/java/src/org/chromium/chrome/browser/omnibox/LocationBarCoordinator.java
@@ -224,6 +224,7 @@ public class LocationBarCoordinator
@@ -232,6 +232,7 @@ public class LocationBarCoordinator
? ControlsPosition.TOP
: mBrowserControlsStateProvider.getControlsPosition(),
mDeferredIMEWindowInsetApplicationCallback::getCurrentKeyboardHeight,
+ mDeferredIMEWindowInsetApplicationCallback::getSystemBarInsetsBottom,
bottomWindowPaddingSupplier);
bottomWindowPaddingSupplier,
locationBarDataProvider);
mUrlBar = mLocationBarLayout.findViewById(R.id.url_bar);
diff --git a/chrome/browser/ui/android/omnibox/java/src/org/chromium/chrome/browser/omnibox/OmniboxSuggestionsDropdownEmbedderImpl.java b/chrome/browser/ui/android/omnibox/java/src/org/chromium/chrome/browser/omnibox/OmniboxSuggestionsDropdownEmbedderImpl.java
--- a/chrome/browser/ui/android/omnibox/java/src/org/chromium/chrome/browser/omnibox/OmniboxSuggestionsDropdownEmbedderImpl.java
+++ b/chrome/browser/ui/android/omnibox/java/src/org/chromium/chrome/browser/omnibox/OmniboxSuggestionsDropdownEmbedderImpl.java
@@ -15,6 +15,7 @@ import android.view.ViewTreeObserver.OnGlobalLayoutListener;
@@ -16,6 +16,7 @@ import android.view.ViewTreeObserver.OnGlobalLayoutListener;
import android.view.WindowInsets;
import androidx.core.graphics.Insets;
@@ -2419,15 +2411,15 @@ diff --git a/chrome/browser/ui/android/omnibox/java/src/org/chromium/chrome/brow
import androidx.core.view.WindowInsetsCompat;
import org.chromium.base.Callback;
@@ -25,6 +26,7 @@ import org.chromium.build.annotations.Nullable;
import org.chromium.chrome.browser.browser_controls.BrowserControlsStateProvider.ControlsPosition;
@@ -27,6 +28,7 @@ import org.chromium.chrome.browser.browser_controls.BrowserControlsStateProvider
import org.chromium.chrome.browser.flags.ChromeFeatureList;
import org.chromium.chrome.browser.omnibox.styles.OmniboxResourceProvider;
import org.chromium.chrome.browser.omnibox.suggestions.OmniboxSuggestionsDropdownEmbedder;
+import org.chromium.chrome.browser.flags.ChromeFeatureList;
import org.chromium.ui.base.DeviceFormFactor;
import org.chromium.ui.base.ViewUtils;
import org.chromium.ui.base.WindowAndroid;
@@ -49,6 +51,7 @@ class OmniboxSuggestionsDropdownEmbedderImpl
@@ -51,6 +53,7 @@ class OmniboxSuggestionsDropdownEmbedderImpl
private final boolean mForcePhoneStyleOmnibox;
private final Supplier<@ControlsPosition Integer> mControlsPositionSupplier;
private final Supplier<Integer> mKeyboardHeightSupplier;
@@ -2435,15 +2427,15 @@ diff --git a/chrome/browser/ui/android/omnibox/java/src/org/chromium/chrome/brow
private final Supplier<Integer> mBottomWindowPaddingSupplier;
private final Context mContext;
// Reusable int array to pass to positioning methods that operate on a two element int array.
@@ -88,6 +91,7 @@ class OmniboxSuggestionsDropdownEmbedderImpl
@@ -92,6 +95,7 @@ class OmniboxSuggestionsDropdownEmbedderImpl
@Nullable View baseChromeLayout,
Supplier<@ControlsPosition Integer> controlsPositionSupplier,
Supplier<Integer> keyboardHeightSupplier,
+ Supplier<Integer> systemBarInsetsBottomSupplier,
Supplier<Integer> bottomWindowPaddingSupplier) {
Supplier<Integer> bottomWindowPaddingSupplier,
LocationBarDataProvider locationBarDataProvider) {
mWindowAndroid = windowAndroid;
mAnchorView = anchorView;
@@ -95,6 +99,7 @@ class OmniboxSuggestionsDropdownEmbedderImpl
@@ -100,6 +104,7 @@ class OmniboxSuggestionsDropdownEmbedderImpl
mForcePhoneStyleOmnibox = forcePhoneStyleOmnibox;
mControlsPositionSupplier = controlsPositionSupplier;
mKeyboardHeightSupplier = keyboardHeightSupplier;
@@ -2451,7 +2443,7 @@ diff --git a/chrome/browser/ui/android/omnibox/java/src/org/chromium/chrome/brow
mBottomWindowPaddingSupplier = bottomWindowPaddingSupplier;
mContext = mAnchorView.getContext();
mContext.registerComponentCallbacks(this);
@@ -115,6 +120,11 @@ class OmniboxSuggestionsDropdownEmbedderImpl
@@ -121,6 +126,11 @@ class OmniboxSuggestionsDropdownEmbedderImpl
mOmniboxAlignmentSupplier.removeObserver(obs);
}
@@ -2463,7 +2455,7 @@ diff --git a/chrome/browser/ui/android/omnibox/java/src/org/chromium/chrome/brow
@Override
public OmniboxAlignment getCurrentAlignment() {
return assertNonNull(mOmniboxAlignmentSupplier.get());
@@ -138,6 +148,10 @@ class OmniboxSuggestionsDropdownEmbedderImpl
@@ -152,6 +162,10 @@ class OmniboxSuggestionsDropdownEmbedderImpl
@Override
public void onDetachedFromWindow() {
@@ -2474,7 +2466,7 @@ diff --git a/chrome/browser/ui/android/omnibox/java/src/org/chromium/chrome/brow
mAnchorView.removeOnLayoutChangeListener(this);
mAlignmentView.removeOnLayoutChangeListener(this);
mAnchorView.getViewTreeObserver().removeOnGlobalLayoutListener(this);
@@ -234,6 +248,9 @@ class OmniboxSuggestionsDropdownEmbedderImpl
@@ -257,6 +271,9 @@ class OmniboxSuggestionsDropdownEmbedderImpl
} else {
ViewUtils.getRelativeLayoutPosition(contentView, mAnchorView, mPositionArray);
top = mPositionArray[1] + mAnchorView.getMeasuredHeight() - contentView.getPaddingTop();
@@ -2484,7 +2476,7 @@ diff --git a/chrome/browser/ui/android/omnibox/java/src/org/chromium/chrome/brow
}
if (isTablet()) {
@@ -311,6 +328,13 @@ class OmniboxSuggestionsDropdownEmbedderImpl
@@ -343,6 +360,13 @@ class OmniboxSuggestionsDropdownEmbedderImpl
height = Math.min(windowSpace, contentSpace) - top;
}
@@ -2498,7 +2490,7 @@ diff --git a/chrome/browser/ui/android/omnibox/java/src/org/chromium/chrome/brow
// TODO(pnoland@, https://crbug.com/1416985): avoid pushing changes that are identical to
// the previous alignment value.
OmniboxAlignment omniboxAlignment =
@@ -319,6 +343,14 @@ class OmniboxSuggestionsDropdownEmbedderImpl
@@ -351,6 +375,14 @@ class OmniboxSuggestionsDropdownEmbedderImpl
mOmniboxAlignmentSupplier.set(omniboxAlignment);
}
@@ -2516,7 +2508,7 @@ diff --git a/chrome/browser/ui/android/omnibox/java/src/org/chromium/chrome/brow
diff --git a/chrome/browser/ui/android/omnibox/java/src/org/chromium/chrome/browser/omnibox/suggestions/AutocompleteCoordinator.java b/chrome/browser/ui/android/omnibox/java/src/org/chromium/chrome/browser/omnibox/suggestions/AutocompleteCoordinator.java
--- a/chrome/browser/ui/android/omnibox/java/src/org/chromium/chrome/browser/omnibox/suggestions/AutocompleteCoordinator.java
+++ b/chrome/browser/ui/android/omnibox/java/src/org/chromium/chrome/browser/omnibox/suggestions/AutocompleteCoordinator.java
@@ -12,6 +12,7 @@ import android.view.KeyEvent;
@@ -13,6 +13,7 @@ import android.view.KeyEvent;
import android.view.View;
import android.view.ViewGroup;
@@ -2524,7 +2516,7 @@ diff --git a/chrome/browser/ui/android/omnibox/java/src/org/chromium/chrome/brow
import androidx.annotation.ColorInt;
import androidx.annotation.VisibleForTesting;
import androidx.core.view.ViewCompat;
@@ -51,6 +52,7 @@ import org.chromium.ui.modaldialog.ModalDialogManager;
@@ -52,6 +53,7 @@ import org.chromium.ui.modaldialog.ModalDialogManager;
import org.chromium.ui.modelutil.LazyConstructionPropertyMcp;
import org.chromium.ui.modelutil.MVCListAdapter.ModelList;
import org.chromium.ui.modelutil.PropertyModel;
@@ -2532,7 +2524,7 @@ diff --git a/chrome/browser/ui/android/omnibox/java/src/org/chromium/chrome/brow
import java.util.ArrayList;
import java.util.List;
@@ -71,6 +73,7 @@ public class AutocompleteCoordinator
@@ -72,6 +74,7 @@ public class AutocompleteCoordinator
private @Nullable OmniboxSuggestionsDropdown mDropdown;
private final ObserverList<OmniboxSuggestionsDropdownScrollListener> mScrollListenerList =
new ObserverList<>();
@@ -2540,7 +2532,7 @@ diff --git a/chrome/browser/ui/android/omnibox/java/src/org/chromium/chrome/brow
/** An observer watching for changes to the visual state of the omnibox suggestions. */
public interface OmniboxSuggestionsVisualStateObserver {
@@ -107,6 +110,7 @@ public class AutocompleteCoordinator
@@ -106,6 +109,7 @@ public class AutocompleteCoordinator
Context context = parent.getContext();
ModelList listItems = new ModelList();
@@ -2548,7 +2540,7 @@ diff --git a/chrome/browser/ui/android/omnibox/java/src/org/chromium/chrome/brow
PropertyModel listModel =
new PropertyModel.Builder(SuggestionListProperties.ALL_KEYS)
.with(SuggestionListProperties.EMBEDDER, dropdownEmbedder)
@@ -234,6 +238,18 @@ public class AutocompleteCoordinator
@@ -231,6 +235,18 @@ public class AutocompleteCoordinator
container.findViewById(R.id.omnibox_suggestions_dropdown);
dropdown.setAdapter(mAdapter);
@@ -2570,7 +2562,7 @@ diff --git a/chrome/browser/ui/android/omnibox/java/src/org/chromium/chrome/brow
diff --git a/chrome/browser/ui/android/omnibox/java/src/org/chromium/chrome/browser/omnibox/suggestions/AutocompleteMediator.java b/chrome/browser/ui/android/omnibox/java/src/org/chromium/chrome/browser/omnibox/suggestions/AutocompleteMediator.java
--- a/chrome/browser/ui/android/omnibox/java/src/org/chromium/chrome/browser/omnibox/suggestions/AutocompleteMediator.java
+++ b/chrome/browser/ui/android/omnibox/java/src/org/chromium/chrome/browser/omnibox/suggestions/AutocompleteMediator.java
@@ -76,6 +76,8 @@ import org.chromium.ui.modelutil.PropertyModel;
@@ -73,6 +73,8 @@ import org.chromium.ui.modelutil.PropertyModel;
import org.chromium.ui.mojom.WindowOpenDisposition;
import org.chromium.url.GURL;
@@ -2579,7 +2571,7 @@ diff --git a/chrome/browser/ui/android/omnibox/java/src/org/chromium/chrome/brow
import java.util.List;
import java.util.function.Supplier;
@@ -1235,7 +1237,9 @@ class AutocompleteMediator
@@ -1241,7 +1243,9 @@ class AutocompleteMediator
@Override
public void onSuggestionDropdownScroll() {
mSuggestionsListScrolled = true;
@@ -2593,7 +2585,7 @@ diff --git a/chrome/browser/ui/android/omnibox/java/src/org/chromium/chrome/brow
diff --git a/chrome/browser/ui/android/omnibox/java/src/org/chromium/chrome/browser/omnibox/suggestions/OmniboxSuggestionsDropdown.java b/chrome/browser/ui/android/omnibox/java/src/org/chromium/chrome/browser/omnibox/suggestions/OmniboxSuggestionsDropdown.java
--- a/chrome/browser/ui/android/omnibox/java/src/org/chromium/chrome/browser/omnibox/suggestions/OmniboxSuggestionsDropdown.java
+++ b/chrome/browser/ui/android/omnibox/java/src/org/chromium/chrome/browser/omnibox/suggestions/OmniboxSuggestionsDropdown.java
@@ -292,6 +292,9 @@ public class OmniboxSuggestionsDropdown extends RecyclerView {
@@ -294,6 +294,9 @@ public class OmniboxSuggestionsDropdown extends RecyclerView {
resources.getDimensionPixelOffset(R.dimen.omnibox_suggestion_list_padding_bottom);
int paddingTop =
resources.getDimensionPixelOffset(R.dimen.omnibox_suggestion_list_padding_top);
@@ -2602,8 +2594,8 @@ diff --git a/chrome/browser/ui/android/omnibox/java/src/org/chromium/chrome/brow
+ }
this.setPaddingRelative(0, paddingTop, 0, mBaseBottomPadding);
if (OmniboxFeatures.sAsyncViewInflation.isEnabled()) {
@@ -512,6 +515,8 @@ public class OmniboxSuggestionsDropdown extends RecyclerView {
// Disable the scrollbar since it causes the hover events happening near the
@@ -525,6 +528,8 @@ public class OmniboxSuggestionsDropdown extends RecyclerView {
mToolbarOnTop =
!(ChromeFeatureList.sAndroidBottomToolbarV2ReverseOrderSuggestionsList.getValue()
&& toolbarPosition == ControlsPosition.BOTTOM);
@@ -2667,7 +2659,7 @@ diff --git a/chrome/browser/ui/android/omnibox/java/src/org/chromium/chrome/brow
diff --git a/chrome/browser/ui/android/strings/android_chrome_strings.grd b/chrome/browser/ui/android/strings/android_chrome_strings.grd
--- a/chrome/browser/ui/android/strings/android_chrome_strings.grd
+++ b/chrome/browser/ui/android/strings/android_chrome_strings.grd
@@ -1521,6 +1521,12 @@ Your Google account may have other forms of browsing history like searches and a
@@ -1530,6 +1530,12 @@ Your Google account may have other forms of browsing history like searches and a
<message name="IDS_FORCE_TABLET_UI_TITLE" desc="Title of the preference that allows the user to update force tablet UI settings.">
Force Tablet Mode
</message>
@@ -2683,7 +2675,7 @@ diff --git a/chrome/browser/ui/android/strings/android_chrome_strings.grd b/chro
diff --git a/chrome/browser/ui/android/toolbar/BUILD.gn b/chrome/browser/ui/android/toolbar/BUILD.gn
--- a/chrome/browser/ui/android/toolbar/BUILD.gn
+++ b/chrome/browser/ui/android/toolbar/BUILD.gn
@@ -214,6 +214,7 @@ android_library("java") {
@@ -216,6 +216,7 @@ android_library("java") {
"//content/public/android:content_java",
"//third_party/android_deps:material_design_java",
"//third_party/androidx:androidx_annotation_annotation_experimental_java",
@@ -2694,7 +2686,7 @@ diff --git a/chrome/browser/ui/android/toolbar/BUILD.gn b/chrome/browser/ui/andr
diff --git a/chrome/browser/ui/android/toolbar/java/src/org/chromium/chrome/browser/toolbar/LocationBarFocusScrimHandler.java b/chrome/browser/ui/android/toolbar/java/src/org/chromium/chrome/browser/toolbar/LocationBarFocusScrimHandler.java
--- a/chrome/browser/ui/android/toolbar/java/src/org/chromium/chrome/browser/toolbar/LocationBarFocusScrimHandler.java
+++ b/chrome/browser/ui/android/toolbar/java/src/org/chromium/chrome/browser/toolbar/LocationBarFocusScrimHandler.java
@@ -17,6 +17,7 @@ import org.chromium.components.browser_ui.widget.scrim.ScrimProperties;
@@ -18,6 +18,7 @@ import org.chromium.components.browser_ui.widget.scrim.ScrimProperties;
import org.chromium.ui.base.DeviceFormFactor;
import org.chromium.ui.modelutil.PropertyModel;
import org.chromium.ui.util.ColorUtils;
@@ -2702,7 +2694,7 @@ diff --git a/chrome/browser/ui/android/toolbar/java/src/org/chromium/chrome/brow
/** Handles showing and hiding a scrim when url bar focus changes. */
@NullMarked
@@ -62,6 +63,10 @@ public class LocationBarFocusScrimHandler implements UrlFocusChangeListener {
@@ -63,6 +64,10 @@ public class LocationBarFocusScrimHandler implements UrlFocusChangeListener {
mContext = context;
int topMargin = tabStripHeightSupplier.get() == null ? 0 : tabStripHeightSupplier.get();
@@ -2716,7 +2708,7 @@ diff --git a/chrome/browser/ui/android/toolbar/java/src/org/chromium/chrome/brow
diff --git a/chrome/browser/ui/android/toolbar/java/src/org/chromium/chrome/browser/toolbar/ToolbarLongPressMenuHandler.java b/chrome/browser/ui/android/toolbar/java/src/org/chromium/chrome/browser/toolbar/ToolbarLongPressMenuHandler.java
--- a/chrome/browser/ui/android/toolbar/java/src/org/chromium/chrome/browser/toolbar/ToolbarLongPressMenuHandler.java
+++ b/chrome/browser/ui/android/toolbar/java/src/org/chromium/chrome/browser/toolbar/ToolbarLongPressMenuHandler.java
@@ -223,14 +223,6 @@ public class ToolbarLongPressMenuHandler implements ConfigurationChangedObserver
@@ -219,14 +219,6 @@ public class ToolbarLongPressMenuHandler implements ConfigurationChangedObserver
@VisibleForTesting
ModelList buildMenuItems(boolean onTop) {
ModelList itemList = new ModelList();
@@ -2766,7 +2758,7 @@ diff --git a/chrome/browser/ui/android/toolbar/java/src/org/chromium/chrome/brow
diff --git a/chrome/browser/ui/android/toolbar/java/src/org/chromium/chrome/browser/toolbar/bottom/BottomControlsCoordinator.java b/chrome/browser/ui/android/toolbar/java/src/org/chromium/chrome/browser/toolbar/bottom/BottomControlsCoordinator.java
--- a/chrome/browser/ui/android/toolbar/java/src/org/chromium/chrome/browser/toolbar/bottom/BottomControlsCoordinator.java
+++ b/chrome/browser/ui/android/toolbar/java/src/org/chromium/chrome/browser/toolbar/bottom/BottomControlsCoordinator.java
@@ -33,6 +33,8 @@ import org.chromium.ui.modelutil.PropertyModelChangeProcessor;
@@ -34,6 +34,8 @@ import org.chromium.ui.modelutil.PropertyModelChangeProcessor;
import org.chromium.ui.resources.ResourceManager;
import org.chromium.ui.resources.dynamics.ViewResourceAdapter;
import org.chromium.ui.widget.Toast;
@@ -2775,7 +2767,7 @@ diff --git a/chrome/browser/ui/android/toolbar/java/src/org/chromium/chrome/brow
import java.util.HashSet;
import java.util.Set;
@@ -89,6 +91,8 @@ public class BottomControlsCoordinator implements BackPressHandler {
@@ -90,6 +92,8 @@ public class BottomControlsCoordinator implements BackPressHandler {
* @param constraintsSupplier Used to access current constraints of the browser controls.
* @param readAloudRestoringSupplier Supplier that returns true if Read Aloud is currently
* restoring its player, e.g. after theme change.
@@ -2784,10 +2776,10 @@ diff --git a/chrome/browser/ui/android/toolbar/java/src/org/chromium/chrome/brow
*/
@SuppressLint("CutPasteId") // Not actually cut and paste since it's View vs ViewGroup.
public BottomControlsCoordinator(
@@ -104,7 +108,9 @@ public class BottomControlsCoordinator implements BackPressHandler {
@@ -105,7 +109,9 @@ public class BottomControlsCoordinator implements BackPressHandler {
TabObscuringHandler tabObscuringHandler,
ObservableSupplier<Boolean> overlayPanelVisibilitySupplier,
ObservableSupplier<Integer> constraintsSupplier,
ObservableSupplier<@Nullable Integer> constraintsSupplier,
- Supplier<Boolean> readAloudRestoringSupplier) {
+ Supplier<Boolean> readAloudRestoringSupplier,
+ TopUiThemeColorProvider topUiThemeColorProvider,
@@ -2795,7 +2787,7 @@ diff --git a/chrome/browser/ui/android/toolbar/java/src/org/chromium/chrome/brow
mRootFrameLayout = root;
root.setConstraintsSupplier(constraintsSupplier);
PropertyModel model = new PropertyModel(BottomControlsProperties.ALL_KEYS);
@@ -172,7 +178,8 @@ public class BottomControlsCoordinator implements BackPressHandler {
@@ -173,7 +179,8 @@ public class BottomControlsCoordinator implements BackPressHandler {
mMediator.setBottomControlsVisible(isVisible);
}
},
@@ -2962,7 +2954,7 @@ diff --git a/chrome/browser/ui/android/toolbar/java/src/org/chromium/chrome/brow
diff --git a/chrome/browser/ui/android/toolbar/java/src/org/chromium/chrome/browser/toolbar/top/ToolbarControlContainer.java b/chrome/browser/ui/android/toolbar/java/src/org/chromium/chrome/browser/toolbar/top/ToolbarControlContainer.java
--- a/chrome/browser/ui/android/toolbar/java/src/org/chromium/chrome/browser/toolbar/top/ToolbarControlContainer.java
+++ b/chrome/browser/ui/android/toolbar/java/src/org/chromium/chrome/browser/toolbar/top/ToolbarControlContainer.java
@@ -80,6 +80,10 @@ import java.lang.annotation.RetentionPolicy;
@@ -76,6 +76,10 @@ import java.lang.annotation.RetentionPolicy;
import java.util.function.BooleanSupplier;
import java.util.function.Supplier;
@@ -2973,7 +2965,7 @@ diff --git a/chrome/browser/ui/android/toolbar/java/src/org/chromium/chrome/brow
/** Layout for the browser controls (omnibox, menu, tab strip, etc..). */
@NullMarked
public class ToolbarControlContainer extends OptimizedFrameLayout
@@ -190,6 +194,11 @@ public class ToolbarControlContainer extends OptimizedFrameLayout
@@ -183,6 +187,11 @@ public class ToolbarControlContainer extends OptimizedFrameLayout
if (view != null)
((MarginLayoutParams)view.getLayoutParams()).topMargin = tab_strip_height;
}
@@ -2983,8 +2975,8 @@ diff --git a/chrome/browser/ui/android/toolbar/java/src/org/chromium/chrome/brow
+ layoutParams.gravity = Gravity.START | Gravity.BOTTOM;
+ }
mToolbarContainer = findViewById(R.id.toolbar_container);
mToolbarLayoutHeight = getResources().getDimensionPixelSize(toolbarLayoutHeightResId);
ViewStub toolbarStub = findViewById(R.id.toolbar_stub);
toolbarStub.setLayoutResource(toolbarLayoutId);
diff --git a/chrome/browser/ui/android/toolbar/java/src/org/chromium/chrome/browser/toolbar/top/TopToolbarOverlayCoordinator.java b/chrome/browser/ui/android/toolbar/java/src/org/chromium/chrome/browser/toolbar/top/TopToolbarOverlayCoordinator.java
--- a/chrome/browser/ui/android/toolbar/java/src/org/chromium/chrome/browser/toolbar/top/TopToolbarOverlayCoordinator.java
+++ b/chrome/browser/ui/android/toolbar/java/src/org/chromium/chrome/browser/toolbar/top/TopToolbarOverlayCoordinator.java
@@ -3028,7 +3020,7 @@ diff --git a/chrome/browser/ui/android/toolbar/java/src/org/chromium/chrome/brow
diff --git a/chrome/browser/ui/android/toolbar/java/src/org/chromium/chrome/browser/toolbar/top/TopToolbarOverlayProperties.java b/chrome/browser/ui/android/toolbar/java/src/org/chromium/chrome/browser/toolbar/top/TopToolbarOverlayProperties.java
--- a/chrome/browser/ui/android/toolbar/java/src/org/chromium/chrome/browser/toolbar/top/TopToolbarOverlayProperties.java
+++ b/chrome/browser/ui/android/toolbar/java/src/org/chromium/chrome/browser/toolbar/top/TopToolbarOverlayProperties.java
@@ -56,6 +56,12 @@ public class TopToolbarOverlayProperties {
@@ -58,6 +58,12 @@ public class TopToolbarOverlayProperties {
public static final WritableLongPropertyKey CAPTURE_RESOURCE_ID = new WritableLongPropertyKey();
@@ -3041,7 +3033,7 @@ diff --git a/chrome/browser/ui/android/toolbar/java/src/org/chromium/chrome/brow
public static final PropertyKey[] ALL_KEYS =
new PropertyKey[] {
ANONYMIZE,
@@ -70,5 +76,5 @@ public class TopToolbarOverlayProperties {
@@ -72,5 +78,5 @@ public class TopToolbarOverlayProperties {
CONTENT_OFFSET,
TOOLBAR_OFFSET_TAG,
CAPTURE_RESOURCE_ID
@@ -3085,7 +3077,7 @@ diff --git a/chrome/browser/ui/android/toolbar/java/src/org/chromium/chrome/brow
diff --git a/components/browser_ui/accessibility/android/java/res/xml/accessibility_preferences.xml b/components/browser_ui/accessibility/android/java/res/xml/accessibility_preferences.xml
--- a/components/browser_ui/accessibility/android/java/res/xml/accessibility_preferences.xml
+++ b/components/browser_ui/accessibility/android/java/res/xml/accessibility_preferences.xml
@@ -61,4 +61,12 @@ found in the LICENSE file.
@@ -66,4 +66,12 @@ found in the LICENSE file.
app:featureName="disable-pull-to-refresh-effect"
app:needRestart="true" />
@@ -3101,7 +3093,7 @@ diff --git a/components/browser_ui/accessibility/android/java/res/xml/accessibil
diff --git a/components/browser_ui/accessibility/android/java/src/org/chromium/components/browser_ui/accessibility/AccessibilitySettings.java b/components/browser_ui/accessibility/android/java/src/org/chromium/components/browser_ui/accessibility/AccessibilitySettings.java
--- a/components/browser_ui/accessibility/android/java/src/org/chromium/components/browser_ui/accessibility/AccessibilitySettings.java
+++ b/components/browser_ui/accessibility/android/java/src/org/chromium/components/browser_ui/accessibility/AccessibilitySettings.java
@@ -48,6 +48,11 @@ public class AccessibilitySettings extends ChromeBaseSettingsFragment
@@ -49,6 +49,11 @@ public class AccessibilitySettings extends ChromeBaseSettingsFragment
private BooleanPreferenceDelegate mForceTabletUIDelegate;
static final String PREF_FORCE_TABLET_UI = "force_tablet_ui";
@@ -3113,7 +3105,7 @@ diff --git a/components/browser_ui/accessibility/android/java/src/org/chromium/c
private PageZoomPreference mPageZoomDefaultZoomPref;
private ChromeSwitchPreference mPageZoomIncludeOSAdjustment;
private ChromeSwitchPreference mPageZoomAlwaysShowPref;
@@ -62,6 +67,10 @@ public class AccessibilitySettings extends ChromeBaseSettingsFragment
@@ -64,6 +69,10 @@ public class AccessibilitySettings extends ChromeBaseSettingsFragment
mDelegate = delegate;
}
@@ -3124,7 +3116,7 @@ diff --git a/components/browser_ui/accessibility/android/java/src/org/chromium/c
@Override
public void onActivityCreated(@Nullable Bundle savedInstanceState) {
super.onActivityCreated(savedInstanceState);
@@ -127,6 +136,18 @@ public class AccessibilitySettings extends ChromeBaseSettingsFragment
@@ -129,6 +138,18 @@ public class AccessibilitySettings extends ChromeBaseSettingsFragment
forceTabletUiPref.setChecked(mForceTabletUIDelegate.getValue());
forceTabletUiPref.setOnPreferenceChangeListener(this);
@@ -3143,7 +3135,7 @@ diff --git a/components/browser_ui/accessibility/android/java/src/org/chromium/c
Preference captions = findPreference(PREF_CAPTIONS);
captions.setOnPreferenceClickListener(
preference -> {
@@ -202,6 +223,12 @@ public class AccessibilitySettings extends ChromeBaseSettingsFragment
@@ -217,6 +238,12 @@ public class AccessibilitySettings extends ChromeBaseSettingsFragment
mDelegate.getBrowserContextHandle(), (Integer) newValue);
} else if (PREF_PAGE_ZOOM_ALWAYS_SHOW.equals(preference.getKey())) {
PageZoomUtils.setShouldAlwaysShowZoomMenuItem((Boolean) newValue);
@@ -3203,7 +3195,7 @@ diff --git a/components/viz/common/features.cc b/components/viz/common/features.
diff --git a/content/browser/renderer_host/render_widget_host_view_android.cc b/content/browser/renderer_host/render_widget_host_view_android.cc
--- a/content/browser/renderer_host/render_widget_host_view_android.cc
+++ b/content/browser/renderer_host/render_widget_host_view_android.cc
@@ -33,6 +33,7 @@
@@ -34,6 +34,7 @@
#include "base/task/thread_pool.h"
#include "base/threading/scoped_blocking_call.h"
#include "base/trace_event/trace_event.h"
@@ -3211,7 +3203,7 @@ diff --git a/content/browser/renderer_host/render_widget_host_view_android.cc b/
#include "cc/base/math_util.h"
#include "cc/slim/layer.h"
#include "components/input/cursor_manager.h"
@@ -939,6 +940,8 @@ void RenderWidgetHostViewAndroid::OnRenderFrameMetadataChangedBeforeActivation(
@@ -956,6 +957,8 @@ void RenderWidgetHostViewAndroid::OnRenderFrameMetadataChangedBeforeActivation(
// factor. Thus, |top_content_offset| in CSS pixels is also in DIPs.
float top_content_offset =
metadata.top_controls_height * metadata.top_controls_shown_ratio;
@@ -11,37 +11,37 @@ License: GPL-2.0-or-later - https://spdx.org/licenses/GPL-2.0-or-later.html
---
.../browser/chrome_content_browser_client.cc | 2 +-
.../extensions/api/cookies/cookies_helpers.cc | 4 ++
.../net/profile_network_context_service.cc | 12 ++--
.../net/profile_network_context_service.cc | 12 +++---
.../privacy_sandbox_settings_delegate.cc | 1 +
...storage_access_grant_permission_context.cc | 13 +++++
...storage_access_grant_permission_context.cc | 13 +++++++
.../experiment/experiment_manager_impl.cc | 1 +
.../strings/android/site_settings.grdp | 4 +-
.../core/browser/cookie_settings.cc | 4 +-
.../core/common/cookie_settings_base.cc | 57 +------------------
.../core/common/cookie_settings_base.cc | 39 +------------------
...ioning-all-cookies-by-top-frame-domain.inc | 4 ++
...ioning-all-cookies-by-top-frame-domain.inc | 1 +
...ioning-all-cookies-by-top-frame-domain.inc | 1 +
...ioning-all-cookies-by-top-frame-domain.inc | 15 +++++
...ioning-all-cookies-by-top-frame-domain.inc | 15 +++++++
...ioning-all-cookies-by-top-frame-domain.inc | 1 +
net/cookies/canonical_cookie.cc | 5 --
net/cookies/canonical_cookie.cc | 5 ---
net/cookies/cookie_deletion_info.cc | 3 +-
net/cookies/cookie_monster.cc | 1 +
net/cookies/cookie_util.cc | 1 +
net/cookies/cookie_util.h | 4 +-
net/cookies/parsed_cookie.h | 6 +-
.../sqlite/sqlite_persistent_cookie_store.cc | 8 +++
net/cookies/parsed_cookie.h | 6 ++-
.../sqlite/sqlite_persistent_cookie_store.cc | 8 ++++
net/url_request/url_request.cc | 3 +-
net/url_request/url_request_http_job.cc | 11 ++--
services/network/cookie_settings.cc | 6 +-
net/url_request/url_request_http_job.cc | 11 ++----
services/network/cookie_settings.cc | 6 +--
services/network/cors/cors_url_loader.cc | 1 +
services/network/restricted_cookie_manager.cc | 6 ++
services/network/restricted_cookie_manager.cc | 6 +++
services/network/url_loader.cc | 1 +
.../modules/cookie_store/cookie_init.idl | 2 +-
.../modules/cookie_store/cookie_store.cc | 3 +
.../modules/cookie_store/cookie_store.cc | 3 ++
.../cookie_store_delete_options.idl | 2 +-
ui/webui/webui_allowlist.cc | 1 +
url/url_features.cc | 1 +
32 files changed, 94 insertions(+), 91 deletions(-)
32 files changed, 94 insertions(+), 73 deletions(-)
create mode 100644 cromite_flags/components/content_settings/core/common/features_cc/Partitioning-all-cookies-by-top-frame-domain.inc
create mode 100644 cromite_flags/components/permissions/features_cc/Partitioning-all-cookies-by-top-frame-domain.inc
create mode 100644 cromite_flags/content/public/common/content_features_cc/Partitioning-all-cookies-by-top-frame-domain.inc
@@ -51,7 +51,7 @@ License: GPL-2.0-or-later - https://spdx.org/licenses/GPL-2.0-or-later.html
diff --git a/chrome/browser/chrome_content_browser_client.cc b/chrome/browser/chrome_content_browser_client.cc
--- a/chrome/browser/chrome_content_browser_client.cc
+++ b/chrome/browser/chrome_content_browser_client.cc
@@ -3771,7 +3771,7 @@ bool ChromeContentBrowserClient::IsFullCookieAccessAllowed(
@@ -3664,7 +3664,7 @@ bool ChromeContentBrowserClient::IsFullCookieAccessAllowed(
scoped_refptr<content_settings::CookieSettings> cookie_settings =
CookieSettingsFactory::GetForProfile(profile);
if (!cookie_settings) {
@@ -63,7 +63,7 @@ diff --git a/chrome/browser/chrome_content_browser_client.cc b/chrome/browser/ch
diff --git a/chrome/browser/extensions/api/cookies/cookies_helpers.cc b/chrome/browser/extensions/api/cookies/cookies_helpers.cc
--- a/chrome/browser/extensions/api/cookies/cookies_helpers.cc
+++ b/chrome/browser/extensions/api/cookies/cookies_helpers.cc
@@ -365,6 +365,10 @@ ToNetCookiePartitionKey(
@@ -363,6 +363,10 @@ ToNetCookiePartitionKey(
bool CookieMatchesPartitionKeyCollection(
const net::CookiePartitionKeyCollection& cookie_partition_key_collection,
const net::CanonicalCookie& cookie) {
@@ -77,7 +77,7 @@ diff --git a/chrome/browser/extensions/api/cookies/cookies_helpers.cc b/chrome/b
diff --git a/chrome/browser/net/profile_network_context_service.cc b/chrome/browser/net/profile_network_context_service.cc
--- a/chrome/browser/net/profile_network_context_service.cc
+++ b/chrome/browser/net/profile_network_context_service.cc
@@ -1107,16 +1107,16 @@ ProfileNetworkContextService::CreateCookieManagerParams(
@@ -1152,16 +1152,16 @@ ProfileNetworkContextService::CreateCookieManagerParams(
// UI to interact with SameSite cookies on accounts.google.com, which is used
// for displaying a list of available accounts on the NTP
// (chrome://new-tab-page), etc.
@@ -164,7 +164,7 @@ diff --git a/components/browser_ui/strings/android/site_settings.grdp b/componen
</message>
<message name="IDS_THIRD_PARTY_COOKIES_LINK_ROW_SUB_LABEL_DISABLED" desc="3 of 3 possible states for the Third-party cookies setting. This text appears beneath the 'Third-party cookies' button label." >
Third-party cookies are blocked
@@ -670,7 +670,7 @@
@@ -685,7 +685,7 @@
A site you visit can embed content from other sites, for example, images, ads, and text. Cookies set by these other sites are called third-party cookies.
</message>
<message name="IDS_WEBSITE_SETTINGS_THIRD_PARTY_COOKIES_PAGE_ALLOW_RADIO_LABEL" desc="1 of 3 options the user has to configure cookies. See the cookies page for context: chrome://settings/cookies.">
@@ -184,7 +184,7 @@ diff --git a/components/content_settings/core/browser/cookie_settings.cc b/compo
if (url.is_empty() || first_party_url.is_empty()) {
return;
}
@@ -398,8 +399,7 @@ bool CookieSettings::ShouldBlockThirdPartyCookiesInternal() const {
@@ -390,8 +391,7 @@ bool CookieSettings::ShouldBlockThirdPartyCookiesInternal() const {
}
bool CookieSettings::MitigationsEnabledFor3pcdInternal() const {
@@ -197,11 +197,11 @@ diff --git a/components/content_settings/core/browser/cookie_settings.cc b/compo
diff --git a/components/content_settings/core/common/cookie_settings_base.cc b/components/content_settings/core/common/cookie_settings_base.cc
--- a/components/content_settings/core/common/cookie_settings_base.cc
+++ b/components/content_settings/core/common/cookie_settings_base.cc
@@ -668,18 +668,6 @@ CookieSettingsBase::DecideAccess(const GURL& url,
@@ -610,48 +610,11 @@ CookieSettingsBase::DecideAccess(const GURL& url,
ThirdPartyCookieAllowMechanism::kAllowByGlobalSetting};
}
- if (IsThirdPartyCookiesAllowedScheme(first_party_url.scheme())) {
- if (IsThirdPartyCookiesAllowedScheme(first_party_url.GetScheme())) {
- return AllowAllCookies{ThirdPartyCookieAllowMechanism::kAllowByScheme};
- }
-
@@ -216,10 +216,13 @@ diff --git a/components/content_settings/core/common/cookie_settings_base.cc b/c
if (IsAllowedByStorageAccessGrant(url, first_party_url, overrides)) {
return AllowAllCookies{
ThirdPartyCookieAllowMechanism::kAllowByStorageAccess,
@@ -690,54 +678,11 @@ CookieSettingsBase::DecideAccess(const GURL& url,
ThirdPartyCookieAllowMechanism::kAllowBySandboxValue};
AllowedByStorageAccessType::kStorageAccessOnly};
}
- if (IsAllowedBySandboxValue(url, first_party_url, overrides)) {
- return AllowAllCookies{
- ThirdPartyCookieAllowMechanism::kAllowBySandboxValue};
- }
-
- if (IsAllowedBy3pcdHeuristicsGrantsSettings(url, first_party_url,
- overrides)) {
- return AllowAllCookies{
@@ -240,38 +243,10 @@ diff --git a/components/content_settings/core/common/cookie_settings_base.cc b/c
- return AllowAllCookies{TpcdMetadataSourceToAllowMechanism(
- tpcd_metadata_info.info.metadata.tpcd_metadata_rule_source())};
- }
-
if (is_explicit_setting) {
return AllowAllCookies{
ThirdPartyCookieAllowMechanism::kAllowByExplicitSetting};
}
- // 3PCD 1P and 3P DTs
- // New registrations are not supported for the deprecation trials, but the
- // tokens are still valid until they expire.
- // TODO(https://crbug.com/364917750): Remove this check once the trials are no
- // longer relevant.
- if (IsAllowedByTopLevel3pcdTrialSettings(first_party_url, overrides)) {
- return AllowAllCookies{
- ThirdPartyCookieAllowMechanism::kAllowByTopLevel3PCD};
- }
- if (IsAllowedBy3pcdTrialSettings(url, first_party_url, overrides)) {
- return AllowAllCookies{ThirdPartyCookieAllowMechanism::kAllowBy3PCD};
- }
-
- // Check for a TRACKING_PROTECTION exception, which should also disable 3PCB.
- if (IsAllowedWithMetadata tp_info =
- IsAllowedByTrackingProtectionSetting(url, first_party_url);
- tp_info.allowed) {
- setting_info = std::move(tp_info.info);
- return AllowAllCookies{
- ThirdPartyCookieAllowMechanism::kAllowByTrackingProtectionException};
- }
-
return AllowPartitionedCookies{};
}
@@ -767,7 +712,7 @@ CookieSettingsBase::GetCookieSettingInternal(
@@ -696,7 +659,7 @@ CookieSettingsBase::GetCookieSettingInternal(
}
return CookieSettingWithMetadata{/*cookie_setting=*/CONTENT_SETTING_ALLOW,
/*allow_partitioned_cookies=*/true,
@@ -369,7 +344,7 @@ diff --git a/net/cookies/cookie_monster.cc b/net/cookies/cookie_monster.cc
diff --git a/net/cookies/cookie_util.cc b/net/cookies/cookie_util.cc
--- a/net/cookies/cookie_util.cc
+++ b/net/cookies/cookie_util.cc
@@ -828,6 +828,7 @@ bool IsCookiePartitionedValid(const GURL& url,
@@ -827,6 +827,7 @@ bool IsCookiePartitionedValid(const GURL& url,
bool secure,
bool is_partitioned,
bool partition_has_nonce) {
@@ -492,8 +467,8 @@ diff --git a/services/network/cookie_settings.cc b/services/network/cookie_setti
+ return cookie.SameSite() == net::CookieSameSite::NO_RESTRICTION;
}
@@ -124,8 +123,7 @@ bool IsOriginOpaqueHttpOrHttps(
bool IsValidType(ContentSettingsType type) {
@@ -122,8 +121,7 @@ bool IsOriginOpaqueHttpOrHttps(
// static
bool CookieSettings::IsCookieAllowed(const net::CanonicalCookie& cookie,
const CookieSettingWithMetadata& setting) {
@@ -517,7 +492,7 @@ diff --git a/services/network/cors/cors_url_loader.cc b/services/network/cors/co
diff --git a/services/network/restricted_cookie_manager.cc b/services/network/restricted_cookie_manager.cc
--- a/services/network/restricted_cookie_manager.cc
+++ b/services/network/restricted_cookie_manager.cc
@@ -984,6 +984,12 @@ void RestrictedCookieManager::SetCookieFromString(
@@ -985,6 +985,12 @@ void RestrictedCookieManager::SetCookieFromString(
shared_memory_region = GetAndPrepareSharedMemoryRegion(url);
}
@@ -533,7 +508,7 @@ diff --git a/services/network/restricted_cookie_manager.cc b/services/network/re
diff --git a/services/network/url_loader.cc b/services/network/url_loader.cc
--- a/services/network/url_loader.cc
+++ b/services/network/url_loader.cc
@@ -2578,6 +2578,7 @@ bool URLLoader::ShouldSetLoadWithStorageAccess() const {
@@ -2594,6 +2594,7 @@ bool URLLoader::ShouldSetLoadWithStorageAccess() const {
auto determine_storage_access_load_outcome =
[&]() -> net::cookie_util::ActivateStorageAccessLoadOutcome {
@@ -94,7 +94,7 @@ License: GPL-3.0-only - https://spdx.org/licenses/GPL-3.0-only.html
.../webauthn/Fido2CredentialRequest.java | 107 +--
.../webauthn/GmsCoreGetCredentialsHelper.java | 78 +-
.../components/webauthn/GmsCoreUtils.java | 31 +-
.../webauthn/IdentityCredentialsHelper.java | 78 +-
.../webauthn/IdentityCredentialsHelper.java | 119 +--
.../webauthn/WebauthnModeProvider.java | 15 -
.../cred_man/CredManMetricsHelper.java | 17 +-
.../push_messaging/push_messaging_manager.cc | 2 +-
@@ -104,13 +104,13 @@ License: GPL-3.0-only - https://spdx.org/licenses/GPL-3.0-only.html
services/BUILD.gn | 10 -
services/device/geolocation/BUILD.gn | 4 -
services/shape_detection/BUILD.gn | 2 -
third_party/android_deps/BUILD.gn | 11 +-
third_party/android_deps/autorolled/BUILD.gn | 799 ------------------
third_party/android_deps/BUILD.gn | 11 -
third_party/android_deps/autorolled/BUILD.gn | 797 ------------------
.../preconditions/javatests/BUILD.gn | 1 -
.../gms/ChromiumPlayServicesAvailability.java | 10 +-
.../gms/ChromiumPlayServicesAvailability.java | 13 +-
third_party/androidx/customizations.gni | 14 +-
third_party/cardboard/BUILD.gn | 4 -
86 files changed, 121 insertions(+), 2613 deletions(-)
86 files changed, 120 insertions(+), 2656 deletions(-)
create mode 100644 components/webauthn/android/java/src/org/chromium/components/webauthn/ConditionalUiState.java
diff --git a/android_webview/expectations/system_webview_bundle.AndroidManifest.expected b/android_webview/expectations/system_webview_bundle.AndroidManifest.expected
@@ -138,7 +138,7 @@ diff --git a/android_webview/expectations/system_webview_bundle.AndroidManifest.
diff --git a/build/config/android/config.gni b/build/config/android/config.gni
--- a/build/config/android/config.gni
+++ b/build/config/android/config.gni
@@ -187,9 +187,7 @@ if (is_android) {
@@ -203,9 +203,7 @@ if (is_android) {
# google_play_services_package contains the path where individual client
# targets (e.g. google_play_services_base_java) are located.
@@ -166,8 +166,8 @@ diff --git a/chrome/android/BUILD.gn b/chrome/android/BUILD.gn
- "$google_play_services_package:google_play_services_tasks_java",
"//base:content_uri_utils_java",
"//base:flagged_apis_java",
"//base:service_loader_java",
@@ -749,12 +741,21 @@ if (_is_default_toolchain) {
"//base:process_launcher_java",
@@ -751,12 +743,21 @@ if (_is_default_toolchain) {
"//services/shape_detection:shape_detection_java",
"//services/shape_detection/public/mojom:mojom_java",
"//skia/public/mojom:mojom_java",
@@ -192,7 +192,7 @@ diff --git a/chrome/android/BUILD.gn b/chrome/android/BUILD.gn
"//third_party/android_deps:protobuf_lite_runtime_java",
"//third_party/android_media:android_media_java",
"//third_party/android_swipe_refresh:android_swipe_refresh_java",
@@ -1984,7 +1985,6 @@ if (_is_default_toolchain) {
@@ -1989,7 +1990,6 @@ if (_is_default_toolchain) {
]
deps = [
":chrome_java",
@@ -200,7 +200,7 @@ diff --git a/chrome/android/BUILD.gn b/chrome/android/BUILD.gn
"//base:base_java",
"//base:base_java_test_support",
"//build/android:build_java",
@@ -2095,7 +2095,6 @@ if (_is_default_toolchain) {
@@ -2100,7 +2100,6 @@ if (_is_default_toolchain) {
# is in a DFM.
android_library("base_module_java") {
sources = [
@@ -208,7 +208,7 @@ diff --git a/chrome/android/BUILD.gn b/chrome/android/BUILD.gn
"java/src/org/chromium/chrome/app/TrichromeZygotePreload.java",
"java/src/org/chromium/chrome/browser/ChromeBackgroundService.java",
"java/src/org/chromium/chrome/browser/DeferredStartupHandler.java",
@@ -2113,8 +2112,6 @@ if (_is_default_toolchain) {
@@ -2118,8 +2117,6 @@ if (_is_default_toolchain) {
"java/src/org/chromium/chrome/browser/base/SplitCompatBackupAgent.java",
"java/src/org/chromium/chrome/browser/base/SplitCompatContentProvider.java",
"java/src/org/chromium/chrome/browser/base/SplitCompatCustomTabsService.java",
@@ -217,7 +217,7 @@ diff --git a/chrome/android/BUILD.gn b/chrome/android/BUILD.gn
"java/src/org/chromium/chrome/browser/base/SplitCompatIntentService.java",
"java/src/org/chromium/chrome/browser/base/SplitCompatJobService.java",
"java/src/org/chromium/chrome/browser/base/SplitCompatMinidumpUploadJobService.java",
@@ -2141,15 +2138,10 @@ if (_is_default_toolchain) {
@@ -2146,15 +2143,10 @@ if (_is_default_toolchain) {
"java/src/org/chromium/chrome/browser/photo_picker/DecoderService.java",
"java/src/org/chromium/chrome/browser/provider/ChromeBrowserProvider.java",
"java/src/org/chromium/chrome/browser/provider/PageContentProvider.java",
@@ -233,7 +233,7 @@ diff --git a/chrome/android/BUILD.gn b/chrome/android/BUILD.gn
"//base:base_java",
"//chrome/browser/autofill/android:third_party_provider_java",
"//chrome/browser/download/android:file_provider_java",
@@ -2164,7 +2156,6 @@ if (_is_default_toolchain) {
@@ -2169,7 +2161,6 @@ if (_is_default_toolchain) {
"//components/media_router/browser/android:cast_options_provider_java",
"//components/minidump_uploader:minidump_uploader_java",
"//components/module_installer/android:module_installer_java",
@@ -241,14 +241,14 @@ diff --git a/chrome/android/BUILD.gn b/chrome/android/BUILD.gn
"//third_party/androidx:androidx_annotation_annotation_java",
"//third_party/androidx:androidx_collection_collection_java",
"//third_party/jni_zero:jni_zero_java",
@@ -2184,7 +2175,6 @@ if (_is_default_toolchain) {
@@ -2189,7 +2180,6 @@ if (_is_default_toolchain) {
# Deps to pull services into base module.
# TODO(crbug.com/40148088): Consider moving these to the chrome module to
# reduce base dex size.
- "$google_play_services_package:google_play_services_cast_framework_java",
"//base:service_loader_java",
"//chrome/android/modules/on_demand:provider_java",
"//components/background_task_scheduler:background_task_scheduler_java",
"//components/payments/content/android:service_java",
diff --git a/chrome/android/chrome_java_sources.gni b/chrome/android/chrome_java_sources.gni
--- a/chrome/android/chrome_java_sources.gni
+++ b/chrome/android/chrome_java_sources.gni
@@ -260,7 +260,7 @@ diff --git a/chrome/android/chrome_java_sources.gni b/chrome/android/chrome_java
"java/src/org/chromium/chrome/browser/ChromeBaseAppCompatActivity.java",
"java/src/org/chromium/chrome/browser/ChromeInactivityTracker.java",
"java/src/org/chromium/chrome/browser/ChromeKeyboardVisibilityDelegate.java",
@@ -968,10 +967,6 @@ chrome_java_sources = [
@@ -977,10 +976,6 @@ chrome_java_sources = [
"java/src/org/chromium/chrome/browser/segmentation_platform/SignalAccumulator.java",
"java/src/org/chromium/chrome/browser/segmentation_platform/TabGroupingActionProvider.java",
"java/src/org/chromium/chrome/browser/selection/ChromeSelectionDropdownMenuDelegate.java",
@@ -274,7 +274,7 @@ diff --git a/chrome/android/chrome_java_sources.gni b/chrome/android/chrome_java
diff --git a/chrome/android/java/AndroidManifest.xml b/chrome/android/java/AndroidManifest.xml
--- a/chrome/android/java/AndroidManifest.xml
+++ b/chrome/android/java/AndroidManifest.xml
@@ -140,19 +140,14 @@ by a child template that "extends" this file.
@@ -151,19 +151,14 @@ by a child template that "extends" this file.
<permission android:name="{{ manifest_package }}.permission.CHILD_SERVICE" android:protectionLevel="signature" />
<permission android:name="{{ manifest_package }}.permission.READ_WRITE_BOOKMARK_FOLDERS" android:protectionLevel="signatureOrSystem" />
<permission android:name="{{ manifest_package }}.TOS_ACKED" android:protectionLevel="signatureOrSystem" />
@@ -294,7 +294,7 @@ diff --git a/chrome/android/java/AndroidManifest.xml b/chrome/android/java/Andro
<uses-permission android:name="com.android.launcher.permission.INSTALL_SHORTCUT"/>
<uses-permission android:name="com.google.android.apps.now.CURRENT_ACCOUNT_ACCESS" />
@@ -800,16 +795,6 @@ by a child template that "extends" this file.
@@ -811,16 +806,6 @@ by a child template that "extends" this file.
</intent-filter>
</activity>
@@ -311,7 +311,7 @@ diff --git a/chrome/android/java/AndroidManifest.xml b/chrome/android/java/Andro
<!-- This activity is used to restart the main Chrome process. Should never be exported. -->
<activity android:name="org.chromium.chrome.browser.BrowserRestartActivity"
android:launchMode="singleInstance"
@@ -981,26 +966,6 @@ by a child template that "extends" this file.
@@ -992,26 +977,6 @@ by a child template that "extends" this file.
</intent-filter>
</activity>
@@ -338,7 +338,7 @@ diff --git a/chrome/android/java/AndroidManifest.xml b/chrome/android/java/Andro
<!-- Android Notification service listener -->
<service android:name="org.chromium.chrome.browser.notifications.NotificationService"
android:exported="false"/>
@@ -1036,15 +1001,6 @@ by a child template that "extends" this file.
@@ -1047,15 +1012,6 @@ by a child template that "extends" this file.
android:exported="false"
android:permission="android.permission.BIND_JOB_SERVICE"/>
@@ -354,7 +354,7 @@ diff --git a/chrome/android/java/AndroidManifest.xml b/chrome/android/java/Andro
<service android:name="org.chromium.chrome.browser.customtabs.CustomTabsConnectionService"
android:exported="true"
tools:ignore="ExportedService">
@@ -1353,12 +1309,6 @@ by a child template that "extends" this file.
@@ -1364,12 +1320,6 @@ by a child template that "extends" this file.
<uses-native-library android:name="libopenxr.google.so" android:required="false" />
{% endif %}
@@ -730,7 +730,7 @@ diff --git a/chrome/browser/password_manager/android/java/src/org/chromium/chrom
import org.jni_zero.JniType;
import org.jni_zero.NativeMethods;
@@ -506,13 +504,6 @@ public class PasswordManagerHelper {
@@ -502,13 +500,6 @@ public class PasswordManagerHelper {
// If the exception is not a Chrome-defined one, it means that the call failed at the
// API call level. It could have either failed with a known ApiException or because of a
// different error (e.g. a different exception thrown by the implementation of the API).
@@ -800,7 +800,7 @@ diff --git a/chrome/browser/safe_browsing/notification_telemetry/notification_te
diff --git a/chrome/browser/ui/BUILD.gn b/chrome/browser/ui/BUILD.gn
--- a/chrome/browser/ui/BUILD.gn
+++ b/chrome/browser/ui/BUILD.gn
@@ -130,8 +130,6 @@ static_library("ui") {
@@ -128,8 +128,6 @@ static_library("ui") {
"webui/flags/flags_ui.h",
"webui/flags/flags_ui_handler.cc",
"webui/flags/flags_ui_handler.h",
@@ -820,7 +820,7 @@ diff --git a/chrome/browser/ui/BUILD.gn b/chrome/browser/ui/BUILD.gn
diff --git a/chrome/browser/ui/android/omnibox/BUILD.gn b/chrome/browser/ui/android/omnibox/BUILD.gn
--- a/chrome/browser/ui/android/omnibox/BUILD.gn
+++ b/chrome/browser/ui/android/omnibox/BUILD.gn
@@ -170,8 +170,6 @@ android_library("java") {
@@ -172,8 +172,6 @@ android_library("java") {
deps = [
":java_resources",
@@ -829,7 +829,7 @@ diff --git a/chrome/browser/ui/android/omnibox/BUILD.gn b/chrome/browser/ui/andr
"//base:base_java",
"//base/version_info/android:version_constants_java",
"//build/android:build_java",
@@ -514,8 +512,6 @@ robolectric_library("junit") {
@@ -521,8 +519,6 @@ robolectric_library("junit") {
deps = [
":java",
":java_resources",
@@ -857,7 +857,7 @@ diff --git a/chrome/browser/ui/android/signin/java/src/org/chromium/chrome/brows
diff --git a/chrome/browser/ui/webui/chrome_web_ui_configs.cc b/chrome/browser/ui/webui/chrome_web_ui_configs.cc
--- a/chrome/browser/ui/webui/chrome_web_ui_configs.cc
+++ b/chrome/browser/ui/webui/chrome_web_ui_configs.cc
@@ -240,7 +240,6 @@ void RegisterChromeWebUIConfigs() {
@@ -241,7 +241,6 @@ void RegisterChromeWebUIConfigs() {
map.AddWebUIConfig(std::make_unique<DownloadInternalsUIConfig>());
map.AddWebUIConfig(std::make_unique<FamilyLinkUserInternalsUIConfig>());
map.AddWebUIConfig(std::make_unique<FlagsUIConfig>());
@@ -1207,7 +1207,7 @@ diff --git a/chrome/browser/webid/android/java/src/org/chromium/chrome/browser/w
diff --git a/chrome/test/android/BUILD.gn b/chrome/test/android/BUILD.gn
--- a/chrome/test/android/BUILD.gn
+++ b/chrome/test/android/BUILD.gn
@@ -372,8 +372,6 @@ android_library("chrome_java_integration_test_support") {
@@ -373,8 +373,6 @@ android_library("chrome_java_integration_test_support") {
deps = [
":chrome_java_test_support_common",
@@ -1219,7 +1219,7 @@ diff --git a/chrome/test/android/BUILD.gn b/chrome/test/android/BUILD.gn
diff --git a/components/external_intents/android/java/src/org/chromium/components/external_intents/ExternalNavigationHandler.java b/components/external_intents/android/java/src/org/chromium/components/external_intents/ExternalNavigationHandler.java
--- a/components/external_intents/android/java/src/org/chromium/components/external_intents/ExternalNavigationHandler.java
+++ b/components/external_intents/android/java/src/org/chromium/components/external_intents/ExternalNavigationHandler.java
@@ -2682,14 +2682,6 @@ public class ExternalNavigationHandler {
@@ -2858,14 +2858,6 @@ public class ExternalNavigationHandler {
* @return Whether the given intent is going to open an Instant App.
*/
private static boolean isIntentToInstantApp(Intent intent) {
@@ -3152,7 +3152,7 @@ diff --git a/components/omnibox/common/android/java/src/org/chromium/components/
import org.chromium.base.BaseSwitches;
import org.chromium.base.CommandLine;
import org.chromium.base.ContextUtils;
@@ -171,12 +169,6 @@ public class OmniboxFeatures {
@@ -174,12 +172,6 @@ public class OmniboxFeatures {
"geolocation_request_min_update_interval_millis",
(int) (9 * DateUtils.MINUTE_IN_MILLIS));
@@ -3175,16 +3175,16 @@ diff --git a/components/one_time_tokens/android/backend/sms/BUILD.gn b/component
- "$google_play_services_package:google_play_services_basement_java",
"//base:base_java",
"//build/android:build_java",
"//components/one_time_tokens/android/backend/sms:sms_otp_fetching_interface_java",
@@ -69,7 +68,6 @@ robolectric_binary("one_time_tokens_junit_tests") {
"//components/one_time_tokens/android/backend/common:java",
@@ -70,7 +69,6 @@ robolectric_binary("one_time_tokens_junit_tests") {
deps = [
":java",
":sms_otp_fetching_interface_java",
- "$google_play_services_package:google_play_services_basement_java",
"//base:base_java",
"//base:base_java_test_support",
"//base:base_junit_test_support",
"//third_party/junit",
@@ -78,7 +76,6 @@ robolectric_binary("one_time_tokens_junit_tests") {
@@ -81,7 +79,6 @@ robolectric_binary("one_time_tokens_junit_tests") {
android_library("sms_otp_fetching_interface_java") {
deps = [
@@ -3240,7 +3240,7 @@ diff --git a/components/signin/public/android/BUILD.gn b/components/signin/publi
diff --git a/components/webauthn/android/BUILD.gn b/components/webauthn/android/BUILD.gn
--- a/components/webauthn/android/BUILD.gn
+++ b/components/webauthn/android/BUILD.gn
@@ -41,8 +41,6 @@ android_library("java") {
@@ -42,8 +42,6 @@ android_library("java") {
"java/src/org/chromium/components/webauthn/Barrier.java",
"java/src/org/chromium/components/webauthn/CreateConfirmationUiDelegate.java",
"java/src/org/chromium/components/webauthn/Fido2Api.java",
@@ -3249,7 +3249,7 @@ diff --git a/components/webauthn/android/BUILD.gn b/components/webauthn/android/
"java/src/org/chromium/components/webauthn/Fido2CredentialRequest.java",
"java/src/org/chromium/components/webauthn/FidoIntentSender.java",
"java/src/org/chromium/components/webauthn/GetCredentialResponseCallback.java",
@@ -73,11 +71,11 @@ android_library("java") {
@@ -74,11 +72,11 @@ android_library("java") {
"java/src/org/chromium/components/webauthn/cred_man/GpmCredManRequestDecorator.java",
]
@@ -3265,7 +3265,7 @@ diff --git a/components/webauthn/android/BUILD.gn b/components/webauthn/android/
"//base:base_java",
"//base:service_loader_java",
"//base/version_info/android:version_constants_java",
@@ -223,8 +221,6 @@ robolectric_library("junit") {
@@ -225,8 +223,6 @@ robolectric_library("junit") {
deps = [
":java",
":test_support_java",
@@ -3306,7 +3306,7 @@ diff --git a/components/webauthn/android/java/src/org/chromium/components/webaut
import org.jni_zero.JNINamespace;
import org.jni_zero.NativeMethods;
@@ -48,7 +46,6 @@ import org.chromium.blink.mojom.ResidentKeyRequirement;
@@ -49,7 +47,6 @@ import org.chromium.blink.mojom.ResidentKeyRequirement;
import org.chromium.blink_public.common.BlinkFeatures;
import org.chromium.build.annotations.NullMarked;
import org.chromium.build.annotations.Nullable;
@@ -3314,7 +3314,7 @@ diff --git a/components/webauthn/android/java/src/org/chromium/components/webaut
import org.chromium.components.webauthn.cred_man.CredManHelper;
import org.chromium.components.webauthn.cred_man.CredManSupportProvider;
import org.chromium.content_public.browser.ClientDataJson;
@@ -132,12 +129,7 @@ public class Fido2CredentialRequest
@@ -133,12 +130,7 @@ public class Fido2CredentialRequest
*/
public Fido2CredentialRequest(AuthenticationContextProvider authenticationContextProvider) {
mAuthenticationContextProvider = authenticationContextProvider;
@@ -3328,7 +3328,7 @@ diff --git a/components/webauthn/android/java/src/org/chromium/components/webaut
mPlayServicesAvailable = playServicesAvailable;
mCredManHelper =
new CredManHelper(mAuthenticationContextProvider, this, mPlayServicesAvailable);
@@ -334,22 +326,6 @@ public class Fido2CredentialRequest
@@ -335,22 +327,6 @@ public class Fido2CredentialRequest
returnErrorAndResetCallback(AuthenticatorStatus.UNKNOWN_ERROR);
return;
}
@@ -3351,7 +3351,7 @@ diff --git a/components/webauthn/android/java/src/org/chromium/components/webaut
return;
}
int result =
@@ -397,23 +373,6 @@ public class Fido2CredentialRequest
@@ -398,23 +374,6 @@ public class Fido2CredentialRequest
returnErrorAndResetCallback(AuthenticatorStatus.UNKNOWN_ERROR);
return;
}
@@ -3375,7 +3375,7 @@ diff --git a/components/webauthn/android/java/src/org/chromium/components/webaut
}
/**
@@ -785,32 +744,6 @@ public class Fido2CredentialRequest
@@ -784,32 +743,6 @@ public class Fido2CredentialRequest
callback.onIsUserVerifyingPlatformAuthenticatorAvailableResponse(false);
return;
}
@@ -3407,8 +3407,8 @@ diff --git a/components/webauthn/android/java/src/org/chromium/components/webaut
- });
}
public void handleGetMatchingCredentialIdsRequest(
@@ -1139,16 +1072,6 @@ public class Fido2CredentialRequest
public void handleReportRequest(
@@ -1166,16 +1099,6 @@ public class Fido2CredentialRequest
if (options.mediation == Mediation.CONDITIONAL) {
mCancellableUiState = CancellableUiState.REQUEST_SENT_TO_PLATFORM;
}
@@ -3425,7 +3425,7 @@ diff --git a/components/webauthn/android/java/src/org/chromium/components/webaut
}
private void handleNonCredentialReturn(GetCredentialOptions options, Integer reason) {
@@ -1192,34 +1115,6 @@ public class Fido2CredentialRequest
@@ -1219,34 +1142,6 @@ public class Fido2CredentialRequest
return;
}
mCancellableUiState = CancellableUiState.REQUEST_SENT_TO_PLATFORM;
@@ -3565,7 +3565,7 @@ diff --git a/components/webauthn/android/java/src/org/chromium/components/webaut
diff --git a/components/webauthn/android/java/src/org/chromium/components/webauthn/GmsCoreUtils.java b/components/webauthn/android/java/src/org/chromium/components/webauthn/GmsCoreUtils.java
--- a/components/webauthn/android/java/src/org/chromium/components/webauthn/GmsCoreUtils.java
+++ b/components/webauthn/android/java/src/org/chromium/components/webauthn/GmsCoreUtils.java
@@ -9,28 +9,13 @@ import org.chromium.build.annotations.NullMarked;
@@ -14,28 +14,13 @@ import org.chromium.build.annotations.NullMarked;
@NullMarked
public class GmsCoreUtils {
@@ -3596,7 +3596,7 @@ diff --git a/components/webauthn/android/java/src/org/chromium/components/webaut
}
/**
@@ -39,25 +24,21 @@ public class GmsCoreUtils {
@@ -44,26 +29,22 @@ public class GmsCoreUtils {
* version.
*/
public static boolean isGetMatchingCredentialIdsSupported() {
@@ -3625,11 +3625,12 @@ diff --git a/components/webauthn/android/java/src/org/chromium/components/webaut
- sGmsCorePackageVersion = version;
+ return false;
}
}
/**
diff --git a/components/webauthn/android/java/src/org/chromium/components/webauthn/IdentityCredentialsHelper.java b/components/webauthn/android/java/src/org/chromium/components/webauthn/IdentityCredentialsHelper.java
--- a/components/webauthn/android/java/src/org/chromium/components/webauthn/IdentityCredentialsHelper.java
+++ b/components/webauthn/android/java/src/org/chromium/components/webauthn/IdentityCredentialsHelper.java
@@ -12,11 +12,6 @@ import android.os.Bundle;
@@ -12,12 +12,6 @@ import android.os.Bundle;
import androidx.annotation.VisibleForTesting;
@@ -3637,11 +3638,12 @@ diff --git a/components/webauthn/android/java/src/org/chromium/components/webaut
-import com.google.android.gms.identitycredentials.CreateCredentialRequest;
-import com.google.android.gms.identitycredentials.IdentityCredentialClient;
-import com.google.android.gms.identitycredentials.IdentityCredentialManager;
-import com.google.android.gms.identitycredentials.SignalCredentialStateRequest;
-
import org.jni_zero.JNINamespace;
import org.chromium.blink.mojom.AuthenticatorStatus;
@@ -54,50 +49,8 @@ public class IdentityCredentialsHelper {
@@ -56,53 +50,8 @@ public class IdentityCredentialsHelper {
MakeCredentialResponseCallback responseCallback,
ErrorCallback errorCallback) {
log(TAG, "handleConditionalCreateRequest");
@@ -3651,15 +3653,18 @@ diff --git a/components/webauthn/android/java/src/org/chromium/components/webaut
- assertNonNull(mAuthenticationContextProvider.getContext()));
- client.createCredential(buildConditionalCreateRequest(options, origin, clientDataHash))
- .addOnSuccessListener(
- (handle) ->
- onConditionalCreateSuccess(
- clientDataJson,
- options,
- responseCallback,
- errorCallback,
- handle))
- GmsCoreUtils.wrapSuccessCallback(
- (handle) ->
- onConditionalCreateSuccess(
- clientDataJson,
- options,
- responseCallback,
- errorCallback,
- handle)))
- .addOnFailureListener(
- (exception) -> onConditionalCreateFailure(errorCallback, exception));
- GmsCoreUtils.wrapFailureCallback(
- (exception) ->
- onConditionalCreateFailure(errorCallback, exception)));
- } catch (Exception e) {
- logError(TAG, "CreateCredential failed ", e);
- errorCallback.onResult(
@@ -3694,10 +3699,49 @@ diff --git a/components/webauthn/android/java/src/org/chromium/components/webaut
}
private void onConditionalCreateFailure(ErrorCallback errorCallback, Exception e) {
@@ -117,31 +70,4 @@ public class IdentityCredentialsHelper {
CRED_MAN_PREFIX + "BUNDLE_KEY_CLIENT_DATA_HASH", clientDataHash);
return credentialData;
@@ -125,70 +74,6 @@ public class IdentityCredentialsHelper {
// Dispatches a Report request.
public void handleReportRequest(PublicKeyCredentialReportOptions options, String origin) {
- log(TAG, "handleReportRequest");
- try {
- IdentityCredentialClient client =
- IdentityCredentialManager.Companion.getClient(
- assertNonNull(mAuthenticationContextProvider.getContext()));
- client.signalCredentialState(buildSignalCredentialStateRequest(options, origin))
- .addOnSuccessListener(
- GmsCoreUtils.wrapSuccessCallback(
- (handle) ->
- log(TAG, "Signal API request completed successfully")))
- .addOnFailureListener(
- GmsCoreUtils.wrapFailureCallback(
- (e) -> logError(TAG, "Signal API Report request failed ", e)));
- } catch (Exception e) {
- logError(TAG, "handleReportRequest failed ", e);
- return;
- }
}
- @VisibleForTesting
- public SignalCredentialStateRequest buildSignalCredentialStateRequest(
- PublicKeyCredentialReportOptions options, String origin) {
- String type;
- if (options.unknownCredentialId != null) {
- type = CRED_MAN_PREFIX + "SIGNAL_UNKNOWN_CREDENTIAL_STATE_REQUEST_TYPE";
- } else if (options.allAcceptedCredentials != null) {
- type = CRED_MAN_PREFIX + "SIGNAL_ALL_ACCEPTED_CREDENTIALS_REQUEST_TYPE";
- } else {
- assert (options.currentUserDetails != null);
- type = CRED_MAN_PREFIX + "SIGNAL_CURRENT_USER_DETAILS_STATE_REQUEST_TYPE";
- }
-
- String requestJson =
- Fido2CredentialRequestJni.get().reportOptionsToJson(options.serialize());
- Bundle requestDataBundle = new Bundle();
- requestDataBundle.putCharSequence(CRED_MAN_PREFIX + "signal_request_json_key", requestJson);
-
- return new SignalCredentialStateRequest(type, origin, requestDataBundle);
- }
-
- @VisibleForTesting
- public CreateCredentialRequest buildConditionalCreateRequest(
@@ -3806,7 +3850,7 @@ diff --git a/content/browser/push_messaging/push_messaging_manager.cc b/content/
diff --git a/content/public/android/BUILD.gn b/content/public/android/BUILD.gn
--- a/content/public/android/BUILD.gn
+++ b/content/public/android/BUILD.gn
@@ -168,10 +168,6 @@ android_library("content_full_java") {
@@ -169,10 +169,6 @@ android_library("content_full_java") {
":content_java_resources",
":content_main_dex_java",
":content_util_java",
@@ -3815,12 +3859,12 @@ diff --git a/content/public/android/BUILD.gn b/content/public/android/BUILD.gn
- "$google_play_services_package:google_play_services_basement_java",
- "$google_play_services_package:google_play_services_tasks_java",
"//base:base_java",
"//base:flagged_apis_java",
"//base:process_launcher_java",
"//base:service_loader_java",
diff --git a/content/test/BUILD.gn b/content/test/BUILD.gn
--- a/content/test/BUILD.gn
+++ b/content/test/BUILD.gn
@@ -3775,10 +3775,6 @@ if (is_android) {
@@ -3802,10 +3802,6 @@ if (is_android) {
testonly = true
sources = content_java_sources_needing_jni
deps = [
@@ -3847,7 +3891,7 @@ diff --git a/device/BUILD.gn b/device/BUILD.gn
diff --git a/services/BUILD.gn b/services/BUILD.gn
--- a/services/BUILD.gn
+++ b/services/BUILD.gn
@@ -168,12 +168,6 @@ if (is_android) {
@@ -163,12 +163,6 @@ if (is_android) {
"shape_detection/android/junit/src/org/chromium/shape_detection/BitmapUtilsTest.java",
]
deps = [
@@ -3860,7 +3904,7 @@ diff --git a/services/BUILD.gn b/services/BUILD.gn
"//base:base_java",
"//base:base_java_test_support",
"//base:base_junit_test_support",
@@ -205,10 +199,6 @@ if (is_android) {
@@ -200,10 +194,6 @@ if (is_android) {
"shape_detection/android/javatests/src/org/chromium/shape_detection/TextDetectionImplTest.java",
]
deps = [
@@ -3874,7 +3918,7 @@ diff --git a/services/BUILD.gn b/services/BUILD.gn
diff --git a/services/device/geolocation/BUILD.gn b/services/device/geolocation/BUILD.gn
--- a/services/device/geolocation/BUILD.gn
+++ b/services/device/geolocation/BUILD.gn
@@ -159,10 +159,6 @@ if (is_android) {
@@ -160,10 +160,6 @@ if (is_android) {
deps = [
":geolocation_jni_headers",
@@ -3900,17 +3944,15 @@ diff --git a/services/shape_detection/BUILD.gn b/services/shape_detection/BUILD.
diff --git a/third_party/android_deps/BUILD.gn b/third_party/android_deps/BUILD.gn
--- a/third_party/android_deps/BUILD.gn
+++ b/third_party/android_deps/BUILD.gn
@@ -82,22 +82,13 @@ if (!limit_android_deps) {
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 = [ ]
}
robolectric_library("chromium_play_services_availability_shadows_java") {
sources = [ "util/org/chromium/gms/shadows/ShadowChromiumPlayServicesAvailability.java" ]
deps = [ ":chromium_play_services_availability_java" ]
@@ -91,21 +91,10 @@ if (!limit_android_deps) {
sources =
[ "util/org/chromium/gms/ChromiumPlayServicesAvailability.java" ]
deps = [
- "$google_play_services_package:google_play_services_base_java",
- "$google_play_services_package:google_play_services_basement_java",
"//base:resetters_java",
]
}
}
-
- java_group("playcore_java") {
@@ -3927,14 +3969,14 @@ diff --git a/third_party/android_deps/BUILD.gn b/third_party/android_deps/BUILD.
diff --git a/third_party/android_deps/autorolled/BUILD.gn b/third_party/android_deps/autorolled/BUILD.gn
--- a/third_party/android_deps/autorolled/BUILD.gn
+++ b/third_party/android_deps/autorolled/BUILD.gn
@@ -130,313 +130,6 @@ template("define_autorolled_targets") {
@@ -133,311 +133,6 @@ template("define_autorolled_targets") {
]
}
- # This is generated, do not edit. Update BuildConfigGenerator.groovy instead.
- if (google_play_services_package == "//third_party/android_deps") {
- android_aar_prebuilt("google_play_services_auth_java") {
- aar_path = "autorolled/cipd/libs/com_google_android_gms_play_services_auth/play-services-auth-21.4.0.aar"
- aar_path = "autorolled/cipd/libs/com_google_android_gms_play_services_auth/play-services-auth.aar"
- info_path = "autorolled/committed/libs/com_google_android_gms_play_services_auth/com_google_android_gms_play_services_auth.info"
- enable_bytecode_checks = false
- deps = [
@@ -3953,7 +3995,7 @@ diff --git a/third_party/android_deps/autorolled/BUILD.gn b/third_party/android_
- # This is generated, do not edit. Update BuildConfigGenerator.groovy instead.
- if (google_play_services_package == "//third_party/android_deps") {
- android_aar_prebuilt("google_play_services_auth_api_phone_java") {
- aar_path = "autorolled/cipd/libs/com_google_android_gms_play_services_auth_api_phone/play-services-auth-api-phone-18.2.0.aar"
- aar_path = "autorolled/cipd/libs/com_google_android_gms_play_services_auth_api_phone/play-services-auth-api-phone.aar"
- info_path = "autorolled/committed/libs/com_google_android_gms_play_services_auth_api_phone/com_google_android_gms_play_services_auth_api_phone.info"
- enable_bytecode_checks = false
- deps = [
@@ -3970,7 +4012,7 @@ diff --git a/third_party/android_deps/autorolled/BUILD.gn b/third_party/android_
- # This is generated, do not edit. Update BuildConfigGenerator.groovy instead.
- if (google_play_services_package == "//third_party/android_deps") {
- android_aar_prebuilt("google_play_services_auth_base_java") {
- aar_path = "autorolled/cipd/libs/com_google_android_gms_play_services_auth_base/play-services-auth-base-18.3.0.aar"
- aar_path = "autorolled/cipd/libs/com_google_android_gms_play_services_auth_base/play-services-auth-base.aar"
- info_path = "autorolled/committed/libs/com_google_android_gms_play_services_auth_base/com_google_android_gms_play_services_auth_base.info"
- enable_bytecode_checks = false
- deps = [
@@ -3986,7 +4028,7 @@ diff --git a/third_party/android_deps/autorolled/BUILD.gn b/third_party/android_
- # This is generated, do not edit. Update BuildConfigGenerator.groovy instead.
- if (google_play_services_package == "//third_party/android_deps") {
- android_aar_prebuilt("google_play_services_auth_blockstore_java") {
- aar_path = "autorolled/cipd/libs/com_google_android_gms_play_services_auth_blockstore/play-services-auth-blockstore-16.4.0.aar"
- aar_path = "autorolled/cipd/libs/com_google_android_gms_play_services_auth_blockstore/play-services-auth-blockstore.aar"
- info_path = "autorolled/committed/libs/com_google_android_gms_play_services_auth_blockstore/com_google_android_gms_play_services_auth_blockstore.info"
- enable_bytecode_checks = false
- deps = [
@@ -4001,7 +4043,7 @@ diff --git a/third_party/android_deps/autorolled/BUILD.gn b/third_party/android_
- # This is generated, do not edit. Update BuildConfigGenerator.groovy instead.
- if (google_play_services_package == "//third_party/android_deps") {
- android_aar_prebuilt("google_play_services_base_java") {
- aar_path = "autorolled/cipd/libs/com_google_android_gms_play_services_base/play-services-base-18.8.0.aar"
- aar_path = "autorolled/cipd/libs/com_google_android_gms_play_services_base/play-services-base.aar"
- info_path = "autorolled/committed/libs/com_google_android_gms_play_services_base/com_google_android_gms_play_services_base.info"
- enable_bytecode_checks = false
- deps = [
@@ -4017,7 +4059,7 @@ diff --git a/third_party/android_deps/autorolled/BUILD.gn b/third_party/android_
- # This is generated, do not edit. Update BuildConfigGenerator.groovy instead.
- if (google_play_services_package == "//third_party/android_deps") {
- android_aar_prebuilt("google_play_services_basement_java") {
- aar_path = "autorolled/cipd/libs/com_google_android_gms_play_services_basement/play-services-basement-18.8.0.aar"
- aar_path = "autorolled/cipd/libs/com_google_android_gms_play_services_basement/play-services-basement.aar"
- info_path = "autorolled/committed/libs/com_google_android_gms_play_services_basement/com_google_android_gms_play_services_basement.info"
- enable_bytecode_checks = false
- deps = [
@@ -4036,15 +4078,13 @@ diff --git a/third_party/android_deps/autorolled/BUILD.gn b/third_party/android_
-
- # https://crbug.com/989505
- jar_excluded_patterns += [ "META-INF/proguard/*" ]
- input_jars_paths =
- [ "$android_sdk/optional/org.apache.http.legacy.jar" ]
- }
- }
-
- # This is generated, do not edit. Update BuildConfigGenerator.groovy instead.
- if (google_play_services_package == "//third_party/android_deps") {
- android_aar_prebuilt("google_play_services_cast_java") {
- aar_path = "autorolled/cipd/libs/com_google_android_gms_play_services_cast/play-services-cast-22.1.0.aar"
- aar_path = "autorolled/cipd/libs/com_google_android_gms_play_services_cast/play-services-cast.aar"
- info_path = "autorolled/committed/libs/com_google_android_gms_play_services_cast/com_google_android_gms_play_services_cast.info"
- enable_bytecode_checks = false
- deps = [
@@ -4062,7 +4102,7 @@ diff --git a/third_party/android_deps/autorolled/BUILD.gn b/third_party/android_
- # This is generated, do not edit. Update BuildConfigGenerator.groovy instead.
- if (google_play_services_package == "//third_party/android_deps") {
- android_aar_prebuilt("google_play_services_cast_framework_java") {
- aar_path = "autorolled/cipd/libs/com_google_android_gms_play_services_cast_framework/play-services-cast-framework-22.1.0.aar"
- aar_path = "autorolled/cipd/libs/com_google_android_gms_play_services_cast_framework/play-services-cast-framework.aar"
- info_path = "autorolled/committed/libs/com_google_android_gms_play_services_cast_framework/com_google_android_gms_play_services_cast_framework.info"
- enable_bytecode_checks = false
- deps = [
@@ -4073,7 +4113,7 @@ diff --git a/third_party/android_deps/autorolled/BUILD.gn b/third_party/android_
- "//third_party/android_deps:google_android_datatransport_transport_api_java",
- "//third_party/android_deps:google_android_datatransport_transport_backend_cct_java",
- "//third_party/android_deps:google_android_datatransport_transport_runtime_java",
- "//third_party/android_deps:guava_android_java",
- "//third_party/android_deps:guava_java",
- "//third_party/androidx:androidx_appcompat_appcompat_java",
- "//third_party/androidx:androidx_collection_collection_java",
- "//third_party/androidx:androidx_concurrent_concurrent_futures_java",
@@ -4090,7 +4130,7 @@ diff --git a/third_party/android_deps/autorolled/BUILD.gn b/third_party/android_
- # This is generated, do not edit. Update BuildConfigGenerator.groovy instead.
- if (google_play_services_package == "//third_party/android_deps") {
- android_aar_prebuilt("google_play_services_fido_java") {
- aar_path = "autorolled/cipd/libs/com_google_android_gms_play_services_fido/play-services-fido-21.2.0.aar"
- aar_path = "autorolled/cipd/libs/com_google_android_gms_play_services_fido/play-services-fido.aar"
- info_path = "autorolled/committed/libs/com_google_android_gms_play_services_fido/com_google_android_gms_play_services_fido.info"
- enable_bytecode_checks = false
- deps = [
@@ -4106,7 +4146,7 @@ diff --git a/third_party/android_deps/autorolled/BUILD.gn b/third_party/android_
- # This is generated, do not edit. Update BuildConfigGenerator.groovy instead.
- if (google_play_services_package == "//third_party/android_deps") {
- android_aar_prebuilt("google_play_services_gcm_java") {
- aar_path = "autorolled/cipd/libs/com_google_android_gms_play_services_gcm/play-services-gcm-17.0.0.aar"
- aar_path = "autorolled/cipd/libs/com_google_android_gms_play_services_gcm/play-services-gcm.aar"
- info_path = "autorolled/committed/libs/com_google_android_gms_play_services_gcm/com_google_android_gms_play_services_gcm.info"
- enable_bytecode_checks = false
- deps = [
@@ -4124,7 +4164,7 @@ diff --git a/third_party/android_deps/autorolled/BUILD.gn b/third_party/android_
- # This is generated, do not edit. Update BuildConfigGenerator.groovy instead.
- if (google_play_services_package == "//third_party/android_deps") {
- android_aar_prebuilt("google_play_services_identity_credentials_java") {
- aar_path = "autorolled/cipd/libs/com_google_android_gms_play_services_identity_credentials/play-services-identity-credentials-16.0.0-alpha08.aar"
- aar_path = "autorolled/cipd/libs/com_google_android_gms_play_services_identity_credentials/play-services-identity-credentials.aar"
- info_path = "autorolled/committed/libs/com_google_android_gms_play_services_identity_credentials/com_google_android_gms_play_services_identity_credentials.info"
- enable_bytecode_checks = false
- deps = [
@@ -4139,7 +4179,7 @@ diff --git a/third_party/android_deps/autorolled/BUILD.gn b/third_party/android_
- # This is generated, do not edit. Update BuildConfigGenerator.groovy instead.
- if (google_play_services_package == "//third_party/android_deps") {
- android_aar_prebuilt("google_play_services_iid_java") {
- aar_path = "autorolled/cipd/libs/com_google_android_gms_play_services_iid/play-services-iid-17.0.0.aar"
- aar_path = "autorolled/cipd/libs/com_google_android_gms_play_services_iid/play-services-iid.aar"
- info_path = "autorolled/committed/libs/com_google_android_gms_play_services_iid/com_google_android_gms_play_services_iid.info"
- enable_bytecode_checks = false
- deps = [
@@ -4156,7 +4196,7 @@ diff --git a/third_party/android_deps/autorolled/BUILD.gn b/third_party/android_
- # This is generated, do not edit. Update BuildConfigGenerator.groovy instead.
- if (google_play_services_package == "//third_party/android_deps") {
- android_aar_prebuilt("google_play_services_instantapps_java") {
- aar_path = "autorolled/cipd/libs/com_google_android_gms_play_services_instantapps/play-services-instantapps-18.2.0.aar"
- aar_path = "autorolled/cipd/libs/com_google_android_gms_play_services_instantapps/play-services-instantapps.aar"
- info_path = "autorolled/committed/libs/com_google_android_gms_play_services_instantapps/com_google_android_gms_play_services_instantapps.info"
- enable_bytecode_checks = false
- deps = [
@@ -4170,7 +4210,7 @@ diff --git a/third_party/android_deps/autorolled/BUILD.gn b/third_party/android_
- # This is generated, do not edit. Update BuildConfigGenerator.groovy instead.
- if (google_play_services_package == "//third_party/android_deps") {
- android_aar_prebuilt("google_play_services_location_java") {
- aar_path = "autorolled/cipd/libs/com_google_android_gms_play_services_location/play-services-location-21.3.0.aar"
- aar_path = "autorolled/cipd/libs/com_google_android_gms_play_services_location/play-services-location.aar"
- info_path = "autorolled/committed/libs/com_google_android_gms_play_services_location/com_google_android_gms_play_services_location.info"
- enable_bytecode_checks = false
- deps = [
@@ -4187,7 +4227,7 @@ diff --git a/third_party/android_deps/autorolled/BUILD.gn b/third_party/android_
- # This is generated, do not edit. Update BuildConfigGenerator.groovy instead.
- if (google_play_services_package == "//third_party/android_deps") {
- android_aar_prebuilt("google_play_services_tasks_java") {
- aar_path = "autorolled/cipd/libs/com_google_android_gms_play_services_tasks/play-services-tasks-18.4.0.aar"
- aar_path = "autorolled/cipd/libs/com_google_android_gms_play_services_tasks/play-services-tasks.aar"
- info_path = "autorolled/committed/libs/com_google_android_gms_play_services_tasks/com_google_android_gms_play_services_tasks.info"
- enable_bytecode_checks = false
- deps = [
@@ -4199,7 +4239,7 @@ diff --git a/third_party/android_deps/autorolled/BUILD.gn b/third_party/android_
- # This is generated, do not edit. Update BuildConfigGenerator.groovy instead.
- if (google_play_services_package == "//third_party/android_deps") {
- android_aar_prebuilt("google_play_services_vision_java") {
- aar_path = "autorolled/cipd/libs/com_google_android_gms_play_services_vision/play-services-vision-20.1.3.aar"
- aar_path = "autorolled/cipd/libs/com_google_android_gms_play_services_vision/play-services-vision.aar"
- info_path = "autorolled/committed/libs/com_google_android_gms_play_services_vision/com_google_android_gms_play_services_vision.info"
- enable_bytecode_checks = false
- deps = [
@@ -4213,7 +4253,7 @@ diff --git a/third_party/android_deps/autorolled/BUILD.gn b/third_party/android_
- # This is generated, do not edit. Update BuildConfigGenerator.groovy instead.
- if (google_play_services_package == "//third_party/android_deps") {
- android_aar_prebuilt("google_play_services_vision_common_java") {
- aar_path = "autorolled/cipd/libs/com_google_android_gms_play_services_vision_common/play-services-vision-common-19.1.3.aar"
- aar_path = "autorolled/cipd/libs/com_google_android_gms_play_services_vision_common/play-services-vision-common.aar"
- info_path = "autorolled/committed/libs/com_google_android_gms_play_services_vision_common/com_google_android_gms_play_services_vision_common.info"
- enable_bytecode_checks = false
- deps = [
@@ -4229,7 +4269,7 @@ diff --git a/third_party/android_deps/autorolled/BUILD.gn b/third_party/android_
- # This is generated, do not edit. Update BuildConfigGenerator.groovy instead.
- android_aar_prebuilt(
- "com_google_android_libraries_identity_googleid_googleid_java") {
- aar_path = "autorolled/cipd/libs/com_google_android_libraries_identity_googleid_googleid/googleid-1.1.1.aar"
- aar_path = "autorolled/cipd/libs/com_google_android_libraries_identity_googleid_googleid/googleid.aar"
- info_path = "autorolled/committed/libs/com_google_android_libraries_identity_googleid_googleid/com_google_android_libraries_identity_googleid_googleid.info"
- enable_bytecode_checks = false
- deps = [
@@ -4241,14 +4281,14 @@ diff --git a/third_party/android_deps/autorolled/BUILD.gn b/third_party/android_
# This is generated, do not edit. Update BuildConfigGenerator.groovy instead.
if (!defined(material_design_target)) {
android_aar_prebuilt("com_google_android_material_material_java") {
@@ -485,24 +178,6 @@ template("define_autorolled_targets") {
@@ -487,24 +182,6 @@ template("define_autorolled_targets") {
}
}
- # This is generated, do not edit. Update BuildConfigGenerator.groovy instead.
- if (!defined(playcore_target)) {
- android_aar_prebuilt("com_google_android_play_feature_delivery_java") {
- aar_path = "autorolled/cipd/libs/com_google_android_play_feature_delivery/feature-delivery-2.1.0.aar"
- aar_path = "autorolled/cipd/libs/com_google_android_play_feature_delivery/feature-delivery.aar"
- info_path = "autorolled/committed/libs/com_google_android_play_feature_delivery/com_google_android_play_feature_delivery.info"
- enable_bytecode_checks = false
-
@@ -4265,15 +4305,15 @@ diff --git a/third_party/android_deps/autorolled/BUILD.gn b/third_party/android_
-
# This is generated, do not edit. Update BuildConfigGenerator.groovy instead.
android_aar_prebuilt("com_google_ar_impress_java") {
aar_path = "autorolled/cipd/libs/com_google_ar_impress/impress-0.0.5.aar"
@@ -549,38 +224,6 @@ template("define_autorolled_targets") {
aar_path = "autorolled/cipd/libs/com_google_ar_impress/impress.aar"
@@ -551,38 +228,6 @@ template("define_autorolled_targets") {
deps = [ "//third_party/android_deps:com_google_errorprone_error_prone_annotations_java" ]
}
- # This is generated, do not edit. Update BuildConfigGenerator.groovy instead.
- if (google_play_services_package == "//third_party/android_deps") {
- android_aar_prebuilt("google_firebase_firebase_messaging_java") {
- aar_path = "autorolled/cipd/libs/com_google_firebase_firebase_messaging/firebase-messaging-25.0.1.aar"
- aar_path = "autorolled/cipd/libs/com_google_firebase_firebase_messaging/firebase-messaging.aar"
- info_path = "autorolled/committed/libs/com_google_firebase_firebase_messaging/com_google_firebase_firebase_messaging.info"
- enable_bytecode_checks = false
- deps = [
@@ -4305,14 +4345,14 @@ diff --git a/third_party/android_deps/autorolled/BUILD.gn b/third_party/android_
# This is generated, do not edit. Update BuildConfigGenerator.groovy instead.
if (!defined(android_proto_runtime)) {
java_prebuilt("com_google_protobuf_protobuf_javalite_java") {
@@ -889,190 +532,6 @@ template("define_autorolled_targets") {
@@ -928,190 +573,6 @@ template("define_autorolled_targets") {
]
}
- # This is generated, do not edit. Update BuildConfigGenerator.groovy instead.
- if (google_play_services_package == "//third_party/android_deps") {
- android_aar_prebuilt("google_android_datatransport_transport_api_java") {
- aar_path = "autorolled/cipd/libs/com_google_android_datatransport_transport_api/transport-api-3.1.0.aar"
- aar_path = "autorolled/cipd/libs/com_google_android_datatransport_transport_api/transport-api.aar"
- info_path = "autorolled/committed/libs/com_google_android_datatransport_transport_api/com_google_android_datatransport_transport_api.info"
- enable_bytecode_checks = false
-
@@ -4330,7 +4370,7 @@ diff --git a/third_party/android_deps/autorolled/BUILD.gn b/third_party/android_
- if (google_play_services_package == "//third_party/android_deps") {
- android_aar_prebuilt(
- "google_android_datatransport_transport_backend_cct_java") {
- aar_path = "autorolled/cipd/libs/com_google_android_datatransport_transport_backend_cct/transport-backend-cct-3.1.9.aar"
- aar_path = "autorolled/cipd/libs/com_google_android_datatransport_transport_backend_cct/transport-backend-cct.aar"
- info_path = "autorolled/committed/libs/com_google_android_datatransport_transport_backend_cct/com_google_android_datatransport_transport_backend_cct.info"
- enable_bytecode_checks = false
-
@@ -4354,7 +4394,7 @@ diff --git a/third_party/android_deps/autorolled/BUILD.gn b/third_party/android_
- if (google_play_services_package == "//third_party/android_deps") {
- android_aar_prebuilt(
- "google_android_datatransport_transport_runtime_java") {
- aar_path = "autorolled/cipd/libs/com_google_android_datatransport_transport_runtime/transport-runtime-3.1.9.aar"
- aar_path = "autorolled/cipd/libs/com_google_android_datatransport_transport_runtime/transport-runtime.aar"
- info_path = "autorolled/committed/libs/com_google_android_datatransport_transport_runtime/com_google_android_datatransport_transport_runtime.info"
- enable_bytecode_checks = false
-
@@ -4377,7 +4417,7 @@ diff --git a/third_party/android_deps/autorolled/BUILD.gn b/third_party/android_
- # This is generated, do not edit. Update BuildConfigGenerator.groovy instead.
- if (google_play_services_package == "//third_party/android_deps") {
- android_aar_prebuilt("google_play_services_clearcut_java") {
- aar_path = "autorolled/cipd/libs/com_google_android_gms_play_services_clearcut/play-services-clearcut-17.0.0.aar"
- aar_path = "autorolled/cipd/libs/com_google_android_gms_play_services_clearcut/play-services-clearcut.aar"
- info_path = "autorolled/committed/libs/com_google_android_gms_play_services_clearcut/com_google_android_gms_play_services_clearcut.info"
- enable_bytecode_checks = false
-
@@ -4400,7 +4440,7 @@ diff --git a/third_party/android_deps/autorolled/BUILD.gn b/third_party/android_
- # This is generated, do not edit. Update BuildConfigGenerator.groovy instead.
- if (google_play_services_package == "//third_party/android_deps") {
- android_aar_prebuilt("google_play_services_cloud_messaging_java") {
- aar_path = "autorolled/cipd/libs/com_google_android_gms_play_services_cloud_messaging/play-services-cloud-messaging-17.2.0.aar"
- aar_path = "autorolled/cipd/libs/com_google_android_gms_play_services_cloud_messaging/play-services-cloud-messaging.aar"
- info_path = "autorolled/committed/libs/com_google_android_gms_play_services_cloud_messaging/com_google_android_gms_play_services_cloud_messaging.info"
- enable_bytecode_checks = false
-
@@ -4420,7 +4460,7 @@ diff --git a/third_party/android_deps/autorolled/BUILD.gn b/third_party/android_
- # This is generated, do not edit. Update BuildConfigGenerator.groovy instead.
- if (google_play_services_package == "//third_party/android_deps") {
- android_aar_prebuilt("google_play_services_flags_java") {
- aar_path = "autorolled/cipd/libs/com_google_android_gms_play_services_flags/play-services-flags-18.1.0.aar"
- aar_path = "autorolled/cipd/libs/com_google_android_gms_play_services_flags/play-services-flags.aar"
- info_path = "autorolled/committed/libs/com_google_android_gms_play_services_flags/com_google_android_gms_play_services_flags.info"
- enable_bytecode_checks = false
-
@@ -4440,7 +4480,7 @@ diff --git a/third_party/android_deps/autorolled/BUILD.gn b/third_party/android_
- # This is generated, do not edit. Update BuildConfigGenerator.groovy instead.
- if (google_play_services_package == "//third_party/android_deps") {
- android_aar_prebuilt("google_play_services_phenotype_java") {
- aar_path = "autorolled/cipd/libs/com_google_android_gms_play_services_phenotype/play-services-phenotype-17.0.0.aar"
- aar_path = "autorolled/cipd/libs/com_google_android_gms_play_services_phenotype/play-services-phenotype.aar"
- info_path = "autorolled/committed/libs/com_google_android_gms_play_services_phenotype/com_google_android_gms_play_services_phenotype.info"
- enable_bytecode_checks = false
-
@@ -4462,7 +4502,7 @@ diff --git a/third_party/android_deps/autorolled/BUILD.gn b/third_party/android_
- # This is generated, do not edit. Update BuildConfigGenerator.groovy instead.
- if (google_play_services_package == "//third_party/android_deps") {
- android_aar_prebuilt("google_play_services_stats_java") {
- aar_path = "autorolled/cipd/libs/com_google_android_gms_play_services_stats/play-services-stats-17.0.2.aar"
- aar_path = "autorolled/cipd/libs/com_google_android_gms_play_services_stats/play-services-stats.aar"
- info_path = "autorolled/committed/libs/com_google_android_gms_play_services_stats/com_google_android_gms_play_services_stats.info"
- enable_bytecode_checks = false
-
@@ -4481,7 +4521,7 @@ diff --git a/third_party/android_deps/autorolled/BUILD.gn b/third_party/android_
-
- # This is generated, do not edit. Update BuildConfigGenerator.groovy instead.
- android_aar_prebuilt("com_google_android_play_core_common_java") {
- aar_path = "autorolled/cipd/libs/com_google_android_play_core_common/core-common-2.0.3.aar"
- aar_path = "autorolled/cipd/libs/com_google_android_play_core_common/core-common.aar"
- info_path = "autorolled/committed/libs/com_google_android_play_core_common/com_google_android_play_core_common.info"
- enable_bytecode_checks = false
-
@@ -4495,15 +4535,15 @@ diff --git a/third_party/android_deps/autorolled/BUILD.gn b/third_party/android_
-
# This is generated, do not edit. Update BuildConfigGenerator.groovy instead.
java_prebuilt("com_google_auto_value_auto_value_annotations_java") {
jar_path = "autorolled/cipd/libs/com_google_auto_value_auto_value_annotations/auto-value-annotations-1.11.0.jar"
@@ -1089,242 +548,6 @@ template("define_autorolled_targets") {
jar_path = "autorolled/cipd/libs/com_google_auto_value_auto_value_annotations/auto-value-annotations.jar"
@@ -1128,242 +589,6 @@ template("define_autorolled_targets") {
testonly = true
}
- # This is generated, do not edit. Update BuildConfigGenerator.groovy instead.
- if (google_play_services_package == "//third_party/android_deps") {
- java_prebuilt("google_firebase_firebase_annotations_java") {
- jar_path = "autorolled/cipd/libs/com_google_firebase_firebase_annotations/firebase-annotations-17.0.0.jar"
- jar_path = "autorolled/cipd/libs/com_google_firebase_firebase_annotations/firebase-annotations.jar"
- output_name = "com_google_firebase_firebase_annotations"
- supports_android = true
- requires_android = true
@@ -4522,7 +4562,7 @@ diff --git a/third_party/android_deps/autorolled/BUILD.gn b/third_party/android_
- # This is generated, do not edit. Update BuildConfigGenerator.groovy instead.
- if (google_play_services_package == "//third_party/android_deps") {
- android_aar_prebuilt("google_firebase_firebase_common_java") {
- aar_path = "autorolled/cipd/libs/com_google_firebase_firebase_common/firebase-common-22.0.1.aar"
- aar_path = "autorolled/cipd/libs/com_google_firebase_firebase_common/firebase-common.aar"
- info_path = "autorolled/committed/libs/com_google_firebase_firebase_common/com_google_firebase_firebase_common.info"
- enable_bytecode_checks = false
-
@@ -4549,7 +4589,7 @@ diff --git a/third_party/android_deps/autorolled/BUILD.gn b/third_party/android_
- # This is generated, do not edit. Update BuildConfigGenerator.groovy instead.
- if (google_play_services_package == "//third_party/android_deps") {
- android_aar_prebuilt("google_firebase_firebase_components_java") {
- aar_path = "autorolled/cipd/libs/com_google_firebase_firebase_components/firebase-components-19.0.0.aar"
- aar_path = "autorolled/cipd/libs/com_google_firebase_firebase_components/firebase-components.aar"
- info_path = "autorolled/committed/libs/com_google_firebase_firebase_components/com_google_firebase_firebase_components.info"
- enable_bytecode_checks = false
-
@@ -4570,7 +4610,7 @@ diff --git a/third_party/android_deps/autorolled/BUILD.gn b/third_party/android_
- # This is generated, do not edit. Update BuildConfigGenerator.groovy instead.
- if (google_play_services_package == "//third_party/android_deps") {
- android_aar_prebuilt("google_firebase_firebase_datatransport_java") {
- aar_path = "autorolled/cipd/libs/com_google_firebase_firebase_datatransport/firebase-datatransport-18.2.0.aar"
- aar_path = "autorolled/cipd/libs/com_google_firebase_firebase_datatransport/firebase-datatransport.aar"
- info_path = "autorolled/committed/libs/com_google_firebase_firebase_datatransport/com_google_firebase_firebase_datatransport.info"
- enable_bytecode_checks = false
-
@@ -4592,7 +4632,7 @@ diff --git a/third_party/android_deps/autorolled/BUILD.gn b/third_party/android_
- # This is generated, do not edit. Update BuildConfigGenerator.groovy instead.
- if (google_play_services_package == "//third_party/android_deps") {
- java_prebuilt("google_firebase_firebase_encoders_java") {
- jar_path = "autorolled/cipd/libs/com_google_firebase_firebase_encoders/firebase-encoders-17.0.0.jar"
- jar_path = "autorolled/cipd/libs/com_google_firebase_firebase_encoders/firebase-encoders.jar"
- output_name = "com_google_firebase_firebase_encoders"
- supports_android = true
- requires_android = true
@@ -4611,7 +4651,7 @@ diff --git a/third_party/android_deps/autorolled/BUILD.gn b/third_party/android_
- # This is generated, do not edit. Update BuildConfigGenerator.groovy instead.
- if (google_play_services_package == "//third_party/android_deps") {
- android_aar_prebuilt("google_firebase_firebase_encoders_json_java") {
- aar_path = "autorolled/cipd/libs/com_google_firebase_firebase_encoders_json/firebase-encoders-json-18.0.0.aar"
- aar_path = "autorolled/cipd/libs/com_google_firebase_firebase_encoders_json/firebase-encoders-json.aar"
- info_path = "autorolled/committed/libs/com_google_firebase_firebase_encoders_json/com_google_firebase_firebase_encoders_json.info"
- enable_bytecode_checks = false
-
@@ -4631,7 +4671,7 @@ diff --git a/third_party/android_deps/autorolled/BUILD.gn b/third_party/android_
- # This is generated, do not edit. Update BuildConfigGenerator.groovy instead.
- if (google_play_services_package == "//third_party/android_deps") {
- java_prebuilt("google_firebase_firebase_encoders_proto_java") {
- jar_path = "autorolled/cipd/libs/com_google_firebase_firebase_encoders_proto/firebase-encoders-proto-16.0.0.jar"
- jar_path = "autorolled/cipd/libs/com_google_firebase_firebase_encoders_proto/firebase-encoders-proto.jar"
- output_name = "com_google_firebase_firebase_encoders_proto"
- supports_android = true
- requires_android = true
@@ -4653,7 +4693,7 @@ diff --git a/third_party/android_deps/autorolled/BUILD.gn b/third_party/android_
- # This is generated, do not edit. Update BuildConfigGenerator.groovy instead.
- if (google_play_services_package == "//third_party/android_deps") {
- android_aar_prebuilt("google_firebase_firebase_iid_interop_java") {
- aar_path = "autorolled/cipd/libs/com_google_firebase_firebase_iid_interop/firebase-iid-interop-17.1.0.aar"
- aar_path = "autorolled/cipd/libs/com_google_firebase_firebase_iid_interop/firebase-iid-interop.aar"
- info_path = "autorolled/committed/libs/com_google_firebase_firebase_iid_interop/com_google_firebase_firebase_iid_interop.info"
- enable_bytecode_checks = false
-
@@ -4673,7 +4713,7 @@ diff --git a/third_party/android_deps/autorolled/BUILD.gn b/third_party/android_
- # This is generated, do not edit. Update BuildConfigGenerator.groovy instead.
- if (google_play_services_package == "//third_party/android_deps") {
- android_aar_prebuilt("google_firebase_firebase_installations_java") {
- aar_path = "autorolled/cipd/libs/com_google_firebase_firebase_installations/firebase-installations-18.0.0.aar"
- aar_path = "autorolled/cipd/libs/com_google_firebase_firebase_installations/firebase-installations.aar"
- info_path = "autorolled/committed/libs/com_google_firebase_firebase_installations/com_google_firebase_firebase_installations.info"
- enable_bytecode_checks = false
-
@@ -4698,7 +4738,7 @@ diff --git a/third_party/android_deps/autorolled/BUILD.gn b/third_party/android_
- if (google_play_services_package == "//third_party/android_deps") {
- android_aar_prebuilt(
- "google_firebase_firebase_installations_interop_java") {
- aar_path = "autorolled/cipd/libs/com_google_firebase_firebase_installations_interop/firebase-installations-interop-17.1.1.aar"
- aar_path = "autorolled/cipd/libs/com_google_firebase_firebase_installations_interop/firebase-installations-interop.aar"
- info_path = "autorolled/committed/libs/com_google_firebase_firebase_installations_interop/com_google_firebase_firebase_installations_interop.info"
- enable_bytecode_checks = false
-
@@ -4719,7 +4759,7 @@ diff --git a/third_party/android_deps/autorolled/BUILD.gn b/third_party/android_
- if (google_play_services_package == "//third_party/android_deps") {
- android_aar_prebuilt(
- "google_firebase_firebase_measurement_connector_java") {
- aar_path = "autorolled/cipd/libs/com_google_firebase_firebase_measurement_connector/firebase-measurement-connector-19.0.0.aar"
- aar_path = "autorolled/cipd/libs/com_google_firebase_firebase_measurement_connector/firebase-measurement-connector.aar"
- info_path = "autorolled/committed/libs/com_google_firebase_firebase_measurement_connector/com_google_firebase_firebase_measurement_connector.info"
- enable_bytecode_checks = false
-
@@ -4739,14 +4779,14 @@ diff --git a/third_party/android_deps/autorolled/BUILD.gn b/third_party/android_
# This is generated, do not edit. Update BuildConfigGenerator.groovy instead.
java_prebuilt(
"com_google_testparameterinjector_test_parameter_injector_java") {
@@ -1533,28 +756,6 @@ template("define_autorolled_targets") {
@@ -1940,28 +1165,6 @@ template("define_autorolled_targets") {
deps = [ "//third_party/android_deps:org_jetbrains_kotlinx_kotlinx_coroutines_core_jvm_java" ]
}
- # This is generated, do not edit. Update BuildConfigGenerator.groovy instead.
- java_prebuilt(
- "org_jetbrains_kotlinx_kotlinx_coroutines_play_services_java") {
- jar_path = "autorolled/cipd/libs/org_jetbrains_kotlinx_kotlinx_coroutines_play_services/kotlinx-coroutines-play-services-1.9.0.jar"
- jar_path = "autorolled/cipd/libs/org_jetbrains_kotlinx_kotlinx_coroutines_play_services/kotlinx-coroutines-play-services.jar"
- output_name = "org_jetbrains_kotlinx_kotlinx_coroutines_play_services"
- supports_android = true
- requires_android = true
@@ -4790,12 +4830,15 @@ diff --git a/third_party/android_deps/util/org/chromium/gms/ChromiumPlayServices
-import com.google.android.gms.common.GoogleApiAvailability;
-
import org.chromium.build.annotations.NullMarked;
// Refer to go/doubledown-play-services#new-apis for more detail.
@@ -33,9 +30,7 @@ public final class ChromiumPlayServicesAvailability {
import org.chromium.build.annotations.Nullable;
import org.chromium.base.ResettersForTesting;
@@ -42,12 +39,7 @@ public final class ChromiumPlayServicesAvailability {
* PM/UX.
*/
public static boolean isGooglePlayServicesAvailable(final Context context) {
- if (sIsAvailableForTesting != null) {
- return sIsAvailableForTesting;
- }
- return GoogleApiAvailability.getInstance().isGooglePlayServicesAvailable(
- context, GMS_VERSION_NUMBER)
- == ConnectionResult.SUCCESS;
@@ -4803,10 +4846,10 @@ diff --git a/third_party/android_deps/util/org/chromium/gms/ChromiumPlayServices
}
/**
@@ -53,7 +48,6 @@ public final class ChromiumPlayServicesAvailability {
* PM/UX.
*/
public static int getGooglePlayServicesConnectionResult(final Context context) {
@@ -68,7 +60,6 @@ public final class ChromiumPlayServicesAvailability {
if (sIsAvailableForTesting != null) {
return sIsAvailableForTesting ? ConnectionResult.SUCCESS : ConnectionResult.SERVICE_VERSION_UPDATE_REQUIRED;
}
- return GoogleApiAvailability.getInstance().isGooglePlayServicesAvailable(
- context, GMS_VERSION_NUMBER);
+ return 16; // API_UNAVAILABLE
@@ -4824,7 +4867,7 @@ diff --git a/third_party/androidx/customizations.gni b/third_party/androidx/cust
_androidx_prebuilt(target_name) {
forward_variables_from(invoker, "*")
target_type = "android_aar_prebuilt"
@@ -177,6 +177,18 @@ template("androidx_android_aar_prebuilt") {
@@ -172,6 +172,18 @@ template("androidx_android_aar_prebuilt") {
}
}
@@ -130,7 +130,7 @@ License: GPL-2.0-or-later - https://spdx.org/licenses/GPL-2.0-or-later.html
diff --git a/chrome/android/BUILD.gn b/chrome/android/BUILD.gn
--- a/chrome/android/BUILD.gn
+++ b/chrome/android/BUILD.gn
@@ -803,6 +803,10 @@ if (_is_default_toolchain) {
@@ -806,6 +806,10 @@ if (_is_default_toolchain) {
"//url/mojom:url_mojom_origin_java",
]
@@ -141,7 +141,7 @@ diff --git a/chrome/android/BUILD.gn b/chrome/android/BUILD.gn
deps += feed_deps
srcjar_deps = [
@@ -946,6 +950,10 @@ if (_is_default_toolchain) {
@@ -948,6 +952,10 @@ if (_is_default_toolchain) {
"//components/visited_url_ranking/internal:internal_java",
]
@@ -155,7 +155,7 @@ diff --git a/chrome/android/BUILD.gn b/chrome/android/BUILD.gn
diff --git a/chrome/android/chrome_java_resources.gni b/chrome/android/chrome_java_resources.gni
--- a/chrome/android/chrome_java_resources.gni
+++ b/chrome/android/chrome_java_resources.gni
@@ -643,3 +643,8 @@ chrome_java_resources = [
@@ -655,3 +655,8 @@ chrome_java_resources = [
"java/res/xml/tracing_preferences.xml",
"java/res/xml/unified_account_settings_preferences.xml",
]
@@ -167,7 +167,7 @@ diff --git a/chrome/android/chrome_java_resources.gni b/chrome/android/chrome_ja
diff --git a/chrome/android/chrome_java_sources.gni b/chrome/android/chrome_java_sources.gni
--- a/chrome/android/chrome_java_sources.gni
+++ b/chrome/android/chrome_java_sources.gni
@@ -875,6 +875,7 @@ chrome_java_sources = [
@@ -886,6 +886,7 @@ chrome_java_sources = [
"java/src/org/chromium/chrome/browser/password_manager/PasswordManagerDialogViewBinder.java",
"java/src/org/chromium/chrome/browser/password_manager/PasswordManagerErrorMessageHelperBridge.java",
"java/src/org/chromium/chrome/browser/password_manager/PasswordManagerLauncher.java",
@@ -178,7 +178,7 @@ diff --git a/chrome/android/chrome_java_sources.gni b/chrome/android/chrome_java
diff --git a/chrome/android/java/AndroidManifest.xml b/chrome/android/java/AndroidManifest.xml
--- a/chrome/android/java/AndroidManifest.xml
+++ b/chrome/android/java/AndroidManifest.xml
@@ -455,10 +455,9 @@ by a child template that "extends" this file.
@@ -466,10 +466,9 @@ by a child template that "extends" this file.
</intent-filter>
</activity>
@@ -1028,7 +1028,7 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/settings/Fragme
diff --git a/chrome/android/java/src/org/chromium/chrome/browser/settings/MainSettings.java b/chrome/android/java/src/org/chromium/chrome/browser/settings/MainSettings.java
--- a/chrome/android/java/src/org/chromium/chrome/browser/settings/MainSettings.java
+++ b/chrome/android/java/src/org/chromium/chrome/browser/settings/MainSettings.java
@@ -481,18 +481,6 @@ public class MainSettings extends ChromeBaseSettingsFragment
@@ -489,18 +489,6 @@ public class MainSettings extends ChromeBaseSettingsFragment
preference ->
SettingsNavigationHelper.showAutofillProfileSettings(
getActivity()));
@@ -1066,7 +1066,7 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/settings/Settin
case SettingsFragment.GOOGLE_SERVICES:
case SettingsFragment.MANAGE_SYNC:
case SettingsFragment.FINANCIAL_ACCOUNTS:
@@ -109,6 +111,8 @@ public class SettingsNavigationImpl implements SettingsNavigation {
@@ -127,6 +129,8 @@ public class SettingsNavigationImpl implements SettingsNavigation {
return SiteSettings.class;
case SettingsFragment.ACCESSIBILITY:
return AccessibilitySettings.class;
@@ -1078,7 +1078,7 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/settings/Settin
diff --git a/chrome/browser/BUILD.gn b/chrome/browser/BUILD.gn
--- a/chrome/browser/BUILD.gn
+++ b/chrome/browser/BUILD.gn
@@ -3369,6 +3369,13 @@ static_library("browser") {
@@ -3353,6 +3353,13 @@ static_library("browser") {
"touch_to_fill/password_manager/touch_to_fill_controller_webauthn_delegate.h",
]
@@ -2965,7 +2965,7 @@ diff --git a/chrome/browser/password_manager/android/java/src/org/chromium/chrom
import org.chromium.components.browser_ui.settings.SettingsCustomTabLauncher;
import org.chromium.components.sync.SyncService;
import org.chromium.ui.modaldialog.ModalDialogManager;
@@ -173,6 +174,7 @@ public class PasswordManagerHelper {
@@ -172,6 +173,7 @@ public class PasswordManagerHelper {
Context context,
Supplier<@Nullable ModalDialogManager> modalDialogManagerSupplier,
SettingsCustomTabLauncher settingsCustomTabLauncher) {
@@ -2973,7 +2973,7 @@ diff --git a/chrome/browser/password_manager/android/java/src/org/chromium/chrom
// Automotive doesn't support the export flow.
if (!DeviceInfo.isAutomotive()
&& LoginDbDeprecationUtilBridge.hasPasswordsInCsv(mProfile)) {
@@ -180,16 +182,6 @@ public class PasswordManagerHelper {
@@ -179,16 +181,6 @@ public class PasswordManagerHelper {
return true;
}
@@ -2990,7 +2990,7 @@ diff --git a/chrome/browser/password_manager/android/java/src/org/chromium/chrom
return false;
}
@@ -417,6 +409,11 @@ public class PasswordManagerHelper {
@@ -413,6 +405,11 @@ public class PasswordManagerHelper {
Supplier<@Nullable ModalDialogManager> modalDialogManagerSupplier,
Context context,
@Nullable String account) {
@@ -5997,7 +5997,7 @@ diff --git a/chrome/browser/password_manager/password_manager_settings_service_f
diff --git a/chrome/browser/prefs/browser_prefs.cc b/chrome/browser/prefs/browser_prefs.cc
--- a/chrome/browser/prefs/browser_prefs.cc
+++ b/chrome/browser/prefs/browser_prefs.cc
@@ -3064,13 +3064,6 @@ void MigrateObsoleteProfilePrefs(PrefService* profile_prefs,
@@ -2815,13 +2815,6 @@ void MigrateObsoleteProfilePrefs(PrefService* profile_prefs,
profile_prefs->ClearPref(kObsoletePasswordsUseUPMLocalAndSeparateStores);
profile_prefs->ClearPref(kObsoleteEmptyProfileStoreLoginDatabase);
profile_prefs->ClearPref(kObsoleteUpmAutoExportCsvNeedsDeletion);
@@ -6014,7 +6014,7 @@ diff --git a/chrome/browser/prefs/browser_prefs.cc b/chrome/browser/prefs/browse
diff --git a/chrome/browser/ui/android/strings/android_chrome_strings.grd b/chrome/browser/ui/android/strings/android_chrome_strings.grd
--- a/chrome/browser/ui/android/strings/android_chrome_strings.grd
+++ b/chrome/browser/ui/android/strings/android_chrome_strings.grd
@@ -682,7 +682,7 @@ For more settings that use data to improve your Chrome experience, go to <ph nam
@@ -691,7 +691,7 @@ For more settings that use data to improve your Chrome experience, go to <ph nam
Passwords
</message>
<message name="IDS_PASSWORD_MANAGER_SETTINGS_TITLE" desc="Title for the settings menu item leading to the Password Manager UI surface. This allows users to e.g. manage their saved passwords, toggle saving and auto-sign-in on/off, etc. [CHAR_LIMIT=32]">
@@ -6023,7 +6023,7 @@ diff --git a/chrome/browser/ui/android/strings/android_chrome_strings.grd b/chro
</message>
<message name="IDS_PASSWORD_SAVING_ON_BY_ADMINISTRATOR" desc="Subtitle for the settings menu item leading to the Password Manager UI surface, shown when the device administrator set saving passwords to enabled.">
Password saving is turned on by your administrator
@@ -782,6 +782,127 @@ For more settings that use data to improve your Chrome experience, go to <ph nam
@@ -791,6 +791,127 @@ For more settings that use data to improve your Chrome experience, go to <ph nam
Password suggestion is closed.
</message>
@@ -6168,9 +6168,9 @@ new file mode 100644
diff --git a/components/autofill/core/common/autofill_features.cc b/components/autofill/core/common/autofill_features.cc
--- a/components/autofill/core/common/autofill_features.cc
+++ b/components/autofill/core/common/autofill_features.cc
@@ -786,6 +786,7 @@ BASE_FEATURE(kAutofillDeepLinkAutofillOptions,
@@ -860,6 +860,7 @@ BASE_FEATURE(kAutofillEnableKeyboardAccessoryChipRedesign,
// TODO: crbug.com/385172647 - Clean up after the feature is launched.
BASE_FEATURE(kAutofillEnableKeyboardAccessoryChipRedesign,
BASE_FEATURE(kAutofillEnableKeyboardAccessoryChipWidthAdjustment,
base::FEATURE_DISABLED_BY_DEFAULT);
+SET_CROMITE_FEATURE_DISABLED(kAutofillDeepLinkAutofillOptions);
@@ -6231,7 +6231,7 @@ diff --git a/components/password_manager/core/browser/import/password_importer.c
diff --git a/components/password_manager/core/browser/password_manager.cc b/components/password_manager/core/browser/password_manager.cc
--- a/components/password_manager/core/browser/password_manager.cc
+++ b/components/password_manager/core/browser/password_manager.cc
@@ -598,9 +598,7 @@ void PasswordManager::RegisterProfilePrefs(
@@ -615,9 +615,7 @@ void PasswordManager::RegisterProfilePrefs(
registry->RegisterIntegerPref(prefs::kTotalPasswordsAvailableForProfile, 0);
registry->RegisterIntegerPref(prefs::kPasswordRemovalReasonForAccount, 0);
registry->RegisterIntegerPref(prefs::kPasswordRemovalReasonForProfile, 0);
@@ -6279,7 +6279,7 @@ diff --git a/components/password_manager/core/browser/password_manager_constants
diff --git a/components/password_manager/core/browser/password_store/BUILD.gn b/components/password_manager/core/browser/password_store/BUILD.gn
--- a/components/password_manager/core/browser/password_store/BUILD.gn
+++ b/components/password_manager/core/browser/password_store/BUILD.gn
@@ -75,6 +75,19 @@ source_set("password_store_impl") {
@@ -72,6 +72,19 @@ source_set("password_store_impl") {
"android_backend_error.h",
"password_data_type_controller_delegate_android.cc",
"password_data_type_controller_delegate_android.h",
@@ -6302,7 +6302,7 @@ diff --git a/components/password_manager/core/browser/password_store/BUILD.gn b/
diff --git a/components/password_manager/core/browser/password_store/login_database_posix.cc b/components/password_manager/core/browser/password_store/login_database_posix.cc
--- a/components/password_manager/core/browser/password_store/login_database_posix.cc
+++ b/components/password_manager/core/browser/password_store/login_database_posix.cc
@@ -44,7 +44,7 @@ EncryptionResult LoginDatabase::DecryptedString(
@@ -42,7 +42,7 @@ EncryptionResult LoginDatabase::DecryptedString(
const std::string& cipher_text,
std::u16string* plain_text) const {
#if !BUILDFLAG(IS_FUCHSIA)
@@ -6311,10 +6311,10 @@ diff --git a/components/password_manager/core/browser/password_store/login_datab
// On ChromeOS, we have a mix of obfuscated and plain-text
// passwords. Obfuscated passwords always start with "v10", therefore anything
// else is plain-text.
@@ -66,7 +66,7 @@ EncryptionResult LoginDatabase::DecryptedString(
@@ -63,7 +63,7 @@ EncryptionResult LoginDatabase::DecryptedString(
bool decryption_success =
encryptor_ ? encryptor_->DecryptString16(cipher_text, plain_text)
: OSCrypt::DecryptString16(cipher_text, plain_text);
encryptor_ && encryptor_->DecryptString16(cipher_text, plain_text);
-#if BUILDFLAG(IS_CHROMEOS)
+#if BUILDFLAG(IS_ANDROID) || BUILDFLAG(IS_CHROMEOS)
// If decryption failed, we assume it was because the value was actually a
@@ -6323,7 +6323,7 @@ diff --git a/components/password_manager/core/browser/password_store/login_datab
diff --git a/components/password_manager/core/browser/password_store/password_store_built_in_backend.cc b/components/password_manager/core/browser/password_store/password_store_built_in_backend.cc
--- a/components/password_manager/core/browser/password_store/password_store_built_in_backend.cc
+++ b/components/password_manager/core/browser/password_store/password_store_built_in_backend.cc
@@ -154,6 +154,7 @@ void PasswordStoreBuiltInBackend::InitBackend(
@@ -150,6 +150,7 @@ void PasswordStoreBuiltInBackend::InitBackend(
DCHECK(helper_);
affiliated_match_helper_ = affiliated_match_helper;
@@ -6331,7 +6331,7 @@ diff --git a/components/password_manager/core/browser/password_store/password_st
// To ensure that groups of the kClearUndecryptablePasswords will stay
// balanced, after the cleanup is done an additional flag check is needed.
// Users won't reach the flag the normal way since the LoginDB is working
@@ -162,6 +163,7 @@ void PasswordStoreBuiltInBackend::InitBackend(
@@ -158,6 +159,7 @@ void PasswordStoreBuiltInBackend::InitBackend(
if (pref_service_->GetBoolean(prefs::kClearingUndecryptablePasswords)) {
base::FeatureList::IsEnabled(features::kClearUndecryptablePasswords);
}
@@ -6339,7 +6339,7 @@ diff --git a/components/password_manager/core/browser/password_store/password_st
background_task_runner_->PostTask(
FROM_HERE, base::BindOnce(&LoginDatabaseAsyncHelper::CreateSyncBackend,
@@ -450,11 +452,15 @@ void PasswordStoreBuiltInBackend::OnEncryptorReceived(
@@ -434,11 +436,15 @@ void PasswordStoreBuiltInBackend::OnEncryptorReceived(
weak_ptr_factory_.GetWeakPtr()))
.Then(std::move(remote_form_changes_received));
File diff suppressed because it is too large Load Diff