From 73df91cb28b74f36fb83ce803b871b839716e750 Mon Sep 17 00:00:00 2001 From: csagan5 <32685696+csagan5@users.noreply.github.com> Date: Wed, 26 May 2021 20:20:16 +0200 Subject: [PATCH 01/11] Simplify issue template crash section --- .github/ISSUE_TEMPLATE/bug_report.md | 9 +++++---- 1 file changed, 5 insertions(+), 4 deletions(-) diff --git a/.github/ISSUE_TEMPLATE/bug_report.md b/.github/ISSUE_TEMPLATE/bug_report.md index 73598bb2..782bf25a 100644 --- a/.github/ISSUE_TEMPLATE/bug_report.md +++ b/.github/ISSUE_TEMPLATE/bug_report.md @@ -57,12 +57,13 @@ Yes/No ### Is the bug a crash? - +No + +-- or -- + Yes, this is the crash dump: ``` - + ``` ### Describe the bug From 07102294d05bc8ae5bf13335a97665a5e2f63b6f Mon Sep 17 00:00:00 2001 From: uazo <29201891+uazo@users.noreply.github.com> Date: Thu, 27 May 2021 19:22:27 +0200 Subject: [PATCH 02/11] added export of tabs collection (#1177) --- .../Add-menu-item-to-bookmark-all-tabs.patch | 30 ++++++++++++++++++- 1 file changed, 29 insertions(+), 1 deletion(-) diff --git a/build/patches/Add-menu-item-to-bookmark-all-tabs.patch b/build/patches/Add-menu-item-to-bookmark-all-tabs.patch index 977c2010..c0295506 100644 --- a/build/patches/Add-menu-item-to-bookmark-all-tabs.patch +++ b/build/patches/Add-menu-item-to-bookmark-all-tabs.patch @@ -9,6 +9,7 @@ Subject: Add menu item to bookmark all tabs .../browser/bookmarks/BookmarkUtils.java | 4 ++ .../android/bookmarks/bookmark_bridge.cc | 17 ++++++ .../android/bookmarks/bookmark_bridge.h | 4 ++ + .../browser/bookmarks/bookmark_html_writer.cc | 10 +++ .../bookmarks/chrome_bookmark_client.cc | 2 + .../strings/android_chrome_strings.grd | 3 + components/bookmark_bar_strings.grdp | 6 ++ @@ -21,7 +22,7 @@ Subject: Add menu item to bookmark all tabs components/bookmarks/browser/bookmark_node.cc | 13 ++++ components/bookmarks/browser/bookmark_node.h | 5 ++ components/bookmarks/browser/model_loader.cc | 3 +- - 18 files changed, 191 insertions(+), 7 deletions(-) + 19 files changed, 201 insertions(+), 7 deletions(-) diff --git a/chrome/android/java/res/menu/main_menu.xml b/chrome/android/java/res/menu/main_menu.xml --- a/chrome/android/java/res/menu/main_menu.xml @@ -286,6 +287,33 @@ diff --git a/chrome/browser/android/bookmarks/bookmark_bridge.h b/chrome/browser base::android::ScopedJavaLocalRef GetOtherFolderId( JNIEnv* env, const base::android::JavaParamRef& obj); +diff --git a/chrome/browser/bookmarks/bookmark_html_writer.cc b/chrome/browser/bookmarks/bookmark_html_writer.cc +--- a/chrome/browser/bookmarks/bookmark_html_writer.cc ++++ b/chrome/browser/bookmarks/bookmark_html_writer.cc +@@ -212,6 +212,14 @@ class Writer : public base::RefCountedThreadSafe { + return; + } + ++ base::Value* tabs_collection_value = nullptr; ++ if (roots_d_value->Get(BookmarkCodec::kTabsBookmarkFolderNameKey, ++ &tabs_collection_value) && ++ tabs_collection_value->type() == base::Value::Type::DICTIONARY) { ++ WriteNode(*static_cast(tabs_collection_value), ++ BookmarkNode::TABS_COLLECTION); ++ } ++ + DecrementIndent(); + + Write(kFolderChildrenEnd); +@@ -484,6 +492,8 @@ void BookmarkFaviconFetcher::ExportBookmarks() { + BookmarkModelFactory::GetForBrowserContext(profile_)->other_node()); + ExtractUrls( + BookmarkModelFactory::GetForBrowserContext(profile_)->mobile_node()); ++ ExtractUrls( ++ BookmarkModelFactory::GetForBrowserContext(profile_)->tabs_collection_node()); + if (!bookmark_urls_.empty()) + FetchNextFavicon(); + else diff --git a/chrome/browser/bookmarks/chrome_bookmark_client.cc b/chrome/browser/bookmarks/chrome_bookmark_client.cc --- a/chrome/browser/bookmarks/chrome_bookmark_client.cc +++ b/chrome/browser/bookmarks/chrome_bookmark_client.cc From 40c93af283996a13275a5b1a0bdc73891fd56189 Mon Sep 17 00:00:00 2001 From: csagan5 <32685696+csagan5@users.noreply.github.com> Date: Sun, 6 Jun 2021 07:53:35 +0200 Subject: [PATCH 03/11] Release 91.0.4472.97 --- CHANGELOG.md | 7 + README.md | 1 + build/RELEASE | 2 +- build/bromite_patches_list.txt | 3 + .../AImageReader-CFI-crash-mitigations.patch | 4 +- .../Add-AllowUserCertificates-flag.patch | 2 +- .../Add-IsCleartextPermitted-flag.patch | 6 +- ...-allow-screenshots-in-Incognito-mode.patch | 4 +- .../Add-an-always-incognito-mode.patch | 82 +++++++---- .../Add-bookmark-import-export-actions.patch | 6 +- build/patches/Add-exit-menu-item.patch | 4 +- ...g-for-omnibox-autocomplete-filtering.patch | 136 ++++++++++++++++++ .../Add-flag-for-save-data-header.patch | 4 +- ...nfigure-maximum-connections-per-host.patch | 4 +- ...ontrol-video-playback-resume-feature.patch | 4 +- .../Add-flag-to-disable-IPv6-probes.patch | 4 +- build/patches/Add-flag-to-disable-WebGL.patch | 4 +- ...-to-disable-external-intent-requests.patch | 55 +++++++ ...sable-device-motion-orientation-APIs.patch | 6 +- .../Add-menu-item-to-bookmark-all-tabs.patch | 6 +- .../Add-menu-item-to-view-source.patch | 2 +- .../Add-option-to-force-tablet-UI.patch | 9 +- ...-to-not-persist-tabs-across-sessions.patch | 2 +- .../Automated-domain-substitution.patch | 50 +++---- .../Bromite-AdBlockUpdaterService.patch | 6 +- ...DRM-media-origin-IDs-preprovisioning.patch | 2 +- ...rrentBrowsingContextMedia-by-default.patch | 2 +- build/patches/Disable-all-promo-dialogs.patch | 4 +- .../Disable-smart-selection-by-default.patch | 102 +++++++++++-- .../Disable-text-fragments-by-default.patch | 12 +- ...nalFormRedirectsNoGesture-by-default.patch | 23 +++ ...e-darken-websites-checkbox-in-themes.patch | 4 +- ...-prefetch-privacy-changes-by-default.patch | 2 +- .../Enable-user-agent-freeze-by-default.patch | 2 +- ...ripts-for-AMP-tracking-ads-and-video.patch | 4 +- .../patches/Modify-default-preferences.patch | 4 +- ...e-signin-and-data-saver-integrations.patch | 10 +- .../Restore-Search-Ready-Omnibox-flag.patch | 6 +- .../Restore-Simplified-NTP-launch.patch | 20 +-- ...emove-disable-pull-to-refresh-effect.patch | 6 +- ...vert-flags-remove-num-raster-threads.patch | 6 +- build/patches/Unexpire-tab-groups-flags.patch | 4 +- build/patches/Update-i18n-zh_CN-support.patch | 2 +- build/patches/User-agent-customization.patch | 2 +- 44 files changed, 482 insertions(+), 148 deletions(-) create mode 100644 build/patches/Add-flag-for-omnibox-autocomplete-filtering.patch create mode 100644 build/patches/Add-flag-to-disable-external-intent-requests.patch create mode 100644 build/patches/Enable-IntentBlockExternalFormRedirectsNoGesture-by-default.patch diff --git a/CHANGELOG.md b/CHANGELOG.md index 63a2391f..2a31924b 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -1,3 +1,10 @@ +# 91.0.4472.97 +* fix opening new tabs from links in always-incognito mode (thanks to @uazo, fixes https://github.com/bromite/bromite/issues/1154) +* add flag for omnibox autocomplete filtering (fixes https://github.com/bromite/bromite/issues/1152) +* enable IntentBlockExternalFormRedirectsNoGesture by default +* add flag to disable external intent requests +* fix for tab collection temporary/non-exportable (thanks to @uazo, fixes https://github.com/bromite/bromite/issues/1138) + # 91.0.4472.50 * unexpire tab group flags `#enable-tab-groups` and `#enable-tab-groups-ui-improvements` * replace known good hostname used for DoH test (fixes https://github.com/bromite/bromite/issues/1148) diff --git a/README.md b/README.md index bc41c2f1..9f58c4f0 100644 --- a/README.md +++ b/README.md @@ -116,6 +116,7 @@ New flags: * `#export-bookmarks-use-saf`, disabled by default * `#allow-user-certificates`, disabled by default * `#cleartext-permitted`, enabled by default +* `#omnibox-autocomplete-filtering`, can be used to restrict omnibox autocomplete results # Privacy limitations diff --git a/build/RELEASE b/build/RELEASE index d21f01d3..72596f5a 100644 --- a/build/RELEASE +++ b/build/RELEASE @@ -1 +1 @@ -91.0.4472.50 +91.0.4472.97 diff --git a/build/bromite_patches_list.txt b/build/bromite_patches_list.txt index ec34410c..99d1ec17 100644 --- a/build/bromite_patches_list.txt +++ b/build/bromite_patches_list.txt @@ -148,4 +148,7 @@ Add-IsCleartextPermitted-flag.patch Disable-RTCGetCurrentBrowsingContextMedia-by-default.patch Disable-FLoC-by-default.patch Unexpire-tab-groups-flags.patch +Add-flag-for-omnibox-autocomplete-filtering.patch +Enable-IntentBlockExternalFormRedirectsNoGesture-by-default.patch +Add-flag-to-disable-external-intent-requests.patch Automated-domain-substitution.patch diff --git a/build/patches/AImageReader-CFI-crash-mitigations.patch b/build/patches/AImageReader-CFI-crash-mitigations.patch index edb3516a..9ad3fe70 100644 --- a/build/patches/AImageReader-CFI-crash-mitigations.patch +++ b/build/patches/AImageReader-CFI-crash-mitigations.patch @@ -82,7 +82,7 @@ diff --git a/base/android/android_image_reader_compat.h b/base/android/android_i diff --git a/chrome/browser/flag-metadata.json b/chrome/browser/flag-metadata.json --- a/chrome/browser/flag-metadata.json +++ b/chrome/browser/flag-metadata.json -@@ -1935,7 +1935,7 @@ +@@ -1940,7 +1940,7 @@ { "name": "enable-image-reader", "owners": [ "vikassoni", "liberato" ], @@ -225,7 +225,7 @@ diff --git a/gpu/ipc/service/stream_texture_android.cc b/gpu/ipc/service/stream_ diff --git a/media/base/media_switches.cc b/media/base/media_switches.cc --- a/media/base/media_switches.cc +++ b/media/base/media_switches.cc -@@ -619,6 +619,10 @@ const base::Feature kMediaDrmPreprovisioning{"MediaDrmPreprovisioning", +@@ -627,6 +627,10 @@ const base::Feature kMediaDrmPreprovisioning{"MediaDrmPreprovisioning", const base::Feature kMediaDrmPreprovisioningAtStartup{ "MediaDrmPreprovisioningAtStartup", base::FEATURE_ENABLED_BY_DEFAULT}; diff --git a/build/patches/Add-AllowUserCertificates-flag.patch b/build/patches/Add-AllowUserCertificates-flag.patch index e49f22be..f7600229 100644 --- a/build/patches/Add-AllowUserCertificates-flag.patch +++ b/build/patches/Add-AllowUserCertificates-flag.patch @@ -99,7 +99,7 @@ diff --git a/chrome/browser/flags/android/chrome_feature_list.cc b/chrome/browse &kAddToHomescreenIPH, &kAllowNewIncognitoTabIntents, &kAllowRemoteContextForNotifications, -@@ -333,6 +334,9 @@ const base::Feature* FindFeatureExposedToJava(const std::string& feature_name) { +@@ -334,6 +335,9 @@ const base::Feature* FindFeatureExposedToJava(const std::string& feature_name) { // Alphabetical: diff --git a/build/patches/Add-IsCleartextPermitted-flag.patch b/build/patches/Add-IsCleartextPermitted-flag.patch index 6b6a953e..0ac33097 100644 --- a/build/patches/Add-IsCleartextPermitted-flag.patch +++ b/build/patches/Add-IsCleartextPermitted-flag.patch @@ -14,7 +14,7 @@ Subject: Add IsCleartextPermitted flag diff --git a/chrome/browser/about_flags.cc b/chrome/browser/about_flags.cc --- a/chrome/browser/about_flags.cc +++ b/chrome/browser/about_flags.cc -@@ -7359,6 +7359,11 @@ const FeatureEntry kFeatureEntries[] = { +@@ -7364,6 +7364,11 @@ const FeatureEntry kFeatureEntries[] = { FEATURE_VALUE_TYPE( chrome::android::kBookmarksExportUseSaf)}, @@ -29,7 +29,7 @@ diff --git a/chrome/browser/about_flags.cc b/chrome/browser/about_flags.cc diff --git a/chrome/browser/flag_descriptions.cc b/chrome/browser/flag_descriptions.cc --- a/chrome/browser/flag_descriptions.cc +++ b/chrome/browser/flag_descriptions.cc -@@ -1386,6 +1386,10 @@ const char kHostedAppShimCreationName[] = +@@ -1392,6 +1392,10 @@ const char kHostedAppShimCreationName[] = const char kHostedAppShimCreationDescription[] = "Create app shims on Mac when creating a hosted app."; @@ -43,7 +43,7 @@ diff --git a/chrome/browser/flag_descriptions.cc b/chrome/browser/flag_descripti diff --git a/chrome/browser/flag_descriptions.h b/chrome/browser/flag_descriptions.h --- a/chrome/browser/flag_descriptions.h +++ b/chrome/browser/flag_descriptions.h -@@ -817,6 +817,9 @@ extern const char kHostedAppQuitNotificationDescription[]; +@@ -820,6 +820,9 @@ extern const char kHostedAppQuitNotificationDescription[]; extern const char kHostedAppShimCreationName[]; extern const char kHostedAppShimCreationDescription[]; diff --git a/build/patches/Add-a-flag-to-allow-screenshots-in-Incognito-mode.patch b/build/patches/Add-a-flag-to-allow-screenshots-in-Incognito-mode.patch index 203dfd09..949ec630 100644 --- a/build/patches/Add-a-flag-to-allow-screenshots-in-Incognito-mode.patch +++ b/build/patches/Add-a-flag-to-allow-screenshots-in-Incognito-mode.patch @@ -33,7 +33,7 @@ diff --git a/chrome/browser/about_flags.cc b/chrome/browser/about_flags.cc diff --git a/chrome/browser/flag_descriptions.cc b/chrome/browser/flag_descriptions.cc --- a/chrome/browser/flag_descriptions.cc +++ b/chrome/browser/flag_descriptions.cc -@@ -605,6 +605,11 @@ const char kEnableAutofillCreditCardAuthenticationDescription[] = +@@ -611,6 +611,11 @@ const char kEnableAutofillCreditCardAuthenticationDescription[] = "authenticator (if available) to verify card ownership when retrieving " "credit cards from Google Payments."; @@ -48,7 +48,7 @@ diff --git a/chrome/browser/flag_descriptions.cc b/chrome/browser/flag_descripti diff --git a/chrome/browser/flag_descriptions.h b/chrome/browser/flag_descriptions.h --- a/chrome/browser/flag_descriptions.h +++ b/chrome/browser/flag_descriptions.h -@@ -369,6 +369,9 @@ extern const char kEnableAutofillAddressSavePromptDescription[]; +@@ -372,6 +372,9 @@ extern const char kEnableAutofillAddressSavePromptDescription[]; extern const char kEnableAutofillCreditCardAblationExperimentDisplayName[]; extern const char kEnableAutofillCreditCardAblationExperimentDescription[]; diff --git a/build/patches/Add-an-always-incognito-mode.patch b/build/patches/Add-an-always-incognito-mode.patch index 373745bc..28f771a1 100644 --- a/build/patches/Add-an-always-incognito-mode.patch +++ b/build/patches/Add-an-always-incognito-mode.patch @@ -10,10 +10,10 @@ Enable incognito custom tabs and fix crashes for incognito/custom tab intents (c chrome/android/chrome_java_sources.gni | 1 + .../java/res/xml/privacy_preferences.xml | 5 ++ .../AlwaysIncognitoLinkInterceptor.java | 80 +++++++++++++++++++ - .../chrome/browser/ChromeTabbedActivity.java | 6 +- + .../chrome/browser/ChromeTabbedActivity.java | 8 +- .../chrome/browser/app/ChromeActivity.java | 4 + .../AppMenuPropertiesDelegateImpl.java | 6 ++ - .../ChromeContextMenuPopulator.java | 9 ++- + .../ChromeContextMenuPopulator.java | 28 +++++-- .../CustomTabActivityLifecycleUmaTracker.java | 25 ------ .../CustomTabIntentDataProvider.java | 5 +- .../browser/init/StartupTabPreloader.java | 14 +++- @@ -23,7 +23,7 @@ Enable incognito custom tabs and fix crashes for incognito/custom tab intents (c .../webapps/WebappIntentDataProvider.java | 14 ++++ .../flags/android/chrome_feature_list.cc | 2 +- .../strings/android_chrome_strings.grd | 7 ++ - 16 files changed, 171 insertions(+), 34 deletions(-) + 16 files changed, 187 insertions(+), 39 deletions(-) create mode 100644 chrome/android/java/src/org/chromium/chrome/browser/AlwaysIncognitoLinkInterceptor.java diff --git a/chrome/android/chrome_java_sources.gni b/chrome/android/chrome_java_sources.gni @@ -140,15 +140,15 @@ new file mode 100644 diff --git a/chrome/android/java/src/org/chromium/chrome/browser/ChromeTabbedActivity.java b/chrome/android/java/src/org/chromium/chrome/browser/ChromeTabbedActivity.java --- a/chrome/android/java/src/org/chromium/chrome/browser/ChromeTabbedActivity.java +++ b/chrome/android/java/src/org/chromium/chrome/browser/ChromeTabbedActivity.java -@@ -58,6 +58,7 @@ import org.chromium.base.task.PostTask; - import org.chromium.base.task.TaskTraits; +@@ -57,6 +57,7 @@ import org.chromium.base.supplier.UnownedUserDataSupplier; + import org.chromium.base.task.PostTask; import org.chromium.cc.input.BrowserControlsState; import org.chromium.chrome.R; +import org.chromium.chrome.browser.AlwaysIncognitoLinkInterceptor; import org.chromium.chrome.browser.IntentHandler.IntentHandlerDelegate; import org.chromium.chrome.browser.IntentHandler.TabOpenType; import org.chromium.chrome.browser.accessibility_tab_switcher.OverviewListLayout; -@@ -1696,8 +1697,9 @@ public class ChromeTabbedActivity extends ChromeActivity> groupedItems = new ArrayList<>(); - - if (mParams.isAnchor()) { -@@ -355,6 +361,7 @@ public class ChromeContextMenuPopulator implements ContextMenuPopulator { - linkGroup.add(createListItem(Item.OPEN_IN_NEW_TAB_IN_GROUP)); ++ + @Override + public List> buildContextMenu() { + boolean hasSaveImage = false; +@@ -344,14 +358,18 @@ public class ChromeContextMenuPopulator implements ContextMenuPopulator { + && UrlUtilities.isAcceptedScheme(mParams.getUrl().getSpec())) { + if (mMode == ContextMenuMode.NORMAL) { + if (TabUiFeatureUtilities.ENABLE_TAB_GROUP_AUTO_CREATION.getValue()) { +- linkGroup.add(createListItem(Item.OPEN_IN_NEW_TAB)); ++ if (canOpenNewTab()) linkGroup.add(createListItem(Item.OPEN_IN_NEW_TAB)); + } else { + if (TabUiFeatureUtilities.showContextMenuOpenNewTabInGroupItemFirst()) { +- linkGroup.add(createListItem(Item.OPEN_IN_NEW_TAB_IN_GROUP)); +- linkGroup.add(createListItem(Item.OPEN_IN_NEW_TAB)); ++ if (canOpenNewTab()) { ++ linkGroup.add(createListItem(Item.OPEN_IN_NEW_TAB_IN_GROUP)); ++ linkGroup.add(createListItem(Item.OPEN_IN_NEW_TAB)); ++ } + } else { +- linkGroup.add(createListItem(Item.OPEN_IN_NEW_TAB)); +- linkGroup.add(createListItem(Item.OPEN_IN_NEW_TAB_IN_GROUP)); ++ if (canOpenNewTab()) { ++ linkGroup.add(createListItem(Item.OPEN_IN_NEW_TAB)); ++ linkGroup.add(createListItem(Item.OPEN_IN_NEW_TAB_IN_GROUP)); ++ } } } -+ if (!mItemDelegate.isIncognito() && mItemDelegate.isIncognitoSupported()) { - linkGroup.add(createListItem(Item.OPEN_IN_INCOGNITO_TAB)); - } -@@ -377,7 +384,7 @@ public class ChromeContextMenuPopulator implements ContextMenuPopulator { - } - } - if (FirstRunStatus.getFirstRunFlowComplete()) { -- if (!mItemDelegate.isIncognito() -+ if ((always_incognito || !mItemDelegate.isIncognito()) - && UrlUtilities.isDownloadableScheme(mParams.getLinkUrl())) { - linkGroup.add(createListItem(Item.SAVE_LINK_AS)); - } diff --git a/chrome/android/java/src/org/chromium/chrome/browser/customtabs/CustomTabActivityLifecycleUmaTracker.java b/chrome/android/java/src/org/chromium/chrome/browser/customtabs/CustomTabActivityLifecycleUmaTracker.java --- a/chrome/android/java/src/org/chromium/chrome/browser/customtabs/CustomTabActivityLifecycleUmaTracker.java +++ b/chrome/android/java/src/org/chromium/chrome/browser/customtabs/CustomTabActivityLifecycleUmaTracker.java diff --git a/build/patches/Add-bookmark-import-export-actions.patch b/build/patches/Add-bookmark-import-export-actions.patch index 7e01eb7e..461b4011 100644 --- a/build/patches/Add-bookmark-import-export-actions.patch +++ b/build/patches/Add-bookmark-import-export-actions.patch @@ -738,7 +738,7 @@ diff --git a/chrome/browser/BUILD.gn b/chrome/browser/BUILD.gn diff --git a/chrome/browser/about_flags.cc b/chrome/browser/about_flags.cc --- a/chrome/browser/about_flags.cc +++ b/chrome/browser/about_flags.cc -@@ -7309,6 +7309,12 @@ const FeatureEntry kFeatureEntries[] = { +@@ -7314,6 +7314,12 @@ const FeatureEntry kFeatureEntries[] = { FEATURE_VALUE_TYPE(features::kDesktopPWAsAppIconShortcutsMenuUI)}, #endif @@ -1257,7 +1257,7 @@ diff --git a/chrome/browser/download/android/java/src/org/chromium/chrome/browse diff --git a/chrome/browser/flag_descriptions.cc b/chrome/browser/flag_descriptions.cc --- a/chrome/browser/flag_descriptions.cc +++ b/chrome/browser/flag_descriptions.cc -@@ -5224,6 +5224,11 @@ const char kWebrtcPipeWireCapturerDescription[] = +@@ -5230,6 +5230,11 @@ const char kWebrtcPipeWireCapturerDescription[] = "capturing the desktop content on the Wayland display server."; #endif // #if defined(WEBRTC_USE_PIPEWIRE) @@ -1272,7 +1272,7 @@ diff --git a/chrome/browser/flag_descriptions.cc b/chrome/browser/flag_descripti diff --git a/chrome/browser/flag_descriptions.h b/chrome/browser/flag_descriptions.h --- a/chrome/browser/flag_descriptions.h +++ b/chrome/browser/flag_descriptions.h -@@ -3066,6 +3066,9 @@ extern const char kWebrtcPipeWireCapturerName[]; +@@ -3069,6 +3069,9 @@ extern const char kWebrtcPipeWireCapturerName[]; extern const char kWebrtcPipeWireCapturerDescription[]; #endif // #if defined(WEBRTC_USE_PIPEWIRE) diff --git a/build/patches/Add-exit-menu-item.patch b/build/patches/Add-exit-menu-item.patch index f713ce1c..020ff2ba 100644 --- a/build/patches/Add-exit-menu-item.patch +++ b/build/patches/Add-exit-menu-item.patch @@ -37,7 +37,7 @@ diff --git a/chrome/android/java/res/menu/main_menu.xml b/chrome/android/java/re diff --git a/chrome/android/java/src/org/chromium/chrome/browser/ChromeTabbedActivity.java b/chrome/android/java/src/org/chromium/chrome/browser/ChromeTabbedActivity.java --- a/chrome/android/java/src/org/chromium/chrome/browser/ChromeTabbedActivity.java +++ b/chrome/android/java/src/org/chromium/chrome/browser/ChromeTabbedActivity.java -@@ -196,6 +196,8 @@ import java.lang.annotation.RetentionPolicy; +@@ -195,6 +195,8 @@ import java.lang.annotation.RetentionPolicy; import java.util.List; import java.util.Locale; @@ -46,7 +46,7 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/ChromeTabbedAct /** * This is the main activity for ChromeMobile when not running in document mode. All the tabs * are accessible via a chrome specific tab switching UI. -@@ -1901,6 +1903,8 @@ public class ChromeTabbedActivity extends ChromeActivity +Date: Sat, 22 Aug 2020 08:52:40 -0500 +Subject: Add flag for omnibox autocomplete filtering + +Adds a flag that restricts whether search history, clipboard, bookmarks +and internal chrome:// pages will be used for the autocomplete results. +--- + chrome/browser/about_flags.cc | 21 +++++++++++++++++++ + .../browser/autocomplete_controller.cc | 10 +++++++++ + .../omnibox/browser/history_url_provider.cc | 3 +++ + components/omnibox/browser/search_provider.cc | 4 ++++ + components/url_formatter/url_fixer.cc | 3 +++ + 5 files changed, 41 insertions(+) + +diff --git a/chrome/browser/about_flags.cc b/chrome/browser/about_flags.cc +--- a/chrome/browser/about_flags.cc ++++ b/chrome/browser/about_flags.cc +@@ -503,6 +503,22 @@ const FeatureEntry::FeatureVariation kAdaptiveButtonInTopToolbarVariations[] = { + }; + #endif // OS_ANDROID + ++const FeatureEntry::Choice kOmniboxAutocompleteFiltering[] = { ++ {flags_ui::kGenericExperimentChoiceDefault, "", ""}, ++ {"Search suggestions only", ++ "omnibox-autocomplete-filtering", ++ "search"}, ++ {"Search suggestions and bookmarks", ++ "omnibox-autocomplete-filtering", ++ "search-bookmarks"}, ++ {"Search suggestions and internal chrome pages", ++ "omnibox-autocomplete-filtering", ++ "search-chrome"}, ++ {"Search suggestions, bookmarks, and internal chrome pages", ++ "omnibox-autocomplete-filtering", ++ "search-bookmarks-chrome"}, ++}; ++ + #if defined(OS_ANDROID) + const FeatureEntry::FeatureParam kHideDismissButton[] = { + {"dismiss_button", "hide"}}; +@@ -4775,6 +4791,11 @@ const FeatureEntry kFeatureEntries[] = { + FEATURE_VALUE_TYPE(chrome::android::kReaderModeInCCT)}, + #endif // !defined(OS_ANDROID) + ++ {"omnibox-autocomplete-filtering", ++ "Omnibox Autocomplete Filtering", ++ "Restrict omnibox autocomplete results to a combination of search suggestions (if enabled), bookmarks, and internal chrome pages. ungoogled-chromium flag.", ++ kOsAll, MULTI_VALUE_TYPE(kOmniboxAutocompleteFiltering)}, ++ + #if defined(OS_WIN) || defined(OS_MAC) || defined(OS_LINUX) || \ + defined(OS_CHROMEOS) + {"direct-manipulation-stylus", +diff --git a/components/omnibox/browser/autocomplete_controller.cc b/components/omnibox/browser/autocomplete_controller.cc +--- a/components/omnibox/browser/autocomplete_controller.cc ++++ b/components/omnibox/browser/autocomplete_controller.cc +@@ -15,6 +15,7 @@ + + #include "base/bind.h" + #include "base/check_op.h" ++#include "base/command_line.h" + #include "base/feature_list.h" + #include "base/format_macros.h" + #include "base/metrics/histogram.h" +@@ -275,6 +276,15 @@ AutocompleteController::AutocompleteController( + search_service_worker_signal_sent_(false), + template_url_service_(provider_client_->GetTemplateURLService()) { + provider_types &= ~OmniboxFieldTrial::GetDisabledProviderTypes(); ++ if (base::CommandLine::ForCurrentProcess()->HasSwitch("omnibox-autocomplete-filtering")) { ++ const std::string flag_value = base::CommandLine::ForCurrentProcess()->GetSwitchValueASCII("omnibox-autocomplete-filtering"); ++ provider_types &= AutocompleteProvider::TYPE_KEYWORD | AutocompleteProvider::TYPE_SEARCH | ++ AutocompleteProvider::TYPE_HISTORY_URL | AutocompleteProvider::TYPE_BOOKMARK | AutocompleteProvider::TYPE_BUILTIN; ++ if (!base::Contains(flag_value, "bookmarks")) ++ provider_types &= ~AutocompleteProvider::TYPE_BOOKMARK; ++ if (!base::Contains(flag_value, "chrome")) ++ provider_types &= ~AutocompleteProvider::TYPE_BUILTIN; ++ } + if (provider_types & AutocompleteProvider::TYPE_BOOKMARK) + providers_.push_back(new BookmarkProvider(provider_client_.get())); + if (provider_types & AutocompleteProvider::TYPE_BUILTIN) +diff --git a/components/omnibox/browser/history_url_provider.cc b/components/omnibox/browser/history_url_provider.cc +--- a/components/omnibox/browser/history_url_provider.cc ++++ b/components/omnibox/browser/history_url_provider.cc +@@ -553,6 +553,9 @@ void HistoryURLProvider::Start(const AutocompleteInput& input, + if (fixed_up_input.type() != metrics::OmniboxInputType::QUERY) + matches_.push_back(what_you_typed_match); + ++ if (base::CommandLine::ForCurrentProcess()->HasSwitch("omnibox-autocomplete-filtering")) ++ return; ++ + // We'll need the history service to run both passes, so try to obtain it. + history::HistoryService* const history_service = + client()->GetHistoryService(); +diff --git a/components/omnibox/browser/search_provider.cc b/components/omnibox/browser/search_provider.cc +--- a/components/omnibox/browser/search_provider.cc ++++ b/components/omnibox/browser/search_provider.cc +@@ -12,6 +12,7 @@ + #include "base/base64.h" + #include "base/bind.h" + #include "base/callback.h" ++#include "base/command_line.h" + #include "base/feature_list.h" + #include "base/i18n/break_iterator.h" + #include "base/i18n/case_conversion.h" +@@ -643,6 +644,9 @@ void SearchProvider::Run(bool query_is_private) { + } + + void SearchProvider::DoHistoryQuery(bool minimal_changes) { ++ if (base::CommandLine::ForCurrentProcess()->HasSwitch("omnibox-autocomplete-filtering")) ++ return; ++ + // The history query results are synchronous, so if minimal_changes is true, + // we still have the last results and don't need to do anything. + if (minimal_changes) +diff --git a/components/url_formatter/url_fixer.cc b/components/url_formatter/url_fixer.cc +--- a/components/url_formatter/url_fixer.cc ++++ b/components/url_formatter/url_fixer.cc +@@ -9,6 +9,7 @@ + #include + + #include "base/check_op.h" ++#include "base/command_line.h" + #include "base/files/file_path.h" + #include "base/files/file_util.h" + #include "base/ranges/algorithm.h" +@@ -607,6 +608,8 @@ GURL FixupURL(const std::string& text, const std::string& desired_tld) { + + FixupHost(trimmed, parts.host, parts.scheme.is_valid(), desired_tld, &url); + if (chrome_url && !parts.host.is_valid()) ++ if (!base::CommandLine::ForCurrentProcess()->HasSwitch("omnibox-autocomplete-filtering") || ++ base::Contains(base::CommandLine::ForCurrentProcess()->GetSwitchValueASCII("omnibox-autocomplete-filtering"), "chrome")) + url.append(kChromeUIDefaultHost); + FixupPort(trimmed, parts.port, &url); + FixupPath(trimmed, parts.path, &url); +-- +2.17.1 + diff --git a/build/patches/Add-flag-for-save-data-header.patch b/build/patches/Add-flag-for-save-data-header.patch index 129fa279..eff4aa53 100644 --- a/build/patches/Add-flag-for-save-data-header.patch +++ b/build/patches/Add-flag-for-save-data-header.patch @@ -27,7 +27,7 @@ diff --git a/chrome/browser/about_flags.cc b/chrome/browser/about_flags.cc diff --git a/chrome/browser/flag_descriptions.cc b/chrome/browser/flag_descriptions.cc --- a/chrome/browser/flag_descriptions.cc +++ b/chrome/browser/flag_descriptions.cc -@@ -1000,6 +1000,10 @@ const char kDisableKeepaliveFetchDescription[] = +@@ -1006,6 +1006,10 @@ const char kDisableKeepaliveFetchDescription[] = "Disable fetch with keepalive set " "(https://fetch.spec.whatwg.org/#request-keepalive-flag)."; @@ -41,7 +41,7 @@ diff --git a/chrome/browser/flag_descriptions.cc b/chrome/browser/flag_descripti diff --git a/chrome/browser/flag_descriptions.h b/chrome/browser/flag_descriptions.h --- a/chrome/browser/flag_descriptions.h +++ b/chrome/browser/flag_descriptions.h -@@ -568,6 +568,9 @@ extern const char kDiagnosticsAppDescription[]; +@@ -571,6 +571,9 @@ extern const char kDiagnosticsAppDescription[]; extern const char kDisableKeepaliveFetchName[]; extern const char kDisableKeepaliveFetchDescription[]; diff --git a/build/patches/Add-flag-to-configure-maximum-connections-per-host.patch b/build/patches/Add-flag-to-configure-maximum-connections-per-host.patch index cca0908b..74003971 100644 --- a/build/patches/Add-flag-to-configure-maximum-connections-per-host.patch +++ b/build/patches/Add-flag-to-configure-maximum-connections-per-host.patch @@ -44,7 +44,7 @@ diff --git a/chrome/browser/about_flags.cc b/chrome/browser/about_flags.cc diff --git a/chrome/browser/flag_descriptions.cc b/chrome/browser/flag_descriptions.cc --- a/chrome/browser/flag_descriptions.cc +++ b/chrome/browser/flag_descriptions.cc -@@ -1484,6 +1484,10 @@ const char kMediaHistoryDescription[] = +@@ -1490,6 +1490,10 @@ const char kMediaHistoryDescription[] = "Enables Media History which records data around media playbacks on " "websites."; @@ -58,7 +58,7 @@ diff --git a/chrome/browser/flag_descriptions.cc b/chrome/browser/flag_descripti diff --git a/chrome/browser/flag_descriptions.h b/chrome/browser/flag_descriptions.h --- a/chrome/browser/flag_descriptions.h +++ b/chrome/browser/flag_descriptions.h -@@ -872,6 +872,9 @@ extern const char kLogJsConsoleMessagesDescription[]; +@@ -875,6 +875,9 @@ extern const char kLogJsConsoleMessagesDescription[]; extern const char kMediaHistoryName[]; extern const char kMediaHistoryDescription[]; diff --git a/build/patches/Add-flag-to-control-video-playback-resume-feature.patch b/build/patches/Add-flag-to-control-video-playback-resume-feature.patch index 0bb97cec..5899efd8 100644 --- a/build/patches/Add-flag-to-control-video-playback-resume-feature.patch +++ b/build/patches/Add-flag-to-control-video-playback-resume-feature.patch @@ -27,7 +27,7 @@ diff --git a/chrome/browser/about_flags.cc b/chrome/browser/about_flags.cc diff --git a/chrome/browser/flag_descriptions.cc b/chrome/browser/flag_descriptions.cc --- a/chrome/browser/flag_descriptions.cc +++ b/chrome/browser/flag_descriptions.cc -@@ -1063,6 +1063,11 @@ const char kEnablePciguardUiDescription[] = +@@ -1069,6 +1069,11 @@ const char kEnablePciguardUiDescription[] = "Enable toggling Pciguard settings through the Settings App. By default, " "this flag is enabled."; @@ -42,7 +42,7 @@ diff --git a/chrome/browser/flag_descriptions.cc b/chrome/browser/flag_descripti diff --git a/chrome/browser/flag_descriptions.h b/chrome/browser/flag_descriptions.h --- a/chrome/browser/flag_descriptions.h +++ b/chrome/browser/flag_descriptions.h -@@ -608,6 +608,9 @@ extern const char kEnablePortalsDescription[]; +@@ -611,6 +611,9 @@ extern const char kEnablePortalsDescription[]; extern const char kEnablePortalsCrossOriginName[]; extern const char kEnablePortalsCrossOriginDescription[]; diff --git a/build/patches/Add-flag-to-disable-IPv6-probes.patch b/build/patches/Add-flag-to-disable-IPv6-probes.patch index 24596947..c6ba8e81 100644 --- a/build/patches/Add-flag-to-disable-IPv6-probes.patch +++ b/build/patches/Add-flag-to-disable-IPv6-probes.patch @@ -31,7 +31,7 @@ diff --git a/chrome/browser/about_flags.cc b/chrome/browser/about_flags.cc diff --git a/chrome/browser/flag_descriptions.cc b/chrome/browser/flag_descriptions.cc --- a/chrome/browser/flag_descriptions.cc +++ b/chrome/browser/flag_descriptions.cc -@@ -2979,6 +2979,10 @@ const char kContextualSearchRankerQueryDescription[] = +@@ -2985,6 +2985,10 @@ const char kContextualSearchRankerQueryDescription[] = const char kContextualSearchSecondTapName[] = "Contextual Search second tap triggering"; @@ -45,7 +45,7 @@ diff --git a/chrome/browser/flag_descriptions.cc b/chrome/browser/flag_descripti diff --git a/chrome/browser/flag_descriptions.h b/chrome/browser/flag_descriptions.h --- a/chrome/browser/flag_descriptions.h +++ b/chrome/browser/flag_descriptions.h -@@ -677,6 +677,9 @@ extern const char kEnableWasmThreadsName[]; +@@ -680,6 +680,9 @@ extern const char kEnableWasmThreadsName[]; extern const char kEnableWasmThreadsDescription[]; extern const char kEnableWasmTieringName[]; diff --git a/build/patches/Add-flag-to-disable-WebGL.patch b/build/patches/Add-flag-to-disable-WebGL.patch index 654e9be1..fd9f40d5 100644 --- a/build/patches/Add-flag-to-disable-WebGL.patch +++ b/build/patches/Add-flag-to-disable-WebGL.patch @@ -24,7 +24,7 @@ diff --git a/chrome/browser/about_flags.cc b/chrome/browser/about_flags.cc diff --git a/chrome/browser/flag_descriptions.cc b/chrome/browser/flag_descriptions.cc --- a/chrome/browser/flag_descriptions.cc +++ b/chrome/browser/flag_descriptions.cc -@@ -578,6 +578,10 @@ const char kEnableAudioFocusEnforcementName[] = "Audio Focus Enforcement"; +@@ -584,6 +584,10 @@ const char kEnableAudioFocusEnforcementName[] = "Audio Focus Enforcement"; const char kEnableAudioFocusEnforcementDescription[] = "Enables enforcement of a single media session having audio focus at " "any one time. Requires #enable-media-session-service to be enabled too."; @@ -38,7 +38,7 @@ diff --git a/chrome/browser/flag_descriptions.cc b/chrome/browser/flag_descripti diff --git a/chrome/browser/flag_descriptions.h b/chrome/browser/flag_descriptions.h --- a/chrome/browser/flag_descriptions.h +++ b/chrome/browser/flag_descriptions.h -@@ -354,6 +354,9 @@ extern const char kDocumentTransitionDescription[]; +@@ -357,6 +357,9 @@ extern const char kDocumentTransitionDescription[]; extern const char kEnableAccessibilityObjectModelName[]; extern const char kEnableAccessibilityObjectModelDescription[]; diff --git a/build/patches/Add-flag-to-disable-external-intent-requests.patch b/build/patches/Add-flag-to-disable-external-intent-requests.patch new file mode 100644 index 00000000..5a15889f --- /dev/null +++ b/build/patches/Add-flag-to-disable-external-intent-requests.patch @@ -0,0 +1,55 @@ +From: csagan5 <32685696+csagan5@users.noreply.github.com> +Date: Tue, 25 May 2021 19:46:14 +0200 +Subject: Add flag to disable external intent requests + +--- + chrome/browser/about_flags.cc | 3 +++ + chrome/browser/flag_descriptions.cc | 6 ++++++ + chrome/browser/flag_descriptions.h | 3 +++ + 3 files changed, 12 insertions(+) + +diff --git a/chrome/browser/about_flags.cc b/chrome/browser/about_flags.cc +--- a/chrome/browser/about_flags.cc ++++ b/chrome/browser/about_flags.cc +@@ -2652,6 +2652,9 @@ const FeatureEntry kFeatureEntries[] = { + flag_descriptions::kWebrtcCaptureMultiChannelApmName, + flag_descriptions::kWebrtcCaptureMultiChannelApmDescription, kOsAll, + FEATURE_VALUE_TYPE(features::kWebRtcEnableCaptureMultiChannelApm)}, ++ {switches::kDisableExternalIntentRequests, flag_descriptions::kDisableExternalIntentRequestsName, ++ flag_descriptions::kDisableExternalIntentRequestsDescription, kOsAll, ++ SINGLE_DISABLE_VALUE_TYPE("disable-external-intent-requests")}, + {"disable-webrtc-hw-decoding", flag_descriptions::kWebrtcHwDecodingName, + flag_descriptions::kWebrtcHwDecodingDescription, kOsAndroid | kOsCrOS, + SINGLE_DISABLE_VALUE_TYPE(switches::kDisableWebRtcHWDecoding)}, +diff --git a/chrome/browser/flag_descriptions.cc b/chrome/browser/flag_descriptions.cc +--- a/chrome/browser/flag_descriptions.cc ++++ b/chrome/browser/flag_descriptions.cc +@@ -3107,6 +3107,12 @@ const char kIntentBlockExternalFormRedirectsNoGestureDescription[] = + "Require a user gesture that triggered a form submission in order to " + "allow for redirecting to an external intent."; + ++const char kDisableExternalIntentRequestsName[] = ++ "Never forward URL requests to external intents"; ++const char kDisableExternalIntentRequestsDescription[] = ++ "URL requests will never" ++ "allow for redirecting to an external intent."; ++ + const char kInterestFeedContentSuggestionsDescription[] = + "Use the interest feed to render content suggestions. Currently " + "content " +diff --git a/chrome/browser/flag_descriptions.h b/chrome/browser/flag_descriptions.h +--- a/chrome/browser/flag_descriptions.h ++++ b/chrome/browser/flag_descriptions.h +@@ -1810,6 +1810,9 @@ extern const char kInstantStartDescription[]; + extern const char kIntentBlockExternalFormRedirectsNoGestureName[]; + extern const char kIntentBlockExternalFormRedirectsNoGestureDescription[]; + ++extern const char kDisableExternalIntentRequestsName[]; ++extern const char kDisableExternalIntentRequestsDescription[]; ++ + extern const char kInterestFeedContentSuggestionsName[]; + extern const char kInterestFeedContentSuggestionsDescription[]; + +-- +2.17.1 + diff --git a/build/patches/Add-flags-to-disable-device-motion-orientation-APIs.patch b/build/patches/Add-flags-to-disable-device-motion-orientation-APIs.patch index ccb5678d..0833ab1c 100644 --- a/build/patches/Add-flags-to-disable-device-motion-orientation-APIs.patch +++ b/build/patches/Add-flags-to-disable-device-motion-orientation-APIs.patch @@ -36,7 +36,7 @@ diff --git a/chrome/browser/about_flags.cc b/chrome/browser/about_flags.cc diff --git a/chrome/browser/flag_descriptions.cc b/chrome/browser/flag_descriptions.cc --- a/chrome/browser/flag_descriptions.cc +++ b/chrome/browser/flag_descriptions.cc -@@ -838,6 +838,14 @@ const char kWinrtGeolocationImplementationDescription[] = +@@ -844,6 +844,14 @@ const char kWinrtGeolocationImplementationDescription[] = "Enables usage of the Windows.Devices.Geolocation WinRT APIs on Windows " "for geolocation"; @@ -54,7 +54,7 @@ diff --git a/chrome/browser/flag_descriptions.cc b/chrome/browser/flag_descripti diff --git a/chrome/browser/flag_descriptions.h b/chrome/browser/flag_descriptions.h --- a/chrome/browser/flag_descriptions.h +++ b/chrome/browser/flag_descriptions.h -@@ -502,6 +502,12 @@ extern const char kNotificationsViaHelperAppDescription[]; +@@ -505,6 +505,12 @@ extern const char kNotificationsViaHelperAppDescription[]; extern const char kWinrtGeolocationImplementationName[]; extern const char kWinrtGeolocationImplementationDescription[]; @@ -165,7 +165,7 @@ diff --git a/third_party/blink/renderer/platform/exported/web_runtime_features.c 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 -@@ -1420,6 +1420,14 @@ +@@ -1423,6 +1423,14 @@ name: "OffscreenCanvasCommit", status: "experimental", }, diff --git a/build/patches/Add-menu-item-to-bookmark-all-tabs.patch b/build/patches/Add-menu-item-to-bookmark-all-tabs.patch index c0295506..88dae56b 100644 --- a/build/patches/Add-menu-item-to-bookmark-all-tabs.patch +++ b/build/patches/Add-menu-item-to-bookmark-all-tabs.patch @@ -51,7 +51,7 @@ diff --git a/chrome/android/java/res/menu/main_menu.xml b/chrome/android/java/re diff --git a/chrome/android/java/src/org/chromium/chrome/browser/ChromeTabbedActivity.java b/chrome/android/java/src/org/chromium/chrome/browser/ChromeTabbedActivity.java --- a/chrome/android/java/src/org/chromium/chrome/browser/ChromeTabbedActivity.java +++ b/chrome/android/java/src/org/chromium/chrome/browser/ChromeTabbedActivity.java -@@ -70,6 +70,8 @@ import org.chromium.chrome.browser.app.tabmodel.ChromeNextTabPolicySupplier; +@@ -69,6 +69,8 @@ import org.chromium.chrome.browser.app.tabmodel.ChromeNextTabPolicySupplier; import org.chromium.chrome.browser.app.tabmodel.TabModelOrchestrator; import org.chromium.chrome.browser.app.tabmodel.TabWindowManagerSingleton; import org.chromium.chrome.browser.app.tabmodel.TabbedModeTabModelOrchestrator; @@ -60,7 +60,7 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/ChromeTabbedAct import org.chromium.chrome.browser.bookmarks.BookmarkUtils; import org.chromium.chrome.browser.compositor.CompositorViewHolder; import org.chromium.chrome.browser.compositor.bottombar.ephemeraltab.EphemeralTabCoordinator; -@@ -1913,6 +1915,8 @@ public class ChromeTabbedActivity extends ChromeActivity