From 9ce24409354bb986f3fe4b265e6b3431e1cae53f Mon Sep 17 00:00:00 2001 From: Carmelo Messina Date: Thu, 9 Feb 2023 13:14:01 +0100 Subject: [PATCH] v110 final patch (with fixup) --- build/bromite_patches_list.txt | 11 - ...-Move-navigation-bar-to-bottom-fixup.patch | 119 --- build/patches/00109-Fix-Adblock.patch | 22 - ...-Move-navigation-bar-to-bottom-fixup.patch | 650 --------------- ...00110-Add-a-proxy-configuration-page.patch | 34 - ...nversion-measurement-api--add-fixup-.patch | 22 - ...10-Disable-safe-browsing--win-fixup-.patch | 33 - build/patches/00110-Eyeo-Adblock-Remove.patch | 22 - build/patches/00110-Fix-windows-build.patch | 23 - .../00110-Move-navigation-bar-to-bottom.patch | 89 --- .../00110-wip-add-browser-policy.patch | 22 - ...proxy-configuration-page--add-fixup-.patch | 22 +- ...nversion-measurement-api--add-fixup-.patch | 2 +- .../00Disable-safe-browsing--win-fixup-.patch | 26 +- ...00Eyeo-Adblock-Remove-Privacy-Issues.patch | 26 +- build/patches/00Fix-windows-build.patch | 14 +- ...navigation-bar-to-bottom--add-fixup-.patch | 753 +++++++++++++++++- .../patches/00Viewport-Protection-flag.patch | 11 +- build/patches/00wip-add-browser-policy.patch | 2 +- 19 files changed, 809 insertions(+), 1094 deletions(-) delete mode 100644 build/patches/00109-2-Move-navigation-bar-to-bottom-fixup.patch delete mode 100644 build/patches/00109-Fix-Adblock.patch delete mode 100644 build/patches/00109-Move-navigation-bar-to-bottom-fixup.patch delete mode 100644 build/patches/00110-Add-a-proxy-configuration-page.patch delete mode 100644 build/patches/00110-Disable-conversion-measurement-api--add-fixup-.patch delete mode 100644 build/patches/00110-Disable-safe-browsing--win-fixup-.patch delete mode 100644 build/patches/00110-Eyeo-Adblock-Remove.patch delete mode 100644 build/patches/00110-Fix-windows-build.patch delete mode 100644 build/patches/00110-Move-navigation-bar-to-bottom.patch delete mode 100644 build/patches/00110-wip-add-browser-policy.patch diff --git a/build/bromite_patches_list.txt b/build/bromite_patches_list.txt index d1a5f668..a46f5df5 100644 --- a/build/bromite_patches_list.txt +++ b/build/bromite_patches_list.txt @@ -264,28 +264,19 @@ AudioBuffer-AnalyserNode-fp-mitigations.patch 00win-enable-pdf-plugin.patch 00win-disable-annotate-downloads.patch 00win-enable-HighEfficiencyMode-by-default.patch -00109-Move-navigation-bar-to-bottom-fixup.patch 00Partitioning-all-cookies-by-top-frame-domain.patch - -00109-2-Move-navigation-bar-to-bottom-fixup.patch 00Remove-experimental-relative-c---abi-vtables.patch 00Disable-MathMLCore.patch 00fix-InitiatorOrigin--add-fixup-.patch 00109-Add-an-always-incognito-mode-fixup.patch -00109-Fix-Adblock.patch 00109-Samsung-Note-9-SDK27-crazylinker-workaround.patch 00110-Remove-signin-and-sync-integrations.patch 00110-Experimental-user-scripts-support.patch -00110-Disable-conversion-measurement-api--add-fixup-.patch 00110-Remove-blocklisted-URLs-upon-bookmark-creation.patch -00110-Move-navigation-bar-to-bottom.patch -00110-Add-a-proxy-configuration-page.patch 00110-Logcat-crash-reports-UI.patch -00110-Eyeo-Adblock-Remove.patch 00110-Enable-native-Android-autofill.patch 00110-Add-lifetime-options-for-permissions.patch -00110-wip-add-browser-policy.patch 00110-Do-not-compile-QR-code-sharing.patch 00110-Disable-safe-browsing.patch 00110-Do-not-store-passwords-by-default.patch @@ -294,6 +285,4 @@ AudioBuffer-AnalyserNode-fp-mitigations.patch 00110-Revert-the-removal-of-an-option-to-block-autoplay.patch 00110-JIT-site-settings.patch 00110-Site-setting-for-images.patch -00110-Disable-safe-browsing--win-fixup-.patch -00110-Fix-windows-build.patch 00110-add-Allow-building-without-enable-reporting.patch diff --git a/build/patches/00109-2-Move-navigation-bar-to-bottom-fixup.patch b/build/patches/00109-2-Move-navigation-bar-to-bottom-fixup.patch deleted file mode 100644 index 3191f215..00000000 --- a/build/patches/00109-2-Move-navigation-bar-to-bottom-fixup.patch +++ /dev/null @@ -1,119 +0,0 @@ -From: Your Name -Date: Mon, 30 Jan 2023 15:13:51 +0000 -Subject: 109-2 Move navigation bar to bottom fixup - ---- - .../tab_management/TabListCoordinator.java | 20 +++++++++++-------- - .../DropdownItemViewInfoListManager.java | 15 ++++++++++---- - 2 files changed, 23 insertions(+), 12 deletions(-) - -diff --git a/chrome/android/features/tab_ui/java/src/org/chromium/chrome/browser/tasks/tab_management/TabListCoordinator.java b/chrome/android/features/tab_ui/java/src/org/chromium/chrome/browser/tasks/tab_management/TabListCoordinator.java ---- a/chrome/android/features/tab_ui/java/src/org/chromium/chrome/browser/tasks/tab_management/TabListCoordinator.java -+++ b/chrome/android/features/tab_ui/java/src/org/chromium/chrome/browser/tasks/tab_management/TabListCoordinator.java -@@ -105,7 +105,9 @@ public class TabListCoordinator - - TabListRecyclerView mRecyclerView; - -- int mTopPadding = 99999; -+ final int MAX_TOP_PADDING = 99999; -+ int mTopPadding = MAX_TOP_PADDING; -+ - int mLastPosition = -1; - boolean mIsFirstLayout = true; - -@@ -125,10 +127,10 @@ public class TabListCoordinator - @Override - public int getPaddingTop() { - if (mContext.getResources().getConfiguration().orientation == Configuration.ORIENTATION_LANDSCAPE) { -- mTopPadding = 99999; -+ mTopPadding = MAX_TOP_PADDING; - return 0; - } -- if (mTopPadding == 99999) return super.getPaddingTop(); -+ if (mTopPadding == MAX_TOP_PADDING) return super.getPaddingTop(); - return mTopPadding; - } - -@@ -140,26 +142,28 @@ public class TabListCoordinator - @Override - public void scrollToPositionWithOffset(int position, int offset) { - mLastPosition = position; -- super.scrollToPositionWithOffset(position, getPaddingBottom()); -+ super.scrollToPositionWithOffset(position, offset - getPaddingTop()); - } - - @Override - public void onLayoutCompleted(RecyclerView.State state) { - super.onLayoutCompleted(state); - -- if (state.isPreLayout()) return; -+ if (state.isPreLayout() || state.isMeasuring()) return; - View lastView = findViewByPosition(findFirstVisibleItemPosition()); - if (lastView != null) { -+ if (mTopPadding == 0) mTopPadding = MAX_TOP_PADDING; - mTopPadding = Math.min(mTopPadding, mRecyclerView.getHeight() - lastView.getHeight()); - if (mIsFirstLayout) { - mIsFirstLayout = false; -- scrollToPositionWithOffset(mLastPosition, 0); -+ scrollToPositionWithOffset(mLastPosition, getPaddingTop() + getPaddingBottom()); - } - } - -- if (mLastPosition != -1 && mLastPosition >= state.getItemCount()) { -+ if (mLastPosition >= state.getItemCount()) { - ResetTopPosition(); -- scrollToPositionWithOffset(state.getItemCount()-getSpanCount(), 0); -+ scrollToPositionWithOffset(state.getItemCount()-getSpanCount(), -+ getPaddingTop() + getPaddingBottom()); - } - } - } -diff --git a/chrome/browser/ui/android/omnibox/java/src/org/chromium/chrome/browser/omnibox/suggestions/DropdownItemViewInfoListManager.java b/chrome/browser/ui/android/omnibox/java/src/org/chromium/chrome/browser/omnibox/suggestions/DropdownItemViewInfoListManager.java ---- a/chrome/browser/ui/android/omnibox/java/src/org/chromium/chrome/browser/omnibox/suggestions/DropdownItemViewInfoListManager.java -+++ b/chrome/browser/ui/android/omnibox/java/src/org/chromium/chrome/browser/omnibox/suggestions/DropdownItemViewInfoListManager.java -@@ -11,6 +11,8 @@ import android.view.View; - import androidx.annotation.NonNull; - import androidx.annotation.Px; - -+import org.chromium.chrome.browser.flags.CachedFeatureFlags; -+import org.chromium.chrome.browser.flags.ChromeFeatureList; - import org.chromium.chrome.browser.omnibox.OmniboxFeatures; - import org.chromium.chrome.browser.omnibox.R; - import org.chromium.chrome.browser.ui.theme.BrandedColorScheme; -@@ -165,6 +167,7 @@ class DropdownItemViewInfoListManager { - GroupSection previousSection = null; - GroupSection currentSection; - -+ boolean toolbarToBottom = ChromeFeatureList.sMoveTopToolbarToBottom.isEnabled(); - for (int i = 0; i < mSourceViewInfoList.size(); i++) { - final DropdownItemViewInfo item = mSourceViewInfoList.get(i); - final PropertyModel model = item.model; -@@ -180,18 +183,22 @@ class DropdownItemViewInfoListManager { - var topMargin = applyRounding ? groupTopMargin : suggestionVerticalMargin; - var bottomMargin = applyRounding ? groupBottomMargin : suggestionVerticalMargin; - -- model.set(DropdownCommonProperties.BG_TOP_CORNER_ROUNDED, applyRounding); -+ model.set(toolbarToBottom ? -+ DropdownCommonProperties.BG_BOTTOM_CORNER_ROUNDED : -+ DropdownCommonProperties.BG_TOP_CORNER_ROUNDED, applyRounding); - // Do not have margin for the first suggestion, otherwise the first suggestion will - // have a big gap with the Omnibox. -- model.set(DropdownCommonProperties.TOP_MARGIN, -+ model.set(toolbarToBottom ? DropdownCommonProperties.BOTTOM_MARGIN : DropdownCommonProperties.TOP_MARGIN, - previousItem == null - ? getSuggestionListTopMargin(item.processor.getViewTypeId()) - : topMargin); - - if (previousItem != null) { - previousItem.model.set( -- DropdownCommonProperties.BG_BOTTOM_CORNER_ROUNDED, applyRounding); -- previousItem.model.set(DropdownCommonProperties.BOTTOM_MARGIN, bottomMargin); -+ toolbarToBottom ? -+ DropdownCommonProperties.BG_TOP_CORNER_ROUNDED : -+ DropdownCommonProperties.BG_BOTTOM_CORNER_ROUNDED, applyRounding); -+ previousItem.model.set(toolbarToBottom ? DropdownCommonProperties.TOP_MARGIN : DropdownCommonProperties.BOTTOM_MARGIN, bottomMargin); - } - - previousItem = item; --- -2.25.1 diff --git a/build/patches/00109-Fix-Adblock.patch b/build/patches/00109-Fix-Adblock.patch deleted file mode 100644 index d532f42f..00000000 --- a/build/patches/00109-Fix-Adblock.patch +++ /dev/null @@ -1,22 +0,0 @@ -From: Your Name -Date: Fri, 3 Feb 2023 15:31:39 +0000 -Subject: 109 Fix Adblock - ---- - chrome/browser/ui/tab_helpers.cc | 2 ++ - 1 file changed, 2 insertions(+) - -diff --git a/chrome/browser/ui/tab_helpers.cc b/chrome/browser/ui/tab_helpers.cc ---- a/chrome/browser/ui/tab_helpers.cc -+++ b/chrome/browser/ui/tab_helpers.cc -@@ -328,6 +328,8 @@ void TabHelpers::AttachTabHelpers(WebContents* web_contents) { - } - #endif - -+ adblock::AdblockControllerFactory::GetForBrowserContext( -+ web_contents->GetBrowserContext()); - AdblockWebContentObserver::CreateForWebContents( - web_contents, - adblock::SubscriptionServiceFactory::GetForBrowserContext( --- -2.25.1 diff --git a/build/patches/00109-Move-navigation-bar-to-bottom-fixup.patch b/build/patches/00109-Move-navigation-bar-to-bottom-fixup.patch deleted file mode 100644 index c0caf303..00000000 --- a/build/patches/00109-Move-navigation-bar-to-bottom-fixup.patch +++ /dev/null @@ -1,650 +0,0 @@ -From: Your Name -Date: Thu, 5 Jan 2023 08:14:13 +0000 -Subject: 109 Move navigation bar to bottom fixup - ---- - .../features/start_surface/StartSurfaceMediator.java | 2 +- - .../tasks/tab_management/TabGroupUiToolbarView.java | 2 +- - .../browser/tasks/tab_management/TabListCoordinator.java | 2 +- - .../browser/tasks/tab_management/TabListRecyclerView.java | 6 +++--- - .../browser/tasks/tab_management/TabSwitcherMediator.java | 8 ++++---- - .../settings/ChromeAccessibilitySettingsDelegate.java | 2 +- - .../org/chromium/chrome/browser/app/ChromeActivity.java | 2 +- - .../chrome/browser/compositor/CompositorViewHolder.java | 2 +- - .../browser/compositor/layouts/LayoutManagerChrome.java | 2 +- - .../browser/compositor/layouts/ToolbarSwipeLayout.java | 4 ++-- - .../overlays/strip/StripLayoutHelperManager.java | 2 +- - .../compositor/scene_layer/StaticTabSceneLayer.java | 2 +- - .../browser/compositor/scene_layer/TabListSceneLayer.java | 4 ++-- - .../compositor/scene_layer/TabStripSceneLayer.java | 2 +- - .../chrome/browser/findinpage/FindToolbarTablet.java | 2 +- - .../chrome/browser/fullscreen/BrowserControlsManager.java | 4 ++-- - .../browser/messages/MessageContainerCoordinator.java | 4 ++-- - .../src/org/chromium/chrome/browser/ntp/NewTabPage.java | 2 +- - .../org/chromium/chrome/browser/ntp/RecentTabsPage.java | 6 +++--- - .../chrome/browser/searchwidget/SearchActivity.java | 2 +- - .../status_indicator/StatusIndicatorCoordinator.java | 2 +- - .../status_indicator/StatusIndicatorSceneLayer.java | 2 +- - .../chromium/chrome/browser/toolbar/ToolbarManager.java | 4 ++-- - .../org/chromium/chrome/browser/ui/BottomContainer.java | 6 +++--- - .../browser/ui/system/StatusBarColorController.java | 2 +- - .../browser_controls/BrowserControlsMarginSupplier.java | 2 +- - .../org/chromium/chrome/browser/ui/appmenu/AppMenu.java | 8 ++++---- - .../chrome/browser/ui/appmenu/AppMenuHandlerImpl.java | 2 +- - .../chrome/browser/omnibox/UrlBarCoordinator.java | 2 +- - .../omnibox/suggestions/AutocompleteCoordinator.java | 2 +- - .../browser/omnibox/suggestions/AutocompleteMediator.java | 2 +- - .../omnibox/suggestions/OmniboxSuggestionsDropdown.java | 4 ++-- - .../browser/toolbar/LocationBarFocusScrimHandler.java | 2 +- - .../browser/toolbar/bottom/BottomControlsMediator.java | 2 +- - .../toolbar/bottom/ScrollingBottomViewSceneLayer.java | 2 +- - .../browser/toolbar/top/ToolbarControlContainer.java | 2 +- - .../chrome/browser/toolbar/top/TopToolbarSceneLayer.java | 2 +- - 37 files changed, 55 insertions(+), 55 deletions(-) - -diff --git a/chrome/android/features/start_surface/java/src/org/chromium/chrome/features/start_surface/StartSurfaceMediator.java b/chrome/android/features/start_surface/java/src/org/chromium/chrome/features/start_surface/StartSurfaceMediator.java ---- a/chrome/android/features/start_surface/java/src/org/chromium/chrome/features/start_surface/StartSurfaceMediator.java -+++ b/chrome/android/features/start_surface/java/src/org/chromium/chrome/features/start_surface/StartSurfaceMediator.java -@@ -1163,7 +1163,7 @@ class StartSurfaceMediator implements TabSwitcher.TabSwitcherViewObserver, View. - } - - private void setTopMargin(int topMargin) { -- if (CachedFeatureFlags.isEnabled(ChromeFeatureList.MOVE_TOP_TOOLBAR_TO_BOTTOM)) -+ if (ChromeFeatureList.sMoveTopToolbarToBottom.isEnabled()) - topMargin = 0; - mPropertyModel.set(TOP_MARGIN, topMargin); - } -diff --git a/chrome/android/features/tab_ui/java/src/org/chromium/chrome/browser/tasks/tab_management/TabGroupUiToolbarView.java b/chrome/android/features/tab_ui/java/src/org/chromium/chrome/browser/tasks/tab_management/TabGroupUiToolbarView.java ---- a/chrome/android/features/tab_ui/java/src/org/chromium/chrome/browser/tasks/tab_management/TabGroupUiToolbarView.java -+++ b/chrome/android/features/tab_ui/java/src/org/chromium/chrome/browser/tasks/tab_management/TabGroupUiToolbarView.java -@@ -177,7 +177,7 @@ public class TabGroupUiToolbarView extends FrameLayout { - } - - void setPrimaryColorAndApplyTint(int color) { -- if (!CachedFeatureFlags.isEnabled(ChromeFeatureList.MOVE_TOP_TOOLBAR_TO_BOTTOM)) -+ if (!ChromeFeatureList.sMoveTopToolbarToBottom.isEnabled()) - return; - - // change the background color of the bottom bar if the top toolbar is below -diff --git a/chrome/android/features/tab_ui/java/src/org/chromium/chrome/browser/tasks/tab_management/TabListCoordinator.java b/chrome/android/features/tab_ui/java/src/org/chromium/chrome/browser/tasks/tab_management/TabListCoordinator.java ---- a/chrome/android/features/tab_ui/java/src/org/chromium/chrome/browser/tasks/tab_management/TabListCoordinator.java -+++ b/chrome/android/features/tab_ui/java/src/org/chromium/chrome/browser/tasks/tab_management/TabListCoordinator.java -@@ -324,7 +324,7 @@ public class TabListCoordinator - if (mMode == TabListMode.GRID) { - GridLayoutManager gridLayoutManager = - new GridLayoutManager(context, GRID_LAYOUT_SPAN_COUNT_COMPACT); -- if (titleProvider != null && CachedFeatureFlags.isEnabled(ChromeFeatureList.MOVE_TOP_TOOLBAR_TO_BOTTOM)) { -+ if (titleProvider != null && ChromeFeatureList.sMoveTopToolbarToBottom.isEnabled()) { - gridLayoutManager = - new GridLayoutManagerDockBottom(context, GRID_LAYOUT_SPAN_COUNT_COMPACT); - ((GridLayoutManagerDockBottom)gridLayoutManager) -diff --git a/chrome/android/features/tab_ui/java/src/org/chromium/chrome/browser/tasks/tab_management/TabListRecyclerView.java b/chrome/android/features/tab_ui/java/src/org/chromium/chrome/browser/tasks/tab_management/TabListRecyclerView.java ---- a/chrome/android/features/tab_ui/java/src/org/chromium/chrome/browser/tasks/tab_management/TabListRecyclerView.java -+++ b/chrome/android/features/tab_ui/java/src/org/chromium/chrome/browser/tasks/tab_management/TabListRecyclerView.java -@@ -232,7 +232,7 @@ class TabListRecyclerView - } - - void setShadowVisibility(boolean shouldShowShadow) { -- if (CachedFeatureFlags.isEnabled(ChromeFeatureList.MOVE_TOP_TOOLBAR_TO_BOTTOM) -+ if (ChromeFeatureList.sMoveTopToolbarToBottom.isEnabled() - && mIsVisible) { - // always show shadow - shouldShowShadow = true; -@@ -250,7 +250,7 @@ class TabListRecyclerView - // Add shadow for grid tab switcher. - FrameLayout.LayoutParams params = new FrameLayout.LayoutParams( - LayoutParams.MATCH_PARENT, shadowHeight, -- (CachedFeatureFlags.isEnabled(ChromeFeatureList.MOVE_TOP_TOOLBAR_TO_BOTTOM) ? -+ (ChromeFeatureList.sMoveTopToolbarToBottom.isEnabled() ? - Gravity.BOTTOM : - Gravity.TOP)); - mShadowImageView.setLayoutParams(params); -@@ -279,7 +279,7 @@ class TabListRecyclerView - - void setShadowTopOffset(int shadowTopOffset) { - mShadowTopOffset = shadowTopOffset; -- if (CachedFeatureFlags.isEnabled(ChromeFeatureList.MOVE_TOP_TOOLBAR_TO_BOTTOM)) { -+ if (ChromeFeatureList.sMoveTopToolbarToBottom.isEnabled()) { - // invert the offset since Gravity is set to BOTTOM - mShadowTopOffset = -mShadowTopOffset; - } -diff --git a/chrome/android/features/tab_ui/java/src/org/chromium/chrome/browser/tasks/tab_management/TabSwitcherMediator.java b/chrome/android/features/tab_ui/java/src/org/chromium/chrome/browser/tasks/tab_management/TabSwitcherMediator.java ---- a/chrome/android/features/tab_ui/java/src/org/chromium/chrome/browser/tasks/tab_management/TabSwitcherMediator.java -+++ b/chrome/android/features/tab_ui/java/src/org/chromium/chrome/browser/tasks/tab_management/TabSwitcherMediator.java -@@ -474,7 +474,7 @@ class TabSwitcherMediator implements TabSwitcher.Controller, TabListRecyclerView - updateTopControlsProperties(); - mContainerViewModel.set( - BOTTOM_CONTROLS_HEIGHT, browserControlsStateProvider.getBottomControlsHeight()); -- if (CachedFeatureFlags.isEnabled(ChromeFeatureList.MOVE_TOP_TOOLBAR_TO_BOTTOM)) { -+ if (ChromeFeatureList.sMoveTopToolbarToBottom.isEnabled()) { - mContainerViewModel.set( - BOTTOM_CONTROLS_HEIGHT, mContainerViewModel.get(BOTTOM_CONTROLS_HEIGHT) + - mBrowserControlsStateProvider.getContentOffset()); -@@ -484,7 +484,7 @@ class TabSwitcherMediator implements TabSwitcher.Controller, TabListRecyclerView - if (mMode == TabListMode.GRID) { - mContainerViewModel.set(BOTTOM_PADDING, - (int) context.getResources().getDimension(R.dimen.tab_grid_bottom_padding)); -- if (CachedFeatureFlags.isEnabled(ChromeFeatureList.MOVE_TOP_TOOLBAR_TO_BOTTOM)) { -+ if (ChromeFeatureList.sMoveTopToolbarToBottom.isEnabled()) { - // adjust the bottom margin so as not to cover the top toolbar at the bottom - mContainerViewModel.set( - BOTTOM_PADDING, mContainerViewModel.get(BOTTOM_PADDING) + -@@ -617,7 +617,7 @@ class TabSwitcherMediator implements TabSwitcher.Controller, TabListRecyclerView - final int contentOffset = mBrowserControlsStateProvider.getContentOffset(); - - mContainerViewModel.set(TOP_MARGIN, contentOffset); -- if (CachedFeatureFlags.isEnabled(ChromeFeatureList.MOVE_TOP_TOOLBAR_TO_BOTTOM)) { -+ if (ChromeFeatureList.sMoveTopToolbarToBottom.isEnabled()) { - // move the view up since the toolbar is at the bottom - mContainerViewModel.set(TOP_MARGIN, 0); - } -@@ -777,7 +777,7 @@ class TabSwitcherMediator implements TabSwitcher.Controller, TabListRecyclerView - private void setInitialScrollIndexOffset() { - int offset = mMode == TabListMode.CAROUSEL ? INITIAL_SCROLL_INDEX_OFFSET_CAROUSEL - : INITIAL_SCROLL_INDEX_OFFSET_GTS; -- if (CachedFeatureFlags.isEnabled(ChromeFeatureList.MOVE_TOP_TOOLBAR_TO_BOTTOM)) { -+ if (ChromeFeatureList.sMoveTopToolbarToBottom.isEnabled()) { - offset = 0; - } - int initialPosition = Math.max( -diff --git a/chrome/android/java/src/org/chromium/chrome/browser/accessibility/settings/ChromeAccessibilitySettingsDelegate.java b/chrome/android/java/src/org/chromium/chrome/browser/accessibility/settings/ChromeAccessibilitySettingsDelegate.java ---- a/chrome/android/java/src/org/chromium/chrome/browser/accessibility/settings/ChromeAccessibilitySettingsDelegate.java -+++ b/chrome/android/java/src/org/chromium/chrome/browser/accessibility/settings/ChromeAccessibilitySettingsDelegate.java -@@ -104,7 +104,7 @@ public class ChromeAccessibilitySettingsDelegate implements AccessibilitySetting - private static class MoveTopToolbarToBottomDelegate implements BooleanPreferenceDelegate { - @Override - public boolean isEnabled() { -- return CachedFeatureFlags.isEnabled(ChromeFeatureList.MOVE_TOP_TOOLBAR_TO_BOTTOM); -+ return ChromeFeatureList.sMoveTopToolbarToBottom.isEnabled(); - } - - @Override -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 -@@ -763,7 +763,7 @@ public abstract class ChromeActivity - ImageView shadowImage = findViewById(R.id.toolbar_hairline); - if (shadowImage != null) { - // Invert the shadown if the top toolbar is at the bottom -- if (CachedFeatureFlags.isEnabled(ChromeFeatureList.MOVE_TOP_TOOLBAR_TO_BOTTOM)) { -+ if (ChromeFeatureList.sMoveTopToolbarToBottom.isEnabled()) { - ViewGroup.MarginLayoutParams marginParams = (ViewGroup.MarginLayoutParams)shadowImage.getLayoutParams(); - marginParams.setMargins(marginParams.leftMargin, 0, - marginParams.rightMargin, marginParams.bottomMargin); -diff --git a/chrome/android/java/src/org/chromium/chrome/browser/compositor/CompositorViewHolder.java b/chrome/android/java/src/org/chromium/chrome/browser/compositor/CompositorViewHolder.java ---- a/chrome/android/java/src/org/chromium/chrome/browser/compositor/CompositorViewHolder.java -+++ b/chrome/android/java/src/org/chromium/chrome/browser/compositor/CompositorViewHolder.java -@@ -323,7 +323,7 @@ public class CompositorViewHolder extends FrameLayout - WebContents webContents = mTabVisible.getWebContents(); - if (webContents == null) return; - EventForwarder forwarder = webContents.getEventForwarder(); -- if (CachedFeatureFlags.isEnabled(ChromeFeatureList.MOVE_TOP_TOOLBAR_TO_BOTTOM)) { -+ if (ChromeFeatureList.sMoveTopToolbarToBottom.isEnabled()) { - // no need to adjust the touch offsets, since the content view is never moved - top = 0; - } -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 -@@ -259,7 +259,7 @@ public class LayoutManagerChrome - @Override - public SwipeHandler createToolbarSwipeHandler(boolean supportSwipeDown) { - boolean move_top_toolbar = -- CachedFeatureFlags.isEnabled(ChromeFeatureList.MOVE_TOP_TOOLBAR_TO_BOTTOM); -+ ChromeFeatureList.sMoveTopToolbarToBottom.isEnabled(); - return new ToolbarSwipeHandler(supportSwipeDown && !move_top_toolbar, - supportSwipeDown && move_top_toolbar); - } -diff --git a/chrome/android/java/src/org/chromium/chrome/browser/compositor/layouts/ToolbarSwipeLayout.java b/chrome/android/java/src/org/chromium/chrome/browser/compositor/layouts/ToolbarSwipeLayout.java ---- a/chrome/android/java/src/org/chromium/chrome/browser/compositor/layouts/ToolbarSwipeLayout.java -+++ b/chrome/android/java/src/org/chromium/chrome/browser/compositor/layouts/ToolbarSwipeLayout.java -@@ -411,7 +411,7 @@ public class ToolbarSwipeLayout extends Layout { - mLeftToolbarOverlay.setXOffset(leftX * dpToPx); - } - mLeftTab.setX(leftX); -- if (CachedFeatureFlags.isEnabled(ChromeFeatureList.MOVE_TOP_TOOLBAR_TO_BOTTOM)) { -+ if (ChromeFeatureList.sMoveTopToolbarToBottom.isEnabled()) { - mLeftTab.setY(0); - } else { - mLeftTab.setY(mBrowserControlsStateProvider.getContentOffset() / dpToPx); -@@ -428,7 +428,7 @@ public class ToolbarSwipeLayout extends Layout { - mRightToolbarOverlay.setXOffset(rightX * dpToPx); - } - mRightTab.setX(rightX); -- if (CachedFeatureFlags.isEnabled(ChromeFeatureList.MOVE_TOP_TOOLBAR_TO_BOTTOM)) { -+ if (ChromeFeatureList.sMoveTopToolbarToBottom.isEnabled()) { - mRightTab.setY(0); - } else { - mRightTab.setY(mBrowserControlsStateProvider.getContentOffset() / dpToPx); -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 -@@ -420,7 +420,7 @@ public class StripLayoutHelperManager implements SceneOverlay, PauseResumeWithNa - mWidth, mHeight, orientationChanged, LayoutManagerImpl.time()); - - float top = 0; -- if (CachedFeatureFlags.isEnabled(ChromeFeatureList.MOVE_TOP_TOOLBAR_TO_BOTTOM) && -+ if (ChromeFeatureList.sMoveTopToolbarToBottom.isEnabled() && - mBrowserControlsManagerSupplier.get() != null) { - // move the rectangle to grab the touch events as the tab list (in tablet mode) - // is down and is following the toolbar offset as it moves. -diff --git a/chrome/android/java/src/org/chromium/chrome/browser/compositor/scene_layer/StaticTabSceneLayer.java b/chrome/android/java/src/org/chromium/chrome/browser/compositor/scene_layer/StaticTabSceneLayer.java ---- a/chrome/android/java/src/org/chromium/chrome/browser/compositor/scene_layer/StaticTabSceneLayer.java -+++ b/chrome/android/java/src/org/chromium/chrome/browser/compositor/scene_layer/StaticTabSceneLayer.java -@@ -48,7 +48,7 @@ public class StaticTabSceneLayer extends SceneLayer { - float x = model.get(LayoutTab.RENDER_X) * LayoutTab.sDpToPx; - float y = model.get(LayoutTab.CONTENT_OFFSET) - + model.get(LayoutTab.RENDER_Y) * LayoutTab.sDpToPx; -- if (CachedFeatureFlags.isEnabled(ChromeFeatureList.MOVE_TOP_TOOLBAR_TO_BOTTOM)) { -+ if (ChromeFeatureList.sMoveTopToolbarToBottom.isEnabled()) { - // the page content window never moves, it is fixed at the top - y = 0; - } -diff --git a/chrome/android/java/src/org/chromium/chrome/browser/compositor/scene_layer/TabListSceneLayer.java b/chrome/android/java/src/org/chromium/chrome/browser/compositor/scene_layer/TabListSceneLayer.java ---- a/chrome/android/java/src/org/chromium/chrome/browser/compositor/scene_layer/TabListSceneLayer.java -+++ b/chrome/android/java/src/org/chromium/chrome/browser/compositor/scene_layer/TabListSceneLayer.java -@@ -86,7 +86,7 @@ public class TabListSceneLayer extends SceneLayer { - - TabListSceneLayerJni.get().beginBuildingFrame(mNativePtr, TabListSceneLayer.this); - -- if (CachedFeatureFlags.isEnabled(ChromeFeatureList.MOVE_TOP_TOOLBAR_TO_BOTTOM)) { -+ if (ChromeFeatureList.sMoveTopToolbarToBottom.isEnabled()) { - // the tabs list content window is fixed at the top, where the top toolbar used to be - viewport.top = 0; - backgroundTopOffset = 0; -@@ -126,7 +126,7 @@ public class TabListSceneLayer extends SceneLayer { - contentOffset = browserControls.getContentOffset(); - } - -- if (CachedFeatureFlags.isEnabled(ChromeFeatureList.MOVE_TOP_TOOLBAR_TO_BOTTOM)) { -+ if (ChromeFeatureList.sMoveTopToolbarToBottom.isEnabled()) { - toolbarYOffset = 0; - contentOffset = 0; - } -diff --git a/chrome/android/java/src/org/chromium/chrome/browser/compositor/scene_layer/TabStripSceneLayer.java b/chrome/android/java/src/org/chromium/chrome/browser/compositor/scene_layer/TabStripSceneLayer.java ---- a/chrome/android/java/src/org/chromium/chrome/browser/compositor/scene_layer/TabStripSceneLayer.java -+++ b/chrome/android/java/src/org/chromium/chrome/browser/compositor/scene_layer/TabStripSceneLayer.java -@@ -84,7 +84,7 @@ public class TabStripSceneLayer extends SceneOverlayLayer { - if (mNativePtr == 0) return; - - boolean visible = yOffset > -layoutHelper.getHeight(); -- if (CachedFeatureFlags.isEnabled(ChromeFeatureList.MOVE_TOP_TOOLBAR_TO_BOTTOM)) { -+ if (ChromeFeatureList.sMoveTopToolbarToBottom.isEnabled()) { - // the list of open tabs (in tablet mode) is moved down, above the top - // toolbar which is also below. - // values are in pixel. -diff --git a/chrome/android/java/src/org/chromium/chrome/browser/findinpage/FindToolbarTablet.java b/chrome/android/java/src/org/chromium/chrome/browser/findinpage/FindToolbarTablet.java ---- a/chrome/android/java/src/org/chromium/chrome/browser/findinpage/FindToolbarTablet.java -+++ b/chrome/android/java/src/org/chromium/chrome/browser/findinpage/FindToolbarTablet.java -@@ -169,7 +169,7 @@ public class FindToolbarTablet extends FindToolbar { - - if (show && getVisibility() != View.VISIBLE && mCurrentAnimation != mAnimationEnter) { - View anchorView = getRootView().findViewById(R.id.toolbar); -- if (!CachedFeatureFlags.isEnabled(ChromeFeatureList.MOVE_TOP_TOOLBAR_TO_BOTTOM)) { -+ if (!ChromeFeatureList.sMoveTopToolbarToBottom.isEnabled()) { - FrameLayout.LayoutParams lp = (FrameLayout.LayoutParams) getLayoutParams(); - lp.topMargin = anchorView.getBottom() - mYInsetPx; - setLayoutParams(lp); -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 -@@ -400,7 +400,7 @@ public class BrowserControlsManager - - @Override - public int getTopControlsHeightRealOffset() { -- if (CachedFeatureFlags.isEnabled(ChromeFeatureList.MOVE_TOP_TOOLBAR_TO_BOTTOM)) -+ if (ChromeFeatureList.sMoveTopToolbarToBottom.isEnabled()) - return 0; - else - return mTopControlContainerHeight; -@@ -472,7 +472,7 @@ public class BrowserControlsManager - - @Override - public float getTopVisibleContentOffset() { -- if (CachedFeatureFlags.isEnabled(ChromeFeatureList.MOVE_TOP_TOOLBAR_TO_BOTTOM)) -+ if (ChromeFeatureList.sMoveTopToolbarToBottom.isEnabled()) - return 0; - return getTopControlsHeight() + getTopControlOffset(); - } -diff --git a/chrome/android/java/src/org/chromium/chrome/browser/messages/MessageContainerCoordinator.java b/chrome/android/java/src/org/chromium/chrome/browser/messages/MessageContainerCoordinator.java ---- a/chrome/android/java/src/org/chromium/chrome/browser/messages/MessageContainerCoordinator.java -+++ b/chrome/android/java/src/org/chromium/chrome/browser/messages/MessageContainerCoordinator.java -@@ -64,7 +64,7 @@ public class MessageContainerCoordinator implements BrowserControlsStateProvider - } - CoordinatorLayout.LayoutParams params = - (CoordinatorLayout.LayoutParams) mContainer.getLayoutParams(); -- if (CachedFeatureFlags.isEnabled(ChromeFeatureList.MOVE_TOP_TOOLBAR_TO_BOTTOM)) { -+ if (ChromeFeatureList.sMoveTopToolbarToBottom.isEnabled()) { - params.gravity = Gravity.START | Gravity.BOTTOM; - params.bottomMargin = getContainerTopOffset(); - } else { -@@ -129,7 +129,7 @@ public class MessageContainerCoordinator implements BrowserControlsStateProvider - - /** @return Offset of the message container from the top of the screen. */ - private int getContainerTopOffset() { -- if (CachedFeatureFlags.isEnabled(ChromeFeatureList.MOVE_TOP_TOOLBAR_TO_BOTTOM)) { -+ if (ChromeFeatureList.sMoveTopToolbarToBottom.isEnabled()) { - return mControlsManager.getContentOffset() - + (mControlsManager.getBottomControlsHeight() - mControlsManager.getBottomControlOffset()) - + mContainer.getMessageShadowTopMargin(); -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 -@@ -565,7 +565,7 @@ public class NewTabPage implements NativePage, InvalidationAwareThumbnailProvide - - int bottomMargin = mBrowserControlsStateProvider.getBottomControlsHeight() - - mBrowserControlsStateProvider.getBottomControlOffset(); -- if (CachedFeatureFlags.isEnabled(ChromeFeatureList.MOVE_TOP_TOOLBAR_TO_BOTTOM)) { -+ if (ChromeFeatureList.sMoveTopToolbarToBottom.isEnabled()) { - // move the margin of the new tab page up if the top toolbar is at the bottom - bottomMargin += mBrowserControlsStateProvider.getTopControlsHeight(); - topMargin = -mBrowserControlsStateProvider.getTopControlsHeight(); -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 -@@ -91,7 +91,7 @@ public class RecentTabsPage - mView.addOnAttachStateChangeListener(this); - - if (!DeviceFormFactor.isNonMultiDisplayContextOnTablet(mActivity) || -- CachedFeatureFlags.isEnabled(ChromeFeatureList.MOVE_TOP_TOOLBAR_TO_BOTTOM)) { -+ ChromeFeatureList.sMoveTopToolbarToBottom.isEnabled()) { - mBrowserControlsStateProvider = browserControlsStateProvider; - mBrowserControlsStateProvider.addObserver(this); - onBottomControlsHeightChanged(mBrowserControlsStateProvider.getBottomControlsHeight(), -@@ -289,7 +289,7 @@ 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. -- if (CachedFeatureFlags.isEnabled(ChromeFeatureList.MOVE_TOP_TOOLBAR_TO_BOTTOM)) { -+ if (ChromeFeatureList.sMoveTopToolbarToBottom.isEnabled()) { - topMargin = 0; - recentTabsRoot.setTranslationY(0); - } else { -@@ -297,7 +297,7 @@ public class RecentTabsPage - } - - int bottomMargin = mBrowserControlsStateProvider.getBottomControlsHeight(); -- if (CachedFeatureFlags.isEnabled(ChromeFeatureList.MOVE_TOP_TOOLBAR_TO_BOTTOM)) { -+ if (ChromeFeatureList.sMoveTopToolbarToBottom.isEnabled()) { - bottomMargin += mBrowserControlsStateProvider.getTopControlsHeight(); - } - if (topMargin != layoutParams.topMargin || bottomMargin != layoutParams.bottomMargin) { -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 -@@ -195,7 +195,7 @@ public class SearchActivity extends AsyncInitializationActivity - mSearchBox = (SearchActivityLocationBarLayout) mContentView.findViewById( - R.id.search_location_bar); - mAnchorView = mContentView.findViewById(R.id.toolbar); -- if (CachedFeatureFlags.isEnabled(ChromeFeatureList.MOVE_TOP_TOOLBAR_TO_BOTTOM)) { -+ if (ChromeFeatureList.sMoveTopToolbarToBottom.isEnabled()) { - CoordinatorLayout.LayoutParams layoutParams = (CoordinatorLayout.LayoutParams) - mAnchorView.getLayoutParams(); - layoutParams.gravity = Gravity.START | Gravity.BOTTOM; -diff --git a/chrome/android/java/src/org/chromium/chrome/browser/status_indicator/StatusIndicatorCoordinator.java b/chrome/android/java/src/org/chromium/chrome/browser/status_indicator/StatusIndicatorCoordinator.java ---- a/chrome/android/java/src/org/chromium/chrome/browser/status_indicator/StatusIndicatorCoordinator.java -+++ b/chrome/android/java/src/org/chromium/chrome/browser/status_indicator/StatusIndicatorCoordinator.java -@@ -179,7 +179,7 @@ public class StatusIndicatorCoordinator { - private void initialize() { - final ViewStub stub = mActivity.findViewById(R.id.status_indicator_stub); - final ViewResourceFrameLayout root = (ViewResourceFrameLayout) stub.inflate(); -- if (CachedFeatureFlags.isEnabled(ChromeFeatureList.MOVE_TOP_TOOLBAR_TO_BOTTOM)) { -+ if (ChromeFeatureList.sMoveTopToolbarToBottom.isEnabled()) { - // status messages (such as the offline indicator) are docked at the bottom - CoordinatorLayout.LayoutParams layoutParams = (CoordinatorLayout.LayoutParams)root.getLayoutParams(); - layoutParams.gravity = Gravity.START | Gravity.BOTTOM; -diff --git a/chrome/android/java/src/org/chromium/chrome/browser/status_indicator/StatusIndicatorSceneLayer.java b/chrome/android/java/src/org/chromium/chrome/browser/status_indicator/StatusIndicatorSceneLayer.java ---- a/chrome/android/java/src/org/chromium/chrome/browser/status_indicator/StatusIndicatorSceneLayer.java -+++ b/chrome/android/java/src/org/chromium/chrome/browser/status_indicator/StatusIndicatorSceneLayer.java -@@ -80,7 +80,7 @@ class StatusIndicatorSceneLayer extends SceneOverlayLayer implements SceneOverla - public SceneOverlayLayer getUpdatedSceneOverlayTree( - RectF viewport, RectF visibleViewport, ResourceManager resourceManager, float yOffset) { - int offset = mBrowserControlsStateProvider.getTopControlsMinHeightOffset(); -- if (CachedFeatureFlags.isEnabled(ChromeFeatureList.MOVE_TOP_TOOLBAR_TO_BOTTOM)) { -+ if (ChromeFeatureList.sMoveTopToolbarToBottom.isEnabled()) { - offset = (int)viewport.bottom - offset; - } - StatusIndicatorSceneLayerJni.get().updateStatusIndicatorLayer( -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 -@@ -1314,7 +1314,7 @@ public class ToolbarManager implements UrlFocusChangeListener, ThemeColorObserve - - private void MoveBottomBarOverTopBar() { - if (bottomRoot != null && -- CachedFeatureFlags.isEnabled(ChromeFeatureList.MOVE_TOP_TOOLBAR_TO_BOTTOM)) { -+ ChromeFeatureList.sMoveTopToolbarToBottom.isEnabled()) { - // move up the container view of the ui - // below there is the toolbar - bottomRoot.setTranslationY(-mBrowserControlsSizer.getTopControlsHeight()); -@@ -2128,7 +2128,7 @@ public class ToolbarManager implements UrlFocusChangeListener, ThemeColorObserve - private void setControlContainerTopMargin(int margin) { - final ViewGroup.MarginLayoutParams layoutParams = - ((ViewGroup.MarginLayoutParams) mControlContainer.getLayoutParams()); -- if (CachedFeatureFlags.isEnabled(ChromeFeatureList.MOVE_TOP_TOOLBAR_TO_BOTTOM)) { -+ if (ChromeFeatureList.sMoveTopToolbarToBottom.isEnabled()) { - if (layoutParams.bottomMargin == margin) { - return; - } -diff --git a/chrome/android/java/src/org/chromium/chrome/browser/ui/BottomContainer.java b/chrome/android/java/src/org/chromium/chrome/browser/ui/BottomContainer.java ---- a/chrome/android/java/src/org/chromium/chrome/browser/ui/BottomContainer.java -+++ b/chrome/android/java/src/org/chromium/chrome/browser/ui/BottomContainer.java -@@ -66,13 +66,13 @@ public class BottomContainer - - @Override - public void onTopControlsHeightChanged(int topControlsHeight, int topControlsMinHeight) { -- if (CachedFeatureFlags.isEnabled(ChromeFeatureList.MOVE_TOP_TOOLBAR_TO_BOTTOM)) -+ if (ChromeFeatureList.sMoveTopToolbarToBottom.isEnabled()) - setTranslationY(mBaseYOffset); - } - - @Override - public void onAndroidVisibilityChanged(int visibility) { -- if (CachedFeatureFlags.isEnabled(ChromeFeatureList.MOVE_TOP_TOOLBAR_TO_BOTTOM)) -+ if (ChromeFeatureList.sMoveTopToolbarToBottom.isEnabled()) - setTranslationY(mBaseYOffset); - } - -@@ -80,7 +80,7 @@ public class BottomContainer - public void setTranslationY(float y) { - mBaseYOffset = y; - -- if (CachedFeatureFlags.isEnabled(ChromeFeatureList.MOVE_TOP_TOOLBAR_TO_BOTTOM)) { -+ if (ChromeFeatureList.sMoveTopToolbarToBottom.isEnabled()) { - // the snackbar container is moved up because there is the top toolbar at the bottom - mBaseYOffset = -(mBrowserControlsStateProvider.getTopControlsHeight() - + mBrowserControlsStateProvider.getTopControlOffset()); -diff --git a/chrome/android/java/src/org/chromium/chrome/browser/ui/system/StatusBarColorController.java b/chrome/android/java/src/org/chromium/chrome/browser/ui/system/StatusBarColorController.java ---- a/chrome/android/java/src/org/chromium/chrome/browser/ui/system/StatusBarColorController.java -+++ b/chrome/android/java/src/org/chromium/chrome/browser/ui/system/StatusBarColorController.java -@@ -433,7 +433,7 @@ public class StatusBarColorController - boolean needsDarkStatusBarIcons = !ColorUtils.shouldUseLightForegroundOnBackground(color); - ApiCompatibilityUtils.setStatusBarIconColor(root, needsDarkStatusBarIcons); - ApiCompatibilityUtils.setStatusBarColor(window, color); -- if (CachedFeatureFlags.isEnabled(ChromeFeatureList.MOVE_TOP_TOOLBAR_TO_BOTTOM) && -+ if (ChromeFeatureList.sMoveTopToolbarToBottom.isEnabled() && - Build.VERSION.SDK_INT >= Build.VERSION_CODES.M) { - UiUtils.setNavigationBarIconColor(mWindow.getDecorView().getRootView(), - needsDarkStatusBarIcons); -diff --git a/chrome/browser/browser_controls/android/java/src/org/chromium/chrome/browser/browser_controls/BrowserControlsMarginSupplier.java b/chrome/browser/browser_controls/android/java/src/org/chromium/chrome/browser/browser_controls/BrowserControlsMarginSupplier.java ---- a/chrome/browser/browser_controls/android/java/src/org/chromium/chrome/browser/browser_controls/BrowserControlsMarginSupplier.java -+++ b/chrome/browser/browser_controls/android/java/src/org/chromium/chrome/browser/browser_controls/BrowserControlsMarginSupplier.java -@@ -54,7 +54,7 @@ public class BrowserControlsMarginSupplier extends ObservableSupplierImpl - + mBrowserControlsStateProvider.getTopControlOffset(); - int bottomMargin = mBrowserControlsStateProvider.getBottomControlsHeight() - - mBrowserControlsStateProvider.getBottomControlOffset(); -- if (CachedFeatureFlags.isEnabled(ChromeFeatureList.MOVE_TOP_TOOLBAR_TO_BOTTOM)) { -+ if (ChromeFeatureList.sMoveTopToolbarToBottom.isEnabled()) { - bottomMargin += topMargin; - topMargin = 0; - } -diff --git a/chrome/browser/ui/android/appmenu/internal/java/src/org/chromium/chrome/browser/ui/appmenu/AppMenu.java b/chrome/browser/ui/android/appmenu/internal/java/src/org/chromium/chrome/browser/ui/appmenu/AppMenu.java ---- a/chrome/browser/ui/android/appmenu/internal/java/src/org/chromium/chrome/browser/ui/appmenu/AppMenu.java -+++ b/chrome/browser/ui/android/appmenu/internal/java/src/org/chromium/chrome/browser/ui/appmenu/AppMenu.java -@@ -260,7 +260,7 @@ class AppMenu implements OnItemClickListener, OnKeyListener, AppMenuClickHandler - } - - mListView = (ListView) contentView.findViewById(R.id.app_menu_list); -- if (CachedFeatureFlags.isEnabled(ChromeFeatureList.MOVE_TOP_TOOLBAR_TO_BOTTOM)) { -+ if (ChromeFeatureList.sMoveTopToolbarToBottom.isEnabled()) { - // always scroll to the bottom to show new items - mListView.setTranscriptMode(ListView.TRANSCRIPT_MODE_ALWAYS_SCROLL); - // fill content starting from the bottom of the view -@@ -304,7 +304,7 @@ class AppMenu implements OnItemClickListener, OnKeyListener, AppMenuClickHandler - if (popupHeight + popupPosition[1] > visibleDisplayFrame.bottom) { - mPopup.setHeight(visibleDisplayFrame.height()); - } -- if (CachedFeatureFlags.isEnabled(ChromeFeatureList.MOVE_TOP_TOOLBAR_TO_BOTTOM)) { -+ if (ChromeFeatureList.sMoveTopToolbarToBottom.isEnabled()) { - // due to some unknown behaviour, the popup must be resized to - // allow selection without leaving touch - mPopup.setHeight(popupHeight-1); -@@ -356,7 +356,7 @@ class AppMenu implements OnItemClickListener, OnKeyListener, AppMenuClickHandler - int anchorViewX = tempLocation[0]; - int anchorViewY = tempLocation[1]; - -- if (CachedFeatureFlags.isEnabled(ChromeFeatureList.MOVE_TOP_TOOLBAR_TO_BOTTOM)) { -+ if (ChromeFeatureList.sMoveTopToolbarToBottom.isEnabled()) { - // moves the view offset up by the height of the popup - anchorViewY -= popupHeight; - // fix it if it goes offscreen -@@ -554,7 +554,7 @@ class AppMenu implements OnItemClickListener, OnKeyListener, AppMenuClickHandler - } - int availableScreenSpace = Math.max( - anchorViewY, appDimensions.height() - anchorViewY - anchorViewImpactHeight); -- if (CachedFeatureFlags.isEnabled(ChromeFeatureList.MOVE_TOP_TOOLBAR_TO_BOTTOM)) { -+ if (ChromeFeatureList.sMoveTopToolbarToBottom.isEnabled()) { - // use all available space - availableScreenSpace = appDimensions.height() - anchorViewImpactHeight; - if (Build.VERSION.SDK_INT == Build.VERSION_CODES.N) { -diff --git a/chrome/browser/ui/android/appmenu/internal/java/src/org/chromium/chrome/browser/ui/appmenu/AppMenuHandlerImpl.java b/chrome/browser/ui/android/appmenu/internal/java/src/org/chromium/chrome/browser/ui/appmenu/AppMenuHandlerImpl.java ---- a/chrome/browser/ui/android/appmenu/internal/java/src/org/chromium/chrome/browser/ui/appmenu/AppMenuHandlerImpl.java -+++ b/chrome/browser/ui/android/appmenu/internal/java/src/org/chromium/chrome/browser/ui/appmenu/AppMenuHandlerImpl.java -@@ -184,7 +184,7 @@ class AppMenuHandlerImpl - }), - this); - -- if (CachedFeatureFlags.isEnabled(ChromeFeatureList.MOVE_TOP_TOOLBAR_TO_BOTTOM)) { -+ if (ChromeFeatureList.sMoveTopToolbarToBottom.isEnabled()) { - // reverses the order of items in the menu - ModelList modelListReversed = new ModelList(); - for (int i = 0; i < modelList.size(); i++) { -diff --git a/chrome/browser/ui/android/omnibox/java/src/org/chromium/chrome/browser/omnibox/UrlBarCoordinator.java b/chrome/browser/ui/android/omnibox/java/src/org/chromium/chrome/browser/omnibox/UrlBarCoordinator.java ---- a/chrome/browser/ui/android/omnibox/java/src/org/chromium/chrome/browser/omnibox/UrlBarCoordinator.java -+++ b/chrome/browser/ui/android/omnibox/java/src/org/chromium/chrome/browser/omnibox/UrlBarCoordinator.java -@@ -239,7 +239,7 @@ public class UrlBarCoordinator implements UrlBarEditingTextStateProvider, UrlFoc - // to show or hide keyboard anyway. This may happen when we schedule keyboard hide, and - // receive a second request to hide the keyboard instantly. - if (showKeyboard) { -- if (CachedFeatureFlags.isEnabled(ChromeFeatureList.MOVE_TOP_TOOLBAR_TO_BOTTOM)) { -+ if (ChromeFeatureList.sMoveTopToolbarToBottom.isEnabled()) { - // probably due to an android bug, fix the size rather than pan the view. - // with the pan the bar may not always follow the focus if not at the first input by the user - setSoftInputMode(WindowManager.LayoutParams.SOFT_INPUT_ADJUST_RESIZE, /* delay */ false); -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 -@@ -236,7 +236,7 @@ public class AutocompleteCoordinator implements UrlFocusChangeListener, UrlTextC - ViewGroup container = (ViewGroup) ((ViewStub) mParent.getRootView().findViewById( - R.id.omnibox_results_container_stub)) - .inflate(); -- if (CachedFeatureFlags.isEnabled(ChromeFeatureList.MOVE_TOP_TOOLBAR_TO_BOTTOM)) { -+ if (ChromeFeatureList.sMoveTopToolbarToBottom.isEnabled()) { - // make margins works - dropdown.getViewGroup().setClipToPadding(true); - container.bringToFront(); -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 -@@ -1017,7 +1017,7 @@ class AutocompleteMediator implements OnSuggestionsReceivedListener, - @Override - public void onSuggestionDropdownScroll() { - mSuggestionsListScrolled = true; -- if (!CachedFeatureFlags.isEnabled(ChromeFeatureList.MOVE_TOP_TOOLBAR_TO_BOTTOM)) { -+ if (!ChromeFeatureList.sMoveTopToolbarToBottom.isEnabled()) { - mDelegate.setKeyboardVisibility(false, false); - } - } -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 -@@ -265,7 +265,7 @@ public class OmniboxSuggestionsDropdown extends RecyclerView { - final Resources resources = context.getResources(); - int paddingBottom = - resources.getDimensionPixelOffset(R.dimen.omnibox_suggestion_list_padding_bottom); -- if (CachedFeatureFlags.isEnabled(ChromeFeatureList.MOVE_TOP_TOOLBAR_TO_BOTTOM)) { -+ if (ChromeFeatureList.sMoveTopToolbarToBottom.isEnabled()) { - // reverse the layout so that the items are at the bottom (in reverse order) - // and anchored to the bottom edge - mLayoutScrollListener.setReverseLayout(true); -@@ -496,7 +496,7 @@ public class OmniboxSuggestionsDropdown extends RecyclerView { - } - - private int calculateAnchorBottomRelativeToContent() { -- if (CachedFeatureFlags.isEnabled(ChromeFeatureList.MOVE_TOP_TOOLBAR_TO_BOTTOM)) -+ if (ChromeFeatureList.sMoveTopToolbarToBottom.isEnabled()) - return 0; - View contentView = - mEmbedder.getAnchorView().getRootView().findViewById(android.R.id.content); -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 -@@ -58,7 +58,7 @@ public class LocationBarFocusScrimHandler implements UrlFocusChangeListener { - - Resources resources = context.getResources(); - int topMargin = resources.getDimensionPixelSize(R.dimen.tab_strip_height); -- if (CachedFeatureFlags.isEnabled(ChromeFeatureList.MOVE_TOP_TOOLBAR_TO_BOTTOM)) { -+ if (ChromeFeatureList.sMoveTopToolbarToBottom.isEnabled()) { - // since the top bar is at the bottom, we need to cover the whole page - topMargin = 0; - } -diff --git a/chrome/browser/ui/android/toolbar/java/src/org/chromium/chrome/browser/toolbar/bottom/BottomControlsMediator.java b/chrome/browser/ui/android/toolbar/java/src/org/chromium/chrome/browser/toolbar/bottom/BottomControlsMediator.java ---- a/chrome/browser/ui/android/toolbar/java/src/org/chromium/chrome/browser/toolbar/bottom/BottomControlsMediator.java -+++ b/chrome/browser/ui/android/toolbar/java/src/org/chromium/chrome/browser/toolbar/bottom/BottomControlsMediator.java -@@ -105,7 +105,7 @@ class BottomControlsMediator implements BrowserControlsStateProvider.Observer, - void setBottomControlsVisible(boolean visible) { - if (visible == true - && mIsBottomControlsVisible == false -- && CachedFeatureFlags.isEnabled(ChromeFeatureList.MOVE_TOP_TOOLBAR_TO_BOTTOM)) { -+ && ChromeFeatureList.sMoveTopToolbarToBottom.isEnabled()) { - // always show the toolbar if the bottom controls are visible, so as not to leave the hole below. - mBrowserControlsSizer.getBrowserVisibilityDelegate().showControlsTransient(); - } -diff --git a/chrome/browser/ui/android/toolbar/java/src/org/chromium/chrome/browser/toolbar/bottom/ScrollingBottomViewSceneLayer.java b/chrome/browser/ui/android/toolbar/java/src/org/chromium/chrome/browser/toolbar/bottom/ScrollingBottomViewSceneLayer.java ---- a/chrome/browser/ui/android/toolbar/java/src/org/chromium/chrome/browser/toolbar/bottom/ScrollingBottomViewSceneLayer.java -+++ b/chrome/browser/ui/android/toolbar/java/src/org/chromium/chrome/browser/toolbar/bottom/ScrollingBottomViewSceneLayer.java -@@ -127,7 +127,7 @@ public class ScrollingBottomViewSceneLayer extends SceneOverlayLayer implements - boolean isShadowVisible = mBottomView.getVisibility() != View.VISIBLE; - - float offsetPy = viewport.height() + mCurrentYOffsetPx; -- if (CachedFeatureFlags.isEnabled(ChromeFeatureList.MOVE_TOP_TOOLBAR_TO_BOTTOM)) { -+ if (ChromeFeatureList.sMoveTopToolbarToBottom.isEnabled()) { - // fix the offset of the fake bottom controls, used only for animations - offsetPy -= (mBottomView.getHeight() - mCurrentYOffsetPx + mTopControlsMinHeightOffset); - } -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 -@@ -110,7 +110,7 @@ public class ToolbarControlContainer extends OptimizedFrameLayout implements Con - @Override - public void initWithToolbar(int toolbarLayoutId) { - try (TraceEvent te = TraceEvent.scoped("ToolbarControlContainer.initWithToolbar")) { -- if (CachedFeatureFlags.isEnabled(ChromeFeatureList.MOVE_TOP_TOOLBAR_TO_BOTTOM)) { -+ if (ChromeFeatureList.sMoveTopToolbarToBottom.isEnabled()) { - // the top toolbar is docked at the bottom - CoordinatorLayout.LayoutParams layoutParams = (CoordinatorLayout.LayoutParams)getLayoutParams(); - layoutParams.gravity = Gravity.START | Gravity.BOTTOM; -diff --git a/chrome/browser/ui/android/toolbar/java/src/org/chromium/chrome/browser/toolbar/top/TopToolbarSceneLayer.java b/chrome/browser/ui/android/toolbar/java/src/org/chromium/chrome/browser/toolbar/top/TopToolbarSceneLayer.java ---- a/chrome/browser/ui/android/toolbar/java/src/org/chromium/chrome/browser/toolbar/top/TopToolbarSceneLayer.java -+++ b/chrome/browser/ui/android/toolbar/java/src/org/chromium/chrome/browser/toolbar/top/TopToolbarSceneLayer.java -@@ -41,7 +41,7 @@ class TopToolbarSceneLayer extends SceneOverlayLayer { - private void pushProperties(PropertyModel model) { - if (mResourceManagerSupplier.get() == null) return; - float offsetY = model.get(TopToolbarOverlayProperties.Y_OFFSET); -- if (CachedFeatureFlags.isEnabled(ChromeFeatureList.MOVE_TOP_TOOLBAR_TO_BOTTOM)) { -+ if (ChromeFeatureList.sMoveTopToolbarToBottom.isEnabled()) { - // fix the offset of the fake top controls, used only for animations - offsetY = model.get(TopToolbarOverlayProperties.VIEWPORT_HEIGHT) - - model.get(TopToolbarOverlayProperties.TOOLBAR_HEIGHT) - --- -2.25.1 diff --git a/build/patches/00110-Add-a-proxy-configuration-page.patch b/build/patches/00110-Add-a-proxy-configuration-page.patch deleted file mode 100644 index 99d58766..00000000 --- a/build/patches/00110-Add-a-proxy-configuration-page.patch +++ /dev/null @@ -1,34 +0,0 @@ -From: Your Name -Date: Wed, 8 Feb 2023 13:18:22 +0000 -Subject: 110 Add a proxy configuration page - ---- - chrome/browser/resources/proxy_config.html | 1 - - chrome/browser/resources/proxy_config.js | 2 +- - 2 files changed, 1 insertion(+), 2 deletions(-) - -diff --git a/chrome/browser/resources/proxy_config.html b/chrome/browser/resources/proxy_config.html ---- a/chrome/browser/resources/proxy_config.html -+++ b/chrome/browser/resources/proxy_config.html -@@ -11,7 +11,6 @@ - - - -- - - - -diff --git a/chrome/browser/resources/proxy_config.js b/chrome/browser/resources/proxy_config.js ---- a/chrome/browser/resources/proxy_config.js -+++ b/chrome/browser/resources/proxy_config.js -@@ -15,7 +15,7 @@ - along with Bromite. If not, see . - */ - --import {$} from 'chrome://resources/js/util.js'; -+import {$} from 'chrome://resources/js/util_ts.js'; - - /** - * Main entry point called once the page has loaded. --- -2.25.1 diff --git a/build/patches/00110-Disable-conversion-measurement-api--add-fixup-.patch b/build/patches/00110-Disable-conversion-measurement-api--add-fixup-.patch deleted file mode 100644 index d64da7bc..00000000 --- a/build/patches/00110-Disable-conversion-measurement-api--add-fixup-.patch +++ /dev/null @@ -1,22 +0,0 @@ -From: Your Name -Date: Wed, 8 Feb 2023 13:16:13 +0000 -Subject: 110 Disable conversion measurement api (add fixup) - ---- - content/renderer/render_thread_impl.cc | 2 +- - 1 file changed, 1 insertion(+), 1 deletion(-) - -diff --git a/content/renderer/render_thread_impl.cc b/content/renderer/render_thread_impl.cc ---- a/content/renderer/render_thread_impl.cc -+++ b/content/renderer/render_thread_impl.cc -@@ -1835,7 +1835,7 @@ RenderThreadImpl::GetOsSupportForAttributionReporting() { - - void RenderThreadImpl::SetOsSupportForAttributionReporting( - attribution_reporting::mojom::OsSupport attribution_os_support) { -- attribution_os_support_ = blink::mojom::AttributionOsSupport::kDisabled; -+ attribution_os_support_ = attribution_reporting::mojom::OsSupport::kDisabled; - } - - } // namespace content --- -2.25.1 diff --git a/build/patches/00110-Disable-safe-browsing--win-fixup-.patch b/build/patches/00110-Disable-safe-browsing--win-fixup-.patch deleted file mode 100644 index afcf8628..00000000 --- a/build/patches/00110-Disable-safe-browsing--win-fixup-.patch +++ /dev/null @@ -1,33 +0,0 @@ -From: Your Name -Date: Wed, 8 Feb 2023 16:50:31 +0000 -Subject: 110 Disable safe browsing (win fixup) - ---- - .../enterprise/connectors/reporting/realtime_reporting_client.cc | 1 + - .../safe_browsing_private/safe_browsing_private_event_router.cc | 1 - - 2 files changed, 1 insertion(+), 1 deletion(-) - -diff --git a/chrome/browser/enterprise/connectors/reporting/realtime_reporting_client.cc b/chrome/browser/enterprise/connectors/reporting/realtime_reporting_client.cc ---- a/chrome/browser/enterprise/connectors/reporting/realtime_reporting_client.cc -+++ b/chrome/browser/enterprise/connectors/reporting/realtime_reporting_client.cc -@@ -335,6 +335,7 @@ void RealtimeReportingClient::ReportRealtimeEvent( - const std::string& name, - const enterprise_connectors::ReportingSettings& settings, - base::Value::Dict event) { -+ if ((true)) return; - if (rejected_dm_token_timers_.contains(settings.dm_token)) { - return; - } -diff --git a/chrome/browser/extensions/api/safe_browsing_private/safe_browsing_private_event_router.cc b/chrome/browser/extensions/api/safe_browsing_private/safe_browsing_private_event_router.cc ---- a/chrome/browser/extensions/api/safe_browsing_private/safe_browsing_private_event_router.cc -+++ b/chrome/browser/extensions/api/safe_browsing_private/safe_browsing_private_event_router.cc -@@ -974,7 +974,6 @@ void SafeBrowsingPrivateEventRouter::OnUrlFilteringInterstitial( - event_result == safe_browsing::EventResult::BYPASSED); - event.Set(kKeyThreatType, threat_type); - AddTriggeredRuleInfoToUrlFilteringInterstitialEvent(response, event); -- event.Set(kKeyEventResult, safe_browsing::EventResultToString(event_result)); - - reporting_client_->ReportRealtimeEvent(kKeyUrlFilteringInterstitialEvent, - std::move(settings.value()), --- -2.25.1 diff --git a/build/patches/00110-Eyeo-Adblock-Remove.patch b/build/patches/00110-Eyeo-Adblock-Remove.patch deleted file mode 100644 index c57da3e4..00000000 --- a/build/patches/00110-Eyeo-Adblock-Remove.patch +++ /dev/null @@ -1,22 +0,0 @@ -From: Your Name -Date: Wed, 8 Feb 2023 13:19:32 +0000 -Subject: 110 Eyeo Adblock Remove - ---- - .../adblock/core/subscription/subscription_service_impl.cc | 2 ++ - 1 file changed, 2 insertions(+) - -diff --git a/components/adblock/core/subscription/subscription_service_impl.cc b/components/adblock/core/subscription/subscription_service_impl.cc ---- a/components/adblock/core/subscription/subscription_service_impl.cc -+++ b/components/adblock/core/subscription/subscription_service_impl.cc -@@ -126,6 +126,8 @@ void SubscriptionServiceImpl::OnEnabledStateChanged( - // frees all associated memory. - it->second.reset(); - } -+} -+ - void SubscriptionServiceImpl::OnSubscriptionUpdated( - const GURL& subscription_url) { - for (auto& observer : observers_) --- -2.25.1 diff --git a/build/patches/00110-Fix-windows-build.patch b/build/patches/00110-Fix-windows-build.patch deleted file mode 100644 index 85594f95..00000000 --- a/build/patches/00110-Fix-windows-build.patch +++ /dev/null @@ -1,23 +0,0 @@ -From: Your Name -Date: Wed, 8 Feb 2023 16:50:58 +0000 -Subject: 110 Fix windows build - ---- - chrome/browser/ui/startup/first_run_service.cc | 2 ++ - 1 file changed, 2 insertions(+) - -diff --git a/chrome/browser/ui/startup/first_run_service.cc b/chrome/browser/ui/startup/first_run_service.cc ---- a/chrome/browser/ui/startup/first_run_service.cc -+++ b/chrome/browser/ui/startup/first_run_service.cc -@@ -150,7 +150,9 @@ void FirstRunService::TryMarkFirstRunAlreadyFinished( - if (ProfilePicker::IsFirstRunOpen()) - return; - -+#if BUILDFLAG(IS_CHROMEOS_LACROS) || BUILDFLAG(ENABLE_DICE_SUPPORT) - auto* identity_manager = IdentityManagerFactory::GetForProfile(profile_); -+#endif - #if BUILDFLAG(IS_CHROMEOS_LACROS) - if (identity_manager->HasPrimaryAccount(signin::ConsentLevel::kSync)) { - ProfileMetrics::LogLacrosPrimaryProfileFirstRunOutcome( --- -2.25.1 diff --git a/build/patches/00110-Move-navigation-bar-to-bottom.patch b/build/patches/00110-Move-navigation-bar-to-bottom.patch deleted file mode 100644 index 2ad5c251..00000000 --- a/build/patches/00110-Move-navigation-bar-to-bottom.patch +++ /dev/null @@ -1,89 +0,0 @@ -From: Your Name -Date: Wed, 8 Feb 2023 13:17:43 +0000 -Subject: 110 Move navigation bar to bottom - ---- - .../chrome/browser/toolbar/ToolbarManager.java | 12 ++++++------ - .../browser/ui/system/StatusBarColorController.java | 5 +++-- - .../chromium/chrome/browser/ui/appmenu/AppMenu.java | 1 + - 3 files changed, 10 insertions(+), 8 deletions(-) - -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 -@@ -1310,14 +1310,14 @@ public class ToolbarManager implements UrlFocusChangeListener, ThemeColorObserve - return mLocationBar.getOmniboxStub().isUrlBarFocused(); - } - -- View bottomRoot; -+ View mBottomRoot; - - private void MoveBottomBarOverTopBar() { -- if (bottomRoot != null && -+ if (mBottomRoot != null && - ChromeFeatureList.sMoveTopToolbarToBottom.isEnabled()) { - // move up the container view of the ui - // below there is the toolbar -- bottomRoot.setTranslationY(-mBrowserControlsSizer.getTopControlsHeight()); -+ mBottomRoot.setTranslationY(-mBrowserControlsSizer.getTopControlsHeight()); - } - } - -@@ -1325,10 +1325,10 @@ public class ToolbarManager implements UrlFocusChangeListener, ThemeColorObserve - * Enable the bottom controls. - */ - public void enableBottomControls() { -- bottomRoot = ((ViewStub) mActivity.findViewById(R.id.bottom_controls_stub)).inflate(); -+ mBottomRoot = ((ViewStub) mActivity.findViewById(R.id.bottom_controls_stub)).inflate(); - MoveBottomBarOverTopBar(); - mTabGroupUi = TabManagementModuleProvider.getDelegate().createTabGroupUi(mActivity, -- bottomRoot.findViewById(R.id.bottom_container_slot), mIncognitoStateProvider, -+ mBottomRoot.findViewById(R.id.bottom_container_slot), mIncognitoStateProvider, - mScrimCoordinator, mOmniboxFocusStateSupplier, mBottomSheetController, - mActivityLifecycleDispatcher, mIsWarmOnResumeSupplier, mTabModelSelector, - mTabContentManager, mCompositorViewHolder, -@@ -1336,7 +1336,7 @@ public class ToolbarManager implements UrlFocusChangeListener, ThemeColorObserve - mShareDelegateSupplier, mLayoutStateProviderSupplier, mSnackbarManager); - var bottomControlsCoordinator = new BottomControlsCoordinator(mActivity, mWindowAndroid, - mLayoutManager, mCompositorViewHolder.getResourceManager(), mBrowserControlsSizer, -- mFullscreenManager, (ScrollingBottomViewResourceFrameLayout) root, mTabGroupUi, -+ mFullscreenManager, (ScrollingBottomViewResourceFrameLayout) mBottomRoot, mTabGroupUi, - mTabObscuringHandler, mOverlayPanelVisibilitySupplier, mConstraintsProxy, - mTopUiThemeColorProvider, mActivityTabProvider); - mBottomControlsCoordinatorSupplier.set(bottomControlsCoordinator); -diff --git a/chrome/android/java/src/org/chromium/chrome/browser/ui/system/StatusBarColorController.java b/chrome/android/java/src/org/chromium/chrome/browser/ui/system/StatusBarColorController.java ---- a/chrome/android/java/src/org/chromium/chrome/browser/ui/system/StatusBarColorController.java -+++ b/chrome/android/java/src/org/chromium/chrome/browser/ui/system/StatusBarColorController.java -@@ -8,6 +8,7 @@ import android.content.Context; - import android.graphics.Color; - import android.view.View; - import android.view.Window; -+import android.os.Build; - - import androidx.annotation.ColorInt; - import androidx.annotation.Nullable; -@@ -435,9 +436,9 @@ public class StatusBarColorController - ApiCompatibilityUtils.setStatusBarColor(window, color); - if (ChromeFeatureList.sMoveTopToolbarToBottom.isEnabled() && - Build.VERSION.SDK_INT >= Build.VERSION_CODES.M) { -- UiUtils.setNavigationBarIconColor(mWindow.getDecorView().getRootView(), -+ UiUtils.setNavigationBarIconColor(window.getDecorView().getRootView(), - needsDarkStatusBarIcons); -- mWindow.setNavigationBarColor(color); -+ window.setNavigationBarColor(color); - } - } - -diff --git a/chrome/browser/ui/android/appmenu/internal/java/src/org/chromium/chrome/browser/ui/appmenu/AppMenu.java b/chrome/browser/ui/android/appmenu/internal/java/src/org/chromium/chrome/browser/ui/appmenu/AppMenu.java ---- a/chrome/browser/ui/android/appmenu/internal/java/src/org/chromium/chrome/browser/ui/appmenu/AppMenu.java -+++ b/chrome/browser/ui/android/appmenu/internal/java/src/org/chromium/chrome/browser/ui/appmenu/AppMenu.java -@@ -12,6 +12,7 @@ import android.graphics.Color; - import android.graphics.Rect; - import android.graphics.drawable.ColorDrawable; - import android.graphics.drawable.Drawable; -+import android.os.Build; - import android.os.SystemClock; - import android.text.TextUtils; - import android.view.Gravity; --- -2.25.1 diff --git a/build/patches/00110-wip-add-browser-policy.patch b/build/patches/00110-wip-add-browser-policy.patch deleted file mode 100644 index a7e7ecab..00000000 --- a/build/patches/00110-wip-add-browser-policy.patch +++ /dev/null @@ -1,22 +0,0 @@ -From: Your Name -Date: Wed, 8 Feb 2023 13:20:45 +0000 -Subject: 110 wip add browser policy - ---- - components/policy/core/common/features.cc | 2 +- - 1 file changed, 1 insertion(+), 1 deletion(-) - -diff --git a/components/policy/core/common/features.cc b/components/policy/core/common/features.cc ---- a/components/policy/core/common/features.cc -+++ b/components/policy/core/common/features.cc -@@ -28,7 +28,7 @@ BASE_FEATURE(kEnableUserCloudSigninRestrictionPolicyFetcher, - - BASE_FEATURE(kActivateMetricsReportingEnabledPolicyAndroid, - "ActivateMetricsReportingEnabledPolicyAndroid", // guard this -- base::FEATURE_DISABLED_BY_DEFAULT); // guard this -+ base::FEATURE_ENABLED_BY_DEFAULT); // guard this - - BASE_FEATURE(kDmTokenDeletion, - "DmTokenDeletion", --- -2.25.1 diff --git a/build/patches/00Add-a-proxy-configuration-page--add-fixup-.patch b/build/patches/00Add-a-proxy-configuration-page--add-fixup-.patch index f8b1ae46..8bf85103 100644 --- a/build/patches/00Add-a-proxy-configuration-page--add-fixup-.patch +++ b/build/patches/00Add-a-proxy-configuration-page--add-fixup-.patch @@ -3,18 +3,32 @@ Date: Thu, 5 Jan 2023 11:48:07 +0000 Subject: Add a proxy configuration page (add fixup) --- - chrome/browser/resources/proxy_config.js | 13 ++++++++++++- + chrome/browser/resources/proxy_config.html | 1 - + chrome/browser/resources/proxy_config.js | 15 +++++++++++++-- chrome/browser/ui/webui/proxy_config_ui.cc | 2 +- - 2 files changed, 13 insertions(+), 2 deletions(-) + 3 files changed, 14 insertions(+), 4 deletions(-) +diff --git a/chrome/browser/resources/proxy_config.html b/chrome/browser/resources/proxy_config.html +--- a/chrome/browser/resources/proxy_config.html ++++ b/chrome/browser/resources/proxy_config.html +@@ -11,7 +11,6 @@ + + + +- + + + diff --git a/chrome/browser/resources/proxy_config.js b/chrome/browser/resources/proxy_config.js --- a/chrome/browser/resources/proxy_config.js +++ b/chrome/browser/resources/proxy_config.js -@@ -16,7 +16,6 @@ +@@ -15,8 +15,7 @@ + along with Bromite. If not, see . */ - import {$} from 'chrome://resources/js/util.js'; +-import {$} from 'chrome://resources/js/util.js'; -import {addSingletonGetter} from 'chrome://resources/js/cr.m.js'; ++import {$} from 'chrome://resources/js/util_ts.js'; /** * Main entry point called once the page has loaded. diff --git a/build/patches/00Disable-conversion-measurement-api--add-fixup-.patch b/build/patches/00Disable-conversion-measurement-api--add-fixup-.patch index ba7a82f8..a0aa4ef7 100644 --- a/build/patches/00Disable-conversion-measurement-api--add-fixup-.patch +++ b/build/patches/00Disable-conversion-measurement-api--add-fixup-.patch @@ -40,7 +40,7 @@ diff --git a/content/renderer/render_thread_impl.cc b/content/renderer/render_th void RenderThreadImpl::SetOsSupportForAttributionReporting( attribution_reporting::mojom::OsSupport attribution_os_support) { - attribution_os_support_ = attribution_os_support; -+ attribution_os_support_ = blink::mojom::AttributionOsSupport::kDisabled; ++ attribution_os_support_ = attribution_reporting::mojom::OsSupport::kDisabled; } } // namespace content diff --git a/build/patches/00Disable-safe-browsing--win-fixup-.patch b/build/patches/00Disable-safe-browsing--win-fixup-.patch index 7f702e9f..4101c8d2 100644 --- a/build/patches/00Disable-safe-browsing--win-fixup-.patch +++ b/build/patches/00Disable-safe-browsing--win-fixup-.patch @@ -12,11 +12,11 @@ Subject: Disable safe browsing (win fixup) .../analysis/content_analysis_delegate.cc | 164 +----------------- .../analysis/content_analysis_delegate.h | 7 - .../analysis/request_handler_base.cc | 20 --- - .../reporting/realtime_reporting_client.cc | 2 +- + .../reporting/realtime_reporting_client.cc | 3 +- chrome/browser/extensions/BUILD.gn | 5 - .../extensions/api/cookies/cookies_api.cc | 35 ---- .../safe_browsing_private_api.cc | 3 +- - .../safe_browsing_private_event_router.cc | 43 ++--- + .../safe_browsing_private_event_router.cc | 44 ++--- .../webstore_private/webstore_private_api.cc | 15 +- .../extensions/blocklist_state_fetcher.cc | 13 +- .../chrome_extensions_browser_client.cc | 41 +---- @@ -54,7 +54,7 @@ Subject: Disable safe browsing (win fixup) .../core/common/safe_browsing_prefs.cc | 2 +- printing/buildflags/buildflags.gni | 2 +- .../tracked_persistent_pref_store_factory.cc | 10 +- - 51 files changed, 67 insertions(+), 791 deletions(-) + 51 files changed, 68 insertions(+), 792 deletions(-) diff --git a/chrome/browser/BUILD.gn b/chrome/browser/BUILD.gn --- a/chrome/browser/BUILD.gn @@ -612,7 +612,15 @@ diff --git a/chrome/browser/enterprise/connectors/analysis/request_handler_base. diff --git a/chrome/browser/enterprise/connectors/reporting/realtime_reporting_client.cc b/chrome/browser/enterprise/connectors/reporting/realtime_reporting_client.cc --- a/chrome/browser/enterprise/connectors/reporting/realtime_reporting_client.cc +++ b/chrome/browser/enterprise/connectors/reporting/realtime_reporting_client.cc -@@ -400,7 +400,7 @@ void RealtimeReportingClient::ReportRealtimeEvent( +@@ -335,6 +335,7 @@ void RealtimeReportingClient::ReportRealtimeEvent( + const std::string& name, + const enterprise_connectors::ReportingSettings& settings, + base::Value::Dict event) { ++ if ((true)) return; + if (rejected_dm_token_timers_.contains(settings.dm_token)) { + return; + } +@@ -400,7 +401,7 @@ void RealtimeReportingClient::ReportRealtimeEvent( } std::string RealtimeReportingClient::GetProfileUserName() const { @@ -822,7 +830,15 @@ diff --git a/chrome/browser/extensions/api/safe_browsing_private/safe_browsing_p // The scan ID can be empty when the reported dangerous download is from a // Safe Browsing verdict. if (!scan_id.empty()) { -@@ -1010,7 +987,7 @@ void SafeBrowsingPrivateEventRouter::SetIdentityManagerForTesting( +@@ -997,7 +974,6 @@ void SafeBrowsingPrivateEventRouter::OnUrlFilteringInterstitial( + event_result == safe_browsing::EventResult::BYPASSED); + event.Set(kKeyThreatType, threat_type); + AddTriggeredRuleInfoToUrlFilteringInterstitialEvent(response, event); +- event.Set(kKeyEventResult, safe_browsing::EventResultToString(event_result)); + + reporting_client_->ReportRealtimeEvent(kKeyUrlFilteringInterstitialEvent, + std::move(settings.value()), +@@ -1010,7 +986,7 @@ void SafeBrowsingPrivateEventRouter::SetIdentityManagerForTesting( } std::string SafeBrowsingPrivateEventRouter::GetProfileUserName() const { diff --git a/build/patches/00Eyeo-Adblock-Remove-Privacy-Issues.patch b/build/patches/00Eyeo-Adblock-Remove-Privacy-Issues.patch index 13f8f396..572434b3 100644 --- a/build/patches/00Eyeo-Adblock-Remove-Privacy-Issues.patch +++ b/build/patches/00Eyeo-Adblock-Remove-Privacy-Issues.patch @@ -11,6 +11,7 @@ Subject: Eyeo Adblock Remove .../adblock_telemetry_service_factory.h | 56 - .../adblock/subscription_service_factory.cc | 2 +- ...hrome_browser_main_extra_parts_profiles.cc | 2 - + chrome/browser/ui/tab_helpers.cc | 2 + chrome/test/BUILD.gn | 1 - components/adblock/android/BUILD.gn | 2 +- .../layout/adblock_filter_lists_list_item.xml | 10 + @@ -39,7 +40,7 @@ Subject: Eyeo Adblock Remove .../core/subscription/subscription_config.cc | 8 +- .../subscription_downloader_impl.cc | 15 +- .../subscription_persistent_storage_impl.cc | 4 + - .../subscription/subscription_service_impl.cc | 4 +- + .../subscription/subscription_service_impl.cc | 2 +- .../subscription/subscription_updater_impl.cc | 8 +- .../subscription_validator_impl.cc | 4 +- components/adblock/features.gni | 44 - @@ -52,7 +53,7 @@ Subject: Eyeo Adblock Remove .../blink/renderer/core/css/style_engine.cc | 8 + .../blink/renderer/core/css/style_engine.h | 1 + .../renderer/core/exported/web_document.cc | 13 +- - 49 files changed, 3277 insertions(+), 903 deletions(-) + 50 files changed, 3279 insertions(+), 901 deletions(-) delete mode 100644 chrome/browser/adblock/adblock_telemetry_service_factory.cc delete mode 100644 chrome/browser/adblock/adblock_telemetry_service_factory.h rename components/adblock/android/java/res/xml/{adblock_preferences.xml => eyeo_adblock_preferences.xml} (100%) @@ -365,6 +366,18 @@ diff --git a/chrome/browser/profiles/chrome_browser_main_extra_parts_profiles.cc adblock::ResourceClassificationRunnerFactory::GetInstance(); adblock::SessionStatsFactory::GetInstance(); adblock::SitekeyStorageFactory::GetInstance(); +diff --git a/chrome/browser/ui/tab_helpers.cc b/chrome/browser/ui/tab_helpers.cc +--- a/chrome/browser/ui/tab_helpers.cc ++++ b/chrome/browser/ui/tab_helpers.cc +@@ -328,6 +328,8 @@ void TabHelpers::AttachTabHelpers(WebContents* web_contents) { + } + #endif + ++ adblock::AdblockControllerFactory::GetForBrowserContext( ++ web_contents->GetBrowserContext()); + AdblockWebContentObserver::CreateForWebContents( + web_contents, + adblock::SubscriptionServiceFactory::GetForBrowserContext( diff --git a/chrome/test/BUILD.gn b/chrome/test/BUILD.gn --- a/chrome/test/BUILD.gn +++ b/chrome/test/BUILD.gn @@ -1501,15 +1514,6 @@ diff --git a/components/adblock/core/subscription/subscription_service_impl.cc b << (config->IsEnabled() ? " enabled" : " disabled"); if (config->IsEnabled()) { // Enable the configuration by creating a new -@@ -126,8 +126,6 @@ void SubscriptionServiceImpl::OnEnabledStateChanged( - // frees all associated memory. - it->second.reset(); - } --} -- - void SubscriptionServiceImpl::OnSubscriptionUpdated( - const GURL& subscription_url) { - for (auto& observer : observers_) diff --git a/components/adblock/core/subscription/subscription_updater_impl.cc b/components/adblock/core/subscription/subscription_updater_impl.cc --- a/components/adblock/core/subscription/subscription_updater_impl.cc +++ b/components/adblock/core/subscription/subscription_updater_impl.cc diff --git a/build/patches/00Fix-windows-build.patch b/build/patches/00Fix-windows-build.patch index e7286dec..f0440074 100644 --- a/build/patches/00Fix-windows-build.patch +++ b/build/patches/00Fix-windows-build.patch @@ -6,10 +6,10 @@ Subject: Fix windows build .../browser_process_platform_part_win.cc | 3 ++ chrome/browser/devtools/devtools_window.cc | 1 + chrome/browser/ui/profile_picker.cc | 2 +- - .../browser/ui/startup/first_run_service.cc | 6 +--- + .../browser/ui/startup/first_run_service.cc | 8 ++--- chrome/browser/updater/BUILD.gn | 9 ----- .../browser/updater/browser_updater_client.cc | 34 +------------------ - 6 files changed, 7 insertions(+), 48 deletions(-) + 6 files changed, 9 insertions(+), 48 deletions(-) diff --git a/chrome/browser/browser_process_platform_part_win.cc b/chrome/browser/browser_process_platform_part_win.cc --- a/chrome/browser/browser_process_platform_part_win.cc @@ -83,6 +83,16 @@ diff --git a/chrome/browser/ui/startup/first_run_service.cc b/chrome/browser/ui/ } void FirstRunService::TryMarkFirstRunAlreadyFinished( +@@ -154,7 +150,9 @@ void FirstRunService::TryMarkFirstRunAlreadyFinished( + if (ProfilePicker::IsFirstRunOpen()) + return; + ++#if BUILDFLAG(IS_CHROMEOS_LACROS) || BUILDFLAG(ENABLE_DICE_SUPPORT) + auto* identity_manager = IdentityManagerFactory::GetForProfile(profile_); ++#endif + #if BUILDFLAG(IS_CHROMEOS_LACROS) + if (identity_manager->HasPrimaryAccount(signin::ConsentLevel::kSync)) { + ProfileMetrics::LogLacrosPrimaryProfileFirstRunOutcome( diff --git a/chrome/browser/updater/BUILD.gn b/chrome/browser/updater/BUILD.gn --- a/chrome/browser/updater/BUILD.gn +++ b/chrome/browser/updater/BUILD.gn diff --git a/build/patches/00Move-navigation-bar-to-bottom--add-fixup-.patch b/build/patches/00Move-navigation-bar-to-bottom--add-fixup-.patch index 62e82dde..ce488675 100644 --- a/build/patches/00Move-navigation-bar-to-bottom--add-fixup-.patch +++ b/build/patches/00Move-navigation-bar-to-bottom--add-fixup-.patch @@ -3,11 +3,71 @@ Date: Tue, 27 Dec 2022 16:58:28 +0000 Subject: Move navigation bar to bottom (add fixup) --- + .../start_surface/StartSurfaceMediator.java | 2 +- + .../tab_management/TabGroupUiToolbarView.java | 2 +- .../TabListContainerViewBinder.java | 4 - - .../tab_management/TabListCoordinator.java | 77 ++++++++++++++++++- - .../tab_management/TabSwitcherMediator.java | 3 + - 3 files changed, 77 insertions(+), 7 deletions(-) + .../tab_management/TabListCoordinator.java | 81 ++++++++++++++++++- + .../tab_management/TabListRecyclerView.java | 6 +- + .../tab_management/TabSwitcherMediator.java | 9 ++- + .../ChromeAccessibilitySettingsDelegate.java | 2 +- + .../chrome/browser/app/ChromeActivity.java | 2 +- + .../compositor/CompositorViewHolder.java | 2 +- + .../layouts/LayoutManagerChrome.java | 2 +- + .../layouts/ToolbarSwipeLayout.java | 4 +- + .../strip/StripLayoutHelperManager.java | 2 +- + .../scene_layer/StaticTabSceneLayer.java | 2 +- + .../scene_layer/TabListSceneLayer.java | 4 +- + .../scene_layer/TabStripSceneLayer.java | 2 +- + .../browser/findinpage/FindToolbarTablet.java | 2 +- + .../fullscreen/BrowserControlsManager.java | 4 +- + .../messages/MessageContainerCoordinator.java | 4 +- + .../chrome/browser/ntp/NewTabPage.java | 2 +- + .../chrome/browser/ntp/RecentTabsPage.java | 6 +- + .../browser/searchwidget/SearchActivity.java | 2 +- + .../StatusIndicatorCoordinator.java | 2 +- + .../StatusIndicatorSceneLayer.java | 2 +- + .../browser/toolbar/ToolbarManager.java | 16 ++-- + .../chrome/browser/ui/BottomContainer.java | 6 +- + .../ui/system/StatusBarColorController.java | 7 +- + .../BrowserControlsMarginSupplier.java | 2 +- + .../chrome/browser/ui/appmenu/AppMenu.java | 9 ++- + .../ui/appmenu/AppMenuHandlerImpl.java | 2 +- + .../browser/omnibox/UrlBarCoordinator.java | 2 +- + .../suggestions/AutocompleteCoordinator.java | 2 +- + .../suggestions/AutocompleteMediator.java | 2 +- + .../DropdownItemViewInfoListManager.java | 15 +++- + .../OmniboxSuggestionsDropdown.java | 4 +- + .../toolbar/LocationBarFocusScrimHandler.java | 2 +- + .../bottom/BottomControlsMediator.java | 2 +- + .../bottom/ScrollingBottomViewSceneLayer.java | 2 +- + .../toolbar/top/ToolbarControlContainer.java | 2 +- + .../toolbar/top/TopToolbarSceneLayer.java | 2 +- + 39 files changed, 155 insertions(+), 72 deletions(-) +diff --git a/chrome/android/features/start_surface/java/src/org/chromium/chrome/features/start_surface/StartSurfaceMediator.java b/chrome/android/features/start_surface/java/src/org/chromium/chrome/features/start_surface/StartSurfaceMediator.java +--- a/chrome/android/features/start_surface/java/src/org/chromium/chrome/features/start_surface/StartSurfaceMediator.java ++++ b/chrome/android/features/start_surface/java/src/org/chromium/chrome/features/start_surface/StartSurfaceMediator.java +@@ -1163,7 +1163,7 @@ class StartSurfaceMediator implements TabSwitcher.TabSwitcherViewObserver, View. + } + + private void setTopMargin(int topMargin) { +- if (CachedFeatureFlags.isEnabled(ChromeFeatureList.MOVE_TOP_TOOLBAR_TO_BOTTOM)) ++ if (ChromeFeatureList.sMoveTopToolbarToBottom.isEnabled()) + topMargin = 0; + mPropertyModel.set(TOP_MARGIN, topMargin); + } +diff --git a/chrome/android/features/tab_ui/java/src/org/chromium/chrome/browser/tasks/tab_management/TabGroupUiToolbarView.java b/chrome/android/features/tab_ui/java/src/org/chromium/chrome/browser/tasks/tab_management/TabGroupUiToolbarView.java +--- a/chrome/android/features/tab_ui/java/src/org/chromium/chrome/browser/tasks/tab_management/TabGroupUiToolbarView.java ++++ b/chrome/android/features/tab_ui/java/src/org/chromium/chrome/browser/tasks/tab_management/TabGroupUiToolbarView.java +@@ -177,7 +177,7 @@ public class TabGroupUiToolbarView extends FrameLayout { + } + + void setPrimaryColorAndApplyTint(int color) { +- if (!CachedFeatureFlags.isEnabled(ChromeFeatureList.MOVE_TOP_TOOLBAR_TO_BOTTOM)) ++ if (!ChromeFeatureList.sMoveTopToolbarToBottom.isEnabled()) + return; + + // change the background color of the bottom bar if the top toolbar is below diff --git a/chrome/android/features/tab_ui/java/src/org/chromium/chrome/browser/tasks/tab_management/TabListContainerViewBinder.java b/chrome/android/features/tab_ui/java/src/org/chromium/chrome/browser/tasks/tab_management/TabListContainerViewBinder.java --- a/chrome/android/features/tab_ui/java/src/org/chromium/chrome/browser/tasks/tab_management/TabListContainerViewBinder.java +++ b/chrome/android/features/tab_ui/java/src/org/chromium/chrome/browser/tasks/tab_management/TabListContainerViewBinder.java @@ -40,7 +100,7 @@ diff --git a/chrome/android/features/tab_ui/java/src/org/chromium/chrome/browser import android.content.res.Resources; import android.graphics.Bitmap; import android.graphics.BitmapFactory; -@@ -99,6 +100,70 @@ public class TabListCoordinator +@@ -99,6 +100,74 @@ public class TabListCoordinator private boolean mLayoutListenerRegistered; private @Nullable TabStripSnapshotter mTabStripSnapshotter; @@ -49,7 +109,9 @@ diff --git a/chrome/android/features/tab_ui/java/src/org/chromium/chrome/browser + + TabListRecyclerView mRecyclerView; + -+ int mTopPadding = 99999; ++ final int MAX_TOP_PADDING = 99999; ++ int mTopPadding = MAX_TOP_PADDING; ++ + int mLastPosition = -1; + boolean mIsFirstLayout = true; + @@ -69,10 +131,10 @@ diff --git a/chrome/android/features/tab_ui/java/src/org/chromium/chrome/browser + @Override + public int getPaddingTop() { + if (mContext.getResources().getConfiguration().orientation == Configuration.ORIENTATION_LANDSCAPE) { -+ mTopPadding = 99999; ++ mTopPadding = MAX_TOP_PADDING; + return 0; + } -+ if (mTopPadding == 99999) return super.getPaddingTop(); ++ if (mTopPadding == MAX_TOP_PADDING) return super.getPaddingTop(); + return mTopPadding; + } + @@ -84,26 +146,28 @@ diff --git a/chrome/android/features/tab_ui/java/src/org/chromium/chrome/browser + @Override + public void scrollToPositionWithOffset(int position, int offset) { + mLastPosition = position; -+ super.scrollToPositionWithOffset(position, getPaddingBottom()); ++ super.scrollToPositionWithOffset(position, offset - getPaddingTop()); + } + + @Override + public void onLayoutCompleted(RecyclerView.State state) { + super.onLayoutCompleted(state); + -+ if (state.isPreLayout()) return; ++ if (state.isPreLayout() || state.isMeasuring()) return; + View lastView = findViewByPosition(findFirstVisibleItemPosition()); + if (lastView != null) { ++ if (mTopPadding == 0) mTopPadding = MAX_TOP_PADDING; + mTopPadding = Math.min(mTopPadding, mRecyclerView.getHeight() - lastView.getHeight()); + if (mIsFirstLayout) { + mIsFirstLayout = false; -+ scrollToPositionWithOffset(mLastPosition, 0); ++ scrollToPositionWithOffset(mLastPosition, getPaddingTop() + getPaddingBottom()); + } + } + -+ if (mLastPosition != -1 && mLastPosition >= state.getItemCount()) { ++ if (mLastPosition >= state.getItemCount()) { + ResetTopPosition(); -+ scrollToPositionWithOffset(state.getItemCount()-getSpanCount(), 0); ++ scrollToPositionWithOffset(state.getItemCount()-getSpanCount(), ++ getPaddingTop() + getPaddingBottom()); + } + } + } @@ -111,14 +175,14 @@ diff --git a/chrome/android/features/tab_ui/java/src/org/chromium/chrome/browser /** * Construct a coordinator for UI that shows a list of tabs. * @param mode Modes of showing the list of tabs. Can be used in GRID or STRIP. -@@ -259,9 +324,12 @@ public class TabListCoordinator +@@ -259,9 +328,12 @@ public class TabListCoordinator if (mMode == TabListMode.GRID) { GridLayoutManager gridLayoutManager = new GridLayoutManager(context, GRID_LAYOUT_SPAN_COUNT_COMPACT); - // invert the order if the toolbar is at bottom - if (titleProvider != null && CachedFeatureFlags.isEnabled(ChromeFeatureList.MOVE_TOP_TOOLBAR_TO_BOTTOM)) - gridLayoutManager.setReverseLayout(true); -+ if (titleProvider != null && CachedFeatureFlags.isEnabled(ChromeFeatureList.MOVE_TOP_TOOLBAR_TO_BOTTOM)) { ++ if (titleProvider != null && ChromeFeatureList.sMoveTopToolbarToBottom.isEnabled()) { + gridLayoutManager = + new GridLayoutManagerDockBottom(context, GRID_LAYOUT_SPAN_COUNT_COMPACT); + ((GridLayoutManagerDockBottom)gridLayoutManager) @@ -127,7 +191,7 @@ diff --git a/chrome/android/features/tab_ui/java/src/org/chromium/chrome/browser mRecyclerView.setLayoutManager(gridLayoutManager); mMediator.registerOrientationListener(gridLayoutManager); mMediator.updateSpanCount(gridLayoutManager, -@@ -456,6 +524,9 @@ public class TabListCoordinator +@@ -456,6 +528,9 @@ public class TabListCoordinator } registerLayoutChangeListener(); mRecyclerView.prepareTabSwitcherView(); @@ -137,18 +201,675 @@ diff --git a/chrome/android/features/tab_ui/java/src/org/chromium/chrome/browser mMediator.prepareTabSwitcherView(); mMediator.registerOnScrolledListener(mRecyclerView); } +diff --git a/chrome/android/features/tab_ui/java/src/org/chromium/chrome/browser/tasks/tab_management/TabListRecyclerView.java b/chrome/android/features/tab_ui/java/src/org/chromium/chrome/browser/tasks/tab_management/TabListRecyclerView.java +--- a/chrome/android/features/tab_ui/java/src/org/chromium/chrome/browser/tasks/tab_management/TabListRecyclerView.java ++++ b/chrome/android/features/tab_ui/java/src/org/chromium/chrome/browser/tasks/tab_management/TabListRecyclerView.java +@@ -232,7 +232,7 @@ class TabListRecyclerView + } + + void setShadowVisibility(boolean shouldShowShadow) { +- if (CachedFeatureFlags.isEnabled(ChromeFeatureList.MOVE_TOP_TOOLBAR_TO_BOTTOM) ++ if (ChromeFeatureList.sMoveTopToolbarToBottom.isEnabled() + && mIsVisible) { + // always show shadow + shouldShowShadow = true; +@@ -250,7 +250,7 @@ class TabListRecyclerView + // Add shadow for grid tab switcher. + FrameLayout.LayoutParams params = new FrameLayout.LayoutParams( + LayoutParams.MATCH_PARENT, shadowHeight, +- (CachedFeatureFlags.isEnabled(ChromeFeatureList.MOVE_TOP_TOOLBAR_TO_BOTTOM) ? ++ (ChromeFeatureList.sMoveTopToolbarToBottom.isEnabled() ? + Gravity.BOTTOM : + Gravity.TOP)); + mShadowImageView.setLayoutParams(params); +@@ -279,7 +279,7 @@ class TabListRecyclerView + + void setShadowTopOffset(int shadowTopOffset) { + mShadowTopOffset = shadowTopOffset; +- if (CachedFeatureFlags.isEnabled(ChromeFeatureList.MOVE_TOP_TOOLBAR_TO_BOTTOM)) { ++ if (ChromeFeatureList.sMoveTopToolbarToBottom.isEnabled()) { + // invert the offset since Gravity is set to BOTTOM + mShadowTopOffset = -mShadowTopOffset; + } diff --git a/chrome/android/features/tab_ui/java/src/org/chromium/chrome/browser/tasks/tab_management/TabSwitcherMediator.java b/chrome/android/features/tab_ui/java/src/org/chromium/chrome/browser/tasks/tab_management/TabSwitcherMediator.java --- a/chrome/android/features/tab_ui/java/src/org/chromium/chrome/browser/tasks/tab_management/TabSwitcherMediator.java +++ b/chrome/android/features/tab_ui/java/src/org/chromium/chrome/browser/tasks/tab_management/TabSwitcherMediator.java +@@ -474,7 +474,7 @@ class TabSwitcherMediator implements TabSwitcher.Controller, TabListRecyclerView + updateTopControlsProperties(); + mContainerViewModel.set( + BOTTOM_CONTROLS_HEIGHT, browserControlsStateProvider.getBottomControlsHeight()); +- if (CachedFeatureFlags.isEnabled(ChromeFeatureList.MOVE_TOP_TOOLBAR_TO_BOTTOM)) { ++ if (ChromeFeatureList.sMoveTopToolbarToBottom.isEnabled()) { + mContainerViewModel.set( + BOTTOM_CONTROLS_HEIGHT, mContainerViewModel.get(BOTTOM_CONTROLS_HEIGHT) + + mBrowserControlsStateProvider.getContentOffset()); +@@ -484,7 +484,7 @@ class TabSwitcherMediator implements TabSwitcher.Controller, TabListRecyclerView + if (mMode == TabListMode.GRID) { + mContainerViewModel.set(BOTTOM_PADDING, + (int) context.getResources().getDimension(R.dimen.tab_grid_bottom_padding)); +- if (CachedFeatureFlags.isEnabled(ChromeFeatureList.MOVE_TOP_TOOLBAR_TO_BOTTOM)) { ++ if (ChromeFeatureList.sMoveTopToolbarToBottom.isEnabled()) { + // adjust the bottom margin so as not to cover the top toolbar at the bottom + mContainerViewModel.set( + BOTTOM_PADDING, mContainerViewModel.get(BOTTOM_PADDING) + +@@ -617,7 +617,7 @@ class TabSwitcherMediator implements TabSwitcher.Controller, TabListRecyclerView + final int contentOffset = mBrowserControlsStateProvider.getContentOffset(); + + mContainerViewModel.set(TOP_MARGIN, contentOffset); +- if (CachedFeatureFlags.isEnabled(ChromeFeatureList.MOVE_TOP_TOOLBAR_TO_BOTTOM)) { ++ if (ChromeFeatureList.sMoveTopToolbarToBottom.isEnabled()) { + // move the view up since the toolbar is at the bottom + mContainerViewModel.set(TOP_MARGIN, 0); + } @@ -777,6 +777,9 @@ class TabSwitcherMediator implements TabSwitcher.Controller, TabListRecyclerView private void setInitialScrollIndexOffset() { int offset = mMode == TabListMode.CAROUSEL ? INITIAL_SCROLL_INDEX_OFFSET_CAROUSEL : INITIAL_SCROLL_INDEX_OFFSET_GTS; -+ if (CachedFeatureFlags.isEnabled(ChromeFeatureList.MOVE_TOP_TOOLBAR_TO_BOTTOM)) { ++ if (ChromeFeatureList.sMoveTopToolbarToBottom.isEnabled()) { + offset = 0; + } int initialPosition = Math.max( mTabModelSelector.getTabModelFilterProvider().getCurrentTabModelFilter().index() - offset, +diff --git a/chrome/android/java/src/org/chromium/chrome/browser/accessibility/settings/ChromeAccessibilitySettingsDelegate.java b/chrome/android/java/src/org/chromium/chrome/browser/accessibility/settings/ChromeAccessibilitySettingsDelegate.java +--- a/chrome/android/java/src/org/chromium/chrome/browser/accessibility/settings/ChromeAccessibilitySettingsDelegate.java ++++ b/chrome/android/java/src/org/chromium/chrome/browser/accessibility/settings/ChromeAccessibilitySettingsDelegate.java +@@ -104,7 +104,7 @@ public class ChromeAccessibilitySettingsDelegate implements AccessibilitySetting + private static class MoveTopToolbarToBottomDelegate implements BooleanPreferenceDelegate { + @Override + public boolean isEnabled() { +- return CachedFeatureFlags.isEnabled(ChromeFeatureList.MOVE_TOP_TOOLBAR_TO_BOTTOM); ++ return ChromeFeatureList.sMoveTopToolbarToBottom.isEnabled(); + } + + @Override +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 +@@ -763,7 +763,7 @@ public abstract class ChromeActivity + ImageView shadowImage = findViewById(R.id.toolbar_hairline); + if (shadowImage != null) { + // Invert the shadown if the top toolbar is at the bottom +- if (CachedFeatureFlags.isEnabled(ChromeFeatureList.MOVE_TOP_TOOLBAR_TO_BOTTOM)) { ++ if (ChromeFeatureList.sMoveTopToolbarToBottom.isEnabled()) { + ViewGroup.MarginLayoutParams marginParams = (ViewGroup.MarginLayoutParams)shadowImage.getLayoutParams(); + marginParams.setMargins(marginParams.leftMargin, 0, + marginParams.rightMargin, marginParams.bottomMargin); +diff --git a/chrome/android/java/src/org/chromium/chrome/browser/compositor/CompositorViewHolder.java b/chrome/android/java/src/org/chromium/chrome/browser/compositor/CompositorViewHolder.java +--- a/chrome/android/java/src/org/chromium/chrome/browser/compositor/CompositorViewHolder.java ++++ b/chrome/android/java/src/org/chromium/chrome/browser/compositor/CompositorViewHolder.java +@@ -323,7 +323,7 @@ public class CompositorViewHolder extends FrameLayout + WebContents webContents = mTabVisible.getWebContents(); + if (webContents == null) return; + EventForwarder forwarder = webContents.getEventForwarder(); +- if (CachedFeatureFlags.isEnabled(ChromeFeatureList.MOVE_TOP_TOOLBAR_TO_BOTTOM)) { ++ if (ChromeFeatureList.sMoveTopToolbarToBottom.isEnabled()) { + // no need to adjust the touch offsets, since the content view is never moved + top = 0; + } +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 +@@ -259,7 +259,7 @@ public class LayoutManagerChrome + @Override + public SwipeHandler createToolbarSwipeHandler(boolean supportSwipeDown) { + boolean move_top_toolbar = +- CachedFeatureFlags.isEnabled(ChromeFeatureList.MOVE_TOP_TOOLBAR_TO_BOTTOM); ++ ChromeFeatureList.sMoveTopToolbarToBottom.isEnabled(); + return new ToolbarSwipeHandler(supportSwipeDown && !move_top_toolbar, + supportSwipeDown && move_top_toolbar); + } +diff --git a/chrome/android/java/src/org/chromium/chrome/browser/compositor/layouts/ToolbarSwipeLayout.java b/chrome/android/java/src/org/chromium/chrome/browser/compositor/layouts/ToolbarSwipeLayout.java +--- a/chrome/android/java/src/org/chromium/chrome/browser/compositor/layouts/ToolbarSwipeLayout.java ++++ b/chrome/android/java/src/org/chromium/chrome/browser/compositor/layouts/ToolbarSwipeLayout.java +@@ -411,7 +411,7 @@ public class ToolbarSwipeLayout extends Layout { + mLeftToolbarOverlay.setXOffset(leftX * dpToPx); + } + mLeftTab.setX(leftX); +- if (CachedFeatureFlags.isEnabled(ChromeFeatureList.MOVE_TOP_TOOLBAR_TO_BOTTOM)) { ++ if (ChromeFeatureList.sMoveTopToolbarToBottom.isEnabled()) { + mLeftTab.setY(0); + } else { + mLeftTab.setY(mBrowserControlsStateProvider.getContentOffset() / dpToPx); +@@ -428,7 +428,7 @@ public class ToolbarSwipeLayout extends Layout { + mRightToolbarOverlay.setXOffset(rightX * dpToPx); + } + mRightTab.setX(rightX); +- if (CachedFeatureFlags.isEnabled(ChromeFeatureList.MOVE_TOP_TOOLBAR_TO_BOTTOM)) { ++ if (ChromeFeatureList.sMoveTopToolbarToBottom.isEnabled()) { + mRightTab.setY(0); + } else { + mRightTab.setY(mBrowserControlsStateProvider.getContentOffset() / dpToPx); +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 +@@ -420,7 +420,7 @@ public class StripLayoutHelperManager implements SceneOverlay, PauseResumeWithNa + mWidth, mHeight, orientationChanged, LayoutManagerImpl.time()); + + float top = 0; +- if (CachedFeatureFlags.isEnabled(ChromeFeatureList.MOVE_TOP_TOOLBAR_TO_BOTTOM) && ++ if (ChromeFeatureList.sMoveTopToolbarToBottom.isEnabled() && + mBrowserControlsManagerSupplier.get() != null) { + // move the rectangle to grab the touch events as the tab list (in tablet mode) + // is down and is following the toolbar offset as it moves. +diff --git a/chrome/android/java/src/org/chromium/chrome/browser/compositor/scene_layer/StaticTabSceneLayer.java b/chrome/android/java/src/org/chromium/chrome/browser/compositor/scene_layer/StaticTabSceneLayer.java +--- a/chrome/android/java/src/org/chromium/chrome/browser/compositor/scene_layer/StaticTabSceneLayer.java ++++ b/chrome/android/java/src/org/chromium/chrome/browser/compositor/scene_layer/StaticTabSceneLayer.java +@@ -48,7 +48,7 @@ public class StaticTabSceneLayer extends SceneLayer { + float x = model.get(LayoutTab.RENDER_X) * LayoutTab.sDpToPx; + float y = model.get(LayoutTab.CONTENT_OFFSET) + + model.get(LayoutTab.RENDER_Y) * LayoutTab.sDpToPx; +- if (CachedFeatureFlags.isEnabled(ChromeFeatureList.MOVE_TOP_TOOLBAR_TO_BOTTOM)) { ++ if (ChromeFeatureList.sMoveTopToolbarToBottom.isEnabled()) { + // the page content window never moves, it is fixed at the top + y = 0; + } +diff --git a/chrome/android/java/src/org/chromium/chrome/browser/compositor/scene_layer/TabListSceneLayer.java b/chrome/android/java/src/org/chromium/chrome/browser/compositor/scene_layer/TabListSceneLayer.java +--- a/chrome/android/java/src/org/chromium/chrome/browser/compositor/scene_layer/TabListSceneLayer.java ++++ b/chrome/android/java/src/org/chromium/chrome/browser/compositor/scene_layer/TabListSceneLayer.java +@@ -86,7 +86,7 @@ public class TabListSceneLayer extends SceneLayer { + + TabListSceneLayerJni.get().beginBuildingFrame(mNativePtr, TabListSceneLayer.this); + +- if (CachedFeatureFlags.isEnabled(ChromeFeatureList.MOVE_TOP_TOOLBAR_TO_BOTTOM)) { ++ if (ChromeFeatureList.sMoveTopToolbarToBottom.isEnabled()) { + // the tabs list content window is fixed at the top, where the top toolbar used to be + viewport.top = 0; + backgroundTopOffset = 0; +@@ -126,7 +126,7 @@ public class TabListSceneLayer extends SceneLayer { + contentOffset = browserControls.getContentOffset(); + } + +- if (CachedFeatureFlags.isEnabled(ChromeFeatureList.MOVE_TOP_TOOLBAR_TO_BOTTOM)) { ++ if (ChromeFeatureList.sMoveTopToolbarToBottom.isEnabled()) { + toolbarYOffset = 0; + contentOffset = 0; + } +diff --git a/chrome/android/java/src/org/chromium/chrome/browser/compositor/scene_layer/TabStripSceneLayer.java b/chrome/android/java/src/org/chromium/chrome/browser/compositor/scene_layer/TabStripSceneLayer.java +--- a/chrome/android/java/src/org/chromium/chrome/browser/compositor/scene_layer/TabStripSceneLayer.java ++++ b/chrome/android/java/src/org/chromium/chrome/browser/compositor/scene_layer/TabStripSceneLayer.java +@@ -84,7 +84,7 @@ public class TabStripSceneLayer extends SceneOverlayLayer { + if (mNativePtr == 0) return; + + boolean visible = yOffset > -layoutHelper.getHeight(); +- if (CachedFeatureFlags.isEnabled(ChromeFeatureList.MOVE_TOP_TOOLBAR_TO_BOTTOM)) { ++ if (ChromeFeatureList.sMoveTopToolbarToBottom.isEnabled()) { + // the list of open tabs (in tablet mode) is moved down, above the top + // toolbar which is also below. + // values are in pixel. +diff --git a/chrome/android/java/src/org/chromium/chrome/browser/findinpage/FindToolbarTablet.java b/chrome/android/java/src/org/chromium/chrome/browser/findinpage/FindToolbarTablet.java +--- a/chrome/android/java/src/org/chromium/chrome/browser/findinpage/FindToolbarTablet.java ++++ b/chrome/android/java/src/org/chromium/chrome/browser/findinpage/FindToolbarTablet.java +@@ -169,7 +169,7 @@ public class FindToolbarTablet extends FindToolbar { + + if (show && getVisibility() != View.VISIBLE && mCurrentAnimation != mAnimationEnter) { + View anchorView = getRootView().findViewById(R.id.toolbar); +- if (!CachedFeatureFlags.isEnabled(ChromeFeatureList.MOVE_TOP_TOOLBAR_TO_BOTTOM)) { ++ if (!ChromeFeatureList.sMoveTopToolbarToBottom.isEnabled()) { + FrameLayout.LayoutParams lp = (FrameLayout.LayoutParams) getLayoutParams(); + lp.topMargin = anchorView.getBottom() - mYInsetPx; + setLayoutParams(lp); +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 +@@ -400,7 +400,7 @@ public class BrowserControlsManager + + @Override + public int getTopControlsHeightRealOffset() { +- if (CachedFeatureFlags.isEnabled(ChromeFeatureList.MOVE_TOP_TOOLBAR_TO_BOTTOM)) ++ if (ChromeFeatureList.sMoveTopToolbarToBottom.isEnabled()) + return 0; + else + return mTopControlContainerHeight; +@@ -472,7 +472,7 @@ public class BrowserControlsManager + + @Override + public float getTopVisibleContentOffset() { +- if (CachedFeatureFlags.isEnabled(ChromeFeatureList.MOVE_TOP_TOOLBAR_TO_BOTTOM)) ++ if (ChromeFeatureList.sMoveTopToolbarToBottom.isEnabled()) + return 0; + return getTopControlsHeight() + getTopControlOffset(); + } +diff --git a/chrome/android/java/src/org/chromium/chrome/browser/messages/MessageContainerCoordinator.java b/chrome/android/java/src/org/chromium/chrome/browser/messages/MessageContainerCoordinator.java +--- a/chrome/android/java/src/org/chromium/chrome/browser/messages/MessageContainerCoordinator.java ++++ b/chrome/android/java/src/org/chromium/chrome/browser/messages/MessageContainerCoordinator.java +@@ -64,7 +64,7 @@ public class MessageContainerCoordinator implements BrowserControlsStateProvider + } + CoordinatorLayout.LayoutParams params = + (CoordinatorLayout.LayoutParams) mContainer.getLayoutParams(); +- if (CachedFeatureFlags.isEnabled(ChromeFeatureList.MOVE_TOP_TOOLBAR_TO_BOTTOM)) { ++ if (ChromeFeatureList.sMoveTopToolbarToBottom.isEnabled()) { + params.gravity = Gravity.START | Gravity.BOTTOM; + params.bottomMargin = getContainerTopOffset(); + } else { +@@ -129,7 +129,7 @@ public class MessageContainerCoordinator implements BrowserControlsStateProvider + + /** @return Offset of the message container from the top of the screen. */ + private int getContainerTopOffset() { +- if (CachedFeatureFlags.isEnabled(ChromeFeatureList.MOVE_TOP_TOOLBAR_TO_BOTTOM)) { ++ if (ChromeFeatureList.sMoveTopToolbarToBottom.isEnabled()) { + return mControlsManager.getContentOffset() + + (mControlsManager.getBottomControlsHeight() - mControlsManager.getBottomControlOffset()) + + mContainer.getMessageShadowTopMargin(); +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 +@@ -565,7 +565,7 @@ public class NewTabPage implements NativePage, InvalidationAwareThumbnailProvide + + int bottomMargin = mBrowserControlsStateProvider.getBottomControlsHeight() + - mBrowserControlsStateProvider.getBottomControlOffset(); +- if (CachedFeatureFlags.isEnabled(ChromeFeatureList.MOVE_TOP_TOOLBAR_TO_BOTTOM)) { ++ if (ChromeFeatureList.sMoveTopToolbarToBottom.isEnabled()) { + // move the margin of the new tab page up if the top toolbar is at the bottom + bottomMargin += mBrowserControlsStateProvider.getTopControlsHeight(); + topMargin = -mBrowserControlsStateProvider.getTopControlsHeight(); +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 +@@ -91,7 +91,7 @@ public class RecentTabsPage + mView.addOnAttachStateChangeListener(this); + + if (!DeviceFormFactor.isNonMultiDisplayContextOnTablet(mActivity) || +- CachedFeatureFlags.isEnabled(ChromeFeatureList.MOVE_TOP_TOOLBAR_TO_BOTTOM)) { ++ ChromeFeatureList.sMoveTopToolbarToBottom.isEnabled()) { + mBrowserControlsStateProvider = browserControlsStateProvider; + mBrowserControlsStateProvider.addObserver(this); + onBottomControlsHeightChanged(mBrowserControlsStateProvider.getBottomControlsHeight(), +@@ -289,7 +289,7 @@ 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. +- if (CachedFeatureFlags.isEnabled(ChromeFeatureList.MOVE_TOP_TOOLBAR_TO_BOTTOM)) { ++ if (ChromeFeatureList.sMoveTopToolbarToBottom.isEnabled()) { + topMargin = 0; + recentTabsRoot.setTranslationY(0); + } else { +@@ -297,7 +297,7 @@ public class RecentTabsPage + } + + int bottomMargin = mBrowserControlsStateProvider.getBottomControlsHeight(); +- if (CachedFeatureFlags.isEnabled(ChromeFeatureList.MOVE_TOP_TOOLBAR_TO_BOTTOM)) { ++ if (ChromeFeatureList.sMoveTopToolbarToBottom.isEnabled()) { + bottomMargin += mBrowserControlsStateProvider.getTopControlsHeight(); + } + if (topMargin != layoutParams.topMargin || bottomMargin != layoutParams.bottomMargin) { +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 +@@ -195,7 +195,7 @@ public class SearchActivity extends AsyncInitializationActivity + mSearchBox = (SearchActivityLocationBarLayout) mContentView.findViewById( + R.id.search_location_bar); + mAnchorView = mContentView.findViewById(R.id.toolbar); +- if (CachedFeatureFlags.isEnabled(ChromeFeatureList.MOVE_TOP_TOOLBAR_TO_BOTTOM)) { ++ if (ChromeFeatureList.sMoveTopToolbarToBottom.isEnabled()) { + CoordinatorLayout.LayoutParams layoutParams = (CoordinatorLayout.LayoutParams) + mAnchorView.getLayoutParams(); + layoutParams.gravity = Gravity.START | Gravity.BOTTOM; +diff --git a/chrome/android/java/src/org/chromium/chrome/browser/status_indicator/StatusIndicatorCoordinator.java b/chrome/android/java/src/org/chromium/chrome/browser/status_indicator/StatusIndicatorCoordinator.java +--- a/chrome/android/java/src/org/chromium/chrome/browser/status_indicator/StatusIndicatorCoordinator.java ++++ b/chrome/android/java/src/org/chromium/chrome/browser/status_indicator/StatusIndicatorCoordinator.java +@@ -179,7 +179,7 @@ public class StatusIndicatorCoordinator { + private void initialize() { + final ViewStub stub = mActivity.findViewById(R.id.status_indicator_stub); + final ViewResourceFrameLayout root = (ViewResourceFrameLayout) stub.inflate(); +- if (CachedFeatureFlags.isEnabled(ChromeFeatureList.MOVE_TOP_TOOLBAR_TO_BOTTOM)) { ++ if (ChromeFeatureList.sMoveTopToolbarToBottom.isEnabled()) { + // status messages (such as the offline indicator) are docked at the bottom + CoordinatorLayout.LayoutParams layoutParams = (CoordinatorLayout.LayoutParams)root.getLayoutParams(); + layoutParams.gravity = Gravity.START | Gravity.BOTTOM; +diff --git a/chrome/android/java/src/org/chromium/chrome/browser/status_indicator/StatusIndicatorSceneLayer.java b/chrome/android/java/src/org/chromium/chrome/browser/status_indicator/StatusIndicatorSceneLayer.java +--- a/chrome/android/java/src/org/chromium/chrome/browser/status_indicator/StatusIndicatorSceneLayer.java ++++ b/chrome/android/java/src/org/chromium/chrome/browser/status_indicator/StatusIndicatorSceneLayer.java +@@ -80,7 +80,7 @@ class StatusIndicatorSceneLayer extends SceneOverlayLayer implements SceneOverla + public SceneOverlayLayer getUpdatedSceneOverlayTree( + RectF viewport, RectF visibleViewport, ResourceManager resourceManager, float yOffset) { + int offset = mBrowserControlsStateProvider.getTopControlsMinHeightOffset(); +- if (CachedFeatureFlags.isEnabled(ChromeFeatureList.MOVE_TOP_TOOLBAR_TO_BOTTOM)) { ++ if (ChromeFeatureList.sMoveTopToolbarToBottom.isEnabled()) { + offset = (int)viewport.bottom - offset; + } + StatusIndicatorSceneLayerJni.get().updateStatusIndicatorLayer( +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 +@@ -1310,14 +1310,14 @@ public class ToolbarManager implements UrlFocusChangeListener, ThemeColorObserve + return mLocationBar.getOmniboxStub().isUrlBarFocused(); + } + +- View bottomRoot; ++ View mBottomRoot; + + private void MoveBottomBarOverTopBar() { +- if (bottomRoot != null && +- CachedFeatureFlags.isEnabled(ChromeFeatureList.MOVE_TOP_TOOLBAR_TO_BOTTOM)) { ++ if (mBottomRoot != null && ++ ChromeFeatureList.sMoveTopToolbarToBottom.isEnabled()) { + // move up the container view of the ui + // below there is the toolbar +- bottomRoot.setTranslationY(-mBrowserControlsSizer.getTopControlsHeight()); ++ mBottomRoot.setTranslationY(-mBrowserControlsSizer.getTopControlsHeight()); + } + } + +@@ -1325,10 +1325,10 @@ public class ToolbarManager implements UrlFocusChangeListener, ThemeColorObserve + * Enable the bottom controls. + */ + public void enableBottomControls() { +- bottomRoot = ((ViewStub) mActivity.findViewById(R.id.bottom_controls_stub)).inflate(); ++ mBottomRoot = ((ViewStub) mActivity.findViewById(R.id.bottom_controls_stub)).inflate(); + MoveBottomBarOverTopBar(); + mTabGroupUi = TabManagementModuleProvider.getDelegate().createTabGroupUi(mActivity, +- bottomRoot.findViewById(R.id.bottom_container_slot), mIncognitoStateProvider, ++ mBottomRoot.findViewById(R.id.bottom_container_slot), mIncognitoStateProvider, + mScrimCoordinator, mOmniboxFocusStateSupplier, mBottomSheetController, + mActivityLifecycleDispatcher, mIsWarmOnResumeSupplier, mTabModelSelector, + mTabContentManager, mCompositorViewHolder, +@@ -1336,7 +1336,7 @@ public class ToolbarManager implements UrlFocusChangeListener, ThemeColorObserve + mShareDelegateSupplier, mLayoutStateProviderSupplier, mSnackbarManager); + var bottomControlsCoordinator = new BottomControlsCoordinator(mActivity, mWindowAndroid, + mLayoutManager, mCompositorViewHolder.getResourceManager(), mBrowserControlsSizer, +- mFullscreenManager, (ScrollingBottomViewResourceFrameLayout) root, mTabGroupUi, ++ mFullscreenManager, (ScrollingBottomViewResourceFrameLayout) mBottomRoot, mTabGroupUi, + mTabObscuringHandler, mOverlayPanelVisibilitySupplier, mConstraintsProxy, + mTopUiThemeColorProvider, mActivityTabProvider); + mBottomControlsCoordinatorSupplier.set(bottomControlsCoordinator); +@@ -2128,7 +2128,7 @@ public class ToolbarManager implements UrlFocusChangeListener, ThemeColorObserve + private void setControlContainerTopMargin(int margin) { + final ViewGroup.MarginLayoutParams layoutParams = + ((ViewGroup.MarginLayoutParams) mControlContainer.getLayoutParams()); +- if (CachedFeatureFlags.isEnabled(ChromeFeatureList.MOVE_TOP_TOOLBAR_TO_BOTTOM)) { ++ if (ChromeFeatureList.sMoveTopToolbarToBottom.isEnabled()) { + if (layoutParams.bottomMargin == margin) { + return; + } +diff --git a/chrome/android/java/src/org/chromium/chrome/browser/ui/BottomContainer.java b/chrome/android/java/src/org/chromium/chrome/browser/ui/BottomContainer.java +--- a/chrome/android/java/src/org/chromium/chrome/browser/ui/BottomContainer.java ++++ b/chrome/android/java/src/org/chromium/chrome/browser/ui/BottomContainer.java +@@ -66,13 +66,13 @@ public class BottomContainer + + @Override + public void onTopControlsHeightChanged(int topControlsHeight, int topControlsMinHeight) { +- if (CachedFeatureFlags.isEnabled(ChromeFeatureList.MOVE_TOP_TOOLBAR_TO_BOTTOM)) ++ if (ChromeFeatureList.sMoveTopToolbarToBottom.isEnabled()) + setTranslationY(mBaseYOffset); + } + + @Override + public void onAndroidVisibilityChanged(int visibility) { +- if (CachedFeatureFlags.isEnabled(ChromeFeatureList.MOVE_TOP_TOOLBAR_TO_BOTTOM)) ++ if (ChromeFeatureList.sMoveTopToolbarToBottom.isEnabled()) + setTranslationY(mBaseYOffset); + } + +@@ -80,7 +80,7 @@ public class BottomContainer + public void setTranslationY(float y) { + mBaseYOffset = y; + +- if (CachedFeatureFlags.isEnabled(ChromeFeatureList.MOVE_TOP_TOOLBAR_TO_BOTTOM)) { ++ if (ChromeFeatureList.sMoveTopToolbarToBottom.isEnabled()) { + // the snackbar container is moved up because there is the top toolbar at the bottom + mBaseYOffset = -(mBrowserControlsStateProvider.getTopControlsHeight() + + mBrowserControlsStateProvider.getTopControlOffset()); +diff --git a/chrome/android/java/src/org/chromium/chrome/browser/ui/system/StatusBarColorController.java b/chrome/android/java/src/org/chromium/chrome/browser/ui/system/StatusBarColorController.java +--- a/chrome/android/java/src/org/chromium/chrome/browser/ui/system/StatusBarColorController.java ++++ b/chrome/android/java/src/org/chromium/chrome/browser/ui/system/StatusBarColorController.java +@@ -8,6 +8,7 @@ import android.content.Context; + import android.graphics.Color; + import android.view.View; + import android.view.Window; ++import android.os.Build; + + import androidx.annotation.ColorInt; + import androidx.annotation.Nullable; +@@ -433,11 +434,11 @@ public class StatusBarColorController + boolean needsDarkStatusBarIcons = !ColorUtils.shouldUseLightForegroundOnBackground(color); + ApiCompatibilityUtils.setStatusBarIconColor(root, needsDarkStatusBarIcons); + ApiCompatibilityUtils.setStatusBarColor(window, color); +- if (CachedFeatureFlags.isEnabled(ChromeFeatureList.MOVE_TOP_TOOLBAR_TO_BOTTOM) && ++ if (ChromeFeatureList.sMoveTopToolbarToBottom.isEnabled() && + Build.VERSION.SDK_INT >= Build.VERSION_CODES.M) { +- UiUtils.setNavigationBarIconColor(mWindow.getDecorView().getRootView(), ++ UiUtils.setNavigationBarIconColor(window.getDecorView().getRootView(), + needsDarkStatusBarIcons); +- mWindow.setNavigationBarColor(color); ++ window.setNavigationBarColor(color); + } + } + +diff --git a/chrome/browser/browser_controls/android/java/src/org/chromium/chrome/browser/browser_controls/BrowserControlsMarginSupplier.java b/chrome/browser/browser_controls/android/java/src/org/chromium/chrome/browser/browser_controls/BrowserControlsMarginSupplier.java +--- a/chrome/browser/browser_controls/android/java/src/org/chromium/chrome/browser/browser_controls/BrowserControlsMarginSupplier.java ++++ b/chrome/browser/browser_controls/android/java/src/org/chromium/chrome/browser/browser_controls/BrowserControlsMarginSupplier.java +@@ -54,7 +54,7 @@ public class BrowserControlsMarginSupplier extends ObservableSupplierImpl + + mBrowserControlsStateProvider.getTopControlOffset(); + int bottomMargin = mBrowserControlsStateProvider.getBottomControlsHeight() + - mBrowserControlsStateProvider.getBottomControlOffset(); +- if (CachedFeatureFlags.isEnabled(ChromeFeatureList.MOVE_TOP_TOOLBAR_TO_BOTTOM)) { ++ if (ChromeFeatureList.sMoveTopToolbarToBottom.isEnabled()) { + bottomMargin += topMargin; + topMargin = 0; + } +diff --git a/chrome/browser/ui/android/appmenu/internal/java/src/org/chromium/chrome/browser/ui/appmenu/AppMenu.java b/chrome/browser/ui/android/appmenu/internal/java/src/org/chromium/chrome/browser/ui/appmenu/AppMenu.java +--- a/chrome/browser/ui/android/appmenu/internal/java/src/org/chromium/chrome/browser/ui/appmenu/AppMenu.java ++++ b/chrome/browser/ui/android/appmenu/internal/java/src/org/chromium/chrome/browser/ui/appmenu/AppMenu.java +@@ -12,6 +12,7 @@ import android.graphics.Color; + import android.graphics.Rect; + import android.graphics.drawable.ColorDrawable; + import android.graphics.drawable.Drawable; ++import android.os.Build; + import android.os.SystemClock; + import android.text.TextUtils; + import android.view.Gravity; +@@ -260,7 +261,7 @@ class AppMenu implements OnItemClickListener, OnKeyListener, AppMenuClickHandler + } + + mListView = (ListView) contentView.findViewById(R.id.app_menu_list); +- if (CachedFeatureFlags.isEnabled(ChromeFeatureList.MOVE_TOP_TOOLBAR_TO_BOTTOM)) { ++ if (ChromeFeatureList.sMoveTopToolbarToBottom.isEnabled()) { + // always scroll to the bottom to show new items + mListView.setTranscriptMode(ListView.TRANSCRIPT_MODE_ALWAYS_SCROLL); + // fill content starting from the bottom of the view +@@ -304,7 +305,7 @@ class AppMenu implements OnItemClickListener, OnKeyListener, AppMenuClickHandler + if (popupHeight + popupPosition[1] > visibleDisplayFrame.bottom) { + mPopup.setHeight(visibleDisplayFrame.height()); + } +- if (CachedFeatureFlags.isEnabled(ChromeFeatureList.MOVE_TOP_TOOLBAR_TO_BOTTOM)) { ++ if (ChromeFeatureList.sMoveTopToolbarToBottom.isEnabled()) { + // due to some unknown behaviour, the popup must be resized to + // allow selection without leaving touch + mPopup.setHeight(popupHeight-1); +@@ -356,7 +357,7 @@ class AppMenu implements OnItemClickListener, OnKeyListener, AppMenuClickHandler + int anchorViewX = tempLocation[0]; + int anchorViewY = tempLocation[1]; + +- if (CachedFeatureFlags.isEnabled(ChromeFeatureList.MOVE_TOP_TOOLBAR_TO_BOTTOM)) { ++ if (ChromeFeatureList.sMoveTopToolbarToBottom.isEnabled()) { + // moves the view offset up by the height of the popup + anchorViewY -= popupHeight; + // fix it if it goes offscreen +@@ -554,7 +555,7 @@ class AppMenu implements OnItemClickListener, OnKeyListener, AppMenuClickHandler + } + int availableScreenSpace = Math.max( + anchorViewY, appDimensions.height() - anchorViewY - anchorViewImpactHeight); +- if (CachedFeatureFlags.isEnabled(ChromeFeatureList.MOVE_TOP_TOOLBAR_TO_BOTTOM)) { ++ if (ChromeFeatureList.sMoveTopToolbarToBottom.isEnabled()) { + // use all available space + availableScreenSpace = appDimensions.height() - anchorViewImpactHeight; + if (Build.VERSION.SDK_INT == Build.VERSION_CODES.N) { +diff --git a/chrome/browser/ui/android/appmenu/internal/java/src/org/chromium/chrome/browser/ui/appmenu/AppMenuHandlerImpl.java b/chrome/browser/ui/android/appmenu/internal/java/src/org/chromium/chrome/browser/ui/appmenu/AppMenuHandlerImpl.java +--- a/chrome/browser/ui/android/appmenu/internal/java/src/org/chromium/chrome/browser/ui/appmenu/AppMenuHandlerImpl.java ++++ b/chrome/browser/ui/android/appmenu/internal/java/src/org/chromium/chrome/browser/ui/appmenu/AppMenuHandlerImpl.java +@@ -184,7 +184,7 @@ class AppMenuHandlerImpl + }), + this); + +- if (CachedFeatureFlags.isEnabled(ChromeFeatureList.MOVE_TOP_TOOLBAR_TO_BOTTOM)) { ++ if (ChromeFeatureList.sMoveTopToolbarToBottom.isEnabled()) { + // reverses the order of items in the menu + ModelList modelListReversed = new ModelList(); + for (int i = 0; i < modelList.size(); i++) { +diff --git a/chrome/browser/ui/android/omnibox/java/src/org/chromium/chrome/browser/omnibox/UrlBarCoordinator.java b/chrome/browser/ui/android/omnibox/java/src/org/chromium/chrome/browser/omnibox/UrlBarCoordinator.java +--- a/chrome/browser/ui/android/omnibox/java/src/org/chromium/chrome/browser/omnibox/UrlBarCoordinator.java ++++ b/chrome/browser/ui/android/omnibox/java/src/org/chromium/chrome/browser/omnibox/UrlBarCoordinator.java +@@ -239,7 +239,7 @@ public class UrlBarCoordinator implements UrlBarEditingTextStateProvider, UrlFoc + // to show or hide keyboard anyway. This may happen when we schedule keyboard hide, and + // receive a second request to hide the keyboard instantly. + if (showKeyboard) { +- if (CachedFeatureFlags.isEnabled(ChromeFeatureList.MOVE_TOP_TOOLBAR_TO_BOTTOM)) { ++ if (ChromeFeatureList.sMoveTopToolbarToBottom.isEnabled()) { + // probably due to an android bug, fix the size rather than pan the view. + // with the pan the bar may not always follow the focus if not at the first input by the user + setSoftInputMode(WindowManager.LayoutParams.SOFT_INPUT_ADJUST_RESIZE, /* delay */ false); +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 +@@ -236,7 +236,7 @@ public class AutocompleteCoordinator implements UrlFocusChangeListener, UrlTextC + ViewGroup container = (ViewGroup) ((ViewStub) mParent.getRootView().findViewById( + R.id.omnibox_results_container_stub)) + .inflate(); +- if (CachedFeatureFlags.isEnabled(ChromeFeatureList.MOVE_TOP_TOOLBAR_TO_BOTTOM)) { ++ if (ChromeFeatureList.sMoveTopToolbarToBottom.isEnabled()) { + // make margins works + dropdown.getViewGroup().setClipToPadding(true); + container.bringToFront(); +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 +@@ -1017,7 +1017,7 @@ class AutocompleteMediator implements OnSuggestionsReceivedListener, + @Override + public void onSuggestionDropdownScroll() { + mSuggestionsListScrolled = true; +- if (!CachedFeatureFlags.isEnabled(ChromeFeatureList.MOVE_TOP_TOOLBAR_TO_BOTTOM)) { ++ if (!ChromeFeatureList.sMoveTopToolbarToBottom.isEnabled()) { + mDelegate.setKeyboardVisibility(false, false); + } + } +diff --git a/chrome/browser/ui/android/omnibox/java/src/org/chromium/chrome/browser/omnibox/suggestions/DropdownItemViewInfoListManager.java b/chrome/browser/ui/android/omnibox/java/src/org/chromium/chrome/browser/omnibox/suggestions/DropdownItemViewInfoListManager.java +--- a/chrome/browser/ui/android/omnibox/java/src/org/chromium/chrome/browser/omnibox/suggestions/DropdownItemViewInfoListManager.java ++++ b/chrome/browser/ui/android/omnibox/java/src/org/chromium/chrome/browser/omnibox/suggestions/DropdownItemViewInfoListManager.java +@@ -11,6 +11,8 @@ import android.view.View; + import androidx.annotation.NonNull; + import androidx.annotation.Px; + ++import org.chromium.chrome.browser.flags.CachedFeatureFlags; ++import org.chromium.chrome.browser.flags.ChromeFeatureList; + import org.chromium.chrome.browser.omnibox.OmniboxFeatures; + import org.chromium.chrome.browser.omnibox.R; + import org.chromium.chrome.browser.ui.theme.BrandedColorScheme; +@@ -165,6 +167,7 @@ class DropdownItemViewInfoListManager { + GroupSection previousSection = null; + GroupSection currentSection; + ++ boolean toolbarToBottom = ChromeFeatureList.sMoveTopToolbarToBottom.isEnabled(); + for (int i = 0; i < mSourceViewInfoList.size(); i++) { + final DropdownItemViewInfo item = mSourceViewInfoList.get(i); + final PropertyModel model = item.model; +@@ -180,18 +183,22 @@ class DropdownItemViewInfoListManager { + var topMargin = applyRounding ? groupTopMargin : suggestionVerticalMargin; + var bottomMargin = applyRounding ? groupBottomMargin : suggestionVerticalMargin; + +- model.set(DropdownCommonProperties.BG_TOP_CORNER_ROUNDED, applyRounding); ++ model.set(toolbarToBottom ? ++ DropdownCommonProperties.BG_BOTTOM_CORNER_ROUNDED : ++ DropdownCommonProperties.BG_TOP_CORNER_ROUNDED, applyRounding); + // Do not have margin for the first suggestion, otherwise the first suggestion will + // have a big gap with the Omnibox. +- model.set(DropdownCommonProperties.TOP_MARGIN, ++ model.set(toolbarToBottom ? DropdownCommonProperties.BOTTOM_MARGIN : DropdownCommonProperties.TOP_MARGIN, + previousItem == null + ? getSuggestionListTopMargin(item.processor.getViewTypeId()) + : topMargin); + + if (previousItem != null) { + previousItem.model.set( +- DropdownCommonProperties.BG_BOTTOM_CORNER_ROUNDED, applyRounding); +- previousItem.model.set(DropdownCommonProperties.BOTTOM_MARGIN, bottomMargin); ++ toolbarToBottom ? ++ DropdownCommonProperties.BG_TOP_CORNER_ROUNDED : ++ DropdownCommonProperties.BG_BOTTOM_CORNER_ROUNDED, applyRounding); ++ previousItem.model.set(toolbarToBottom ? DropdownCommonProperties.TOP_MARGIN : DropdownCommonProperties.BOTTOM_MARGIN, bottomMargin); + } + + previousItem = item; +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 +@@ -265,7 +265,7 @@ public class OmniboxSuggestionsDropdown extends RecyclerView { + final Resources resources = context.getResources(); + int paddingBottom = + resources.getDimensionPixelOffset(R.dimen.omnibox_suggestion_list_padding_bottom); +- if (CachedFeatureFlags.isEnabled(ChromeFeatureList.MOVE_TOP_TOOLBAR_TO_BOTTOM)) { ++ if (ChromeFeatureList.sMoveTopToolbarToBottom.isEnabled()) { + // reverse the layout so that the items are at the bottom (in reverse order) + // and anchored to the bottom edge + mLayoutScrollListener.setReverseLayout(true); +@@ -496,7 +496,7 @@ public class OmniboxSuggestionsDropdown extends RecyclerView { + } + + private int calculateAnchorBottomRelativeToContent() { +- if (CachedFeatureFlags.isEnabled(ChromeFeatureList.MOVE_TOP_TOOLBAR_TO_BOTTOM)) ++ if (ChromeFeatureList.sMoveTopToolbarToBottom.isEnabled()) + return 0; + View contentView = + mEmbedder.getAnchorView().getRootView().findViewById(android.R.id.content); +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 +@@ -58,7 +58,7 @@ public class LocationBarFocusScrimHandler implements UrlFocusChangeListener { + + Resources resources = context.getResources(); + int topMargin = resources.getDimensionPixelSize(R.dimen.tab_strip_height); +- if (CachedFeatureFlags.isEnabled(ChromeFeatureList.MOVE_TOP_TOOLBAR_TO_BOTTOM)) { ++ if (ChromeFeatureList.sMoveTopToolbarToBottom.isEnabled()) { + // since the top bar is at the bottom, we need to cover the whole page + topMargin = 0; + } +diff --git a/chrome/browser/ui/android/toolbar/java/src/org/chromium/chrome/browser/toolbar/bottom/BottomControlsMediator.java b/chrome/browser/ui/android/toolbar/java/src/org/chromium/chrome/browser/toolbar/bottom/BottomControlsMediator.java +--- a/chrome/browser/ui/android/toolbar/java/src/org/chromium/chrome/browser/toolbar/bottom/BottomControlsMediator.java ++++ b/chrome/browser/ui/android/toolbar/java/src/org/chromium/chrome/browser/toolbar/bottom/BottomControlsMediator.java +@@ -105,7 +105,7 @@ class BottomControlsMediator implements BrowserControlsStateProvider.Observer, + void setBottomControlsVisible(boolean visible) { + if (visible == true + && mIsBottomControlsVisible == false +- && CachedFeatureFlags.isEnabled(ChromeFeatureList.MOVE_TOP_TOOLBAR_TO_BOTTOM)) { ++ && ChromeFeatureList.sMoveTopToolbarToBottom.isEnabled()) { + // always show the toolbar if the bottom controls are visible, so as not to leave the hole below. + mBrowserControlsSizer.getBrowserVisibilityDelegate().showControlsTransient(); + } +diff --git a/chrome/browser/ui/android/toolbar/java/src/org/chromium/chrome/browser/toolbar/bottom/ScrollingBottomViewSceneLayer.java b/chrome/browser/ui/android/toolbar/java/src/org/chromium/chrome/browser/toolbar/bottom/ScrollingBottomViewSceneLayer.java +--- a/chrome/browser/ui/android/toolbar/java/src/org/chromium/chrome/browser/toolbar/bottom/ScrollingBottomViewSceneLayer.java ++++ b/chrome/browser/ui/android/toolbar/java/src/org/chromium/chrome/browser/toolbar/bottom/ScrollingBottomViewSceneLayer.java +@@ -127,7 +127,7 @@ public class ScrollingBottomViewSceneLayer extends SceneOverlayLayer implements + boolean isShadowVisible = mBottomView.getVisibility() != View.VISIBLE; + + float offsetPy = viewport.height() + mCurrentYOffsetPx; +- if (CachedFeatureFlags.isEnabled(ChromeFeatureList.MOVE_TOP_TOOLBAR_TO_BOTTOM)) { ++ if (ChromeFeatureList.sMoveTopToolbarToBottom.isEnabled()) { + // fix the offset of the fake bottom controls, used only for animations + offsetPy -= (mBottomView.getHeight() - mCurrentYOffsetPx + mTopControlsMinHeightOffset); + } +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 +@@ -110,7 +110,7 @@ public class ToolbarControlContainer extends OptimizedFrameLayout implements Con + @Override + public void initWithToolbar(int toolbarLayoutId) { + try (TraceEvent te = TraceEvent.scoped("ToolbarControlContainer.initWithToolbar")) { +- if (CachedFeatureFlags.isEnabled(ChromeFeatureList.MOVE_TOP_TOOLBAR_TO_BOTTOM)) { ++ if (ChromeFeatureList.sMoveTopToolbarToBottom.isEnabled()) { + // the top toolbar is docked at the bottom + CoordinatorLayout.LayoutParams layoutParams = (CoordinatorLayout.LayoutParams)getLayoutParams(); + layoutParams.gravity = Gravity.START | Gravity.BOTTOM; +diff --git a/chrome/browser/ui/android/toolbar/java/src/org/chromium/chrome/browser/toolbar/top/TopToolbarSceneLayer.java b/chrome/browser/ui/android/toolbar/java/src/org/chromium/chrome/browser/toolbar/top/TopToolbarSceneLayer.java +--- a/chrome/browser/ui/android/toolbar/java/src/org/chromium/chrome/browser/toolbar/top/TopToolbarSceneLayer.java ++++ b/chrome/browser/ui/android/toolbar/java/src/org/chromium/chrome/browser/toolbar/top/TopToolbarSceneLayer.java +@@ -41,7 +41,7 @@ class TopToolbarSceneLayer extends SceneOverlayLayer { + private void pushProperties(PropertyModel model) { + if (mResourceManagerSupplier.get() == null) return; + float offsetY = model.get(TopToolbarOverlayProperties.Y_OFFSET); +- if (CachedFeatureFlags.isEnabled(ChromeFeatureList.MOVE_TOP_TOOLBAR_TO_BOTTOM)) { ++ if (ChromeFeatureList.sMoveTopToolbarToBottom.isEnabled()) { + // fix the offset of the fake top controls, used only for animations + offsetY = model.get(TopToolbarOverlayProperties.VIEWPORT_HEIGHT) - + model.get(TopToolbarOverlayProperties.TOOLBAR_HEIGHT) - -- 2.25.1 diff --git a/build/patches/00Viewport-Protection-flag.patch b/build/patches/00Viewport-Protection-flag.patch index ab2afcaf..d7152286 100644 --- a/build/patches/00Viewport-Protection-flag.patch +++ b/build/patches/00Viewport-Protection-flag.patch @@ -9,7 +9,7 @@ Subject: Viewport Protection flag third_party/blink/common/features.cc | 4 + third_party/blink/public/common/features.h | 3 + .../common/widget/device_emulation_params.h | 6 +- - .../core/css/resolver/style_resolver.cc | 10 ++- + .../core/css/resolver/style_resolver.cc | 7 +- .../blink/renderer/core/events/mouse_event.h | 19 ++++- .../renderer/core/events/pointer_event.h | 11 +++ .../renderer/core/exported/web_view_impl.cc | 2 +- @@ -23,7 +23,7 @@ Subject: Viewport Protection flag .../blink/renderer/core/input/touch.cc | 17 ++++- third_party/blink/renderer/core/page/page.cc | 76 +++++++++++++++++++ third_party/blink/renderer/core/page/page.h | 7 ++ - 20 files changed, 241 insertions(+), 17 deletions(-) + 20 files changed, 239 insertions(+), 16 deletions(-) diff --git a/chrome/browser/about_flags.cc b/chrome/browser/about_flags.cc --- a/chrome/browser/about_flags.cc @@ -122,23 +122,20 @@ diff --git a/third_party/blink/public/common/widget/device_emulation_params.h b/ diff --git a/third_party/blink/renderer/core/css/resolver/style_resolver.cc b/third_party/blink/renderer/core/css/resolver/style_resolver.cc --- a/third_party/blink/renderer/core/css/resolver/style_resolver.cc +++ b/third_party/blink/renderer/core/css/resolver/style_resolver.cc -@@ -1548,8 +1548,14 @@ ComputedStyleBuilder StyleResolver::InitialStyleBuilderForElement() const { +@@ -1548,7 +1548,12 @@ ComputedStyleBuilder StyleResolver::InitialStyleBuilderForElement() const { ComputedStyleBuilder builder = CreateComputedStyleBuilder(); builder.SetRtlOrdering(GetDocument().VisuallyOrdered() ? EOrder::kVisual : EOrder::kLogical); - builder.SetZoom(InitialZoom()); -- builder.SetEffectiveZoom(InitialZoom()); + if (GetDocument().GetPage() && GetDocument().GetPage()->IsScreenEmulated()) { + // hides the zoom override to the dom on the html tag + builder.SetZoom(1); -+ builder.SetEffectiveZoom(InitialZoom()); + } else { + builder.SetZoom(InitialZoom()); -+ builder.SetEffectiveZoom(initial_style_->Zoom()); + } + builder.SetEffectiveZoom(InitialZoom()); builder.SetInForcedColorsMode(GetDocument().InForcedColorsMode()); builder.SetTapHighlightColor( - ComputedStyleInitialValues::InitialTapHighlightColor()); diff --git a/third_party/blink/renderer/core/events/mouse_event.h b/third_party/blink/renderer/core/events/mouse_event.h --- a/third_party/blink/renderer/core/events/mouse_event.h +++ b/third_party/blink/renderer/core/events/mouse_event.h diff --git a/build/patches/00wip-add-browser-policy.patch b/build/patches/00wip-add-browser-policy.patch index 7da2e5a5..f8b0d8f2 100644 --- a/build/patches/00wip-add-browser-policy.patch +++ b/build/patches/00wip-add-browser-policy.patch @@ -371,7 +371,7 @@ diff --git a/components/policy/core/common/features.cc b/components/policy/core/ - "ActivateMetricsReportingEnabledPolicyAndroid", - base::FEATURE_DISABLED_BY_DEFAULT); + "ActivateMetricsReportingEnabledPolicyAndroid", // guard this -+ base::FEATURE_DISABLED_BY_DEFAULT); // guard this ++ base::FEATURE_ENABLED_BY_DEFAULT); // guard this BASE_FEATURE(kDmTokenDeletion, "DmTokenDeletion",