From b4ca08406a711e2e85d9b1d5747b941564cfd038 Mon Sep 17 00:00:00 2001 From: Carmelo Messina Date: Tue, 31 Jan 2023 17:19:07 +0100 Subject: [PATCH] fix tab rearrange, disable mathml, fix use OPAQUE_ORIGIN_FOR_INCOMING_INTENTS see https://github.com/uazo/bromite-buildtools/issues/33#issuecomment-1409929449 --- build/bromite_patches_list.txt | 6 +- ...-Move-navigation-bar-to-bottom-fixup.patch | 28 +++---- build/patches/00Disable-MathMLCore.patch | 25 ++++++ .../00fix-InitiatorOrigin--add-fixup-.patch | 76 +++++++++++++++++++ 4 files changed, 117 insertions(+), 18 deletions(-) create mode 100644 build/patches/00Disable-MathMLCore.patch create mode 100644 build/patches/00fix-InitiatorOrigin--add-fixup-.patch diff --git a/build/bromite_patches_list.txt b/build/bromite_patches_list.txt index 60f15987..a3f9d5b4 100644 --- a/build/bromite_patches_list.txt +++ b/build/bromite_patches_list.txt @@ -269,5 +269,7 @@ AudioBuffer-AnalyserNode-fp-mitigations.patch 00Partitioning-all-cookies-by-top-frame-domain.patch 00109-2-Move-navigation-bar-to-bottom-fixup.patch -00109-Add-an-always-incognito-mode-fixup.patch -00Remove-experimental-relative-c---abi-vtables.patch \ No newline at end of file +00Remove-experimental-relative-c---abi-vtables.patch +00Disable-MathMLCore.patch +00fix-InitiatorOrigin--add-fixup-.patch +00109-Add-an-always-incognito-mode-fixup.patch \ No newline at end of file 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 index b0e1cab2..b185b8ca 100644 --- a/build/patches/00109-2-Move-navigation-bar-to-bottom-fixup.patch +++ b/build/patches/00109-2-Move-navigation-bar-to-bottom-fixup.patch @@ -3,36 +3,32 @@ Date: Mon, 30 Jan 2023 15:13:51 +0000 Subject: 109-2 Move navigation bar to bottom fixup --- - .../tasks/tab_management/TabListCoordinator.java | 8 +++++--- + .../tasks/tab_management/TabListCoordinator.java | 5 +++-- .../DropdownItemViewInfoListManager.java | 15 +++++++++++---- - 2 files changed, 16 insertions(+), 7 deletions(-) + 2 files changed, 14 insertions(+), 6 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 -@@ -139,8 +139,10 @@ public class TabListCoordinator +@@ -139,15 +139,16 @@ public class TabListCoordinator @Override public void scrollToPositionWithOffset(int position, int offset) { -- mLastPosition = position; ++ if (offset != 0) return; + mLastPosition = position; - super.scrollToPositionWithOffset(position, getPaddingBottom()); -+ if (mIsFirstLayout) { -+ mLastPosition = position; -+ super.scrollToPositionWithOffset(mLastPosition, getPaddingBottom()); -+ } ++ super.scrollToPositionWithOffset(mLastPosition, getPaddingBottom()); } @Override -@@ -152,8 +154,8 @@ public class TabListCoordinator + 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) { mTopPadding = Math.min(mTopPadding, mRecyclerView.getHeight() - lastView.getHeight()); - if (mIsFirstLayout) { -- mIsFirstLayout = false; - scrollToPositionWithOffset(mLastPosition, 0); -+ mIsFirstLayout = 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 diff --git a/build/patches/00Disable-MathMLCore.patch b/build/patches/00Disable-MathMLCore.patch new file mode 100644 index 00000000..8da3fb32 --- /dev/null +++ b/build/patches/00Disable-MathMLCore.patch @@ -0,0 +1,25 @@ +From: Your Name +Date: Tue, 31 Jan 2023 13:57:29 +0000 +Subject: Disable MathMLCore + +--- + .../blink/renderer/platform/runtime_enabled_features.json5 | 3 ++- + 1 file changed, 2 insertions(+), 1 deletion(-) + +diff --git a/third_party/blink/renderer/platform/runtime_enabled_features.json5 b/third_party/blink/renderer/platform/runtime_enabled_features.json5 +--- a/third_party/blink/renderer/platform/runtime_enabled_features.json5 ++++ b/third_party/blink/renderer/platform/runtime_enabled_features.json5 +@@ -1684,9 +1684,10 @@ + }, + { + name: "MathMLCore", +- status: "stable", ++ status: "experimental", + depends_on: ["LayoutNG"], + base_feature: "MathMLCore", ++ base_feature_status: "disabled", + }, + { + name:"MeasureMemory", +-- +2.25.1 diff --git a/build/patches/00fix-InitiatorOrigin--add-fixup-.patch b/build/patches/00fix-InitiatorOrigin--add-fixup-.patch new file mode 100644 index 00000000..cd6d72dd --- /dev/null +++ b/build/patches/00fix-InitiatorOrigin--add-fixup-.patch @@ -0,0 +1,76 @@ +From: Your Name +Date: Tue, 31 Jan 2023 13:58:21 +0000 +Subject: fix InitiatorOrigin (add fixup) + +--- + .../chromium/chrome/browser/IntentHandler.java | 16 +++++++++++++++- + .../chrome/browser/LaunchIntentDispatcher.java | 2 +- + .../shared_intent/SharedIntentShareActivity.java | 1 + + 3 files changed, 17 insertions(+), 2 deletions(-) + +diff --git a/chrome/android/java/src/org/chromium/chrome/browser/IntentHandler.java b/chrome/android/java/src/org/chromium/chrome/browser/IntentHandler.java +--- a/chrome/android/java/src/org/chromium/chrome/browser/IntentHandler.java ++++ b/chrome/android/java/src/org/chromium/chrome/browser/IntentHandler.java +@@ -214,6 +214,9 @@ public class IntentHandler { + private static final String EXTRA_TAB_LAUNCH_TYPE = + "org.chromium.chrome.browser.tab_launch_type"; + ++ private static final String EXTRA_TAB_FORCE_INCOGNITO_TYPE = ++ "org.chromium.chrome.browser.force_incognito"; ++ + /** + * A hash code for the URL to verify intent data hasn't been modified. + */ +@@ -1443,6 +1446,17 @@ public class IntentHandler { + return IntentUtils.safeGetSerializableExtra(intent, EXTRA_TAB_LAUNCH_TYPE); + } + ++ public static void setForceIncognitoMode(Intent intent) { ++ intent.putExtra(EXTRA_TAB_FORCE_INCOGNITO_TYPE, 1); ++ intent.putExtra(IntentHandler.EXTRA_OPEN_NEW_INCOGNITO_TAB, true); ++ setTabLaunchType(intent, TabLaunchType.FROM_EXTERNAL_APP); ++ } ++ ++ public static boolean isForceIncognitoMode(Intent intent) { ++ Integer value = IntentUtils.safeGetSerializableExtra(intent, EXTRA_TAB_FORCE_INCOGNITO_TYPE); ++ return value == null ? false : value == 1; ++ } ++ + /** + * Creates an Intent that will launch a ChromeTabbedActivity on the new tab page. The Intent + * will be trusted and therefore able to launch Incognito tabs. +@@ -1580,7 +1594,7 @@ public class IntentHandler { + String headers = getExtraHeadersFromIntent(intent); + headers = maybeAddAdditionalContentHeaders(intent, url, headers); + +- if (IntentHandler.wasIntentSenderChrome(intent)) { ++ if (IntentHandler.wasIntentSenderChrome(intent) && !isForceIncognitoMode(intent)) { + // Handle post data case. + String postDataType = + IntentUtils.safeGetStringExtra(intent, IntentHandler.EXTRA_POST_DATA_TYPE); +diff --git a/chrome/android/java/src/org/chromium/chrome/browser/LaunchIntentDispatcher.java b/chrome/android/java/src/org/chromium/chrome/browser/LaunchIntentDispatcher.java +--- a/chrome/android/java/src/org/chromium/chrome/browser/LaunchIntentDispatcher.java ++++ b/chrome/android/java/src/org/chromium/chrome/browser/LaunchIntentDispatcher.java +@@ -456,8 +456,8 @@ public class LaunchIntentDispatcher implements IntentHandler.IntentHandlerDelega + /*incognito*/true); + newIntent.setData(mIntent.getData()); + newIntent.setPackage(applicationContext.getPackageName()); +- IntentHandler.setTabLaunchType(newIntent, TabLaunchType.FROM_EXTERNAL_APP); + newIntent.setFlags(Intent.FLAG_ACTIVITY_NEW_TASK); ++ IntentHandler.setForceIncognitoMode(newIntent); + } + + long time = SystemClock.elapsedRealtime(); +diff --git a/chrome/android/java/src/org/chromium/chrome/browser/sharing/shared_intent/SharedIntentShareActivity.java b/chrome/android/java/src/org/chromium/chrome/browser/sharing/shared_intent/SharedIntentShareActivity.java +--- a/chrome/android/java/src/org/chromium/chrome/browser/sharing/shared_intent/SharedIntentShareActivity.java ++++ b/chrome/android/java/src/org/chromium/chrome/browser/sharing/shared_intent/SharedIntentShareActivity.java +@@ -100,6 +100,7 @@ public class SharedIntentShareActivity + chromeIntent.setData(Uri.parse(linkUrl)); + chromeIntent.setPackage(applicationContext.getPackageName()); + chromeIntent.setFlags(Intent.FLAG_ACTIVITY_NEW_TASK); ++ IntentHandler.setForceIncognitoMode(chromeIntent); + + LaunchIntentDispatcher.dispatch(this, chromeIntent); + finish(); +-- +2.25.1