diff --git a/CHANGELOG.md b/CHANGELOG.md index 47a534ed..55af728a 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -1,3 +1,8 @@ +# 102.0.5005.67 +* dropped patch to disable mobile identity consistency by default +* fix text for blocked ads (fixes https://github.com/bromite/bromite/issues/2026) +* fix OpenSeach visited site detection bug (fixes https://github.com/bromite/bromite/issues/1994) + # 101.0.4951.69 * flag to toggle site engagement (thanks to @uazo, fixes https://github.com/bromite/bromite/issues/2022) * site settings to enable webGL (thanks to @uazo) diff --git a/build/patches/Add-an-always-incognito-mode.patch b/build/patches/Add-an-always-incognito-mode.patch index 68cb03e0..f8eca5cc 100644 --- a/build/patches/Add-an-always-incognito-mode.patch +++ b/build/patches/Add-an-always-incognito-mode.patch @@ -38,11 +38,11 @@ See also: https://github.com/bromite/bromite/pull/1427 .../browser/settings/SettingsActivity.java | 4 + .../HistoricalTabModelObserver.java | 8 +- .../tab/tab_restore/HistoricalTabSaver.java | 2 +- - .../tab_restore/HistoricalTabSaverImpl.java | 12 +- + .../tab_restore/HistoricalTabSaverImpl.java | 16 +- .../tabbed_mode/TabbedRootUiCoordinator.java | 5 +- .../browser/tabmodel/ChromeTabCreator.java | 5 +- .../tabmodel/TabModelSelectorImpl.java | 3 + - .../browser/tabmodel/TabPersistentStore.java | 10 ++ + .../browser/tabmodel/TabPersistentStore.java | 9 + .../webapps/WebappIntentDataProvider.java | 14 ++ chrome/browser/about_flags.cc | 4 + .../browser/android/historical_tab_saver.cc | 21 ++- @@ -80,7 +80,7 @@ See also: https://github.com/bromite/bromite/pull/1427 .../omnibox/browser/base_search_provider.cc | 2 +- components/omnibox/browser/search_provider.cc | 4 +- .../host_content_settings_map_factory.cc | 1 + - 64 files changed, 686 insertions(+), 74 deletions(-) + 64 files changed, 688 insertions(+), 75 deletions(-) create mode 100644 chrome/android/java/res/xml/incognito_preferences.xml create mode 100644 chrome/android/java/src/org/chromium/chrome/browser/AlwaysIncognitoLinkInterceptor.java create mode 100644 chrome/android/java/src/org/chromium/chrome/browser/privacy/settings/IncognitoSettings.java @@ -885,7 +885,16 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/tab/tab_restore diff --git a/chrome/android/java/src/org/chromium/chrome/browser/tab/tab_restore/HistoricalTabSaverImpl.java b/chrome/android/java/src/org/chromium/chrome/browser/tab/tab_restore/HistoricalTabSaverImpl.java --- a/chrome/android/java/src/org/chromium/chrome/browser/tab/tab_restore/HistoricalTabSaverImpl.java +++ b/chrome/android/java/src/org/chromium/chrome/browser/tab/tab_restore/HistoricalTabSaverImpl.java -@@ -46,10 +46,10 @@ public class HistoricalTabSaverImpl implements HistoricalTabSaver { +@@ -25,6 +25,8 @@ import java.util.Arrays; + import java.util.Collections; + import java.util.List; + ++import org.chromium.chrome.browser.AlwaysIncognitoLinkInterceptor; ++ + /** + * Creates historical entries in TabRestoreService. + */ +@@ -46,10 +48,10 @@ public class HistoricalTabSaverImpl implements HistoricalTabSaver { // HistoricalTabSaver implementation. @Override @@ -898,7 +907,7 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/tab/tab_restore } @Override -@@ -90,7 +90,7 @@ public class HistoricalTabSaverImpl implements HistoricalTabSaver { +@@ -90,7 +92,7 @@ public class HistoricalTabSaverImpl implements HistoricalTabSaver { // If there is only a single valid tab remaining save it individually. if (validEntries.size() == 1 && validEntries.get(0).isSingleTab()) { @@ -907,7 +916,7 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/tab/tab_restore return; } -@@ -107,8 +107,8 @@ public class HistoricalTabSaverImpl implements HistoricalTabSaver { +@@ -107,8 +109,8 @@ public class HistoricalTabSaverImpl implements HistoricalTabSaver { CollectionUtil.integerListToIntArray(perTabGroupId), allTabs.toArray(new Tab[0])); } @@ -918,7 +927,16 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/tab/tab_restore } /** -@@ -194,7 +194,7 @@ public class HistoricalTabSaverImpl implements HistoricalTabSaver { +@@ -116,7 +118,7 @@ public class HistoricalTabSaverImpl implements HistoricalTabSaver { + * internal Chrome scheme, about:blank, or a native page and it cannot be incognito. + */ + private boolean shouldSave(Tab tab) { +- if (tab.isIncognito()) return false; ++ if (tab.isIncognito() && !AlwaysIncognitoLinkInterceptor.isAlwaysIncognito()) return false; + + // {@link GURL#getScheme()} is not available in unit tests. + if (mIgnoreUrlSchemesForTesting) return true; +@@ -194,7 +196,7 @@ public class HistoricalTabSaverImpl implements HistoricalTabSaver { @NativeMethods interface Natives { @@ -998,15 +1016,7 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/tabmodel/TabMod diff --git a/chrome/android/java/src/org/chromium/chrome/browser/tabmodel/TabPersistentStore.java b/chrome/android/java/src/org/chromium/chrome/browser/tabmodel/TabPersistentStore.java --- a/chrome/android/java/src/org/chromium/chrome/browser/tabmodel/TabPersistentStore.java +++ b/chrome/android/java/src/org/chromium/chrome/browser/tabmodel/TabPersistentStore.java -@@ -18,6 +18,7 @@ import androidx.core.util.AtomicFile; - - import org.chromium.base.Callback; - import org.chromium.base.CallbackController; -+import org.chromium.base.ContextUtils; - import org.chromium.base.FeatureList; - import org.chromium.base.Log; - import org.chromium.base.ObserverList; -@@ -58,6 +59,8 @@ import org.chromium.content_public.browser.LoadUrlParams; +@@ -58,6 +58,8 @@ import org.chromium.content_public.browser.LoadUrlParams; import org.chromium.content_public.browser.UiThreadTaskTraits; import org.chromium.url.GURL; @@ -1015,7 +1025,7 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/tabmodel/TabPer import java.io.BufferedInputStream; import java.io.ByteArrayInputStream; import java.io.ByteArrayOutputStream; -@@ -739,6 +742,13 @@ public class TabPersistentStore { +@@ -739,6 +741,13 @@ public class TabPersistentStore { } } } diff --git a/build/patches/Ask-user-before-closing-all-tabs.patch b/build/patches/Ask-user-before-closing-all-tabs.patch index b1ee562c..ad2e0564 100644 --- a/build/patches/Ask-user-before-closing-all-tabs.patch +++ b/build/patches/Ask-user-before-closing-all-tabs.patch @@ -9,16 +9,16 @@ Subject: Ask user before closing all tabs diff --git a/chrome/browser/flags/android/chrome_feature_list.cc b/chrome/browser/flags/android/chrome_feature_list.cc --- a/chrome/browser/flags/android/chrome_feature_list.cc +++ b/chrome/browser/flags/android/chrome_feature_list.cc -@@ -457,8 +457,8 @@ const base::Feature kCastDeviceFilter{"CastDeviceFilter", - const base::Feature kCloseAllTabsModalDialog{"CloseAllTabsModalDialog", - base::FEATURE_ENABLED_BY_DEFAULT}; +@@ -454,8 +454,8 @@ const base::Feature kConditionalTabStripAndroid{ + const base::Feature kCastDeviceFilter{"CastDeviceFilter", + base::FEATURE_DISABLED_BY_DEFAULT}; --const base::Feature kCloseTabSuggestions{"CloseTabSuggestions", -- base::FEATURE_DISABLED_BY_DEFAULT}; -+const base::Feature kCloseTabSuggestions{"CloseTabSuggestions", // Enabled by default in Bromite -+ base::FEATURE_ENABLED_BY_DEFAULT}; +-const base::Feature kCloseAllTabsModalDialog{"CloseAllTabsModalDialog", +- base::FEATURE_ENABLED_BY_DEFAULT}; ++const base::Feature kCloseAllTabsModalDialog{"CloseAllTabsModalDialog", // Enabled by default in Bromite ++ base::FEATURE_ENABLED_BY_DEFAULT}; // ^ - const base::Feature kCriticalPersistedTabData{ - "CriticalPersistedTabData", base::FEATURE_DISABLED_BY_DEFAULT}; + const base::Feature kCloseTabSuggestions{"CloseTabSuggestions", + base::FEATURE_DISABLED_BY_DEFAULT}; -- 2.25.1 diff --git a/build/patches/Bromite-AdBlockUpdaterService.patch b/build/patches/Bromite-AdBlockUpdaterService.patch index 61dfa8f4..12bc320d 100644 --- a/build/patches/Bromite-AdBlockUpdaterService.patch +++ b/build/patches/Bromite-AdBlockUpdaterService.patch @@ -32,6 +32,7 @@ Fix RestoreForeignSessionTab by recreating the tab (issue #681) .../strings/android_chrome_strings.grd | 14 + chrome/common/pref_names.cc | 3 + chrome/common/pref_names.h | 1 + + .../strings/android/site_settings.grdp | 4 +- components/component_updater/BUILD.gn | 7 + .../adblock_updater_service.cc | 271 ++++++++++++++++++ .../adblock_updater_service.h | 100 +++++++ @@ -45,7 +46,7 @@ Fix RestoreForeignSessionTab by recreating the tab (issue #681) .../browser/subresource_filter_features.cc | 113 +------- .../core/common/indexed_ruleset.cc | 5 +- .../navigation_throttle_runner.cc | 5 - - 36 files changed, 1158 insertions(+), 124 deletions(-) + 37 files changed, 1160 insertions(+), 126 deletions(-) create mode 100644 chrome/android/java/res/layout/adblock_editor.xml create mode 100644 chrome/android/java/res/xml/adblock_preferences.xml create mode 100644 chrome/android/java/src/org/chromium/chrome/browser/settings/AdBlockEditor.java @@ -685,6 +686,20 @@ diff --git a/chrome/common/pref_names.h b/chrome/common/pref_names.h extern const char kHttpsOnlyModeEnabled[]; extern const char kImportantSitesDialogHistory[]; extern const char kProfileCreationTime[]; +diff --git a/components/browser_ui/strings/android/site_settings.grdp b/components/browser_ui/strings/android/site_settings.grdp +--- a/components/browser_ui/strings/android/site_settings.grdp ++++ b/components/browser_ui/strings/android/site_settings.grdp +@@ -247,8 +247,8 @@ + + This site shows intrusive or misleading ads + +- +- Block ads on sites that show intrusive or misleading ads ++ ++ Block ads based on the current filters + + + Blocked on some sites diff --git a/components/component_updater/BUILD.gn b/components/component_updater/BUILD.gn --- a/components/component_updater/BUILD.gn +++ b/components/component_updater/BUILD.gn diff --git a/build/patches/Disable-conversion-measurement-api.patch b/build/patches/Disable-conversion-measurement-api.patch index 6af80b82..62aac2e8 100644 --- a/build/patches/Disable-conversion-measurement-api.patch +++ b/build/patches/Disable-conversion-measurement-api.patch @@ -12,13 +12,14 @@ being sent and being saved to disk, although it is currently in uncalled code. .../embedder_support/origin_trials/features.cc | 3 ++- .../render_view_context_menu_base.cc | 3 --- .../aggregatable_report_sender.cc | 17 ++++++++--------- + .../attribution_reporting/attribution_host.cc | 1 + .../attribution_report_network_sender.cc | 15 ++++++++------- .../attribution_storage_sql.cc | 2 +- content/browser/storage_partition_impl.cc | 7 +------ content/public/browser/navigation_controller.cc | 1 - third_party/blink/common/features.cc | 2 +- .../platform/runtime_enabled_features.json5 | 9 ++++++++- - 10 files changed, 30 insertions(+), 31 deletions(-) + 11 files changed, 31 insertions(+), 31 deletions(-) diff --git a/chrome/browser/flags/android/chrome_feature_list.cc b/chrome/browser/flags/android/chrome_feature_list.cc --- a/chrome/browser/flags/android/chrome_feature_list.cc @@ -96,6 +97,17 @@ diff --git a/content/browser/aggregation_service/aggregatable_report_sender.cc b -} // namespace content \ No newline at end of file +} // namespace content +diff --git a/content/browser/attribution_reporting/attribution_host.cc b/content/browser/attribution_reporting/attribution_host.cc +--- a/content/browser/attribution_reporting/attribution_host.cc ++++ b/content/browser/attribution_reporting/attribution_host.cc +@@ -141,6 +141,7 @@ void AttributionHost::DidFinishNavigation(NavigationHandle* navigation_handle) { + return; + } + ++ if ((true)) return; + AttributionManager* attribution_manager = + attribution_manager_provider_->GetManager(web_contents()); + if (!attribution_manager) { diff --git a/content/browser/attribution_reporting/attribution_report_network_sender.cc b/content/browser/attribution_reporting/attribution_report_network_sender.cc --- a/content/browser/attribution_reporting/attribution_report_network_sender.cc +++ b/content/browser/attribution_reporting/attribution_report_network_sender.cc diff --git a/build/patches/Keep-empty-tabs-between-sessions.patch b/build/patches/Keep-empty-tabs-between-sessions.patch index 7341f042..e70e914e 100644 --- a/build/patches/Keep-empty-tabs-between-sessions.patch +++ b/build/patches/Keep-empty-tabs-between-sessions.patch @@ -10,7 +10,7 @@ Subject: Keep empty tabs between sessions diff --git a/chrome/android/java/src/org/chromium/chrome/browser/tabmodel/TabPersistentStore.java b/chrome/android/java/src/org/chromium/chrome/browser/tabmodel/TabPersistentStore.java --- a/chrome/android/java/src/org/chromium/chrome/browser/tabmodel/TabPersistentStore.java +++ b/chrome/android/java/src/org/chromium/chrome/browser/tabmodel/TabPersistentStore.java -@@ -797,19 +797,6 @@ public class TabPersistentStore { +@@ -796,19 +796,6 @@ public class TabPersistentStore { mTabsToMigrate.add(tab); } } else { diff --git a/build/patches/Move-navigation-bar-to-bottom.patch b/build/patches/Move-navigation-bar-to-bottom.patch index 1c62e48d..f1d45302 100644 --- a/build/patches/Move-navigation-bar-to-bottom.patch +++ b/build/patches/Move-navigation-bar-to-bottom.patch @@ -2316,14 +2316,14 @@ diff --git a/content/browser/renderer_host/render_widget_host_view_android.cc b/ #include "cc/base/math_util.h" #include "cc/layers/layer.h" #include "cc/layers/surface_layer.h" -@@ -461,6 +462,8 @@ void RenderWidgetHostViewAndroid::OnRenderFrameMetadataChangedBeforeActivation( - ime_adapter_android_->UpdateFrameInfo(metadata.selection.start, dip_scale, - top_shown_pix); - } +@@ -455,6 +456,8 @@ void RenderWidgetHostViewAndroid::OnRenderFrameMetadataChangedBeforeActivation( + // factor. Thus, |top_content_offset| in CSS pixels is also in DIPs. + float top_content_offset = + metadata.top_controls_height * metadata.top_controls_shown_ratio; + if (base::FeatureList::IsEnabled(::features::kMoveTopToolbarToBottom)) + top_content_offset = 0; + float top_shown_pix = top_content_offset; - if (!gesture_listener_manager_) - return; + if (ime_adapter_android_) { -- 2.25.1 diff --git a/build/patches/OpenSearch-miscellaneous.patch b/build/patches/OpenSearch-miscellaneous.patch index b618c2e5..8aa1388a 100644 --- a/build/patches/OpenSearch-miscellaneous.patch +++ b/build/patches/OpenSearch-miscellaneous.patch @@ -9,13 +9,12 @@ Allow adding search engines in incognito mode Allow using search engine URLs with non-empty paths Add verbose logging --- - .../settings/SearchEngineAdapter.java | 4 ++- - .../search_engine_tab_helper.cc | 34 +++++++++++++------ - .../renderer/chrome_render_frame_observer.cc | 2 ++ - .../search_engines/template_url_fetcher.cc | 23 ++++++++++--- - .../search_engines/template_url_service.cc | 1 - - .../search_engines/template_url_service.h | 8 ++--- - 6 files changed, 51 insertions(+), 21 deletions(-) + .../settings/SearchEngineAdapter.java | 4 +- + .../search_engine_tab_helper.cc | 51 ++++++++++++++----- + .../renderer/chrome_render_frame_observer.cc | 2 + + .../search_engines/template_url_fetcher.cc | 23 +++++++-- + .../search_engines/template_url_service.h | 8 +-- + 5 files changed, 65 insertions(+), 23 deletions(-) diff --git a/chrome/browser/search_engines/android/java/src/org/chromium/chrome/browser/search_engines/settings/SearchEngineAdapter.java b/chrome/browser/search_engines/android/java/src/org/chromium/chrome/browser/search_engines/settings/SearchEngineAdapter.java --- a/chrome/browser/search_engines/android/java/src/org/chromium/chrome/browser/search_engines/settings/SearchEngineAdapter.java @@ -25,7 +24,7 @@ diff --git a/chrome/browser/search_engines/android/java/src/org/chromium/chrome/ } if (recentEngineNum < MAX_RECENT_ENGINE_NUM - && templateUrl.getLastVisitedTime() > displayTime) { -+ // just-added search engines have never been visited ++ // newly added search engines have never been visited + && (templateUrl.getLastVisitedTime() == 0 || + templateUrl.getLastVisitedTime() > displayTime)) { recentEngineNum++; @@ -34,22 +33,21 @@ diff --git a/chrome/browser/search_engines/android/java/src/org/chromium/chrome/ diff --git a/chrome/browser/ui/search_engines/search_engine_tab_helper.cc b/chrome/browser/ui/search_engines/search_engine_tab_helper.cc --- a/chrome/browser/ui/search_engines/search_engine_tab_helper.cc +++ b/chrome/browser/ui/search_engines/search_engine_tab_helper.cc -@@ -6,6 +6,8 @@ +@@ -6,6 +6,7 @@ #include -+#include "base/logging.h" +#include "base/logging.h" #include "base/metrics/histogram_macros.h" #include "chrome/browser/favicon/favicon_utils.h" #include "chrome/browser/profiles/profile.h" -@@ -69,16 +71,20 @@ std::u16string SearchEngineTabHelper::GenerateKeywordFromNavigationEntry( +@@ -69,16 +70,20 @@ std::u16string SearchEngineTabHelper::GenerateKeywordFromNavigationEntry( NavigationEntry* entry) { // Don't autogenerate keywords for pages that are the result of form // submissions. - if (IsFormSubmit(entry)) + if (IsFormSubmit(entry)) { -+ LOG(INFO) << "OpenSearch: cannot generate keyword for a form submission"; ++ LOG(INFO) << "OpenSearch: cannot generate keyword for a form submission for entry " << entry->GetURL(); return std::u16string(); + } @@ -60,13 +58,13 @@ diff --git a/chrome/browser/ui/search_engines/search_engine_tab_helper.cc b/chro url = entry->GetURL(); - if (!url.is_valid()) + if (!url.is_valid()) { -+ LOG(INFO) << "OpenSearch: user-typed/entry URL are invalid"; ++ LOG(INFO) << "OpenSearch: user-typed/entry URL are invalid for entry " << entry->GetURL(); return std::u16string(); + } } // Don't autogenerate keywords for referrers that -@@ -86,10 +92,10 @@ std::u16string SearchEngineTabHelper::GenerateKeywordFromNavigationEntry( +@@ -86,10 +91,10 @@ std::u16string SearchEngineTabHelper::GenerateKeywordFromNavigationEntry( // b) have a path. // // If we relax the path constraint, we need to be sure to sanitize the path @@ -76,17 +74,17 @@ diff --git a/chrome/browser/ui/search_engines/search_engine_tab_helper.cc b/chro - if (!(url.SchemeIs(url::kHttpScheme) || url.SchemeIs(url::kHttpsScheme)) || - (url.path().length() > 1)) { + if (!(url.SchemeIs(url::kHttpScheme) || url.SchemeIs(url::kHttpsScheme))) { -+ LOG(INFO) << "OpenSearch: invalid scheme"; ++ LOG(INFO) << "OpenSearch: invalid scheme for entry " << entry->GetURL(); return std::u16string(); } -@@ -116,22 +122,27 @@ void SearchEngineTabHelper::PageHasOpenSearchDescriptionDocument( +@@ -116,22 +121,27 @@ void SearchEngineTabHelper::PageHasOpenSearchDescriptionDocument( // Only accept messages from the main frame. if (osdd_handler_receivers_.GetCurrentTargetFrame() != - web_contents()->GetMainFrame()) + web_contents()->GetMainFrame()) { -+ LOG(INFO) << "OpenSearch: frame mismatch"; ++ LOG(INFO) << "OpenSearch: frame mismatch on page " << page_url; return; + } @@ -96,7 +94,7 @@ diff --git a/chrome/browser/ui/search_engines/search_engine_tab_helper.cc b/chro // urls referring to osdd urls with same schemes. - if (!osdd_url.is_valid() || !osdd_url.SchemeIsHTTPOrHTTPS()) + if (!osdd_url.is_valid() || !osdd_url.SchemeIsHTTPOrHTTPS()) { -+ LOG(INFO) << "OpenSearch: not a valid OSDD URL"; ++ LOG(INFO) << "OpenSearch: not a valid OSDD URL " << osdd_url; return; + } @@ -106,25 +104,38 @@ diff --git a/chrome/browser/ui/search_engines/search_engine_tab_helper.cc b/chro - !TemplateURLFetcherFactory::GetForProfile(profile) || - profile->IsOffTheRecord()) + !TemplateURLFetcherFactory::GetForProfile(profile)) { -+ LOG(INFO) << "OpenSearch: page URL mismatch"; ++ LOG(INFO) << "OpenSearch: page URL mismatch on page " << page_url; return; + } // If the current page is a form submit, find the last page that was not a // form submit and use its url to generate the keyword from. -@@ -141,8 +152,10 @@ void SearchEngineTabHelper::PageHasOpenSearchDescriptionDocument( +@@ -141,8 +151,10 @@ void SearchEngineTabHelper::PageHasOpenSearchDescriptionDocument( (index > 0) && IsFormSubmit(entry); entry = controller.GetEntryAtIndex(index)) --index; - if (!entry || IsFormSubmit(entry)) + if (!entry || IsFormSubmit(entry)) { -+ LOG(INFO) << "OpenSearch: cannot find form submission"; ++ LOG(INFO) << "OpenSearch: cannot find form submission for entry " << entry->GetURL(); return; + } // Autogenerate a keyword for the autodetected case; in the other cases we'll // generate a keyword later after fetching the OSDD. -@@ -157,6 +170,7 @@ void SearchEngineTabHelper::PageHasOpenSearchDescriptionDocument( +@@ -150,6 +162,12 @@ void SearchEngineTabHelper::PageHasOpenSearchDescriptionDocument( + if (keyword.empty()) + return; + ++ std::u16string page_keyword = TemplateURL::GenerateKeyword(page_url); ++ if (page_keyword != keyword) { ++ LOG(INFO) << "OpenSearch: keyword mismatch for entry " << entry->GetURL(); ++ return; ++ } ++ + auto* frame = web_contents()->GetMainFrame(); + mojo::Remote url_loader_factory; + frame->CreateNetworkServiceDefaultFactory( +@@ -157,6 +175,7 @@ void SearchEngineTabHelper::PageHasOpenSearchDescriptionDocument( // Download the OpenSearch description document. If this is successful, a // new keyword will be created when done. @@ -132,6 +143,35 @@ diff --git a/chrome/browser/ui/search_engines/search_engine_tab_helper.cc b/chro TemplateURLFetcherFactory::GetForProfile(profile)->ScheduleDownload( keyword, osdd_url, entry->GetFavicon().url, frame->GetLastCommittedOrigin(), url_loader_factory.get(), +@@ -198,11 +217,18 @@ void SearchEngineTabHelper::GenerateKeywordIfNecessary( + if (last_index <= 0) + return; + +- std::u16string keyword(GenerateKeywordFromNavigationEntry( +- controller.GetEntryAtIndex(last_index - 1))); ++ NavigationEntry* entry = controller.GetEntryAtIndex(last_index - 1); ++ std::u16string keyword(GenerateKeywordFromNavigationEntry(entry)); + if (keyword.empty()) + return; + ++ GURL url = handle->GetSearchableFormURL(); ++ std::u16string page_keyword = TemplateURL::GenerateKeyword(url); ++ if (page_keyword != keyword) { ++ LOG(INFO) << "OpenSearch: GenerateKeywordIfNecessary(): keyword mismatch for entry " << entry->GetURL(); ++ return; ++ } ++ + TemplateURLService* url_service = + TemplateURLServiceFactory::GetForProfile(profile); + if (!url_service) +@@ -213,7 +239,6 @@ void SearchEngineTabHelper::GenerateKeywordIfNecessary( + return; + } + +- GURL url = handle->GetSearchableFormURL(); + if (!url_service->CanAddAutogeneratedKeyword(keyword, url)) + return; + diff --git a/chrome/renderer/chrome_render_frame_observer.cc b/chrome/renderer/chrome_render_frame_observer.cc --- a/chrome/renderer/chrome_render_frame_observer.cc +++ b/chrome/renderer/chrome_render_frame_observer.cc @@ -189,17 +229,6 @@ diff --git a/components/search_engines/template_url_fetcher.cc b/components/sear } requests_.push_back(std::make_unique( -diff --git a/components/search_engines/template_url_service.cc b/components/search_engines/template_url_service.cc ---- a/components/search_engines/template_url_service.cc -+++ b/components/search_engines/template_url_service.cc -@@ -463,7 +463,6 @@ TemplateURL* TemplateURLService::Add( - (!FindTemplateURLForExtension(template_url->extension_info_->extension_id, - template_url->type()) && - template_url->id() == kInvalidTemplateURLID)); -- - return Add(std::move(template_url), true); - } - diff --git a/components/search_engines/template_url_service.h b/components/search_engines/template_url_service.h --- a/components/search_engines/template_url_service.h +++ b/components/search_engines/template_url_service.h diff --git a/build/patches/Revert-Permit-blocking-of-view-source.patch b/build/patches/Revert-Permit-blocking-of-view-source.patch index 1795c901..94727e40 100644 --- a/build/patches/Revert-Permit-blocking-of-view-source.patch +++ b/build/patches/Revert-Permit-blocking-of-view-source.patch @@ -8,8 +8,8 @@ This reverts commit e72fc9b64116bf259e516096fcc60b58ae8ae1b3. .../policy/url_blocking_policy_test_utils.cc | 11 --- .../policy/url_blocking_policy_test_utils.h | 3 - .../policy_blocklist_navigation_throttle.cc | 19 ----- - .../policy_blocklist_navigation_throttle.h | 5 +- - 5 files changed, 1 insertion(+), 115 deletions(-) + .../policy_blocklist_navigation_throttle.h | 4 - + 5 files changed, 115 deletions(-) diff --git a/chrome/browser/policy/test/url_blocklist_policy_browsertest.cc b/chrome/browser/policy/test/url_blocklist_policy_browsertest.cc --- a/chrome/browser/policy/test/url_blocklist_policy_browsertest.cc @@ -184,7 +184,7 @@ diff --git a/components/policy/content/policy_blocklist_navigation_throttle.cc b diff --git a/components/policy/content/policy_blocklist_navigation_throttle.h b/components/policy/content/policy_blocklist_navigation_throttle.h --- a/components/policy/content/policy_blocklist_navigation_throttle.h +++ b/components/policy/content/policy_blocklist_navigation_throttle.h -@@ -35,10 +35,7 @@ class PolicyBlocklistNavigationThrottle : public content::NavigationThrottle { +@@ -35,10 +35,6 @@ class PolicyBlocklistNavigationThrottle : public content::NavigationThrottle { const char* GetNameForLogging() override; private: @@ -192,7 +192,6 @@ diff --git a/components/policy/content/policy_blocklist_navigation_throttle.h b/ - // the URLBlocklist. - bool IsBlockedViewSourceNavigation(); - -+ ThrottleCheckResult GetUrlThrottleResult(const GURL& url); // To ensure both allow and block policies override Safe Sites, // SafeSitesNavigationThrottle must be consulted as part of this throttle // rather than added separately to the list of throttles. diff --git a/build/patches/Welcome-screen.patch b/build/patches/Welcome-screen.patch index f7bec29c..e4317f16 100644 --- a/build/patches/Welcome-screen.patch +++ b/build/patches/Welcome-screen.patch @@ -6,11 +6,11 @@ Allow toggling automatic updates --- .../android/java/res/layout/fre_tosanduma.xml | 4 +- .../browser/firstrun/FirstRunActivity.java | 43 +---- - .../firstrun/FirstRunFlowSequencer.java | 63 ++----- + .../firstrun/FirstRunFlowSequencer.java | 65 ++----- .../browser/firstrun/FirstRunUtils.java | 13 +- .../firstrun/ToSAndUMAFirstRunFragment.java | 163 +++++------------- .../strings/android_chrome_strings.grd | 27 ++- - 6 files changed, 86 insertions(+), 227 deletions(-) + 6 files changed, 88 insertions(+), 227 deletions(-) diff --git a/chrome/android/java/res/layout/fre_tosanduma.xml b/chrome/android/java/res/layout/fre_tosanduma.xml --- a/chrome/android/java/res/layout/fre_tosanduma.xml @@ -197,7 +197,7 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/firstrun/FirstR } /** @return true if first use hints should be skipped. */ -@@ -141,19 +111,6 @@ public abstract class FirstRunFlowSequencer { +@@ -141,19 +111,8 @@ public abstract class FirstRunFlowSequencer { * Once finished, calls onFlowIsKnown(). */ void start() { @@ -214,10 +214,12 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/firstrun/FirstR - processFreEnvironmentPreNative(); - }); - }); ++ mIsChild = false; ++ processFreEnvironmentPreNative(); } @VisibleForTesting -@@ -172,7 +129,6 @@ public abstract class FirstRunFlowSequencer { +@@ -172,7 +131,6 @@ public abstract class FirstRunFlowSequencer { private void processFreEnvironmentPreNative() { Bundle freProperties = new Bundle(); @@ -225,7 +227,7 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/firstrun/FirstR onFlowIsKnown(freProperties); } -@@ -183,8 +139,8 @@ public abstract class FirstRunFlowSequencer { +@@ -183,8 +141,8 @@ public abstract class FirstRunFlowSequencer { * @param freProperties Resulting FRE properties bundle. */ public void updateFirstRunProperties(Bundle freProperties) { @@ -236,7 +238,7 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/firstrun/FirstR freProperties.putBoolean( FirstRunActivity.SHOW_SEARCH_ENGINE_PAGE, shouldShowSearchEnginePage()); } -@@ -243,6 +199,7 @@ public abstract class FirstRunFlowSequencer { +@@ -243,6 +201,7 @@ public abstract class FirstRunFlowSequencer { || FirstRunStatus.getLightweightFirstRunFlowComplete())) { return false; } @@ -244,7 +246,7 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/firstrun/FirstR return true; } -@@ -290,15 +247,21 @@ public abstract class FirstRunFlowSequencer { +@@ -290,15 +249,21 @@ public abstract class FirstRunFlowSequencer { freIntent = VrModuleProvider.getIntentDelegate().setupVrFreIntent(caller, freIntent); // We cannot access Chrome right now, e.g. because the VR module is not installed.